Context Determination for Matrix-Based Intra Prediction

JP7632852B2Active Publication Date: 2025-02-19DOUYIN VISION CO LTD +1
View PDF 0 Cites 3 Cited by

Patent Information

Application Number
JP2023198738
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2019-06-05
Filing Date
2023-11-24
Publication Date
2025-02-19
Estimated Expiration
2040-06-05

Smart Images

  • Figure 0007632852000061
    Figure 0007632852000061
  • Figure 0007632852000062
    Figure 0007632852000062
  • Figure 0007632852000063
    Figure 0007632852000063
Patent Text Reader

Abstract

To provide a device, a system, and a method, for a digital video coding, containing a matrix basis intra-prediction method for a video coding.SOLUTION: In a principal aspect, a method for a video processing, contains: a step of executing a first determination whether or not a luma video block of a video is coated by using a matrix basis intra-prediction (MIP) mode; a step of executing a second determination that the luma video block can be adopted to determine a chroma intra-mode for a chroma video block at the current of the video; a step of executing a third determination related to the chroma intra-mode used for the current chroma video block on the basis of the first determination and the second determination; and a step of executing the conversion between the current chroma video block and a bit stream representation of the current chroma video block on the basis of the third determination.SELECTED DRAWING: Figure 11
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] [CROSS-REFERENCE TO RELATED APPLICATIONS] This application is a divisional application of International Patent Application No. PCT / CN2020 / 094513, filed on June 5, 2020, which claims the priority and benefit of International Patent Application No. PCT / CN2019 / 090205, filed on June 5, 2019. All of these applications are incorporated by reference in their entirety.

[0002] [Technical field] This patent document relates to video coding techniques, devices and systems. [Background technology]

[0003] Despite advances in video compression, digital video still accounts for the largest bandwidth usage on the Internet and other digital communications networks. As the number of connected user devices capable of receiving and displaying video increases, the bandwidth demands for digital video usage are expected to continue to increase. Summary of the Invention

[0004] Devices, systems and methods related to digital video coding, and in particular matrix-based intra prediction methods for video coding, are described. The described methods may 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.

[0005] In one exemplary embodiment, the disclosed techniques may be used to provide a method for video processing. An example method includes performing a first determination whether a luma video block of a video is coded using a matrix-based intra prediction (MIP) mode, where a predictive block of the luma video block is determined by performing a boundary downsampling operation, followed by a matrix vector multiplication operation, and optionally followed by an upsampling operation, on previously coded samples of the video; performing a second determination that the luma video block is applicable to determine a chroma intra mode for a current chroma video block of the video, where performing the second determination is based on a top-left sample of the current chroma video block relative to a top-left luma sample of a current picture associated with the current chroma video block, and performing the second determination based on a color format of a current video unit and / or a size of the current chroma video block relative to the luma video block; performing a third determination regarding the chroma intra mode to be used for the current chroma video block based on the first and second determinations; and performing a conversion between the current chroma video block and a bitstream representation of the current chroma video block based on the third determination.

[0006] In another representative aspect, the disclosed techniques may be used to provide a method for video processing. An example method includes: performing a first determination that a luma video block of a video is coded using a matrix-based intra prediction (MIP) mode determined by performing a boundary downsampling operation, optionally followed by an upsampling operation, followed by a matrix-vector multiplication operation, on previously coded samples of the video; performing a second determination, based on the first determination, according to a rule, as to whether a derived mode (DM) is to be used as a chroma intra mode for a current chroma video block associated with the luma video block; and performing a conversion between the current chroma video block and a bitstream representation of the current chroma video block based on the second determination.

[0007] In another representative aspect, the disclosed techniques may be used to provide a method for video processing. An exemplary method includes determining that a current video block of a video is coded in a matrix-based intra-prediction (MIP) mode determined by performing a boundary downsampling operation, optionally followed by an upsampling operation, on previously coded samples of the video, followed by a matrix-vector multiplication operation, and based on the determining step, generating a Most Probable Mode (MPM) list based on rules, the rules providing that the MPM list is generated independently from other MPM lists generated for neighboring video blocks of the current video block, and performing a conversion between the current video block and a bitstream representation of the current video block using the MPM list.

[0008] In another representative aspect, the disclosed techniques may be used to provide a method for video processing. An exemplary method includes encoding a current video block of a video using a matrix-based intra-prediction (MIP) mode, where a predictive block of the current video block is determined by performing a boundary downsampling operation, followed by a matrix-vector multiplication operation, and optionally followed by an upsampling operation, on previously coded samples of the video, where a rule describes a relationship between a number of matrices used in the MIP mode and a size of the current video block, and adding the encoded representation of the current video block to a bitstream representation of the current video block.

[0009] In another representative aspect, the disclosed techniques may be used to provide a method for video processing. An exemplary method includes determining that a current video block of a video has a predictive block of the current video block encoded in a bitstream representation using a matrix-based intra-prediction (MIP) mode determined by performing a boundary downsampling operation, optionally followed by an upsampling operation, followed by a matrix-vector multiplication operation, on previously coded samples of the video, where a rule describes a relationship between a number of matrices used in the MIP mode and a size of the current video block, and generating a decoded representation of the current video block by parsing and decoding the bitstream representation.

[0010] In another representative aspect, the disclosed techniques may be used to provide a method for video processing that includes determining that a current video block is coded using an Affine Linear Weighted Intra Prediction (ALWIP) mode, constructing at least a portion of a Most Probable Mode (MPM) list for the ALWIP mode based on at least a portion of an MPM list for a non-ALWIP intra mode based on the determination, and performing a conversion between the current video block and a bitstream representation of the current video block based on the MPM list for the ALWIP mode.

[0011] In another representative aspect, the disclosed techniques may be used to provide a method for video processing that includes determining that a luma component of a current video block is coded using an affine linear weighted intra prediction (ALWIP) mode, inferring a chroma intra mode based on the determination, and performing a conversion between the current video block and a bitstream representation of the current chroma video block based on the chroma intra mode.

[0012] In yet another representative aspect, the disclosed techniques may be used to provide a method for video processing that includes determining that a current video block is coded using an affine linear weighted intra prediction (ALWIP) mode and, based on the determination, performing a conversion between the current video block and a bitstream representation of the current video block.

[0013] In yet another exemplary aspect, the disclosed techniques may be used to provide a method for video processing that includes determining that a current video block is coded using a coding mode other than an affine linear weighted intra prediction (ALWIP) mode, and performing a conversion between a bitstream representation of the current video block and a bitstream representation of the current chroma video block based on the determination.

[0014] In yet another representative aspect, the disclosed techniques may be used to provide a method for video processing that includes generating a first prediction for a current video block using an Affine Linear Weighted Intra Prediction (ALWIP) mode, generating a second prediction based on the first prediction using a Position Dependent intra Prediction Combination (PDPC) mode, and performing a conversion between the current video block and a bitstream representation of the current video block based on the second prediction.

[0015] In yet another representative aspect, the disclosed techniques may be used to provide a method for video processing that includes determining that a current video block is coded using an affine linear weighted intra prediction (ALWIP) mode, predicting a number of sub-blocks of the current video block based on the ALWIP mode, and performing a conversion between the current video block and a bitstream representation of the current video block based on the prediction.

[0016] In yet another representative aspect, a method of video processing is disclosed that includes determining a context of a flag indicating use of an affine linear weighted intra prediction (ALWIP) mode during conversion between the current video block and a bitstream representation of the current video block based on a rule for the current video block, predicting a plurality of sub-blocks of the current video block based on the ALWIP mode, and performing a conversion between the current video block and a bitstream representation of the current chroma video block based on the prediction.

[0017] In yet another representative aspect, a method of video processing is disclosed that includes determining that a current video block is coded using an affine linear weighted intra prediction (ALWIP) mode, and performing at least two filtering stages on samples of the current video block in an upsampling process associated with the ALWIP mode during conversion between the current video block and a bitstream representation of the current chroma video block, where a first precision of the samples in a first filtering stage of the at least two filtering stages is different from a second precision of the samples in a second filtering stage of the at least two filtering stages.

[0018] In yet another aspect, a method of video processing is disclosed that includes determining that a current video block is coded using an affine linear weighted intra prediction (ALWIP) mode and performing at least two filtering stages on samples of the current video block in an upsampling process associated with the ALWIP mode during conversion between the current video block and a bitstream representation of the current video block, the upsampling process being performed in a fixed order when both vertical and horizontal upsampling is performed.

[0019] In yet another aspect, a method of video processing is disclosed that includes determining that a current video block is coded using an affine linear weighted intra prediction (ALWIP) mode and performing at least two filtering stages on samples of the current video block in an upsampling process associated with the ALWIP mode during conversion between the current video block and a bitstream representation of the current video block, the conversion including performing a transposition operation prior to the upsampling process.

[0020] In yet another representative aspect, the above method is embodied in a processor executable code and stored on a computer readable program medium.

[0021] 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.

[0022] In yet another representative aspect, a video decoder device may implement the methods described herein.

[0023] These and other aspects and features of the disclosed technology are described in further detail in the drawings, specification, and claims. [Brief description of the drawings]

[0024] [Figure 1] 33 examples of intra prediction directions are shown. [Diagram 2] 67 examples of intra prediction modes are shown. [Diagram 3] 13 shows an example of sample locations used for derivation of the linear model weights. [Figure 4] An example of four reference lines adjacent to a predicted block is shown. [Figure 5A] Here is an example of subpartitions according to block size: [Figure 5B] Here is an example of subpartitions according to block size: [Figure 6] An example of ALWIP for a 4x4 block is given below. [Figure 7] Here is an example of ALWIP for an 8x8 block. [Figure 8] An example of ALWIP for an 8x4 block is given below. [Figure 9] Here is an example of ALWIP for a 16x16 block. [Figure 10] 13 shows an example of a contiguous block using an MPM list structure. [Figure 11] 1 shows a flowchart of an example method for matrix-based intra prediction in accordance with the disclosed technique. [Figure 12] 13 shows a flowchart of another example of a method for matrix-based intra prediction in accordance with the disclosed techniques. [Figure 13] 13 shows a flowchart of yet another example method for matrix-based intra prediction in accordance with the disclosed techniques. [Figure 14] 13 shows a flowchart of yet another example method for matrix-based intra prediction in accordance with the disclosed techniques. [Figure 15] FIG. 2 is a block diagram of an example hardware platform for implementing the visual media decoding or encoding techniques described herein. [Figure 16] An example of adjacent blocks is shown below. [Figure 17] 1 is an example of the proposed reduced boundary sample generation. [Figure 18] 1 shows an example of the proposed upsampling by original reconstructed neighboring samples. [Figure 19] FIG. 2 is a block diagram illustrating an example of a video decoder. [Figure 20] FIG. 1 is a block diagram illustrating an example of a video processing system in which various techniques disclosed herein may be implemented. [Figure 21]FIG. 1 is a block diagram illustrating an example of a video coding system that can utilize the techniques of this disclosure. [Figure 22] FIG. 1 is a block diagram illustrating an example of a video encoder. [Figure 23] 13 shows a flowchart of a further example of a method for matrix-based intra prediction in accordance with the disclosed technique. [Figure 24] 13 shows a flowchart of a further example of a method for matrix-based intra prediction in accordance with the disclosed technique. [Diagram 25] 13 shows a flowchart of a further example of a method for matrix-based intra prediction in accordance with the disclosed technique. [Figure 26] 13 shows a flowchart of a further example of a method for matrix-based intra prediction in accordance with the disclosed technique. [Figure 27] 13 shows a flowchart of a further example of a method for matrix-based intra prediction in accordance with the disclosed technique. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0025] Due to the increasing demand for higher resolution video, video coding methods and techniques are ubiquitous in modern technology. Video codecs usually include electronic circuits or software that compress or decompress digital video and continue to be improved to provide higher coding efficiency. Video codecs convert uncompressed video into compressed form or vice versa. There is a complex relationship between video quality, the amount of data used to represent the video (determined by 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 compressed format usually follows a standard video compression specification, such as the High Efficiency Video Coding (HEVC) standard (also known as H.265 or MPEG-H Part 2), the Versatile Video Coding (VVC) standard to be finalized, or other current and / or future video coding standards.

[0026] Embodiments of the disclosed techniques may be applied to existing video coding standards (e.g., HEVC, H.265) and future standards to improve runtime performance. Section headings are used herein to improve readability of the description and in no way limit the discussion or embodiments (and / or implementations) to only the respective sections.

[0027] 1. A quick review of HEVC 1.1 Intra Prediction in HEVC / H.265 Intra prediction involves generating samples of a given Transform Block (TB) using previously reconstructed samples in the considered color channel. Intra prediction modes are signaled separately for luma and chroma channels. The chroma channel intra prediction mode optionally depends on the luma channel intra prediction mode by the "DM_CHROMA" mode. Although the intra prediction mode is signaled at the Prediction Block (PB) level, the intra prediction process is applied at the TB level according to the residual quadtree hierarchy of the CU, thereby reducing the distance to samples used as reference values, allowing the coding of one TB to affect the coding of the next TB in the CU.

[0028] HEVC includes 35 intra-prediction modes: DC mode, planar mode, and 33 directional or "angular" intra-prediction modes. The 33 angular intra-prediction modes are depicted in FIG.

[0029] For PBs associated with chroma color channels, the intra prediction mode is specified as either planar, DC, horizontal, vertical, "DM_CHROMA" mode or sometimes the diagonal mode "34".

[0030] Note that for 4:2:2 and 4:2:0 chroma formats, a chroma PB may overlap with two or four luma PBs (respectively). In this case, the luma direction of DM_CHROMA is taken from the top-left of these luma PBs.

[0031] The DM_CHROMA mode indicates that the intra prediction mode of the luma color channel PB is applied to the chroma color channel PB. Since this is relatively common, the most probable mode coding scheme of intra_chroma_pred_mode is biased in favor of this mode being selected.

[0032] 2. Example of intra prediction in VVC 2.1 Intra-mode coding with 67 intra-prediction modes To capture arbitrary edge directions presented in natural video, the number of directional intra modes is extended from the 33 used in HEVC to 65. The additional directional modes are represented as red dashed arrows in Figure 2, while the planar and DC modes remain the same. These denser intra prediction modes are applied for both luma and chroma intra prediction, for all block sizes.

[0033] 2.2 Cross-Component Linear Model (CCLM) Example In some embodiments, to reduce cross-component redundancy, the Cross-Component Linear Model (CCLM) prediction mode (also called LM) is used in JEM, whereby chroma samples are predicted based on the reconstructed luma samples of the same CU by using a linear model as follows: pred C (i,j)=α·rec L '(i,j)+β (1)

[0034] Here, pred C (i,j) represents the predicted chroma sample in CU, and rec L '(i,j) represents the downsampled reconstructed luma sample of the same CU. The linear model parameters α and β are derived from the relationship between the luma and chroma values ​​from two samples, which are the samples with the minimum and maximum sample values, respectively, in the set of downsampled neighboring luma samples and their corresponding chroma samples. Figure 3 shows an example of the positions of the samples of the current block and the left and top samples involved in CCLM mode.

[0035] This parameter computation is performed as part of the decoding process, and not just as an encoder search operation. As a result, no syntax is used to convey the values ​​of α and β to the decoder.

[0036] A total of eight intra modes are allowed for chroma intra mode coding. These modes include five conventional intra modes and three cross-component linear model modes (CCLM, LM_A, and LM_L). Chroma mode coding directly depends on the intra prediction mode of the corresponding luma block. Since separate block partitioning structures for luma and chroma components are enabled in I slices, one chroma block may correspond to multiple luma blocks. Therefore, for chroma DM mode, the intra prediction mode of the corresponding luma block that transforms the center position of the current chroma block is directly inherited.

[0037] 2.3 Multiple Reference Line (MRL) Intra Prediction Multiple Reference Line (MRL) intra prediction uses more reference lines for intra prediction. An example of four reference lines is shown in Figure 4. Samples of segments A and F are not fetched from reconstructed neighboring samples, but are padded with the nearest samples from segments B and E, respectively. HEVC intra picture prediction uses the nearest reference line (i.e., reference line 0). In MRL, two additional lines (reference line 1 and reference line 3) are used. The index of the selected reference line (mrl_idx) is signaled and used to generate the intra predictor. For reference line indexes greater than 0, include only the additional reference line modes in the MPM list and signal only the mpm index without the remaining modes.

[0038] 2.4 Intra-Subpartition (ISP) The Intra Sub-Partitions (ISP) tool divides a luma intra predicted block into two or four sub-partitions vertically or horizontally depending on the block size. For example, the minimum block size for ISP is 4×8 (or 8×4). If the block size is larger than 4×8 (or 8×4), the corresponding block is divided by four sub-partitions. Figure 5 shows examples of two possibilities. All sub-partitions satisfy the condition that they have at least 16 samples.

[0039] For each subpartition, a reconstructed sample is obtained by adding a residual signal to a prediction signal, where the residual signal is generated by processes such as entropy decoding, inverse quantization and inverse transform. Thus, the reconstructed sample values ​​of each subpartition are available to generate a prediction of the next subpartition, and each subpartition is processed iteratively. Furthermore, the first subpartition to be processed contains the top-left sample of the CU, and then the one that follows downward (horizontal division) or right (vertical division). As a result, the reference samples used to generate a subpartition prediction signal are only located on the left and upper sides of the line. All subpartitions share the same intra mode.

[0040] 2.5 Affine Linear Weighted Intra Prediction (ALWIP or Matrix-Based Intra Prediction) Affine Linear Weighted Intra Prediction (ALWIP, also known as Matrix-Based Intra Prediction (MIP)) is proposed in JVET-N0217.

[0041] In JVET-N0127, two tests are performed. In test 1, ALWIP is designed with a memory limit of 8K bytes and at most 4 multiplications per sample. Test 2 is similar to test 1, but simplifies the design in terms of memory requirements and model architecture.

[0042] o One set of matrix and offset vector for every block shape.

[0043] ○ The number of modes is reduced to 19 for all block shapes.

[0044] ○ Memory requirements reduced to 5760 10-bit values, or 7.20 kilobytes.

[0045] o A linear interpolation of the predicted samples is performed in one step per direction, replacing the iterative interpolation seen in the first test.

[0046] 2.5.1 Test 1 of JVET-N0217 To predict samples of a rectangular block of width W and height H, Affine Linear Weighted Intra Prediction (ALWIP) takes as input one row of H reconstructed adjacent boundary samples to the left of the block and one row of W reconstructed adjacent boundary samples above the block. If reconstructed samples are not available, they are generated as is done in conventional intra prediction.

[0047] From the boundary samples, 4 samples are extracted by averaging if W=H=4, and 8 samples in all other cases.

[0048] A matrix-vector multiplication followed by the addition of an offset is performed with the averaged samples as input, resulting in a reduced prediction signal for a subsampled set of samples of the original block.

[0049] The prediction signals at the remaining positions are generated from the prediction signals for the subsampled set by linear interpolation, which is a single-step linear interpolation per direction.

[0050] The matrices and offset vectors required to generate the prediction signal are taken from three sets of matrices S0, S1, S2. Set S0 consists of 18 matrices A0, each with 16 rows and 4 columns. i (i∈{0, ,17}) and 18 offset vectors b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14, b15, b26, b27, b28, b31, b42, b53, b64, b65, b76, b77, b86, b98, b99, b1 i (i∈{0, , 17}). The matrices and offsets in the set are used for blocks of size 4 × 4. The set S1 consists of 10 matrices A1, each with 16 rows and 8 columns. i (i∈{0, , 9}) and 10 offset vectors b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14, b15, b16, b17, b18, b19, b20, b210, b221, b23, b24, b25, b26, b27, b28, b30 i (i∈{0, , 9}). The matrices and offsets in the set are used for blocks of size 4×8, 8×4, and 8×8. Finally, the set S2 consists of six matrices A2, each with 64 rows and 8 columns. i (i∈{0, ,5}) and six offset vectors b2, each of size 64. i (i∈{0, , 5}). That set of matrices and offsets is used for all other block shapes.

[0051] The total number of multiplications required to compute the matrix vector matrix is ​​always less than or equal to 4×W×H, i.e., at most 4 multiplications per sample are required for the ALWIP mode.

[0052] 2.5.2 Boundary Equalization In the first step, the input boundary bdry top and bdry left is the smaller boundary bdry red top and bdry red left where bdry red top and bdry red left Both consist of two samples in the 4x4 block case and four samples in all other cases.

[0053] In the case of 4x4 blocks, for 0≦i<2,

number

[0054] Otherwise, the block width W is W=4·2 k For 0≦i<4,

number

[0055] 2 reduced boundaries bdry red top and bdry red left is the reduced boundary vector bdry red Therefore, the reduced boundary vector bdry red has size 4 for blocks of 4x4 shape and size 8 for blocks of all other shapes. If mode refers to ALWIP mode, then the concatenation is defined as follows:

number

[0056] Finally, for the interpolation of the subsampled prediction signal, a second version of the averaged boundary is needed for large blocks: W=8*2, where min(W,H)>8 and W≧H. l For 0≦i<8,

number

[0057] If min(W,H)>8 and H>W, then bdry red left is defined similarly.

[0058] 2.5.3 Generating the Reduced Prediction Signal by Matrix-Vector Multiplication The reduced input vector bdry red from the reduced prediction signal pred red The latter signal has a width W red and height H red where W red and H red teeth,

number

[0059] The reduced prediction signal pred red is calculated by taking the matrix-vector product and adding an offset: pred red =A·bdry red +b

[0060] Here, A is W red H red is a matrix with rows and 4 columns when W=H=4, and 8 columns in all other cases. b is a matrix of size W red H red is a vector of

[0061] The matrix A and the vector b are taken from one of the sets S0, S1, S2 as follows: Define the index idx=idx(W,H) as follows:

number

[0062] Furthermore, we put m as follows:

number

[0063] Then, if idx≦1 or idx=2 and min(W,H)>4, A=A idx m and b=b idx m If idx=2 and min(W,H)=4, then let A be the vertex corresponding to the odd x coordinates in the downsampled block if W=4, or the vertex corresponding to the odd y coordinates in the downsampled block if H=4. idx m Let be the matrix that appears by removing every row of

[0064] Finally, the reduced prediction signal is replaced by its transpose if: ○ W=H=4 and mode≧18 ○ max(W,H)=8 and mode≧10 ○ max(W,H)>8 and mode≧6

[0065] pred red The number of multiplications required to compute A is 4 when W=H=4 because in this case A has 4 columns and 16 rows. In all other cases, A has 8 columns and W red H red In this case, 8·W red H red It can be easily seen that ≤ 4 W H multiplications are required. That is, in these cases, at most 4 multiplications per sample are required for pred red is needed to calculate

[0066] 2.5.4 Overall ALWIP process description The entire process of averaging, matrix vector multiplication and linear interpolation is explained for each different shape in Figures 6 to 9. Note that the remaining shapes are treated as if they were in one of the cases represented.

[0067] Considering a 1.4x4 block, ALWIP takes two averages along each axis of the boundary. The resulting 4 input samples go into a matrix-vector multiplication. The matrix is ​​taken from set S0. After adding an offset, this results in 16 final predicted samples. No linear interpolation is required to generate the predicted signal. So in total (4·16) / (4·4)=4 multiplications are performed per sample.

[0068] Considering a 2.8x8 block, ALWIP takes 4 averages along each axis of the boundary. The resulting 8 input samples go into a matrix-vector multiplication. The matrix is ​​taken from set S1. This results in 16 samples at odd positions of the prediction block. Thus, a total of (8·16) / (8·8)=2 multiplications are performed per sample. After adding the offset, these samples are interpolated vertically by using the reduced top boundary. Horizontal interpolation follows by using the original left boundary.

[0069] Considering a 3.8x4 block, ALWIP takes 4 averages along the horizontal axis of the boundary and 4 original boundary values ​​at the left boundary. The resulting 8 input samples go into a matrix-vector multiplication. The matrix is ​​taken from set S1. This results in 16 samples at odd horizontal positions and each vertical position of the prediction block. Thus, a total of (8·16) / (8·4)=4 multiplications are performed per sample. After adding the offset, these samples are interpolated horizontally by using the original left boundary.

[0070] 4. Considering a 16x16 block, ALWIP takes 4 averages along each axis of the boundary. The resulting 8 input samples go into a matrix-vector multiplication. The matrix is ​​taken from set S2. This results in 64 samples at odd positions of the prediction block. So a total of (8·64) / (16·16)=2 multiplications per sample are performed. After adding the offset, these samples are interpolated in the vertical direction by using the 8 averages of the top boundary. The horizontal interpolation continues by using the original left boundary. The interpolation process does not add any multiplications in this case. So a total of 2 multiplications per sample are needed to compute the ALWIP prediction.

[0071] For larger shapes the procedure is essentially the same and it is easy to check that the number of multiplications per sample is less than four.

[0072] If W>8, then for a W×8 block, only horizontal interpolation is needed since samples are provided at odd horizontal positions and every vertical position.

[0073] Finally, for a W×4 block, if W>8, let A_kbe be the matrix that results by removing every row that corresponds to odd entries along the horizontal axis of the downsampled block. Thus, the output size is 32, and again, only horizontal interpolation is performed.

[0074] If transposed, it will be treated accordingly.

[0075] 2.5.5 Single-step linear interpolation If max(W,H)≧8, for a W×H block, the predicted signal is red ×H red The reduced signal pred redIt results from. Depending on the block shape, linear interpolation is performed in the vertical direction, the horizontal direction, or both directions. When linear interpolation should be applied in both directions, if W < H, it is first applied in the horizontal direction; otherwise, it is first applied in the vertical direction.

[0076] Without loss of generality, consider a W×H block where max(W,H)≥8 and W≥H. In that case, one-dimensional linear interpolation is performed as follows. Without loss of generality, it is sufficient to describe the linear interpolation in the vertical direction. First, the reduced prediction signal is extended upward by the boundary signal. The vertical upsampling factor U ver =H / H red is defined, and U ver =2 Uver >1 is described. In that case, the extended reduced prediction signal is:

Number

[0077] Then, from this extended reduced prediction signal, the vertically linearly interpolated prediction signal is:

Number

[0078] 2.5.6 Signaling of the Proposed Intra Prediction Modes For each Coding Unit (CU) in the intra mode, a flag indicating whether the ALWIP mode should be applied to the corresponding Prediction Unit (PU) is transmitted in the bitstream. The signaling of the latter index is coordinated with the MRL in the same way as JVET-M0043. When the ALWIP mode should be applied, the index predmode of the ALWIP mode is signaled using an MPM list including three MPSs.

[0079] Here, the derivation of MPM is performed using the intra modes of the top and left PUs as follows: Angular Three fixed tables assigned to map_angular_to_alwip idx There exists (idx∈{0,1,2}): Predmode ALWIP =map_angular_to_alwip idx [predmode Angular ]

[0080] For each PU of width W and height H, define an index indicating from which of the three sets the ALWIP parameters should be taken in section 2.5.3: idx(PU) = idx(W,H)∈{0,1,2}

[0081] Upper prediction unit PU above is available, belongs to the same CTU as the current PU, and is in intra mode, then idx(PU) = idx(PU above ), and ALWIP is in ALWIP mode predmode ALWIP above PU above If applied to: mode ALWIP above =predmode ALWIP above Place it.

[0082] If the upper PU is available, belongs to the same CTU as the current PU, and is in intra mode, the conventional intra prediction mode predmode Angular above If applied to the upper PU: mode ALWIP above=map_angular_to_alwip idx(PUabove) [predmode Angular above ] Place it.

[0083] In all other cases: mode ALWIP above =-1 This means that this mode is not available. Similarly, but without the restriction that the left PU must belong to the same CTU as the current PU, you can put the mode mode ALWIP left Derive:

[0084] Finally, there are three fixed default lists: idx Given a list of (idx∈{0,1,2}), each list contains three distinct ALWIP modes. The default list is list idx(PU) And mode ALWIP above and mode ALWIP left From this, we construct three different MPMs by substituting -1 for the default value and eliminating repetitions.

[0085] The left and top neighboring blocks used in the ALWIP MPM list construction are A1 and B1 shown in FIG.

[0086] 2.5.7 Adaptive MPM List Derivation for Traditional Luma and Chroma Intra Prediction Modes The proposed ALWIP mode is consistent with MPM-based coding of conventional intra prediction modes as follows: The luma and chroma MPM list derivation process of conventional intra prediction modes is the same as that of the ALWIP mode predmode for a given PU. ALWIP A fixed table, map_alwip_to_angular, that maps idx Using (idx∈{0,1,2}): Predmode Angular =map_alwip_to_angular idx [predmode ALWIP ]

[0087] For luma MPM list derivation, ALWIP mode predmode ALWIP Whenever a neighboring luma block using the conventional intra prediction mode predmode is encountered, this block is processed as if it were a conventional intra prediction mode predmode Angular For chroma MPM list derivation, whenever the current luma block uses ALWIP mode, the same mapping is used to convert ALWIP mode to conventional intra prediction mode.

[0088] 2.5.8 Corresponding Revised Working Draft In some embodiments, portions relating to intra_lwip_frag, intra_lwip_mpm_flag, intra_lwip_mpm_idx, and intra_lwip_mpm_remainder have been added to the working draft based on embodiments of the disclosed technology, as described in this section.

[0089] In some embodiments, as described in this section, <begin>and <end>Tags are used to represent additions and modifications to working drafts that are based on embodiments of the disclosed technology.

[0090] [Table 1] TIFF0007632852000011.tif238166TIFF0007632852000012.tif239166TIFF0007632852000013.tif240166TIFF0007632852000014.tif242166 TIFF0007632852000015.tif238166TIFF0007632852000016.tif235153TIFF0007632852000017.tif238166TIFF0007632852000018.tif242166 TIFF0007632852000019.tif240166TIFF0007632852000020.tif237166TIFF0007632852000021.tif237166TIFF0007632852000022.tif237166 TIFF0007632852000023.tif240166TIFF0007632852000024.tif239166TIFF0007632852000025.tif173166TIFF0007632852000026.tif223166

[0091] Overview of ALWIP To predict samples of a rectangular block of width W and height H, Affine Linear Weighted Intra Prediction (ALWIP) takes as input one row of H reconstructed adjacent boundary samples to the left of the block and one row of W reconstructed adjacent boundary samples above the block. If reconstructed samples are not available, they are generated as done in conventional intra prediction. ALWIP is applied only to luma intra blocks. For chroma intra blocks, conventional intra coding modes are applied.

[0092] The generation of the prediction signal is based on three steps: 1. From the boundary samples, 4 samples are extracted by averaging if W=H=4, and 8 samples in all other cases. 2. A matrix-vector multiplication followed by the addition of an offset is performed with the averaged samples as input, resulting in a reduced prediction signal for a subsampled set of samples of the original block. 3. Predicted signals at the remaining positions are generated from the predicted signals for the subsampled set by linear interpolation, which is a single-step linear interpolation per direction.

[0093] If the ALWIP mode should be applied, the index of the ALWIP mode, predmode, is signaled using an MPM list containing three MPMs, where the derivation of the MPM is performed using the intra modes of the upper and left PUs as follows: Angular Three fixed tables assigned to map_angular_to_alwip idx There exists (idx∈{0,1,2}): Predmode ALWIP =map_angular_to_alwip idx [predmode Angular ]

[0094] For each PU of width W and height H, define an index indicating from which of the three sets the ALWIP parameters should be taken: idx(PU) = idx(W,H)∈{0,1,2}

[0095] Upper prediction unit PU above is available, belongs to the same CTU as the current PU, and is in intra mode, then idx(PU) = idx(PU above ), and ALWIP is in ALWIP mode predmode ALWIP above PU above If applied to: mode ALWIP above =predmode ALWIP above Place it.

[0096] If the upper PU is available, belongs to the same CTU as the current PU, and is in intra mode, the conventional intra prediction mode predmode Angular above If applied to the upper PU: mode ALWIP above =map_angular_to_alwip idx(PUabove) [predmode Angular above ] Place it.

[0097] In all other cases: mode ALWIP above =-1 This means that this mode is not available. Similarly, but without the restriction that the left PU must belong to the same CTU as the current PU, you can put the mode mode ALWIP left Derive:

[0098] Finally, there are three fixed default lists: idx Given a list of (idx∈{0,1,2}), each list contains three distinct ALWIP modes. The default list is list idx(PU) And mode ALWIP above and mode ALWIP left From this, we construct three different MPMs by substituting -1 for the default value and eliminating repetitions.

[0099] For luma MPM list derivation, ALWIP mode predmode ALWIP Whenever a neighboring luma block using the conventional intra prediction mode predmode is encountered, this block is processed as if it were a conventional intra prediction mode predmode Angular is treated as if it were using Predmode Angular =map_alwip_to_angular idx [predmode ALWIP ]

[0100] 3. Conversion with VVC 3.1 Multiple Transform Selection (MTS) In addition to the DCT-II used in HEVC, a Multiple Transform Selection (MTS) scheme is used for residual coding both for inter-coded and intra-coded blocks. It uses multiple selected transforms from DCT8 / DST7. The newly introduced transform matrices are DST-VII and DCT-VIII.

[0101] 3.2 Reduced Quadratic Transform (RST) proposed in JVET-N0193 The Reduced Secondary Transform (RST) applies 16x16 and 16x64 non-separable transforms for 4x4 and 8x8, respectively. The first order forward and inverse transforms are still performed as two one-dimensional (1-D) horizontal / vertical transform passes. The second order forward and inverse transforms are separate process steps from that of the first order transform. For the encoder, the first order forward transform is performed first, followed by the second order forward transform and quantization, and then the CABAC bit encoding. For the decoder, CABAC bit decoding and inverse quantization, then the second order inverse transform is performed first, followed by the first order inverse transform. The RST applies both intra-slice and inter-slice and applies only to intra-coded TUs.

[0102] A unified 6-MPM list is proposed for intra blocks, whether Multiple Reference Line (MRL) and Intra Sub-Partition (ISP) coding tools are applied or not. The MPM list is constructed based on the intra modes of the left and upper neighboring blocks as seen in VTM4.0. If the mode of the left side is denoted as Left and the mode of the upper block is denoted as Above, the unified MPM list is constructed as follows: ● When the neighboring block is unavailable, the Intra mode is set to Planar by default. ● If both Left and Above modes are non-angle modes: a. MPA list → {Planar, DC, V, H, V-4, V+4} ● If one of the modes, Left and Above, is an angle mode and the other is a non-angle mode: a. Set Mode Max as the larger of Mode Left and Above b. MPM list → {Planar, Max, DC, Max-1, Max+1, Max-2} ● If Left and Above are both angles and they are different: a. Set Mode Max as the larger of Mode Left and Above b. If the difference between the modes Left and Above is between 2 and 62: i. MPM list → {Planar,Left,Above,DC,Max-1,Max+1} c. Otherwise i. MPM list → {Planar,Left,Above,DC,Max-2,Max+2} ● If Left and Above are both angles and they are the same: a. MPM list → {Planar, Left, Left-1, Left+1, DC, Left-2}

[0103] Moreover, the first bin of the MPM index codeword is CABAC context coded. A total of three contexts are used, depending on whether the current intra block is MRL-enabled, ISP-enabled, or a normal intra block.

[0104] The left and top neighboring blocks used in the unified MPM list construction are A2 and B2 shown in FIG.

[0105] An MPM flag is coded first, if the block is coded in one of the modes in the MPM list, then an MPM index is coded further, otherwise an index to the remaining modes (excluding MPM) is coded.

[0106] 4 Examples of shortcomings in existing implementations The ALWIP design in JVET-N0217 has the following problems:

[0107] 1) At the JVET conference in March 2019, a unified 6-MPM list generation was adopted for MRL mode, ISP mode, and normal intra mode. However, the affine linear weighted prediction mode uses a different 3-MPM list configuration. This complicates the MPM list configuration. The complex MPM list configuration may impair the decoder throughput, especially for small blocks such as 4x4 samples.

[0108] 2) ALWIP only applies to the luma component of a block. For the chroma components of an ALWIP coded block, a chroma mode index is coded and transmitted to the decoder. This may result in unnecessary signaling.

[0109] 3) ALWIP's interaction with other coding tools should be considered.

[0110] 4) uspBdryX

number

[0111] 5) No rounding is applied when upsampling the prediction samples.

[0112] 7) Too many contexts (eg, 4) are used when coding an ALWIP flag (eg, intra_lwip_flag).

[0113] 8) When both vertical and horizontal upsampling are required, the upsampling order depends on the block shape, which is not hardware friendly.

[0114] 9) A linear interpolation filter is used for upsampling, which can be inefficient.

[0115] 5. Exemplary Methods for Matrix-Based Intra-Coding Embodiments of the presently disclosed technology overcome the shortcomings of existing implementations, thereby resulting in video coding with higher coding efficiency but lower computational complexity. The matrix-based intra prediction method for video coding as described herein can enhance both existing and future video coding standards, as illustrated in the following examples in which various implementations are described. The examples of the disclosed technology provided below illustrate general concepts and are not intended to be construed as limiting. In the examples, unless expressly indicated to the contrary, various features described in these examples may be combined.

[0116] In the following description, intra prediction mode refers to angular intra prediction mode (including DC, planar, CCLM and other possible intra prediction modes), while intra mode refers to normal intra mode, or MRL, or ISP, or ALWIP.

[0117] In the following description, "other intra modes" may refer to one or more intra modes, such as normal intra mode, excluding ALWIP, or MRL, or ISP.

[0118] In the following description, SatShit(x,n) is

number

[0119] In one example, offset0 and / or offset1 are (1<<n)> >1 or (1<<(n-1)). In another example, offset0 and / or offset1 are set to 0.

[0120] Another example is offset0=offset1=((1<<n)> >1)-1 or ((1<<(n-1)))-1.

[0121] Clip3(min,max,x) is

number

[0122] MPM list configuration for ALWIP 1. It is proposed that the entire or partial MPM list for ALWIP may be configured following the entire or partial procedure for configuring the MPM list for non-ALWIP intra-mode (e.g., normal intra-mode, MRL, or ISP). In one example, the size of the MPM list for ALWIP may be the same as that of the MPM list for non-ALWIP intra mode. i. For example, the size of the MPM list is 6 for both ALWP and non-ALWIP intra modes. b. In one example, the MPM list for ALWIP may be derived from the MPM list for non-ALWIP intra-mode. In one example, MPM lists for non-ALWIP intra modes may be constructed first, after which some or all of them may be converted into MPMs that can be further added to the MPM list for ALWIP coded blocks. 1) Alternatively, further pruning may be applied when adding the transformed MPM to the MPM list for the ALWIP coded block. 2) A default mode may be added to the MPM list for ALWIP coded blocks. In one example, a default mode may be added before the one converted from the MPM list of non-ALWIP intra modes. b. Alternatively, the default mode may be added after the one converted from the MPM list of non-ALWIP intra modes. c. Alternatively, the default modes may be added alternately with those converted from the MPM list of non-ALWIP intra modes. d. In one example, the default mode may be fixed to be the same for all types of blocks. e. Alternatively, the default mode may be determined according to coded information such as the availability of neighboring blocks, mode information of neighboring blocks, block dimensions, etc. ii. In one example, one intra-prediction mode in an MPM list for a non-ALWIP intra mode may be converted to its corresponding ALWIP intra-prediction mode when placed in the MPM list for ALWIP. 1) Alternatively, all intra-prediction modes in the MPM list for non-ALWIP intra modes may be converted to corresponding ALWIP intra-prediction modes before being used to construct the MPM list for ALWIP. 2) Alternatively, when an MPM list for a non-ALWIP intra mode is further used to derive an MPM list for ALWIP, all candidate intra prediction modes (which may include intra prediction modes from neighboring blocks and default intra prediction modes such as planar and DC) may be converted to corresponding ALWIP intra prediction modes before being used to construct the MPM list for the non-ALWIP intra mode. 3) In one example, two transformed ALWIP intra prediction modes may be compared. In one example, if they are the same, only one of them may be placed on the MPM list for ALWIP. b. In one example, if they are the same, only one of them may be placed in the MPM list for non-ALWIP intra mode. In one example, K of the S intra prediction modes in the MPM list for non-ALWIP intra modes may be selected as the MPM list for ALWIP, e.g., K is equal to 3 and S is equal to 6. 1) In one example, the first K intra prediction modes in the MPM list for non-ALWIP intra modes may be selected as the MPM list for ALWIP.

[0123] 2. It is proposed that one or more adjacent blocks used to derive an MPM list for ALWIP may also be used to construct an MPM list for a non-ALWIP intra mode (e.g., normal intra mode, MRL, or ISP). a. In one example, the neighboring block to the left of the current block used to derive the MPM list for ALWIP should be the same as that used to derive the MPM list for non-ALWIP intra mode. i. Given that the top-left corner of the current block is (xCb, yCb) and the width and height of the current block are W and H, in one example, the left neighboring block used to derive the MPM list for both ALWIP and non-ALWIP intra modes may cover position (xCb-1, yCb). In an alternative example, the left neighboring block used to derive the MPM list for both ALWIP and non-ALWIP intra modes may cover position (xCb-1, yCb+H-1). ii. For example, the left and top neighboring blocks used in the merged MPM list are A2 and B2 shown in FIG. b. In one example, the neighboring blocks above the current block used to derive the MPM list for ALWIP should be the same as those used to derive the MPM list for non-ALWIP intra mode. i. Given that the top-left corner of the current block is (xCb, yCb) and the width and height of the current block are W and H, in one example, the upper neighboring block used to derive the MPM list for both ALWIP and non-ALWIP intra modes may cover position (xCb, yCb-1). In an alternative example, the upper neighboring block used to derive the MPM list for both ALWIP and non-ALWIP intra modes may cover position (xCb+W-1, yCb-1). ii. For example, the left and top neighboring blocks used in the merged MPM list are A1 and B1 shown in FIG.

[0124] 3. It is proposed that the MPM list for ALWIP can be constructed in different ways according to the width and / or height of the current block. In one example, different adjacent blocks may be accessed for different block sizes.

[0125] 4. It is proposed that the MPM list for ALWIP and the MPM list for non-ALWIP intra mode can be configured with the same procedure but with different parameters. In one example, K of the S intra prediction modes in the MPM list construction procedure for non-ALWIP intra modes may be derived for an MPM list used in an ALWIP mode, for example, K is equal to 3 and S is equal to 6. i. In one example, the first K intra-prediction modes in an MPM list construction procedure may be derived for an MPM list used in ALWIP mode. b. In one example, the first mode in the MPM list may be different. i. For example, the first mode in the MPM list for non-ALWIP intra modes may be Planar, but it may be Mode X0 in the MPM list for ALWIP. 1) In one example, X0 may be an ALWIP intra prediction mode converted from Planar. c. In one example, stuffing modes within an MPM list may differ. i. For example, the first three stuffing modes in the MPM list for non-ALWIP intra modes may be DC, Vertical, and Horizontal, but they may be Modes X1, X2, X3 in the MPM list for ALWIP. 1) In one example, X1, X2, X3 may be different for different sizeId. ii. In one example, the number of stuffing modes may be different. d. In one example, adjacent modes in an MPM list may be different. For example, the normal intra-prediction modes of neighboring blocks are used to construct the MPM list for the non-ALWIP intra-modes, and then they are converted to ALWIP intra-prediction modes to construct the MPM list for the ALWIP mode. e. In one example, the shifted modes in the MPM list may be different. For example, if X is a normal intra-prediction mode and K0 is an integer, then X+K0 may be placed in the MPM list for non-ALWIP intra-prediction modes, and if Y is an ALWIP intra-prediction mode and K1 is an integer, then Y+K1 may be placed in the MPM list for ALWIP, where K0 may be different from K1. 1) In one example, K1 may depend on the width and height.

[0126] 5. It is proposed that a neighboring block is treated as unavailable if it is coded ALWIP when constructing the MPM list of the current block in non-ALWIP intra mode. a. Alternatively, a neighboring block is treated as being coded in a predefined intra prediction mode (e.g., Planar) if it is coded in ALWIP when constructing the MPM list for the current block in a non-ALWIP intra mode.

[0127] 6. It is proposed that a neighboring block is treated as unavailable when constructing the MPM list of the current block in ALWIP mode if it is coded in non-ALWIP intra mode. a. Alternatively, a neighboring block is treated as being coded in a predefined ALWIP intra prediction mode X if it is coded in a non-ALWIP intra mode when constructing the MPM list for the current block in ALWIP mode. i. In one example, X may depend on a block dimension, such as width and / or height.

[0128] 7. It is proposed to remove the storage of the ALWIP flag from the line buffer. a. In one example, when the second block to be accessed is located in a different LCU / CTU row / region compared to the current block, the condition check whether the second block is coded with ALWIP is skipped. b. In one example, when the second block to be accessed is located in a different LCU / CTU row / region compared to the current block, the second block is treated the same as in non-ALWIP mode, e.g., treated as a normal intra-coded block.

[0129] 8. When encoding the ALWIP flag, up to K contexts (K>=0) may be used. In one example, K=1.

[0130] 9. Instead of directly storing the mode index associated with the ALWIP mode, it is proposed to store the transformed intra-prediction mode of the ALWIP coded block. In one example, a decoded mode index associated with one ALWIP coded block is mapped to a normal intra mode, for example according to map_alwip_to_angular described in section 2.5.7. b. Alternatively, in addition, storage of the ALWIP flag is removed entirely. c. Alternatively, and further, the ALWIP mode storage is removed entirely. d. Alternatively, furthermore, the condition check according to the ALWIP flag whether one adjacent / current block is coded may be skipped. e. Alternatively, further mode conversions assigned for normal intra prediction associated with the ALWIP coded block and one accessed block may be skipped.

[0131] ALWIP for different color components 10. It is proposed that an inferred chroma intra mode (eg, DM mode) may be applied whenever the corresponding luma block is coded in ALWIP mode. In one example, a chroma intra mode is inferred to be a DM mode, regardless of signaling, if the corresponding luma block is coded in ALWIP mode. b. In one example, the corresponding luma block may be the transform of the corresponding sample of the chroma sample located at a given position (eg, top left of the current chroma block, center of the current chroma block). c. In one example, the DM mode may be derived according to the intra prediction mode of the corresponding luma block, for example, by mapping that (ALWIP) mode to one of the regular intra modes.

[0132] 11. When the corresponding luma block of a chroma block is coded in ALWIP mode, several DM modes can be derived.

[0133] 12. In the chroma mode decision process (e.g., direct mode / derived mode), the corresponding luma block used to decide whether it is ALWIP coded and / or its ALWIP mode may be determined depending on the top-left position along with the size and / or color format of the coded chroma block. a. Let the top-left position of the coded chroma block be (xCb, yCb), and the width and height of the coded chroma block be CbWidth and CbHeight, respectively. All positions and lengths are in luma sample units. b. In one example, the corresponding luma block may be selected as the luma block (eg, coding block) that covers the position (xCb+offsetX, yCb+offsetY), where both offsetX and offsetY are not allowed to be equal to 0. i. In one example, offsetX=(CbWidth / 2) or (CbWidth / 2-1) or (CbWidth / 2+1). ii. In one example, offsetY=(CbHeight / 2) or (CbHeight / 2-1) or (CbHeight / 2+1).

[0134] 13. It is proposed that a special mode is assigned to a chroma block if one corresponding luma block is coded in ALWIP mode. In one example, the special mode is defined to be a given regular intra-prediction mode regardless of the intra-prediction mode associated with the ALWIP coded block. b. In one example, a different method of intra prediction may be assigned to this special mode. c. Alternatively, when a luma block is coded in ALWIP mode, the associated regular intra mode for the chroma DM mode may always be inferred to be the identified special mode. d. Alternatively, further, the chroma mode signaling may be skipped. e. Alternatively, when a chroma block's corresponding luma block is coded in ALWIP mode and DM mode is signaled for the chroma block, a predefined intra prediction mode is applied for the chroma block. i. For example, the predefined intra prediction mode may be a Planar mode. ii. For example, the pre-defined intra prediction modes may depend on coded information such as screen content indications. 1) In one example, if the screen content indication indicates that the content is camera captured content, it may be set to Planar mode. 2) In one example, if the screen content indication indicates that the content is screen content, it may be set to horizontal prediction mode. f. In one example, DM mode may never be used for a chroma block when its corresponding luma block is coded in ALWIP mode. i. For example, syntax related to DM mode does not need to be signaled. 1) In one example, four chroma modes may be allowed to be signaled for a chroma block if the corresponding luma block is in ALWIP mode and sps_cclm_enabled_flag is equal to FALSE. For example, in this case, at most two bins may be needed for intra-chroma mode binarization. 2) In one example, seven chroma modes may be allowed to be signaled for a chroma block if the corresponding luma block is in ALWIP mode and sps_cclm_enabled_flag is TRUE. For example, in this case, at most four bins may be needed for intra-chroma mode binarization.

[0135] 14. It is proposed that ALWIP can also be applied to the chroma components. In one example, the matrices and / or bias vectors may be different for different color components. b. In one example, matrices and / or bias vectors may be pre-defined for Cb and Cr jointly. i. In one example, the Cb and Cr components may be concatenated. ii. In one example, the Cb and Cr components may be interleaved. c. In one example, a chroma component may share the same ALWIP intra prediction mode as the corresponding luma block. i. In one example, the same ALWIP intra prediction mode is applied to a chroma component when the corresponding luma block applies the ALWIP mode and the chroma block is coded in a DM mode. ii. In one example, the same ALWIP intra prediction mode may be applied to the chroma components, and subsequent linear interpolation may be skipped. iii. In one example, the same ALWIP intra prediction mode is applied to chroma components with subsampled matrices and / or bias vectors. d. In one example, the number of ALWIP intra prediction modes for different components may be different. i. For example, the number of ALWIP intra prediction modes for chroma components may be less than that for luma components of the same block width and height.

[0136] Applicability of ALWIP 15. It is proposed that whether ALWIP is applicable may also be signaled. a. For example, it may be signaled at the sequence level (e.g., in SPS), at the picture level (e.g., in SPS or picture header), at the slice level (e.g., in slice header), at the tile group level (e.g., in tile group header), at the tile level, at the CTU row level, or at the CTU level. b. For example, intra_lwip_flag may not be signaled and is assumed to be 0 when ALWIP is not applied.

[0137] 16. It is proposed that whether ALWIP is applicable may depend on the block width (W) and / or height (H). c. For example, ALWIP may not be applicable when W >= T1 (or W > T1) and H >= T2 (or H > T2). For example, T1 = T2 = 32. i. For example, ALWIP may not be applicable when W <= T1 (or W < T1) and H <= T2 (or H < T2). For example, T1 = T2 = 32. d. For example, ALWIP may not be applicable when W >= T1 (or W > T1) or H >= T2 (or H > T2). For example, T1 = T2 = 32. i. For example, ALWIP may not be applicable when W <= T1 (or W < T1) or H <= T2 (or H < T2). For example, T1 = T2 = 32. e. For example, ALWIP may not be applicable when W + H >= T (or W + H > T). For example, T = 256. i. For example, ALWIP may not be applicable when W + H <= T (or W + H < T). For example, T = 256. f. For example, ALWIP may not be applicable when W×H >= T (or W×H > T). For example, T = 256. i. For example, ALWIP may not be applicable when W×H <= T (or W×H < T). For example, T = 256. g. For example, intra_lwip_flag may not be signaled and is assumed to be 0 when ALWIP is not applicable.

[0138] Computational Problems in ALWIP 17. It is proposed that any shift operation involved in ALWIP can only shift a numerical value left or right by S, where S must be 0 or greater. a. In one example, the right shift operation may vary when S is equal to 0 or greater than 0. i. In one example, upsBdryX[x] should be calculated as [a certain formula] when uDwn > 1, and as [a certain formula] when dDwn is equal to 1.

Number

Number

Number

[0139] 18. It is proposed that the result should be truncated or rounded in the upsampling process of ALWIP. a. In one example,

Number

[0140] Interaction with other coding tools 19. It is proposed that ALWIP can be used for CIIP coded blocks. a. In one example, in a CIIP coded block, whether the ALWIP intra prediction mode or a normal intra prediction mode such as Planar is used to generate the intra prediction signal may be explicitly signaled. b. In one example, it may be implicitly inferred whether the ALWIP intra prediction mode or a normal intra prediction mode such as Planar may be used to generate the intra prediction signal. i. In one example, the ALWIP intra prediction mode may never be used in a CIIP coded block. 1) Alternatively, regular intra prediction may never be used on CIIP coded blocks. ii. In one example, whether the ALWIP intra prediction mode or a normal intra prediction mode such as Planar is used to generate the intra prediction signal may be inferred from information of neighboring blocks.

[0141] 20. It is proposed that all or part of the procedure used to downsample neighboring luma samples in CCLM mode may be used to downsample neighboring samples in ALWIP mode. a. Alternatively, all or part of the procedure used to downsample neighboring luma samples in ALWIP mode may be used to downsample neighboring samples in CCLM mode. b. The downsampling procedure may be invoked with different parameters / arguments when used in the CCLM process and the ALWIP process. c. In one example, the downsampling methods in the CCLM process (eg, selection of adjacent luma positions, downsampling filters) may be utilized in the ALWIP process. d. The procedure used to downsample neighboring luma samples includes at least the selection of the downsampled position, a downsampling filter, rounding and clipping operations.

[0142] 21. It is proposed that blocks coded in ALWIP mode cannot have RST or / and secondary transform or / and rotation transform or / and Non-Separable Secondary Transform (NSST) applied. In one example, whether such a constraint can be applied may depend on block size information, for example, the same as the condition described in (15). b. Alternatively, the ALWIP mode may not be allowed when RST or / and quadratic transformation or / and rotation transformation or / and NSST are applied. c. Alternatively, blocks coded in ALWIP mode may apply a RST or / and a quadratic transform or / and a rotation transform or / and a non-separable quadratic transform (NSST). i. In one example, the choice of transformation matrix may depend on the ALWIP intra prediction mode. ii. In one example, the selection of the transformation matrix may depend on the normal intra-prediction mode to which it is converted from the ALWIP intra-prediction mode. iii. In one example, the selection of the transformation matrix may depend on the classification of the normal intra-prediction mode to be transformed from the ALWIP intra-prediction mode.

[0143] 22. It is proposed that blocks coded in ALWIP mode cannot apply block-based DPCM (BDPCM) or residual RDPCM. Alternatively, the ALWIP mode may not be allowed when BDPCM or RDPCM is applied.

[0144] 23. It is proposed that blocks coded in ALWIP mode may only use DCT-II as transform. In one example, the signaling of the transformation matrix index is always skipped. Alternatively, it is proposed that the transform used for blocks coded in ALWIP mode may be implicitly derived rather than explicitly signaled, e.g., the transform may be selected according to the method proposed in JVET-M0303. c. Alternatively, it is proposed that blocks coded in ALWIP mode may use transform skip only. i. Alternatively, further, when ALWIP is used, the signaling of an indication of the use of transform skip is skipped. d. In one example, ALWIP mode information (eg, enable / disable, prediction mode index) may be conditionally signaled after the indication of the transformation matrix. i. In one example, for a given transform matrix (transform skip or DCT-II), an indication of ALWIP mode information may be signaled. ii. Alternatively, further, the indication of the ALWIP mode information may be skipped for some pre-defined transformation matrices.

[0145] 24. It is proposed that a block coded in ALWIP mode is considered to be coded with normal intra prediction converted from the ALWIP intra prediction mode when the selected transformation is mode dependent.

[0146] 25. ALWIP mode does not require conversion skipping. For example, in this case, there is no need to further signal an indication of the utilization of transform skip. b. Alternatively, the ALWIP mode may not be allowed when transform skip is applied. i. For example, in this case, when transform skip is applied, there is no need to signal ALWIP mode information.

[0147] 26. In filtering processes such as a deblocking filter, Sample Adaptive Offset (SAO), or Adaptive Loop Filter (ALF), how to select a filter and / or whether to filter samples may be determined by use of ALWIP.

[0148] 27. Unfiltered adjacent samples may be used in ALWIP mode. Alternatively, filtered adjacent samples may be used in ALWIP mode. b. In one example, the filtered neighboring samples may be used for downsampling and the unfiltered neighboring samples may be used for upsampling. c. In one example, the unfiltered adjacent samples may be used for downsampling, and the filtered adjacent samples may be used for upsampling. d. In one example, the filtered left adjacent sample may be used for upsampling, and the unfiltered upper adjacent sample may be used for upsampling. e. In one example, the unfiltered left adjacent sample may be used for upsampling, and the filtered above adjacent sample may be used for upsampling. f. In one example, whether filtered or unfiltered adjacent samples are used may depend on the ALWIP mode. In one example, the ALWIP mode may be converted to a conventional intra-prediction mode, and whether filtered or unfiltered neighboring samples are used may depend on the converted conventional intra-prediction mode. For example, such a decision is the same as for the conventional intra-prediction mode. ii. Alternatively, whether filtered or unfiltered adjacent samples are used for the ALWIP mode may be signaled. g. In one example, the filtered samples may be generated in the same manner as in a conventional intra-prediction mode.

[0149] 28. Which matrices and / or offset vectors are used may depend on the reshaping (aka LMCS, Luma Mapping with Chroma Scaling) information. In one example, different matrices and / or offset vectors may be used when reshaping is on and off. b. In one example, a different matrix or / and offset vector may be used for each different reshaping parameter. c. In one example, ALWIP may always be performed in the originating domain. i. For example, adjacent samples are mapped back to the original domain (if reshaping is applied) before being used in ALWIP.

[0150] 29. ALWIP may be disabled when reshaping is applied. Alternatively, reshaping may be disabled when ALWIP is enabled. b. In one example, ALWIP may be disabled for High Dynamic Range (HDR) content when reshaping is applied.

[0151] 30. The matrices used in ALWIP may depend on the sample bit depth. a. More generally, the offset values ​​used in ALWIP may depend on the sample bit depth. Alternatively, the matrix parameters and offset values ​​may be stored with M-bit precision for N-bit samples, where M<=N. For example, the matrix parameters and offset values ​​may be stored with 8-bit precision for 10-bit samples. c. The sample bit depth may be the bit depth of the input array for a color component, such as luma. d. The sample bit depth may be the bit depth of the internally ordered / reconstructed samples for a color component such as luma.

[0152] 31. Matrix parameters and / or offset values ​​for a particular block size may be derived from matrix parameters and / or offset values ​​for other block sizes.

[0153] 32. In one example, a 16x8 matrix of 8x8 blocks may be derived from a 16x4 matrix of 4x4 blocks.

[0154] 33. It is proposed that the prediction generated by ALWIP can be treated as an intermediate signal that will be processed to obtain a predicted signal to be further used. In one example, Position Dependent intra Prediction Combination (PDPC) may be applied to the predictions generated by ALWIP to generate a prediction signal to be further used. i. In one example, PDPC is performed on an ALWIP coded block in the same way as if the block were coded in a particular regular intra-prediction mode, such as Planar or DC. ii. In one example, PDPC is performed on ALWIP coded blocks in the same way as for blocks coded in normal intra-prediction mode that are converted from ALWIP mode. iii. In one example, PDPC is conditionally applied to ALWIP coded blocks. 1) For example, PDPC is applied to an ALWIP coded block only when PDPC is applied to a normal intra prediction mode that is converted from an ALWIP intra prediction mode. b. In one example, the boundary sample prediction generated by ALWIP may be filtered with neighboring samples to generate a prediction signal to be further used. i. In one example, filtering on boundary samples is performed on an ALWIP coded block in the same way as if the block were coded in a particular regular intra-prediction mode, such as Planar or DC. ii. In one example, filtering on boundary samples is performed on ALWIP coded blocks in the same way as for blocks coded in normal intra-prediction mode that are converted from ALWIP intra-prediction mode. iii. In one example, filtering on boundary samples is performed conditionally for ALWIP coded blocks. 1) For example, filtering on boundary samples is applied to an ALWIP coded block only when filtering on boundary samples is applied to a normal intra prediction mode that is converted from the ALWIP intra prediction mode.

[0155] 34. It is proposed that interpolation filters other than bilinear interpolation filters can be used in the upsampling process of ALWIP. In one example, a 4-tap interpolation filter may be used in the upsampling process of ALWIP. i. For example, the 4-tap interpolation filter in VVC used to perform motion compensation on the chroma components may be used in the upsampling process of ALWIP. ii. For example, the 4-tap interpolation filter in VVC used to perform angular intra prediction may be used in the upsampling process of ALWIP. iii. For example, the 8-tap interpolation filter in VVC used to perform motion compensation on the luma component may be used in the upsampling process of ALWIP.

[0156] 35. Samples within a block coded in ALWIP mode may be predicted in different ways. In one example, for a W×H block, a prediction of sW×sH sub-blocks therein may be generated by applying sW×sH ALWIP to it. i. In one example, for a W×H block, a prediction of its upper-left W / 2×H / 2 block may be generated by applying W / 2×H / 2 ALWIP to it. ii. In one example, for a W×H block, a prediction of the W / 2×H block to its left may be generated by applying W / 2×H ALWIP to it. iii. In one example, for a W×H block, a prediction of the W×H / 2 block above it may be generated by applying W×H / 2 ALWIP to it. iv. In one example, an sW×sH sub-block may have left and / or top neighboring samples available. b. In one example, how the position of the sub-block should be determined may depend on the size of the block. i. For example, when W>=H, a prediction of the W / 2×H block to its left may be generated by applying W / 2×H ALWIP to it. ii. For example, when H>=W, a prediction of the W×H / 2 block above it can be generated by applying W×H / 2 ALWIP to it. iii. For example, when W is equal to H, a prediction of the W / 2×H / 2 block to the upper left may be generated by applying W / 2×H / 2 ALWIP to it. c. In one example, furthermore, predictions of the remaining samples (samples that do not belong to the sW×sH sub-block) may be generated by applying W×H ALWIP. i. Alternatively, predictions of the remaining samples may be generated by applying conventional intra prediction (eg, using the transformed intra prediction mode as the intra mode). ii. Additionally, computation may be skipped for samples within sW×sH sub-blocks.

[0157] 36. Samples within a block coded in ALWIP mode may be predicted at the sub-block (eg, having size sW×sH) level. a. In one example, sW×sH ALWIP may be applied to each subblock using neighboring reconstructed samples (e.g., in the case of boundary subsamples) or / and neighboring predicted samples (e.g., in the case of inter subblocks). b. In one example, the sub-blocks may be predicted in raster scan order. c. In one example, the sub-blocks may be predicted in a zigzag order. d. In one example, the width (height) of a sub-block may not be larger than sWMax (sHMax). e. In one example, when a block is larger than (or equal to) a threshold L in either width or height, or both width and height, the block may be divided into multiple sub-blocks. f. The threshold L may be predefined or signaled at the SPS / PPS / picture / slice / tile group / tile level. i. Alternatively, the threshold may depend on specific coded information such as block size, picture type, temporal layer index, etc.

[0158] 37. It is proposed that adjacent samples (adjacent or non-adjacent) be filtered before being used in ALWIP. Alternatively, the adjacent samples are not filtered before being used in ALWIP. b. Alternatively, adjacent steps are conditionally filtered before being used in ALWIP. i. For example, neighboring samples are filtered before being used in ALWIP only when the ALWIP intra prediction mode is equal to one or some specific value.

[0159] 38. When coding the ALWIP flag, the method of deriving the context of the ALWIP flag in the arithmetic code is the same for all sizes of the current block. In one example, the method for deriving the context of the ALWIP flag in an arithmetic code is the same whether or not (Abs(Log2(cbWidth)-Log2(CbHeight))) is greater than 1, where cbWidth and cbHeight are the width and height of the current block, respectively. b. In one example, the derivation of the context of the ALWIP flag in an arithmetic code depends only on the ALWIP information of neighboring blocks and / or the availability of neighboring blocks. i. In one example, the ALWIP information (e.g., intra_lwip_flag) of multiple neighboring blocks and / or the availability of neighboring blocks are used directly. For example, the ALWIP flags of left and top neighboring blocks and / or the availability of left and top neighboring blocks are used to derive the context of the ALWIP flag in the arithmetic code. An example is shown in Table 5. Alternatively, further, the context index offset ctxInc=(condL&&availableL)+(condA&&availableA)+ctxSetIdx×3. [Table 2] ii. In one example, one ALWIP information (e.g., intra_lwip_flag) of a neighboring block is used to derive the context of the ALWIP flag in the arithmetic code, and the neighboring block is the left neighboring block. An example is shown in Table 6. Alternatively, further, the context index offset ctxInc=(condL&&availableL)+ctxSetIdx×3. [Table 3] iii. In one example, one ALWIP information (e.g., intra_lwip_flag) of a neighboring block is used to derive the context of the ALWIP flag in the arithmetic code, and the neighboring block is the upper neighboring block. An example is shown in Table 7. Alternatively, further, the context index offset ctxInc=(condA&&availableA)+ctxSetIdx×3. [Table 4] c. In one example, one fixed context is used for coding the ALWIP flag in the arithmetic code. d. In one example, the ALWIP flag is bypass coded with an arithmetic code. e. Alternatively, K contents may be used to code the ALWIP flag with an arithmetic code. The contents used may depend on the block size (e.g., width represented as W and height represented as H). i. In one example, K is equal to 2. If W>N×H or H>N×W (e.g., N=2), then the first context is used, otherwise the second context is used.

[0160] 39. It is proposed that N (N>=0) contexts may be used to code the ALWIP flag (eg, intra_lwip_flag) in an arithmetic code. In one example, N is equal to 3. The ALWIP flags and / or availability of two adjacent or / and non-adjacent blocks may be used to derive the used content of the ALWIP flag in the arithmetic code. i. In one example, the two adjacent blocks may include a top block (eg, B1 in FIG. 10) and a left block (eg, A1 in FIG. 10). ii. In one example, the two adjacent blocks may include an upper block and a lower-left block (eg, A2 in FIG. 10). iii. In one example, the two adjacent blocks may include an upper block and an upper right block (eg, B2 in FIG. 10). iv. In one example, the two adjacent blocks may include a top right block (eg, B2 in FIG. 10) and a left block (eg, B1 in FIG. 10). v. In one example, the two adjacent blocks may include an upper right block (eg, B2 in FIG. 10) and a lower left block (eg, A2 in FIG. 10). vi. In one example, the two adjacent blocks may include a left block (eg, A1 in FIG. 10) and a bottom-left block (eg, A2 in FIG. 10). vii. In an example, the neighboring blocks may be defined differently from that of FIG. 10, and an example is shown in FIG. 16. Two neighboring blocks may include any two of the {top right, top, top left, left, bottom left} blocks. For example, two neighboring blocks may include any two of the blocks in {B0, B1, B2, A0, A1}. b. In one example, N is equal to 2. The ALWIP flag and / or availability of one adjacent or / and non-adjacent block may be used to derive the used content of the ALWIP flag in the arithmetic code. In one example, the neighboring block may be any one of the {top right, top, top left, left, bottom left} blocks. An example of the neighboring block is shown in FIG. In one example, the neighboring block may be any one of the {top right, top, top left, left, bottom left} blocks. An example of the neighboring block is shown in FIG. c. In one example, one fixed context may be used to code the ALWIP flag with an arithmetic code. d. In one example, the ALWIP flag may be bypass coded with an arithmetic code. Figure 16 shows an example of a neighboring block.

[0161] 40. It is proposed that the reduced boundary samples can be generated without computing the upsampling boundary samples. In one example, the reference sample located at the upsampling boundary sample position is directly used for the predictive upsampling process. i. In one example, the upsampling boundary samples may not be calculated by averaging multiple adjacent reference samples. b. In one example, the reduced boundary samples may be calculated directly from the reference samples and the downscaling coefficients. i. In one example, the downsampling factor may be calculated according to the transform block size and the downsampled boundary size.

[0162] 41. It is proposed that the reduced boundary samples used for matrix multiplication can be generated in one stage. In one example, they may be generated directly from the original reconstructed neighboring samples in one stage (note that VVC WD4 uses two stages of downsampling to generate ALWIP reduced boundary samples, as described in section 2.2.1.5.4.4). Here, the original reconstructed neighboring samples may be the decoded neighboring samples without further processing. For example, the original reconstructed neighboring samples may be used to generate angular inter-prediction samples. b. In one example, the reduced boundary samples may be generated from the original reconstructed samples located in the upper adjacent row and / or the left adjacent column of the current block. i. For example, if N reduced boundary samples need to be generated from M original reconstructed samples that are adjacent to the current block (in a given order), then each of K consecutive original reconstructed adjacent samples may be used to obtain one output reduced boundary sample. 1) For example, K=M / N. a. Alternatively, K=(M+N / 2) / N. 2) In one example, one output reduced boundary sample may be derived as the average of K consecutive original reconstructed neighboring samples. 3) In one example, one output reduced boundary sample may be derived as a weighted average of K consecutive original reconstructed neighboring samples. c. In one example, the left reduced boundary sample may be generated from the original reconstructed sample located in the left adjacent column of the current block, while the upper reduced boundary sample may be generated from the original reconstructed sample located in the upper adjacent row of the current block. For example, as shown in Figure 17, left and boundary top The four reduced boundary samples on the left and top boundaries, denoted as , , respectively, are generated by the original neighboring reconstructed samples on the left / top side of the current 16x16 ALWIP block (marked as the grey grid adjacent to the 16x16 block in the figure). d. How the reduced boundary samples should be generated may depend on the block dimensions / coded information (eg, intra-prediction mode, transform type, etc.). e. In one example, the above method may be applied to all sizes of ALWIP blocks that require generating reduced boundary samples (eg, 4×4 ALWIP blocks to 64×64 ALWIP blocks). f. In one example, the generation process of reduced boundary samples for the left adjacent column of the current block and the above adjacent row of the current block may be performed in different ways. i. For example, for an 8x4 ALWIP block, the pre-defined numbers of reduced boundary samples are 4 on the top and 4 on the left, and the 8 adjacent samples located in the top row of the 8x4 ALWIP block are used to generate 4 reduced boundary samples on the top side, while the 4 adjacent samples located in the left column of the 8x4 ALWIP block are directly copied as the 4 reduced boundary samples on the left side.

[0163] 42. It is proposed to use all or some of the original reconstructed neighboring samples (adjacent or non-adjacent to the current block) in the upsampling process to generate the final predicted block from the reduced predicted block. In one example, the original reconstructed neighboring samples may be located in the upper neighboring row and / or the left neighboring column of the current block. An example is shown in Figure 18, where a 64x64 final prediction block is generated by upsampling from an 8x8 reduced prediction block and a 64x64 block of original reconstructed neighboring samples. i. Alternatively, further, the reduced boundary samples may only be used for matrix multiplication to obtain a reduced prediction block, and are not used in the upsampling process to generate a final prediction block. For example, the K reduced boundary samples may be input to the matrix multiplication of ALWIP to generate a reduced prediction block of M×N, but may not be used in the upsampling process to generate a final prediction block. For example, K=8, and M×N is 8×8. b. In one example, selected original reconstructed neighboring samples may be used in an upsampling process to generate a final prediction block from the reduced prediction block. i. For example, all original reconstructed neighboring samples to the left of the current block may be selected. ii. For example, all original reconstructed neighboring samples above the current block may be selected. For example, K of each of M consecutive original reconstructed neighboring samples to the left of the current block may be selected, e.g., K=1, M=2 / 4 / 8. 1) For example, the rear K samples of each M consecutive original reconstructed adjacent samples may be selected. 2) For example, the first K samples of each M consecutive original reconstructed adjacent samples may be selected. iv. For example, K of each M consecutive original reconstructed neighboring samples above the current block may be selected, e.g., K=1, M=2 / 4 / 8. 1) For example, the rear K samples of each M consecutive original reconstructed adjacent samples may be selected. 2) For example, the first K samples of each M consecutive original reconstructed adjacent samples may be selected. v. For example, the selection may depend on the width and height of the block. Let blkWoyobi and blkH denote the width and height, respectively, of the ALWIP block, and (blkX,blkY) denote the top-left position of the block. 1) For example, if blkW is greater than or equal to blkH, then all original reconstructed neighboring samples to the left of the current block may be selected, and / or the number of selected original reconstructed neighboring samples above the current block, represented by M, may depend on blkW. a. In one example, the kth selected sample above the current block may be at position (blkX+(k+1)×blkW / M−1, blkY−1), where k goes from 0 to M−1. b. For example, if blkW<=8, then M=4. c. For example, if blkW>8, then M=8. d. Alternatively, regardless of the relationship between blkW and blkH, all original reconstructed neighboring samples to the left of the current block may be selected, and / or M original reconstructed neighboring samples above the current block may be selected, where M is determined by the rules above. 2) For example, if blkW is smaller than blkH, all original reconstructed neighboring samples above the current block may be selected, and / or the number of selected original reconstructed neighboring samples to the left of the current block, represented by M, may depend on blkH. a. In one example, the kth selected sample to the left of the current block may be at position (blkX-1, blkY+(k+1)*blkH / M-1), where k goes from 0 to M-1. b. For example, if blkH<=8, then M=4. c. For example, if blkH>8, then M=8. d. Alternatively, regardless of the relationship between blkW and blkH, all original reconstructed neighboring samples above the current block may be selected, and / or M original reconstructed neighboring samples to the left of the current block may be selected, where M is determined by the rules above. c. In one example, the neighboring samples used for ALWIP upsampling may be further modified (e.g., filtered, where the filter may be an N-tap filter, e.g., N=2 or 3) before being used to generate the final predicted block. i. In one example, the filtering process of neighboring samples may be adaptively applied according to the ALWIP mode. d. How the final prediction block should be generated (eg, linear interpolation) may depend on the block dimensions / coded information (eg, intra-prediction direction, transform type, etc.).

[0164] 43. In one example, samples may have different precision at different filtering stages in the upsampling process in ALWIP. A "sample" may refer to a predicted sample or any intermediate sample before or after the upsampling process. a. In one example, in the upsampling process in ALWIP, samples are upsampled horizontally along a first dimension in a first filtering stage, and then samples are upsampled vertically along a second dimension in a second filtering stage. i. Alternatively, in the upsampling process in ALWIP, samples are upsampled vertically along a first dimension in a first filtering stage, and then samples are upsampled horizontally along a second dimension in a second filtering stage. b. In one example, the upsampling result outputted from the first filtering stage without right shifting or division may be used as the input sample to the second filtering stage. i. In one example, the output upsampling filtering result of the second filtering stage may be right-shifted by Shift1 or divided by Dem1 to derive the final upsampling result. ii. In one example, the output upsampling filtering result of the first filtering stage may be right-shifted by Shift2 or divided by Dem2 to derive the final upsampling result. 1) For example, Shfit1=2×Shift2, Dem1=Dem2×Dem2. iii. In one example, samples that are input to the second filtering stage but are not the upsampling results output from the first filtering stage may be left shifted by Shift3 or multiplied by Dem3 before being input to the second filtering stage. 1) For example, Shift3=Shift1 and Dem3=Dem2. c. In one example, the output upsampling result of the first filtering stage may be right-shifted by Shift1 or divided by Dem1 before being used as an input sample to the second filtering stage. In one example, the output upsampling filtering result of the second filtering stage may be right-shifted by Shift2 or divided by Dem2 to derive a final upsampling result, where Shift2 may not be equal to Shift1, e.g., Shift2>Shift1, and Dem2 may not be equal to Dem1, e.g., Dem2>Dem1. ii. In one example, the output upsampling filtering result of the first filtering stage may be right-shifted by Shift3 or divided by Dem3 to derive a final upsampling result, where Shift3 may be equal to Shift1 and Dem3 may not be equal to Dem1. 1) For example, Shfit3=Shift1+Shift2. iii. In one example, samples that are input to the second filtering stage but are not the upsampling results output from the first filtering stage may be left-shifted or multiplied by a coefficient before being input to the second filtering stage. d. In one example, the output upsampling result of the first filtering stage may be left-shifted by Shift1 or multiplied by Dem1 before being used as an input sample to the second filtering stage. i. In one example, the output upsampling filtering result of the second filtering stage may be right-shifted or divided by a coefficient to derive a final upsampling result. ii. In one example, the output upsampling filtering result of the first filtering stage may be right-shifted or divided by a coefficient to derive a final upsampling result. In one example, a sample input to the second filtering stage, but not the upsampling result output from the first filtering stage, may be left-shifted by Shift2 or multiplied by Dem2 before being input to the second filtering stage, where Shift2 may not be equal to Shift1, e.g., Shift2>Shift1, and Dem1 may not be equal to Dem2, e.g., Dem2>Dem1. e. In one example, the samples input to the first filtering stage may be left shifted by Shift1 or multiplied by Dem1 before being used as input samples to the first filtering stage. i. In one example, the output upsampling filtering result of the second filtering stage may be right-shifted or divided by a coefficient to derive a final upsampling result. ii. In one example, the output upsampling filtering result of the first filtering stage may be right-shifted or divided by a coefficient to derive a final upsampling result. In one example, a sample input to the second filtering stage, but not the upsampling result output from the first filtering stage, may be left-shifted by Shift2 or multiplied by Dem2 before being input to the second filtering stage, where Shift2 may not be equal to Shift1, e.g., Shift2>Shift1, and Dem2 may not be equal to Dem1, e.g., Dem2>Dem1.

[0165] 44. It is proposed that upsampling in ALWIP can be performed in a fixed order when both vertical and horizontal upsampling are required. In one example, horizontal upsampling may be performed first and vertical upsampling may be performed second. b. In one example, vertical upsampling may be performed first and horizontal upsampling may be performed second.

[0166] 45. In one example, the prediction samples in ALWIP before upsampling may be transposed according to the block dimension. In one example, a W×H block may first be transposed to an H×W block, and then upsampling may be applied. b. Alternatively, further after the upsampling process, the upsampled samples may be transposed in the inverse manner.

[0167] 46. ​​It is proposed that alternative interpolation filters instead of bilinear filters may be used for upsampling in ALWIP. In one example, a Gaussian filter (4-tap, 6-tap, 8-tap, etc.) may be used. b. In one example, a cubic filter (4-tap, 6-tap, 8-tap, etc.) may be used. c. In one example, an interpolation filter used in motion compensation of chroma samples may be used. d. In one example, an interpolation filter (6-tap, 8-tap, etc.) used in motion compensation of luma samples may be used. e. Which interpolation filter is used may depend on the block dimensions. f. Which interpolation filter is used may depend on the upsampling ratio. g. Which interpolation filter is used may depend on the prediction mode of ALWIP. h. Which interpolation filter is used may depend on how many samples are available for upsampling. i. For example, when there are four available samples in a row (or column) (excluding adjacent reference samples), a 4-tap interpolation filter may be used. ii. For example, when there are 8 available samples in a row (or column) (excluding adjacent reference samples), a 4-tap or 8-tap interpolation filter may be used.

[0168] 47. It is proposed that the MPM for a block coded in ALWIP mode can be configured independently from neighboring blocks. In one example, the MPM for a block coded in ALWIP mode is predefined. For example, the predefined MPMs are {M0, M1, M2} for all block dimensions, e.g., M0=0, M1=1, and M2=2. ii. For example, the predefined MPM for a block coded in ALWIP mode may depend on the block dimension. For example, the predefined MPM for a block coded in ALWIP mode may depend on the sizeId defined in Section 2.2.1.5. 1) For example, when sizeID is equal to 0, the MPMs are {17,34,5} in order. 2) For example, when sizeID is equal to 1, the MPMs are {0, 7, 16} in order. 3) For example, when sizeID is equal to 2, the MPMs are {1,4,6} in order. iii. For example, the pre-defined MPM for a block coded in ALWIP mode may be fixed to be associated with the first K matrices. 1) In one example, K=3. 2) In one example, K may depend on the block size.

[0169] 48. It is proposed to unify the number of matrices used in ALWIP regardless of block size. In one example, S matrices may be stored for all block sizes, e.g., S=11, S=19, or S=35. b. In one example, ALWIP mode signaling is done the same for all block sizes. c. Alternatively, the matrix may also be different for different block sizes.

[0170] 5. Embodiments New additions are highlighted in bold italics, deletions are highlighted in Underlined italic text It is highlighted in .

[0171] 5.1 An example Three contexts are used to code the ALWIP flag. [Table 5]

[0172] 5.2 An example One fixed context is used for coding the ALWIP flag. [Table 6]

[0173] 5.3 An example The boundary reduction process is carried out in one step. The following embodiment is based on the adopted JVET-N0220-proposal-test-CE3-4.1_v2. [Table 7]

[0174] 5.4 An example In the upsampling process in ALWIP, prediction samples are derived with different accuracy at different filtering stages. The following embodiment is based on the adopted JVET-N0217-proposal-test-CE3-4.1_v2. [Table 8] TIFF0007632852000041.tif113166

[0175] 5.5 Example for Burette 40 Let the block dimensions be W × H. Samples P(x,y), where x = Sx, Sx + Kx, Sx + 2Kx, Sx + 3Kx, y = Sy, Sy + Ky, Sy + 2Ky, Sy + 3Ky, are input to the upsampling process to derive upsampled samples S(x,y), where x = 0, 1, 2, . . . W-1, y = 0, 1, 2, . . . H-1. Kx and Ky are the step sizes along the horizontal and vertical directions, respectively. (Sx,Sy) is the starting position.

[0176] Assume that 1-D upsampling is performed in the horizontal direction in the first stage, and 1-D upsampling is performed in the vertical direction in the second stage.

[0177] For example, the output of the first pass without a right shift is: S'(Sx+Kx-1,Sy) =F1×P(Sx,Sy)+F2×P(Sx+Kx,Sy) S'(Sx+Kx-1,Sy+Ky) =F1×P(Sx,Sy+Ky)+F2×P(Sx+Kx,Sy+Ky) F1 and F2 are the coefficients of the 2-tap filter, and F1+F2=2 N Then the output of the second stage is: S'(Sx+Kx-1,Sy+1) =F3×S'(Sx+Kx-1,Sy)+F4×S'(Sx+Kx-1,Sy+Ky) F3 and F4 are the coefficients of the 2-tap filter, and F3+F4=2 N The final upsampled sample value is then: S(Sx+Kx-1,Sy+1) =Shift(S'(Sx+Kx-1,Sy+1),2N); S(Sx+Kx-1,Sy) =Shift(S'(Sx+Kx-1,Sy),N); S(Sx+Kx-1,Sy+Ky) =Shift(S'(Sx+Kx-1,Sy+Ky),N) It can be defined as:

[0178] 5.6 An example The reduced boundary samples are derived in one stage to generate a reference buffer for upsampling. The following embodiment is based on the adopted JVET-N0217-proposal-test-CE3-4.1_v2. [Table 9]

[0179] 5.7 An example An example for fixed order upsampling with ALWIP (also known as matrix-based intra prediction, or MIP) is given here. The text is based on JVET-N1001-v6.

[0180] 5.7.1 First Horizontal Upsampling and Then Vertical Upsampling [Table 10] TIFF0007632852000044.tif242166TIFF0007632852000045.tif237166TIFF0007632852000046.tif234166TIFF0007632852000047.tif34166

[0181] 5.7.2 First Vertical Upsampling and Second Horizontal Upsampling [Table 11] TIFF0007632852000049.tif241166TIFF0007632852000050.tif238166TIFF0007632852000051.tif241166TIFF0007632852000052.tif35166

[0182] 5.8 Example of a Working Draft Based on JVET-N1001-v7 for MPM Coding [Table 12] TIFF0007632852000054.tif236166TIFF0007632852000055.tif235166TIFF0007632852000056.tif238166TIFF00076328520 00057.tif239166TIFF0007632852000058.tif163166TIFF0007632852000059.tif237166TIFF0007632852000060.tif108166

[0183] The above examples may be incorporated in conjunction with the methods described below, such as methods 1100 to 1400 and 2300 to 2700. The methods may be implemented in a video encoder and / or decoder.

[0184] 11 shows a flowchart of an example method for video processing. The method 1100 includes, at step 1110, determining that a current video block is coded using an affine linear weighted intra prediction (ALWIP) mode.

[0185] The method 1100 includes, at step 1120, configuring, based on the determination, at least a portion of the MPM list for the ALWIP mode based at least in part on the MPM list for the non-ALWIP intra mode.

[0186] The method 1100 includes, at step 1130, performing a conversion between the current video block and a bitstream representation of the current video block based on the MPM list for the ALWIP mode.

[0187] In some embodiments, the size of the MPM list for ALWIP mode is the same as the size of the MPM list for non-ALWIP intra mode. In an example, the size of the MPM list for ALWIP mode is 6.

[0188] In some embodiments, the method 1100 further includes inserting a default mode into the MPM list for the ALWIP mode. In an example, the default mode is inserted before a portion of the MPM list for the ALWIP mode that is based on the MPM list for the non-ALWIP intra mode. In another example, the default mode is inserted following a portion of the MPM list for the ALWIP mode that is based on the MPM list for the non-ALWIP intra mode. In yet another example, the default mode is inserted alternately with a portion of the MPM list for the ALWIP mode that is based on the MPM list for the non-ALWIP intra mode.

[0189] In some embodiments, constructing the MPM list for the ALWIP mode and the MPM list for the non-ALWIP intra mode is based on one or more neighboring blocks.

[0190] In some embodiments, constructing the MPM list for the ALWIP mode and the MPM list for the non-ALWIP intra mode is based on the height or width of the current video block.

[0191] In some embodiments, configuring the MPM list for the ALWIP mode is based on a first set of parameters that differ from a second set of parameters used to configure the MPM list for the non-ALWIP intra mode.

[0192] In some embodiments, the method 1100 further includes determining that a neighboring block of the current video block is coded in ALWIP mode and designating the neighboring block as unavailable when constructing an MPM list for non-ALWIP intra mode.

[0193] In some embodiments, the method 1100 further includes determining that a neighboring block of the current video block is coded in a non-ALWIP intra mode and designating the neighboring block as unavailable when constructing an MPM list for the ALWIP mode.

[0194] In some embodiments, the non-ALWIP intra mode is based on a normal intra mode, a multiple reference line (MRL) intra prediction mode, or an intra sub-partition (ISP) tool.

[0195] 12 shows a flowchart of an example method for video processing. The method 1200 includes, at step 1210, determining that a luma component of a current video block is coded using an affine linear weighted intra prediction (ALWIP) mode.

[0196] The method 1200 includes, at step 1220, inferring a chroma intra mode based on the determination.

[0197] The method 1200 includes, at step 1230, performing a conversion between the current video block and a bitstream representation of the current video block based on a chroma intra mode.

[0198] In some embodiments, the luma component covers a given chroma sample of the chroma component, hi an example, the given chroma sample is the top-left or center sample of the chroma component.

[0199] In some embodiments, the inferred chroma intra mode is a DM mode, hi some embodiments, the inferred chroma intra mode is an ALWIP mode.

[0200] In some embodiments, the ALWIP mode is applied to one or more chroma components of the current video block.

[0201] In some embodiments, different matrices or bias vectors in the ALWIP mode are applied to different color components of the current video block. In an example, different matrices or bias vectors are predefined for the Cb and Cr components together. In another example, the Cb and Cr components are concatenated. In yet another example, the Cb and Cr components are interleaved.

[0202] 13 shows a flowchart of an example method for video processing. The method 1300 includes, at step 1310, determining that a current video block is coded using an affine linear weighted intra prediction (ALWIP) mode.

[0203] The method 1300 includes, at step 1320, performing a conversion between the current video block and a bitstream representation of the current video block based on the determination.

[0204] In some embodiments, the decision is based on signaling in a sequence parameter set (SPS), a picture parameter set (PPS), a slice header, a tile group header, a tile header, a coding tree unit (CTU) row, or a CTU region.

[0205] In some embodiments, the determination is based on the height (H) or width (W) of the current video block. In an example, W > T1 or H > T2. In other examples, W ≥ T1 or H ≥ T2. In still other examples, W < T1 or H < T2. In still other examples, W ≤ T1 or H ≤ T2. In still other examples, T1 = 32 and T2 = 32.

[0206] In some embodiments, the determination is based on the height (H) or width (W) of the current video block. In an example, W + H ≤ T. In other examples, W + T ≥ T. In still other examples, W × H ≤ T. In still other examples, W × H ≥ T. In still other examples, T = 256.

[0207] FIG. 14 shows a flowchart of an example of a method for video processing. Method 1400 includes, at step 1410, determining that the current video block is coded using a coding mode different from the affine linear weighted intra prediction (ALWIP) mode.

[0208] Method 1400 includes, at step 1420, performing a conversion between the current video block and its bitstream representation based on the determination.

[0209] In some embodiments, the coding mode is a Combined Intra and Inter Prediction (CIIP) mode, and method 1400 further includes selecting between the ALWIP mode and a normal intra prediction mode. In an example, making the selection is based on explicit signaling in a bitstream representation of the current video block. In another example, making the selection is based on a predetermined rule. In yet another example, the predetermined rule selects the ALWIP mode whenever the current video block is coded using a CIIP mode. In yet another example, the predetermined rule selects the normal intra prediction mode whenever the current video block is coded using a CIIP mode.

[0210] In some embodiments, the coding mode is a cross-component linear model (CCLM) prediction mode. In an example, the downsampling procedure for the ALWIP mode is based on the downsampling procedure for the CCLM prediction mode. In another example, the downsampling procedure for the ALWIP mode is based on a first set of parameters, and the downsampling procedure for the CCLM prediction mode is based on a second set of parameters different from the first set of parameters. In yet another example, the downsampling procedure for the ALWIP mode or the CCLM prediction mode includes at least one of a selection of a downsampled position, a selection of a downsampling filter, and a rounding or clipping operation.

[0211] In some embodiments, the method 1400 further includes applying one or more of a reduced quadratic transform (RST), a quadratic transform, a rotation transform, or a non-separable quadratic transform (NSST).

[0212] In some embodiments, the method 1400 further includes applying block-based Differential Pulse Coded Modulation (DPCM) or residual DPCM.

[0213] In some embodiments, a video processing method includes determining a context of a flag indicating use of an affine linear weighted intra prediction (ALWIP) mode during conversion between a current video block and a bitstream representation of the current video block based on a rule for the current video block, predicting a plurality of sub-blocks of the current video block based on the ALWIP mode, and performing a conversion between the current video block and a bitstream representation of the current video block based on the prediction. The rule may be implicitly determined using an a priori method or may be signaled in the coded bitstream. Other examples and aspects of the method are further described in Section 4, items 37 and 38.

[0214] In some embodiments, a method for video processing includes determining that a current video block is coded using an affine linear weighted intra prediction (ALWIP) mode, and performing at least two filtering stages on samples of the current video block in an upsampling process associated with the ALWIP mode during a conversion between the current video block and a bitstream representation of the current video block, wherein a first precision of the samples in a first filtering stage of the at least two filtering stages differs from a second precision of the samples in a second filtering stage of the at least two filtering stages.

[0215] In an example, the samples of the current video block are predicted samples, intermediate samples before the upsampling process, or intermediate samples after the upsampling process. In another example, the samples are upsampled in a first dimension horizontally in the first filtering stage, and the samples are upsampled in a second dimension vertically in the second filtering stage. In yet another example, the samples are upsampled in a first dimension vertically in the first filtering stage, and the samples are upsampled in a second dimension horizontally in the second filtering stage.

[0216] In an example, the output of the first filtering stage is right shifted or divided to generate a processed output, which is input to the second filtering stage. In another example, the output of the first filtering stage is left shifted or multiplied to generate a processed output, which is input to the second filtering stage. Other examples and aspects of this method are further described in Section 4, item 40.

[0217] As further described in items 41 to 43 of Section 4, the video processing method includes determining that a current video block is coded using an affine linear weighted intra prediction (ALWIP) mode, and performing at least two filtering steps on samples of the current video block in an upsampling process associated with the ALWIP mode during conversion between the current video block and a bitstream representation of the current video block, the upsampling process being performed in a fixed order when both vertical and horizontal upsampling is performed. As further described in items 41 to 43 of Section 4, another method includes determining that a current video block is coded using an affine linear weighted intra prediction (ALWIP) mode, and performing at least two filtering steps on samples of the current video block in an upsampling process associated with the ALWIP mode during conversion between the current video block and a bitstream representation of the current video block, the conversion including performing a transposition operation prior to the upsampling process.

[0218] Further features of the above method are described in Section 4, items 41 to 43.

[0219] 6 Examples of the Disclosed Technology FIG. 15 is a block diagram of a video processing device 1500. The device 1500 may be used to implement one or more of the methods described herein. The device 1500 may be embodied in a smartphone, a tablet, a computer, an Internet of Things (IoT) receiver, etc. The device 1500 may include one or more processors 1502, one or more memories 1504, and video processing hardware 1506. The processor 1502 may be configured to implement one or more of the methods described herein, including but not limited to the methods 1100 to 1400 and 2300 to 2700. The memory(s) 1504 may be used to store data and code used to implement the methods and techniques described herein. The video processing hardware 1506 is a hardware circuit that may be used to implement some of the techniques described herein.

[0220] In some embodiments, the video coding method may be implemented using an apparatus implemented on a hardware platform as described in connection with FIG.

[0221] Some embodiments of the disclosed techniques include making a decision or determination to enable a video processing tool or mode. In an example, if a video processing tool or mode is enabled, the encoder will use or implement that tool or mode in processing blocks of video, but will not necessarily modify the resulting bitstream based on the use of the tool or mode. That is, the conversion of blocks of video to a bitstream representation of video will use the video processing tool or mode if the tool or mode is enabled based on the decision or determination. In another example, if a video processing tool or mode is enabled, the decoder will process the bitstream knowing that the bitstream has been modified based on the video processing tool or mode. That is, the conversion of the bitstream representation of video to blocks of video will be performed using the video processing tool or mode that was enabled based on the decision or determination.

[0222] Some embodiments of the disclosed techniques include making a decision or determination to disable a video processing tool or mode. In an example, when a video processing tool or mode is disabled, an encoder will not use that tool or mode in converting blocks of video to a bitstream representation of the video. In another example, when a video processing tool or mode is disabled, a decoder will process the bitstream with the video processing tool or mode that was disabled based on the decision or determination, knowing that the bitstream has not been altered.

[0223] FIG. 21 is a block diagram illustrating an example video coding system 100 that may utilize the techniques of this disclosure. As shown in FIG. 21, video coding system 100 may include a source device 110 and a destination device 120. Source device 110 generates encoded video data and may be referred to as a video encoding device. Destination device 120 may decode the encoded video data generated by source device 110 and may be referred to as a video decoding device. Source device 110 may include a video source 112, a video encoder 114, and an input / output (I / O) interface 116.

[0224] The video source 112 may include a source such as a video capture device, an interface that receives video data from a video content provider, and / or a computer graphics system that generates video data, or a combination of such sources. The video data may have one or more pictures. The video encoder 114 encodes the video data from the video source 112 to generate a bitstream. The bitstream may include a sequence of bits that form a coded representation of the video data. The bitstream may include a coded picture and associated data. A coded picture is a coded representation of a picture. The associated data may include a sequence parameter set, a picture parameter set, and other syntax structures. The I / O interface 116 may include a modulator / demodulator (modem) and / or a transmitter. The encoded video data may be transmitted directly over the network 130a to the destination device 120 via the I / O interface 116. The encoded video data may also be stored in a storage medium / server 130b for access by the destination device 120.

[0225] The destination device 120 may include an I / O interface 126 , a video decoder 124 , and a display device 122 .

[0226] The I / O interface 126 may include a receiver and / or a modem. The I / O interface 126 may obtain encoded video data from the source device 110 or the storage medium / server 130b. The video decoder 124 may decode the encoded video data. The display device 122 may display the decoded video data to a user. The display device 122 may be integrated with the destination device 120 or may be external to the destination device 120 and configured to interface with an external display device.

[0227] The video encoder 114 and the video decoder 124 may operate according to a video compression standard, such as the High Efficiency Video Coding (HEVC) standard, the Versatile Video Coding (VVC) standard, and other current and / or future standards.

[0228] FIG. 22 is a block diagram illustrating an example of a video encoder 200, which may be the video encoder 114 of the system 100 illustrated in FIG.

[0229] Video encoder 200 may be configured to perform any or all of the techniques of this disclosure. In the example of FIG. 22, video encoder 200 includes multiple functional components. The techniques described in this disclosure may be shared among various components of video encoder 200. In some examples, a processor may be configured to perform any or all of the techniques described in this disclosure.

[0230] Functional components of the video encoder 200 may include a partition unit 201, a prediction unit 202, which may include a mode selection unit 203, a motion estimation unit 204, a motion compensation unit 205, and an intra prediction unit 206, a residual generation unit 207, a transform unit 208, a quantization unit 209, an inverse quantization unit 210, an inverse transform unit 211, a reconstruction unit 212, a buffer 213, and an entropy encoding unit 214.

[0231] In other examples, video encoder 200 may include more, fewer, or different functional components. In an example, prediction unit 202 may include an Intra Block Copy (IBC) unit. The IBC unit may perform prediction in an IBC mode, where at least one reference picture is the picture in which the current video block is located.

[0232] Furthermore, some components, such as the motion estimation unit 204 and the motion compensation unit 205, may be highly integrated, but are depicted separately in the example of FIG. 22 for purposes of illustration.

[0233] Partition unit 201 may partition a picture into one or more video blocks. Video encoder 200 and video decoder 300 may support a variety of video block sizes.

[0234] The mode selection unit 203 may select one of intra or inter coding modes, for example based on an error result, and provide the resulting intra or inter coded block to a residual generation unit 207 that generates residual block data, and to a reconstruction unit 212 that reconstructs an encoded block for use as a reference picture. In some examples, the mode selection unit 203 may select a Combination of Intra and Inter Prediction (CIIP) mode, in which prediction is based on an inter prediction signal and an intra prediction signal. The mode selection unit 203 may also select a resolution (e.g., sub-pixel or integer pixel precision) for the motion vector of the block in the case of inter prediction.

[0235] To perform inter prediction on the current video block, motion estimation unit 204 may generate motion information for the current video block by comparing one or more reference frames from buffer 213 with the current video block. Motion compensation unit 205 may determine a predicted video block for the current video block based on the motion information and decoded samples of pictures from buffer 213 other than the picture associated with the current video block.

[0236] Motion estimation unit 204 and motion compensation unit 205 may perform different operations for the current video block depending on whether the current video block is an I slice, a P slice, or a B slice, for example.

[0237] In some examples, motion estimation unit 204 may perform unidirectional prediction for the current video block, and motion estimation unit 204 may look for a reference video block for the current video block from a reference picture in list 0 or list 1. Motion estimation unit 204 may then generate a reference index indicating a reference picture in list 0 or list 1 that contains the reference video block, and a motion vector indicating a spatial displacement between the current video block and the reference video block. Motion estimation unit 204 may output the reference index, the prediction direction indicator, and the motion vector as motion information for the current video block. Motion compensation unit 205 may generate a predicted video block for the current block based on the reference video block indicated by the motion information of the current video block.

[0238] In another example, motion estimation unit 204 may perform bidirectional prediction for the current video block, and motion estimation unit 204 may look for a reference video block for the current video block from a reference picture in list 0 and may look for another reference video block for the current video block from a reference picture in list 1. Motion estimation unit 204 may then generate a reference index indicating the reference pictures in list 0 and list 1 that contain the reference video blocks, and a motion vector indicating the spatial displacement between the reference video block and the current video block. Motion estimation unit 204 may output the reference index and the motion vector of the current video block as motion information of the current video block. Motion compensation unit 205 may generate a predicted video block for the current video block based on the reference video block indicated by the motion information of the current video block.

[0239] In some examples, the motion estimation unit 204 may output a full set of motion information for the decoding process of the decoder.

[0240] In some examples, motion estimation unit 204 may not output a full set of motion information for the current video. Rather, motion estimation unit 204 may signal the motion information of the current video block with reference to motion information of other video blocks. For example, motion estimation unit 204 may determine that the motion information of the current video block is sufficiently similar to the motion information of a neighboring video block.

[0241] In one example, motion estimation unit 204 may indicate in a syntax structure associated with the current video block a value that indicates to video decoder 300 that the current video block has the same motion information as other video blocks.

[0242] In another example, motion estimation unit 204 may identify another video block and a motion vector difference (MVD) in a syntax structure associated with the current video block. The motion vector difference indicates a difference between the motion vector of the current video block and the motion vector of the identified video block. Video decoder 300 may use the motion vector and the motion vector difference of the identified video block to determine the motion vector of the current video block.

[0243] As described above, video encoder 200 may predictively signal motion vectors. Two examples of predictive signaling techniques that may be implemented by video encoder 200 include Advanced Motion Vector Prediction (AMVP) and merge mode signaling.

[0244] Intra prediction unit 206 may perform intra prediction on the current video block. When intra prediction unit 206 performs intra prediction on the current video block, intra prediction unit 206 may generate predictive data for the current video block based on decoded samples of other video blocks in the same picture. The predictive data for the current video block may include a predicted video block and various syntax elements.

[0245] Residual generation unit 207 may generate residual data for the current video block by subtracting (e.g., as indicated by a minus sign) the predicted video block of the current video block from the current video block. The residual data for the current video block may include residual video blocks that correspond to different sample components of the samples in the current video block.

[0246] In other examples, for example, in skip mode, residual data for the current video block may not be present and residual generation unit 207 may not perform the subtraction operation.

[0247] Transform processing unit 208 may generate one or more transform coefficient video blocks for the current video block by applying one or more transforms to a residual video block associated with the current video block.

[0248] After transform processing unit 208 generates a transform coefficient video block associated with the current video block, quantization unit 209 may quantize the transform coefficient video block associated with the current video block based on one or more quantization parameter (QP) values ​​associated with the current video block.

[0249] Inverse quantization unit 210 and inverse transform unit 211 may apply inverse quantization and inverse transform, respectively, to the transform coefficient video block to reconstruct a residual video block from the transform coefficient video block. Reconstruction unit 212 may add the reconstructed residual video block to corresponding samples from one or more predicted video blocks generated by prediction unit 202 to generate a reconstructed video block related to the current block for storage in buffer 213.

[0250] After reconstruction unit 212 reconstructs the video blocks, a loop filtering operation may be performed to reduce video blocking artifacts in the video blocks.

[0251] The entropy encoding unit 214 may receive data from other functional components of the video encoder 200. When the entropy encoding unit 214 receives data, the entropy encoding unit 214 may perform one or more entropy encoding operations to generate entropy encoded data and generate a bitstream that includes the entropy encoded data.

[0252] FIG. 19 is a block diagram illustrating an example of a video decoder 300, which may be the video decoder 124 of the system 100 illustrated in FIG.

[0253] The video decoder 300 may be configured to perform any or all of the techniques of this disclosure. In the example of FIG. 19, the video decoder 300 includes multiple functional components. The techniques described in this disclosure may be shared among various components of the video decoder 300. In some examples, a processor may be configured to perform any or all of the techniques described in this disclosure.

[0254] 19, the video decoder 300 includes an entropy decoding unit 301, a motion compensation unit 302, an intra prediction unit 303, an inverse quantization unit 304, an inverse transform unit 305, a reconstruction unit 306, and a buffer 307. The video decoder 300 may, in some examples, perform a decoding pass that is generally inverse to the encoding pass described with respect to the video encoder 200 (FIG. 5).

[0255] The entropy decoding unit 301 may retrieve an encoded bitstream. The encoded bitstream may include entropy coded video data (e.g., encoded blocks of video data). The entropy decoding unit 301 may decode the entropy coded video data, and from the entropy decoded video data, the motion compensation unit 302 may determine motion information including motion vectors, motion vector precision, reference picture list index, and other motion information. The motion compensation unit 302 may determine such information, for example, by implementing AMVP and merge mode.

[0256] The motion compensation unit 302 may optionally perform interpolation based on an interpolation filter to generate the motion compensated block. An identifier for the interpolation filter used with sub-pixel precision may be included in the syntax element.

[0257] Motion compensation unit 302 may use the interpolation filters used by video encoder 200 during encoding of the video block to calculate interpolated values ​​for sub-integer pixels of the reference block. Motion compensation unit 302 may determine the interpolation filters used by video encoder 200 according to received syntax information and use the interpolation filters to generate the predictive block.

[0258] The motion compensation unit 302 may use some of the syntax information to determine the size of the blocks used to encode the frames and / or slices of the encoded video sequence, partition information describing how each macroblock of a picture of the encoded video sequence is partitioned, one or more reference frames (and reference frame lists) for each inter-coded block, and other information for decoding the encoded video sequence.

[0259] The intra prediction unit 303 may use, for example, an intra prediction mode received in the bitstream to form a prediction block from spatially neighboring blocks. The inverse quantization unit 304 inverse quantizes, i.e., dequantizes, the quantized video block coefficients provided in the bitstream and decoded by the entropy decoding unit 301. The inverse transform unit 305 applies an inverse transform.

[0260] Reconstruction unit 306 may add a corresponding prediction block generated by motion compensation unit 302 or intra prediction unit 303 to the residual block to form a decoded block. If desired, a deblocking filter may also be applied to filter the decoded block to remove blockiness artifacts. The decoded video block is then stored in buffer 307, which provides reference blocks for subsequent motion compensation / intra prediction, as well as generating decoded video for presentation on a display device.

[0261] In this specification, the term "video processing" may refer to video encoding, video decoding, video compression, or video decompression. For example, a video compression algorithm may be applied during conversion from a pixel representation of a video to a corresponding bitstream representation, or vice versa. The bitstream representation of a current video block may correspond to bits that are either at the same position or spread across different locations in the bitstream, e.g., as defined by a syntax. For example, a video block may be encoded with respect to a transformed and coded error residual value, as well as with bits in a header and other fields in the bitstream. Furthermore, during conversion, a decoder may parse the bitstream with the possible presence or absence of some fields based on a decision, as described in the above solution. Similarly, an encoder may determine whether a particular syntax field should be included or not, and generate a bitstream representation by including or excluding the syntax field from the bitstream representation accordingly.

[0262] FIG. 20 is a block diagram illustrating an example video processing system 2000 in which various techniques disclosed herein may be implemented. Various implementations may include some or all of the components of the system 2000. The system 2000 may include an input 2002 that receives video content. The video content may be received in a raw or uncompressed format, such as 8 or 10 bit multi-component pixel values, or in a compressed or encoded format. The input 2002 may correspond to a network interface, a peripheral bus interface, or a storage interface. Examples of network interfaces include wired interfaces such as Ethernet, Passive Optical Network (PON), and wireless interfaces such as Wi-Fi or cellular interfaces.

[0263] The system 2000 may include a coding component 2004 that may implement various coding or encoding methods described herein. The coding component 2004 may reduce the average bit rate of the video from the input 2002 to the output of the coding component 2004 to generate a coded representation of the video. Thus, the coding techniques are sometimes referred to as video compression or video transcoding techniques. The output of the coding component 2004 may be stored or transmitted via a connected communication, as represented by component 2006. The stored or communicated bitstream (or coded) representation of the video received at the input 2002 may be used by component 2008 to generate pixel values ​​or displayable video that is sent to a display interface 2010. The process of generating a video that can be viewed by a user from the bitstream representation is sometimes referred to as video decompression. Furthermore, it will be understood that while certain video processing operations are referred to as "coding" operations or tools, such coding tools or operations are used in an encoder, and corresponding decoding tools or operations that transpose the results of the coding will be performed by a decoder.

[0264] Examples of peripheral bus interfaces or display interfaces may include Universal Serial Bus (USB) or High-Definition Multimedia Interface (HDMI®) or Displayport®, etc. Examples of storage interfaces include Serial Advanced Technology Attachment (SATA), PCI, IDE interfaces, etc. The techniques described herein may 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.

[0265] In some embodiments, the ALWIP mode or MIP mode is used to calculate a predictive block of a current video block by performing a boundary downsampling operation (or averaging operation) on previously coded samples of the video, followed by a matrix-vector multiplication operation, and optionally (or optionally) followed by an upsampling operation (or linear interpolation operation). In some embodiments, the ALWIP mode or MIP mode is used to calculate a predictive block of a current video block by performing a boundary downsampling operation (or averaging operation) on previously coded samples of the video, followed by a matrix-vector multiplication operation. In some embodiments, the ALWIP mode or MIP mode may also perform an upsampling operation (or linear interpolation operation) after performing the matrix-vector multiplication operation.

[0266] 23 illustrates a flowchart of an example method for video processing. Method 2300 includes a method for performing matrix-based intra prediction (MIP) on a luma video block of a video, where a prediction block of the luma video block is determined by performing a boundary downsampling operation, optionally followed by an upsampling operation, followed by a matrix-vector multiplication operation, on previously coded samples of the video. The method includes step 2302 making a first decision whether the luma video block is coded using a Multi-Integrated Prediction (MIP) mode; step 2304 making a second decision that the luma video block is applicable to determine a chroma intra mode for a current chroma video block of the video, where making the second decision is based on a top left sample of the current chroma video block relative to a top left luma sample of the current picture related to the current chroma video block, and making the second decision is based on a color format of a current video unit and / or a size of the current chroma video block relative to the luma video block; step 2306 making a third decision regarding the chroma intra mode to be used for the current chroma video block based on the first and second decisions; and step 2308 performing a conversion between the current chroma video block and a bitstream representation of the current chroma video block based on the third decision.

[0267] In some embodiments of method 2300, the chroma intra mode includes a direct mode or a derived mode. In some embodiments of method 2300, the top left sample of the current chroma video block is located within the luma video block, and a first width of the current chroma video block and a first height of the current chroma video block are less than or equal to a second width of the luma video block and a second height of the luma video block, respectively. In some embodiments of method 2300, the top left sample of the current chroma video block relative to the top left luma sample of the current picture is (xCb, yCb), and a prediction mode of a position represented by (xCb+offsetX, yCb+offsetY) located within the luma video block is applicable to determine the chroma intra mode for the current chroma video block, where offsetX is an offset in the horizontal direction and offsetY is an offset in the vertical direction. In some embodiments of method 2300, the offsetX and the offsetY are not allowed to both be equal to zero. In some embodiments of method 2300, the offsetX is equal to the width of the current chroma video block divided by 2. In some embodiments of method 2300, the offsetX is equal to the width of the luma video block divided by 2. In some embodiments of method 2300, the offsetX is equal to the width of the current chroma video block divided by 2 minus 1.

[0268] In some embodiments of method 2300, the offsetX is equal to the width of the current chroma video block divided by 2 plus one. In some embodiments of method 2300, the offsetY is equal to the height of the current chroma video block divided by 2. In some embodiments of method 2300, the offsetY is equal to the height of the luma video block divided by 2. In some embodiments of method 2300, the offsetY is equal to the height of the current chroma video block divided by 2 minus one. In some embodiments of method 2300, the offsetY is equal to the height of the current chroma video block divided by 2 plus one.

[0269] 24 shows a flowchart of an example method for video processing. The method 2400 includes a step 2402 of performing a first determination that a luma video block of a video is coded using a matrix-based intra prediction (MIP) mode determined by performing a boundary downsampling operation, optionally followed by an upsampling operation, followed by a matrix-vector multiplication operation, on previously coded samples of the video, a step 2404 of performing a second determination based on the first determination, according to a rule, as to whether a derivation mode (DM) is to be used as a chroma intra mode for a current chroma video block associated with the luma video block, and a step 2406 of performing a conversion between the current chroma video block and a bitstream representation of the current chroma video block based on the second determination.

[0270] In some embodiments of method 2400, the rules define that in response to the luma video block being coded using the MIP mode, the DM is used as the chroma intra mode. In some embodiments of method 2400, signaling of the chroma intra mode in the bitstream representation is skipped. In some embodiments of method 2400, the performing the conversion includes signaling of the DM for the current chroma video block in the bitstream representation, and the rules define that a predefined intra prediction mode is applied to the current chroma video block. In some embodiments of method 2400, the predefined intra prediction mode is a planar mode. In some embodiments of method 2400, the predefined intra prediction mode is based on coded information related to screen content. In some embodiments of method 2400, in response to the coded information indicating that the screen content is screen content captured by a camera, the predefined intra prediction mode is a planar mode.

[0271] In some embodiments of method 2400, in response to the coded information indicating that the screen content is not camera captured content, the predefined intra prediction mode is a horizontal prediction mode. In some embodiments of method 2400, the rule specifies that in response to the luma video block being coded using the MIP mode, the DM is not used as the chroma intra mode. In some embodiments of method 2400, the DM is not signaled in the bitstream representation. In some embodiments of method 2400, four chroma modes are allowed for the chroma intra modes, and in response to the luma video block being coded using the MIP mode and in response to a flag indicating that Cross-Component Linear Model prediction (CCLM) is not enabled for the current chroma video block, the DM is signaled in the bitstream representation for the current chroma video block. In some embodiments of method 2400, at most two bits are used to signal the chroma intra mode in the bitstream representation. In some embodiments of method 2400, seven chroma modes are permitted for the chroma intra mode and are signaled in the bitstream representation for the current chroma video block in response to the luma video block being coded using the MIP mode and in response to a flag indicating cross-component linear model prediction (CCML) is enabled for the current chroma video block. In some embodiments of method 2400, at most four bits are used to signal the chroma intra mode in the bitstream representation.

[0272] 25 shows a flowchart of an example method for video processing. The method 2500 includes a step 2502 of determining that a current video block of a video is coded in a matrix-based intra-prediction (MIP) mode determined by performing a boundary downsampling operation, optionally followed by an upsampling operation, followed by a matrix-vector multiplication operation, on previously coded samples of the video, a step 2504 of generating a Most Probable Mode (MPM) list based on rules based on the determining step, the rules defining that the MPM list is generated independently from other MPM lists generated for neighboring video blocks of the current video block, and a step 2506 of performing a conversion between the current video block and a bitstream representation of the current video block using the MPM list.

[0273] In some embodiments of method 2500, the MPM list includes a predefined most probable mode. In some embodiments of method 2500, the predefined most probable mode includes {M0, M1, M2} regardless of the size of the current video block. In some embodiments of method 2500, the predefined most probable mode is based on a size of the current video block. In some embodiments of method 2500, the predefined most probable mode is based on an identifier indicating a block size type of the current video block. In some embodiments of method 2500, the identifier indicating the block size type is a non-negative value. In some embodiments of method 2500, the identifier includes 0, 1, or 2. In some embodiments of method 2500, the predefined most probable mode is {17, 34, 5} in response to the identifier of the block size type being equal to a particular value. In some embodiments of method 2500, the particular value is 0. In some embodiments of method 2500, the predefined most probable mode is {0,7,16} in response to the identifier of the block size type being equal to a particular value. In some embodiments of method 2500, the particular value is 1. In some embodiments of method 2500, the predefined most probable mode is {1,4,6} in response to the identifier of the block size type being equal to a particular value. In some embodiments of method 2500, the particular value is 2.

[0274] 26 shows a flowchart of an example method for video processing. The method 2600 includes a step 2602 of encoding a current video block of a video using a matrix-based intra-prediction (MIP) mode in which a predictive block of the current video block is determined by performing a boundary downsampling operation, optionally followed by an upsampling operation, followed by a matrix-vector multiplication operation, on previously coded samples of the video, and a rule describing a relationship between a number of matrices used in the MIP mode and a size of the current video block, and a step 2604 of adding the encoded representation of the current video block to a bitstream representation of the current video block.

[0275] 27 shows a flowchart of an example method for video processing. The method 2700 includes a step 2702 of determining that a current video block of a video has a predictive block of the current video block encoded in a bitstream representation using a matrix-based intra-prediction (MIP) mode determined by performing a boundary downsampling operation, optionally followed by an upsampling operation, followed by a matrix-vector multiplication operation, on previously coded samples of the video, where a rule describes a relationship between a number of matrices used in the MIP mode and a size of the current video block, and a step 2704 of generating a decoded representation of the current video block by parsing and decoding the bitstream representation.

[0276] In some embodiments of methods 2600 and / or 2700, the rules define that the number of matrices is not based on the size of the current video block, the number of matrices is pre-stored, and the number of matrices is 11, 19, or 35. In some embodiments of methods 2600 and / or 2700, the rules define that the number of matrices is not based on the size of the current video block, and the signaling of the MIP mode is included in the bitstream representation of the current video block, and the signaling of the MIP mode is independent of the size of the current video block. In some embodiments of methods 2600 and / or 2700, the rules define that the number of matrices is based on the size of the current video block.

[0277] In some embodiments of any of the methods described herein, performing the transformation includes an encoding operation, in which a bitstream representation is generated from the current video block. In some embodiments of any of the methods described herein, performing the transformation includes a decoding operation, in which the current video block is generated from the bitstream representation.

[0278] From the foregoing, it will be understood that specific embodiments of the presently disclosed technology have been described herein for purposes of illustration, and that various modifications may be made without departing from the scope of the invention. Accordingly, the presently disclosed technology is not limited, except as by the appended claims.

[0279] Implementations of the subject matter and functional operations described herein can be implemented in various systems, in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed herein and their structural equivalents, or in one or more combinations thereof. Implementations of the subject matter described herein 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-transitory computer-readable medium for execution by or to control the operation of a data processing apparatus. The computer-readable medium can be a machine-readable storage device, a machine-readable storage carrier, a memory device, a composition that provides a machine-readable propagated signal, or one or more combinations thereof. The term "data processing unit" or "data processing apparatus" encompasses all apparatus, devices, and machines that process data, including, by way of example, a programmable processor, a computer, or multiple processors or computers. An apparatus can include, in addition to hardware, code that creates an execution environment for the computer program in question, such as code that constitutes a processor firmware, a protocol stack, a database management system, an operating system, or one or more combinations thereof.

[0280] 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 can be stored in a single file dedicated to the program in question, or in multiple coordinated files (e.g., a file storing one or more modules, subprograms, or portions of code), in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.

[0281] The processes and logic flows described herein may 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 may also be performed by, and an apparatus may be implemented as, special purpose logic circuitry, such as a field programmable gate array (FPGA) or application specific integrated circuit (ASIC).

[0282] Processors suitable for executing computer programs include, by way of example, both general purpose and special purpose microprocessors, as well as any one or more processors of any kind of digital computer. Generally, a processor will read instructions and data from a read-only memory or a random access memory, or both. The 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 will also include one or more mass storage devices, e.g., magnetic, magnetic optical disks, or optical disks, for storing data, or be operatively coupled to receive data from or transfer data to, or both, such one or more mass storage devices. However, a computer need not have such devices. Computer-readable media suitable for storing computer program instructions and data include, by way of example, all types of non-volatile memory, media, and memory devices, including semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices. The processor and memory may be augmented by, or incorporated in, dedicated logic circuitry.

[0283] It is intended that the specification, together with the drawings, be regarded merely as illustrative, and by illustrative I mean exemplary. As used herein, the use of "or" is intended to include "and / or" unless the context clearly indicates otherwise.

[0284] Although the present specification contains numerous details, they should not be construed as limitations on the scope of any subject matter or what may be claimed, but rather as descriptions of features that may be specific to particular embodiments of a particular technology. Certain features described herein in the context of separate embodiments may also be implemented in combination with a single embodiment. Conversely, various features described in the context of a single embodiment may also be implemented in multiple embodiments separately or in any suitable subcombination. Furthermore, although features may be described above as operating in a particular combination and even initially claimed as such, one or more features from a claimed combination may in some cases be deleted from the combination, and the claimed combination may be directed to a subcombination or a variation of the subcombination.

[0285] Similarly, although operations may be depicted in the figures in a particular order, 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 of the depicted operations be performed, to achieve desired results. Further, the separation of various system components in the embodiments described herein should not be understood as requiring such separation in all embodiments.

[0286] Only a few implementations and examples have been described; other implementations, enhancements and variations can be made based on what is described and illustrated in this patent document.< / end> < / begin>

Claims

1. 1. A method for video processing, comprising: determining whether a first prediction mode should be applied to the chroma block for conversion between a chroma block of a video and a bitstream of the video, the first prediction mode applying a matrix vector multiplication operation; generating a prediction sample for the chroma block based on the determining step; performing the conversion between the chroma blocks and the bitstream based on the prediction samples; having A method in which (1) the first prediction mode is applied to a luma block corresponding to the chroma block, (2) an intra mode is applied to a second block of the video that is an adjacent block of the luma block, and a candidate list is constructed to derive an intra prediction mode for the second block, and (3) when the luma block is added as a candidate to the candidate list, the luma block is treated as having a planar mode rather than the first prediction mode.

2. and determining not to apply the first prediction mode to the chroma block, and in response to the first prediction mode being applied to the luma block and a value of a syntax element intra_chroma_pred_mode indicating that a chroma component intra mode is the same as a luma component intra mode, applying a predefined intra prediction mode to the chroma block. The method of claim 1.

3. the predefined intra prediction mode is a planar mode; The method of claim 2.

4. the luma block covers position (xCb+offsetX, yCb+offsetY); (xCb, yCb) identifies a top left sample of the chroma block relative to the top left luma sample of the current picture containing the chroma block; offsetX is the horizontal offset, offsetY is the vertical offset, 4. The method according to any one of claims 1 to 3.

5. The offsetX and offsetY are not allowed to both be equal to zero. The method according to claim 4.

6. the offsetX is equal to the width of the chroma block divided by 2, and the offsetY is equal to the height of the chroma block divided by 2; The method according to claim 4.

7. the input samples of the matrix vector multiplication operation are obtained by performing a downsampling operation on boundary reference samples of the chroma block based on a size of the chroma block; applying the first prediction mode to the chroma block further comprises selectively performing an upsampling operation following the matrix-vector multiplication operation to generate the prediction samples for the chroma block.

7. The method according to any one of claims 1 to 6.

8. In the matrix vector multiplication operation, different matrices are used for different dimensions.

8. The method according to any one of claims 1 to 7.

9. Whether to apply the first prediction mode to the chroma block is determined based on a group of conditions; the group of conditions includes whether a prediction mode of the luma block corresponding to the chroma block is the first prediction mode; 9. The method according to any one of claims 1 to 8.

10. the group of conditions further includes whether a value of the syntax element intra_chroma_pred_mode specifies that the chroma component intra mode is the same as the luma component intra mode; The syntax element intra_chroma_pred_mode is used to specify a mapping relationship between the chroma component intra mode and the luma component intra mode.

10. The method of claim 9.

11. the first prediction mode is applied to the chroma block in response to the group of conditions being satisfied; the group of conditions includes: the prediction mode of the luma block corresponding to the chroma block is the first prediction mode; and the value of the syntax element intra_chroma_pred_mode specifies that the chroma component intra mode is the same as the luma component intra mode. The method of claim 10.

12. the transforming includes encoding the chroma blocks into the bitstream.

12. The method according to any one of claims 1 to 11.

13. the converting includes decoding the chroma blocks from the bitstream.

12. The method according to any one of claims 1 to 11.

14. 1. An apparatus for processing video data, comprising: a processor and a non-transitory memory containing instructions; The instructions, when executed by the processor, cause the processor to: determining whether a first prediction mode should be applied to the chroma block for conversion between a chroma block of a video and a bitstream of the video, the first prediction mode applying a matrix vector multiplication operation; generating a prediction sample for the chroma block based on the determining step; performing the conversion between the chroma blocks and the bitstream based on the prediction samples; Run the command, (1) the first prediction mode is applied to a luma block corresponding to the chroma block; (2) an intra mode is applied to a second block of the video that is a neighboring block of the luma block, and a candidate list is constructed to derive an intra prediction mode for the second block; and (3) when the luma block is added as a candidate to the candidate list, the luma block is treated as having a planar mode rather than the first prediction mode. Device.

15. The processor: determining whether a first prediction mode should be applied to the chroma block for conversion between a chroma block of a video and a bitstream of the video, the first prediction mode applying a matrix vector multiplication operation; generating a prediction sample for the chroma block based on the determining step; performing the conversion between the chroma blocks and the bitstream based on the prediction samples; storing an instruction to execute the (1) the first prediction mode is applied to a luma block corresponding to the chroma block; (2) an intra mode is applied to a second block of the video that is a neighboring block of the luma block, and a candidate list is constructed to derive an intra prediction mode for the second block; and (3) when the luma block is added as a candidate to the candidate list, the luma block is treated as having a planar mode rather than the first prediction mode. A non-transitory computer-readable storage medium.

16. 1. A method of storing a bitstream of video generated by a method performed by a video processing device, comprising: determining whether a first prediction mode should be applied to a chroma block of the video, the first prediction mode applying a matrix vector multiplication operation; generating a predicted sample for the chroma block based on the determining step; generating the bitstream based on the predicted samples; storing the bitstream on a non-transitory computer-readable recording medium; having (1) the first prediction mode is applied to a luma block corresponding to the chroma block; (2) an intra mode is applied to a second block of the video that is a neighboring block of the luma block, and a candidate list is constructed to derive an intra prediction mode for the second block; and (3) when the luma block is added as a candidate to the candidate list, the luma block is treated as having a planar mode rather than the first prediction mode. method.

Citation Information

Cited By

  • Matrix-based intra prediction using upsampling

    US12519945B2

  • Calculation in matrix-based intra prediction

    US12526424B2

  • Matrix-based intra prediction using filtering

    US12621487B2