Contextual modeling and selection of multiple transformation matrices

By employing context modeling and multiple conversion matrix selection techniques tailored to video block characteristics, the method addresses inefficiencies in video coding standards, enhancing compression performance and reducing bandwidth demands.

JP7623421B2Active Publication Date: 2025-01-28DOUYIN VISION CO LTD +1
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2023076813
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2019-04-23
Filing Date
2023-05-08
Publication Date
2025-01-28
Estimated Expiration
2040-04-23

AI Technical Summary

Technical Problem

Existing video coding standards face inefficiencies in bandwidth usage due to the high demand for digital images, particularly in internet and digital communication networks, as they often require complex implementations and do not optimally handle various video block shapes and prediction modes.

Method used

The implementation of context modeling and multiple conversion matrix selection methods, including intra block copy (IBC) modes, sub-block conversions, and selective application of conversion types based on video block characteristics, such as shape and prediction modes, to enhance coding efficiency.

Benefits of technology

This approach improves coding efficiency by optimizing conversion processes for different video block types, reducing bandwidth requirements and enhancing compression performance in both existing and future video coding standards.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007623421000031
    Figure 0007623421000031
  • Figure 0007623421000032
    Figure 0007623421000032
  • Figure 0007623421000033
    Figure 0007623421000033
Patent Text Reader

Abstract

To provide a device, a system, and a method for digital video encoding that includes context modeling and multiple transformation matrix selection.SOLUTION: A video processing method includes: determining, for transformation between the current video block of a video and a bit stream expression, whether or not the indication of transformation type in multiple transformation selection (MTS) operation is excluded from the bit stream expression for the current video block; and performing a transformation. The indication is in a sequence parameter set, a picture parameter set, a tile group header, a slice header, a picture header, a tile header, a coded tree unit row, a coded unit or a video data unit. Making determination is based on the last position of a non-zero coded coefficient, and MTS operation includes using transformation from a plurality of predefined transformation candidates in order to transform prediction errors of the current video block during transformation.SELECTED DRAWING: Figure 8A
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS This application is based on Japanese Patent Application No. 2021-562775, filed on October 20, 2021, which is a national stage of International Patent Application No. PCT / CN2020 / 086354, filed on April 23, 2020, and claims priority to and the benefit of International Patent Application No. PCT / CN2019 / 083844, filed on April 23, 2019. The entire disclosures of the aforementioned applications are incorporated by reference as part of the disclosure of this specification.

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

[0003] Despite advances in video compression, digital video remains the largest bandwidth user on the Internet and other digital communications networks. The bandwidth demands for digital video use are expected to continue to grow as the number of connected user devices capable of receiving and displaying video increases. Summary of the Invention

[0004] The present invention relates to digital video coding, and in particular to devices, systems and methods relating to context modeling and multiple transform matrix selection for video coding. The described methods may be applied to both existing video coding standards (e.g., High Efficiency Video Coding (HEVC)) and future video coding standards or video codecs.

[0005] In one representative aspect, the disclosed techniques may be used to provide a method of video processing, the method including: determining that an indication of a transform type in a multiple transform selection (MTS) operation is excluded from the bitstream representation for conversion between a current video block of a video and a bitstream representation of the video, where the current video block is coded using an intra block copy (IBC) mode, and performing the conversion, the indication being in a sequence parameter set (SPS), a picture parameter set (PPS), a tile group header, a slice header, a picture header, a tile header, a coding tree unit (CTU) row, a coding unit, or a video data unit, and the MTS operation includes using a transform from a plurality of predefined transform candidates to convert a prediction error of the current video block during the conversion.

[0006] In another representative aspect, the disclosed techniques may be used to provide a method of video processing that includes determining, based on an encoding mode of a current video block of a video, regarding selective application of a multiple transform selection (MTS) operation and, based on the determination, converting between the current video block and a bitstream representation of the video, where the MTS operation includes using a transform from a plurality of pre-defined transform candidates to convert a prediction error of the current video block during the conversion.

[0007] In yet another representative aspect, the disclosed techniques may be used to provide a method of video processing, the method including: configuring a context model for encoding at least one index of a multiple transform selection (MTS) operation based on characteristics of a current video block, and converting between the current video block and a bitstream representation of a video including the current video block based on the configuring, the MTS operation including using a transform from a plurality of predefined transform candidates to convert a prediction error of the current video block during the conversion.

[0008] In yet another representative aspect, the disclosed techniques may be used to provide a method of video processing, including determining a transform that includes a multiple transform selection (MTS) operation during conversion between a current video block and a bitstream representation of a video that includes the current video block, and separately encoding one or more horizontal indices and one or more vertical indices of a matrix of the MTS operation based on the determining, the MTS operation including using a transform from a plurality of predefined transform candidates to transform a prediction error of the current video block during the conversion.

[0009] In yet another representative aspect, the disclosed techniques may be used to provide a method of video processing, the method including configuring an indication of a transform type of a multiple transform selection (MTS) operation on a current video block encoded using an intra block copy (IBC) mode for converting between a current video block of the video and a bitstream representation of the video, the indication being in a sequence parameter set (SPS), a picture parameter set (PPS), a tile group header, a slice header, a picture header, a tile header, a coding tree unit (CTU) row, or a video data unit, and performing the conversion, the MTS operation including using a transform from a plurality of predefined transform candidates to convert a prediction error of the current video block during the conversion.

[0010] In yet another representative aspect, the disclosed techniques may be used to provide a method of video processing, the method including determining whether an indication of a transform type in a multiple transform selection (MTS) operation for converting between a current video block of a video and a bitstream representation of the video is excluded from the bitstream representation for the current video block, the indication being in a sequence parameter set (SPS), a picture parameter set (PPS), a tile group header, a slice header, a picture header, a tile header, a coding tree unit (CTU) row, a coding unit, or a video data unit, and determining, based on a final position of a non-zero coding coefficient, the MTS operation includes using a transform from a plurality of predefined transform candidates to transform a prediction error of the current video block during the conversion.

[0011] In yet another representative aspect, the disclosed techniques may be used to provide a method of video processing, the method including configuring instructions to use a multiple transform selection (MTS) operation on chroma components of a current video block for converting between a current video block of a video and a bitstream representation of the video, the configuring including using a transform from a plurality of predefined transform candidates to convert a prediction error of the current video block during conversion based on a color format of the current video block.

[0012] In yet another representative aspect, the disclosed techniques may be used to provide a method of video processing, the method including determining a sub-block transform (SBT) operation to be applied to a current video block for converting between a current video block of the video and a bitstream representation of the video, and performing the conversion by using a multiple transform selection (MTS) operation, the SBT operation including a position-dependent transform operation, and the MTS operation including using a transform from a plurality of pre-defined transform candidates to convert a prediction error of the current video block during the conversion.

[0013] In yet another representative aspect, the disclosed techniques may be used to provide a method of video processing that includes determining, based on a color format of a current video block of a video, selectively applying an intra-sub-block partitioning (ISP) operation to chroma components of the current video block, and converting between the current video block and a bitstream representation of the video based on the determining, the ISP operation dividing the block vertically or horizontally into sub-partitions having at least a predetermined number of samples.

[0014] In yet another exemplary embodiment, the method is embodied in a processor executable code and stored on a computer readable program medium.

[0015] In yet another exemplary aspect, a device configured or operable to perform the above-described method is disclosed. The device may include a processing device programmed to implement the method.

[0016] In yet another exemplary aspect, a video decoder device may implement the methods as described herein.

[0017] These and other aspects and features of the disclosed technology are explained in more detail in the drawings, description and claims. [Brief description of the drawings]

[0018] [Figure 1] Here is an example of secondary transformation in JEM. [Diagram 2] We present an example of the proposed Reduced Secondary Transformation (RST). [Diagram 3] Examples of sub-block transform modes SBT-V and SBT-H are given. [Figure 4] Examples of division into 4x8 and 8x4 blocks are shown. [Diagram 5] Examples of splitting all blocks except 4x8, 8x4, and 4x4 are shown. [Figure 6] An example is shown of splitting one 4x8 sample block into two independent decodable regions. [Figure 7] 1 shows an example of an order of processing rows of pixels to maximize throughput for a 4×N block with a vertical prediction module. [Figure 8A] 1 is a flowchart illustrating an example of a video processing method. [Figure 8B] 1 is a flowchart illustrating an example of a video processing method. [Figure 8C] 1 is a flowchart illustrating an example of a video processing method. [Figure 8D] 1 is a flowchart illustrating an example of a video processing method. [Figure 8E] 1 is a flowchart illustrating an example of a video processing method. [Figure 8F] 1 is a flowchart illustrating an example of a video processing method. [Figure 8G] 1 is a flowchart illustrating an example of a video processing method. [Figure 8H] 1 is a flowchart illustrating an example of a video processing method. [Figure 8I] 1 is a flowchart illustrating an example of a video processing method. [Figure 9] FIG. 1 is a block diagram illustrating an example of a hardware platform for implementing the visual media decoding or visual media encoding techniques described in this patent specification. [Figure 10] FIG. 1 is a block diagram illustrating an example video processing system in which the disclosed techniques can be implemented. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0019] Embodiments of the disclosed technology may be applied to existing video coding standards (e.g., HEVC, H.265) and future standards to improve compression performance. Section headings are used herein to improve readability of the description and are not intended to limit the description or embodiments (and / or implementations) to only the respective sections.

[0020] 2. Introduction to video coding Due to the increasing demand for higher resolution video, video coding methods and techniques are ubiquitous in modern technology. Video codecs generally include electronic circuits or software that compress or decompress digital video and are constantly being improved to provide higher coding efficiency. Video codecs convert uncompressed video to compressed formats or vice versa. There is a complex relationship between the quality of the video, the amount of data used to represent the video (determined by the bit rate), the complexity of the encoding and decoding algorithms, the sensitivity to data loss and errors, the ease of editing, random access, and the end-to-end delay (latency). The compression format usually complies with a standard video compression specification, such as the High Efficiency Video Coding (HEVC) standard (also known as H.265 or MPEG-H Part 2), a general-purpose video coding standard to be completed, or other current and / or future video coding standards.

[0021] Video coding standards have evolved mainly through the development of well-known ITU-T and ISO / IEC standards. ITU-T created H.261 and H.263, ISO / IEC created MPEG-1 and MPEG-4 Visual, and the two organizations jointly created H.262 / MPEG-2 Video, H.264 / MPEG-4 AVC (Advanced Video Coding), and H.265 / HEVC standards. Since H.262, video coding standards have been based on hybrid video coding structures where temporal prediction and transform coding are utilized. In order to explore future video coding technologies beyond HEVC, in 2015, VCEG and MPEG jointly established the Joint Video Exploration Team (JVET). Since then, many new methods have been adopted by JVET and incorporated into reference software called JEM (Joint Exploration Mode). In April 2018, the Joint Video Expert Team (JVET) was established between VCEG (Q6 / 16) and ISO / IEC JTC1 SC29 / WG11 (MPEG), and is working on formulating the VVC standard with the goal of reducing the bitrate by 50% compared to HEVC.

[0022] 2.1 Discrete Sine Function Transform Family The discrete sinusoidal transform family includes the well-known discrete Fourier, cosine, sine, and Karhunen-Loeb (first order Markov condition) transforms. Among all members, there are eight types of transforms based on cosine functions and eight types of transforms based on sine functions, namely, DCT-I, II,...,VIII, and DST-I, II,...,VIII, respectively. These discrete cosine and sine transform variants originate from different symmetries of their corresponding symmetric-periodic sequences. The transform basis functions of selected types of DCT and DST as utilized in the proposed method are summarized in Table 1 below. Table 1: Transform-based functions of DCT-II / V / VIII and DST-I / VII for N-point input

[0023] [Table 1]

[0024] 2.2 Conversion design in HEVC / H.265 The HEVC standard specifies core transform matrices of sizes 4x4, 8x8, 16x16, and 32x32 to be used for two-dimensional transforms in the context of block-based motion-compensated video compression. As with traditional video coding standards, HEVC specifies a two-dimensional transform similar to the inverse discrete cosine transform (IDCT) for all transform sizes. Multiple transform sizes improve compression performance but increase implementation complexity.

[0025] As is known, the discrete sine transform type VII (DST-VII) approximates the optimal transform better than DCT-II along the prediction direction. In HEVC, a 4×4 DST-VII is adopted to code the luma intra prediction residual.

[0026] Differences compared to a standard, e.g., the VTM-2 standard, are delimited using double brackets, i.e., ((a)) indicates that an "a" has been added. 7.3.2.3.1 General picture parameter set RBSP syntax

[0027] [Table 2]

[0028] 7.3.2.3.2 Picture Parameter Set Range Extension Syntax

[0029] [Table 3]

[0030] 7.3.8.11 Residual Coding Syntax

[0031] [Table 4]

[0032] transform_skip_rotation_enabled_flag, when set to 1, indicates that rotation is applied to residual data blocks for intra 4x4 blocks coded using a transform skip operation. When set to 0, it indicates that this rotation is not applied. If not present, the value of transform_skip_rotation_enabled_flag is inferred to be 0. transform_skip_context_enabled_flag, when set to 1, indicates that a specific context is used for parsing sig_coeff_flag for transform blocks whose transforms are skipped. If transform_skip_context_enabled_flag is set to 0, it indicates that the presence or absence of a transform block being transform skipped or transform bypassed is not used for the context selection for this flag. If not present, the value of transform_skip_context_enabled_flag is inferred to be 0.

[0033] 2.3 MTS in VVC Working Draft 3 In Multiple Transform Selection (MTS) techniques, a group of alternative transforms is predefined. The encoder is empowered to select one transform from multiple predefined candidates and explicitly signal its selection in the bitstream. It is based on the observation that even a single prediction direction can significantly change the residual statistics.

[0034] 2.3.1 Multiple conversion selection in VTM3 In the current VVC design, MTS is applied to luma coding units (CUs) whose width and height are both less than or equal to 64, and whether MTS is applied is controlled by a CU-level flag called tu_mts_flag. If the CU-level flag is 0, the default transform DCT-II is applied to the CU and the residue is coded. For luma coding blocks in an MTS-enabled CU, two additional flags are signaled to identify the horizontal and vertical transforms used, respectively. Each flag is coded with one bit to indicate whether DST-VII or DCT-VIII is utilized.

[0035] In addition to the DCT-2 transform, DST-7 and DCT-8 may also be applied. For either horizontal or vertical transform, a 1-bit flag (called mts_idx) is sent to the decoder side. The mapping between mts_idx and the transform matrices is shown in Table 2. Table 2: List of allowed transformation matrices

[0036] [Table 5]

[0037] 2.3.2 MTS Syntax Elements 7.3.2.1 Sequence Parameter Set RBSP Syntax

[0038] [Table 6]

[0039] 7.3.4.10 Transformation Unit Syntax

[0040] [Table 7]

[0041] 7.3.4.11 Residual Coding Syntax

[0042] [Table 8]

[0043] 2.3.3 Semantics of MTS Syntax Elements sps_mts_intra_enabled_flag, when set to 1, indicates that tu_mts_flag may be present in the residual coding syntax of an intra-coded unit. When sps_mts_intra_enabled_flag is set to 0, it indicates that tu_mts_flag is not present in the residual coding syntax of an intra-coded unit. sps_mts_inter_enabled_flag indicates that tu_mts_flag may be present in the residual coding syntax of an inter coding unit. When sps_mts_inter_enabled_flag is 0, it indicates that tu_mts_flag is not present in the residual coding syntax of an inter coding unit. tu_mts_flag[x0][y0] set to 1 indicates that multiple transform selections should be applied to the residual samples of the associated luma transform block. tu_mts_flag[x0][y0] set to 0 indicates that multiple transform selections should not be applied to the residual samples of the associated luma transform block. The array indices x0,y0 specify the position (x0,y0) of the top-left luma sample of the considered transform block relative to the top-left luma sample of the picture. If mts_flag[x0][y0] is not present, it is inferred to be equal to 0. mts_idx[x0][y0][cIdx] specifies which transform kernel to apply to the residual samples along the horizontal and vertical directions of the current transform block. The array index x0,y0 specifies the position (x0,y0) of the top-left luma sample of the considered transform block relative to the top-left luma sample of the picture, and the array index cIdx specifies the color component indicator: 0 for luma, 1 for Cb, and 2 for Cr. If mts_idx[x0][y0][cIdx]i is not present, it is inferred to be equal to -1. Table 8-9 - trTypeHor, trTypeVer specifications based on mts_idx[x][y][cIdx]

[0044] [Table 9]

[0045] 2.4 New progress on MTS (according to VVC Working Draft 4) 2.4.1 JVET-L0134 Since the distribution of the intra prediction error signal seems to be correlated with the shape of the block, it is proposed to choose different transforms for different directions based on the width and height of the transformed block. More precisely, it is proposed to use DST7 for the short side of the transformed block and DCT2 for the long side of the block. For square blocks, it is proposed to use DCT2 for both horizontal and vertical transforms. Table 3: Transformation derivation and signaling tables that differ from the proposed VTM-2 are enclosed and delimited using bold double brackets.

[0046] [Table 10]

[0047] 2.4.2 JVET-M0464 Instead of parsing the MTS flag first, the Transform Skip (TS) flag is followed by a fixed length encoding with two bins for the MTS index, and the new combined syntax element tu_mts_idx uses a shortened unary binarization: the first bin indicates the TS, the second bin indicates the MTS flag and all subsequent MTS indexes. The complete semantics and binarization are shown in the table below.

[0048] [Table 11]

[0049] The number of context models does not change, and the assignment of the context index increment ctxInc to each bin of tu_mts_idx is as follows:

[0050] [Table 12]

[0051] 2.4.3 Implicit MTS in JVET-M0303 Since the distribution of intra prediction error signals seems to be correlated to the shape of the block, it is proposed to choose different transforms for different directions based on the width and height of the transformed block. More precisely, it is proposed to use DST7 for the short side of the transformed block and DCT2 for the long side of the block. For square blocks, it is proposed to use DCT2 for both horizontal and vertical transforms if MTS is enabled for the sequence, and DST7 if MTS is disabled for the sequence. Shape adaptivity is only used for intra blocks predicted with spatial prediction mode. 2.4.4 Syntax, Semantics and Decoding in the Latest VVC Working Draft 2.4.4.1 Syntax Design 7.3.2.1 Sequence Parameter Set RBSP Syntax

[0052] [Table 13]

[0053] 7.3.6.10 Transformation Unit Syntax

[0054] [Table 14]

[0055] [Table 15]

[0056] 2.4.4.2 Semantics If sps_mts_enabled_flag is 1, it indicates that sps_explicit_mts_intra_enabled_flag is present in the syntax of the sequence parameter set RBSP and sps_explicit_mts_inter_enabled_flag is present in the syntax of the sequence parameter set RBSP. If sps_mts_enabled_flag is 0, it indicates that sps_explicit_mts_intra_enabled_flag is not present in the syntax of the sequence parameter set RBSP and sps_explicit_mts_inter_enabled_flag is not present. If sps_explicit_mts_intra_enabled_flag is set to 1, it indicates that tu_mts_idx may be present in the transform unit syntax of an intra-coded unit. If sps_explicit_mts_intra_enabled_flag is set to 0, it indicates that tu_mts_idx is not present in the transform unit syntax of an intra-coded unit. If not present, the value of sps_explicit_mts_intra_enabled_flag is inferred to be 0. If sps_explicit_mts_inter_enabled_flag is set to 1, it indicates that tu_mts_idx may be present in the transform unit syntax of an inter coding unit. If sps_explicit_mts_inter_enabled_flag is set to 0, it indicates that tu_mts_idx is not present in the transform unit syntax of an inter coding unit. If not present, the value of sps_explicit_mts_inter_enabled_flag is inferred to be 0. 2.4.4.3 Decryption Process The following rules are used to determine whether to enable implicit MTS: The variable implicitMtSEnabled is derived as follows. - implicitMtsEnabled is set to 1 if sps_mts_enabled_flag is 1 and one of the following conditions is true: - IntraSubPartitionsSplitType is not ISP_NO_SPLIT. - cu_sbt_flag is 1 and Max(nTbW,nTbH) is less than or equal to 32 - sps_explicit_mts_intra_enabled_flag, sps_explicit_mts_inter_enabled_flag are both 0, and CuPredMode[xTbY][yTbY] is MODE_INTRA. - Otherwise, implicitMtSEnabled is set to 0. A variable trTypeHor that specifies a horizontal transformation kernel and a variable trTypeVer that specifies a vertical transformation kernel are derived as follows. - If cIdx is greater than 0, trTypeHor and trTypeVer are set to 0. - Otherwise, if implicitMtSEnabled is 1, the following applies: - If IntraSubPartitionsSplitType is not ISP_NO_SPLIT, trTypeHor and trTypeVer depend on intraPredMode and are specified in Table 8-15. - Otherwise, if cu_sbt_flag is 1, trTypeHor and trTypeVer are specified based on cu_sbt_horizontal_flag and cu_sbt_pos_flag in Table 8-14. - Otherwise (sps_explicit_mts_intra_enabled_flag and sps_explicit_mts_inter_enabled_flag are 0), trTypeHor and trTypeVer are derived as follows: trTypeHor=(nTbW>=4 && nTbW<=16 && nTbW<=nTbH) ?1:0 (8-1030) trTypeVer=(nTbH>=4 && nTbH<=16 && nTbH<=nTbW) ?1:0 (8-1031) - Otherwise, trTypeHor and trTypeVer are based on tu_mts_idx[xTbY][yTbY] as specified in Table 8-13. Table 8-13 - trTypeHor, trTypeVer specifications depend on tu_mts_idx[x][y]

[0057] [Table 16]

[0058] 2.4.5 Narrowing Secondary Transformation In JEM, secondary transforms are applied between the forward primary transform and quantization (at the encoder) and between the inverse quantization and the inverse primary transform (at the decoder side). As shown in Figure 1, we perform 4x4 (or 8x8) secondary transforms depending on the block size. For example, 4x4 secondary transforms are applied to small blocks (i.e., min(width, height)<8) and 8x8 secondary transforms are applied to larger blocks (i.e., min(width, height)>4) per 8x8 block.

[0059] Since a non-separable transformation is applied to the secondary transformation, it is also called the Non-Separable Secondary Transform (NSST). There are 35 transformation sets in total, and three non-separable transformation matrices (kernels, each with a 16x16 matrix) are used per transformation set.

[0060] According to the intra prediction direction, JVET-K0099 introduced the Reduced Secondary Transform (RST), and JVET-L0133 introduced four transform sets (instead of 35 transform sets) mapping. In this contribution, 16×48 and 16×16 matrices are used for 8×8 and 4×4 blocks, respectively. For notational convenience, the 16×48 transform is represented as RST8×8, and the 16×16 transform is represented as RST4×4. Such a method has been adopted by VVC in recent years.

[0061] The secondary forward and inverse transforms are processing steps separate from that of the primary transform.

[0062] For the encoder, we first perform the primary forward transform, then the secondary forward transform and quantization, and CABAC bit encoding. For the decoder, CABAC bit decoding, and inverse quantization, we first perform the secondary inverse transform, then the primary inverse transform.

[0063] RST only applies to intra-coded TUs.

[0064] 2.5 MTS in VVC Working Draft 5 In recent VVC working drafts, the semantics and syntax tables are misaligned. 7.3.2.3 Sequence Parameter Set RBSP Syntax

[0065] [Table 17]

[0066] [Table 18]

[0067] [Table 19]

[0068] 7.3.7.10 Transformation Unit Syntax

[0069] [Table 20]

[0070] [Table 21]

[0071] If sps_explicit_mts_intra_enabled_flag is set to 1, it indicates that tu_mts_idx may be present in the transform unit syntax of an intra-coded unit. If sps_explicit_mts_intra_enabled_flag is set to 0, it indicates that tu_mts_idx is not present in the transform unit syntax of an intra-coded unit. If not present, the value of sps_explicit_mts_intra_enabled_flag is inferred to be 0. If sps_explicit_mts_inter_enabled_flag is set to 1, it indicates that tu_mts_idx may be present in the transform unit syntax of an inter coding unit. If sps_explicit_mts_inter_enabled_flag is set to 0, it indicates that tu_mts_idx is not present in the transform unit syntax of an inter coding unit. If not present, the value of sps_explicit_mts_inter_enabled_flag is inferred to be 0. When pred_mode_flag is equal to 0, it specifies that the current coding unit is coded in inter prediction mode. When pred_mode_flag is equal to 1, it specifies that the current coding unit is coded in intra prediction mode. The variables CuPredMode[x][y] are derived as follows for x=x0..x0+cbWidth-1 and y=y0..y0+cbHeight-1: - If pred_mode_flag is equal to 0, CuPredMode[x][y] is set equal to MODE_INTER. - Or (if pred_mode_flag is equal to 1), set CuPredMode[x][y] equal to MODE_INTRA. If pred_mode_flag is not present, it is inferred to be equal to 1 when decoding an I slice and 0 when decoding a P or B slice, respectively. When pred_mode_ibc_flag is equal to 1, it specifies that the current coding unit is coded in IBC prediction mode. When pred_mode_ibc_flag is equal to 0, it specifies that the current coding unit is not coded in IBC prediction mode. If pred_mode_ibc_flag is not present, it is inferred to be equal to the value of sps_ibc_enabled_flag when decoding an I slice, and to 0 when decoding a P or B slice, respectively. When pred_mode_ibc_flag is equal to 1, the variable CuPredMode[x][y] is set equal to MODE_IBC for x=x0..x0+cbWidth-1 and y=y0..y0+cbHeight-1.

[0072] 2.6 Subblock Transformation For inter predicted CUs with cu_cbf equal to 1, cu_sbt_flag may be signaled to indicate whether the entire residual block is decoded or a sub-part is decoded. In the former case, the inter MTS information is further parsed to determine the transform type of the CU. In the latter case, a part of the residual block is coded with a predicted adaptive transform and other parts of the residual block are zeroed. SBT does not apply to mixed inter-intra modes.

[0073] In the sub-block transform, position-dependent transforms are applied to luma transform blocks in SBT-V and SBT-H (chroma TB that always uses DCT-2). The two positions of SBT-H and SBT-V are associated with different core transforms. Specifically, the horizontal and vertical transforms for each SBT position are shown in Fig. 3. For example, the horizontal and vertical transforms of SBT-V position 0 are DCT-8 and DST-7, respectively. If one side of the residual TU is larger than 32, set the corresponding transform as DCT-2. Thus, the sub-block transform specifies the TU tiling, cbf, and horizontal and vertical transforms of the residual block together, which can be regarded as a syntax shortcut when the main residual of one block is on one side of this block.

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

[0075] In JVET-N0217, two tests were conducted. In test 1, ALWIP is designed with a memory limit of 8K bytes and a maximum of 4 multiplications per sample. Test 2 is similar to test 1, but further simplifies the design in terms of memory requirements and model architecture.

[0076] ○ A single set of matrices and offset vectors for all block shapes.

[0077] Reduce the number of modes to 19 for all block shapes.

[0078] ○ Reduces memory requirements to 5760 10-bit values, or 7.20 kilobytes.

[0079] Linear interpolation of the prediction samples is performed in one step per direction, replacing the iterative interpolation as in the first test.

[0080] 2.8 Intra Sub-Block Partitioning (ISP) In JVET-M0102, the ISP is proposed to divide the luma intra prediction block vertically or horizontally into two or four subpartitions according to the block size dimension, as shown in Table 4. Figures 4 and 5 show examples of these two possibilities. All subpartitions satisfy the condition that they have at least 16 samples. Table 4: Number of subpartitions depending on block size

[0081] [Table 22]

[0082] For each of these subpartitions, the coefficients sent by the encoder are entropy decoded, then quantized and inverse transformed to generate a residual signal. Then, the subpartition is intra predicted, and finally, the corresponding reconstructed sample is obtained by adding the residual signal to the prediction signal. Thus, the reconstructed values ​​of each subpartition can be used to generate a prediction for the next subpartition, and so on. All subpartitions share the same intra mode.

[0083] Based on the intra mode and the partitioning used, two different classes of processing orders are used, which we call normal order and reverse order. In normal order, the first subpartition to be processed is the subpartition that contains the top-left sample of the CU and then continues downward (horizontal partitioning) or right (vertical partitioning). As a result, the reference sample used to generate the subpartition prediction signal is only located at the top-left of the line. On the other hand, the reverse processing order starts with the subpartition that contains the bottom-left sample of the CU and continues upward, or starts with the subpartition that contains the top-right sample of the CU and continues left.

[0084] 2.9 Block Differential Pulse Code Modulation (BDPCM) In JVET-M0057, BDPCM is proposed. Due to the shape of the horizontal (or vertical) prediction module, which uses the pixel to the left (A) (or above (B)) to predict the current pixel, the most throughput-efficient way to process a block is to process all pixels of one column (or line) in parallel and process these columns (or lines) sequentially. To improve the throughput, we introduce the following process: if the predictor selected for this block is vertical, we divide a block of width 4 into two by the horizontal frontier, and if the predictor selected for this block is horizontal, we divide a block of height 4 into two by the vertical frontier.

[0085] When splitting a block, it is not possible to compute a prediction for a sample from one region using pixels from another region, and if this situation occurs, we replace the predicted pixel with a reference pixel in the prediction direction. This is illustrated in Figure 6 for different positions of the current pixel X in a 4x8 block predicted vertically.

[0086] Because of this property, a 4x4 block can be processed in two cycles, and a 4x8 or 8x4 block may be processed in four cycles, as shown in FIG.

[0087] 2.10 Quantized Residual Domain BDPCM In JVET-N0413, quantized residual domain BDPCM (hereinafter referred to as RBDPCM) is proposed. Intra prediction, similar to intra prediction, predicts the whole block by copying samples in the prediction direction (horizontal or vertical prediction). The residual is quantized and the delta between the quantized residual and its predictor (horizontal or vertical) quantized value is coded.

[0088] For a block of size M (rows) × N (columns), r i,j, 0≦i≦M-1, 0≦j≦N-1 be the prediction residual after intra prediction in the horizontal direction (copying the pixel values ​​of the left neighbor to the prediction block line by line) or vertical direction (copying the upper neighbor to each line in the prediction block) using unfiltered samples from the boundary samples of the upper or left block. i,j ), 0≦i≦M-1, 0≦j≦N-1 is the residual r i,j where the residual is the difference between the original block and the predicted block values. Then, block DPCM is applied to the quantized residual samples, resulting in the element r i,j A modified M×N array R ~ When the vertical BDPCM is signaled,

[0089]

number

[0090] For horizontal prediction, a similar rule applies and the residual quantized samples are given by:

[0091]

number

[0092] Residual quantized sample r ~ i,j is sent to the decoder.

[0093] At the decoder, the above calculation is reversed to obtain Q(r i,j ), 0≦i≦M-1, 0≦j≦N-1. For vertical prediction,

[0094]

number

[0095] For the horizontal direction,

[0096]

number

[0097] The dequantized residual Q -1 (Q(r i,j )) to the intrablock prediction to generate a reconstructed sample value.

[0098] One advantage of this scheme is that inverting the DPCM can be done on the fly while parsing the coefficients, and we only need to add the predictor while parsing the coefficients. Or, it's something that can be done after parsing:

[0099] In quantized residual domain BDPCM, transform skip is always used.

[0100] 3. Shortcomings of existing implementations In the current design of VVC, three different merge lists are used in different procedures, which increases the hardware implementation cost.

[0101] (1) MTS may only be applied to luma blocks, which may not be optimal for color-rich sequences, such as when 4:4:4 or other color formats are in effect.

[0102] (2) MTS is supported for both intra, inter, and IBC, and the control of IBC MTS is subject to a conditional check whether MTS is enabled for inter-coded blocks. Since IBC is defined as a third mode, it may be better to control the use of IBC MTS separately.

[0103] (3) The context in which the MTS index is coded depends on the CU depth. However, there is some correlation between the transform index and the coding mode. Such correlation can be used to obtain additional coding gain.

[0104] (4) When IBC is treated as an inter mode, there is no problem with conditional checks for signaling the MTS index. However, IBC is now treated as a new mode, in parallel with intra and inter modes, which creates problems with conditional checks and semantics.

[0105] 4. Exemplary Methods for Context Modeling and Multiple Transformation Matrix Selection The embodiments of the disclosed techniques overcome the shortcomings of existing implementations, thereby providing video coding with higher coding efficiency. The methods of context modeling and multiple transform matrix selection based on the techniques disclosed herein can improve both existing and future video coding standards, and are described in various implementations below. The examples of the disclosed techniques provided below are intended to illustrate the general concept and should not be construed as limiting. In an example, various features described in these examples can be combined, unless expressly indicated to the contrary. 1. Whether and / or how to apply implicit MTS (i.e., whether to select a transform matrix without explicitly signaling a transform index) may depend on whether one block is coded in mode X and / or on the coded residual information. In one example, mode X may be an IBC mode. b. In one example, if a block is coded in IBC mode, implicit MTS may be automatically enabled. c. In one example, the selection of the transformation matrix for an IBC coded block may be the same as the selection of the transformation matrix for an intra coded block. i. In one example, for square blocks, a DCT-2 is applied. ii. In one example, for non-square blocks, DST-7 is applied to the short side and DCT-2 is applied to the long side. d. In one example, the selection of the transform matrix may depend on coding mode information, such as whether the block is intra-coded or IBC-coded. i. In one example, for IBC coded square blocks, DST-7 is applied. ii. In one example, for IBC coded non-square blocks, a transform skip may be applied to the short side. iii. In one example, for IBC coded non-square blocks, transform skip or DST-7 may be applied to the long side. e. In another example, mode X may be a secondary transformation. f. In another example, mode X may be a BDPCM mode or / and a DPCM mode or / and a RBDPCM mode or / and an ALWIP mode. g. In another example, mode X may be any particular angular intra-prediction mode (eg, DC, planar, vertical, horizontal, etc.). 2. A set of allowed transformations may be determined according to whether a block is coded in mode X. In one example, mode X may be an IBC mode. b. In one example, mode X may be a combined intra and inter prediction (CIIP) mode. c. In one example, the set of permissible transformation matrices for IBC coded blocks may be the same as the selection of transformation matrices for intra-coded blocks. d. Alternatively, a different set of allowed transform matrices for IBC coded blocks may be the same as for intra coded blocks, e.g., transform skip, DCT-2, DCT-8, DST-7 may be allowed for IBC coded blocks. e. In another example, mode X may be a BDPCM mode or / and a DPCM mode or / and a RBDPCM mode or / and an ALWIP mode. f. In other examples, mode X may be any particular angular intra-prediction mode (eg, DC, planar, vertical, horizontal, etc.). g. In another example, mode X may be a secondary transform. 3. It is proposed that the context modeling for encoding the MTS index may depend on the encoding mode information. The coding mode information may include intra or non-intra. i. Alternatively, the coding mode information may include intra or inter or IBC. ii. Alternatively, the coding mode information may include inter or non-inter. b. Alternatively, the context modeling for encoding the MTS index may rely on block shape information. i. In one example, block shape information may include whether the block is square or non-square. ii. In one example, block shape information may include whether the width is less than or equal to the height. iii. In one example, block shape information may include whether the width is greater than or equal to the height. iv. In one example, the block shape information may include width to height ratio. 4. It is proposed to code the horizontal and vertical transformation matrix indices separately. In one example, the transform skip flag is not coded separately. Instead, it is treated as one of the horizontal and vertical transform matrix indices. i. In one example, transform skip may be applied in only one direction (eg, horizontally or vertically). b. The context modeling of the vertical transformation matrix index may depend on the horizontal transformation matrix index. Alternatively, the context modeling of the horizontal transformation matrix index may depend on the vertical transformation matrix index. c. In one example, one flag may be encoded to indicate first whether the horizontal and vertical transformation matrices are the same. 5. An indication of the use of MTS for an IBC coded block may be signaled at the sequence / picture / tile group / slice / CTU row / any video data unit level. In one example, whether to enable MTS for an IBC coded block (eg, a flag) may be signaled in the SPS / PPS / slice header / picture header / tile group header / tile header, etc. i. Additionally, alternatively, such flags may be conditionally coded based on whether explicit MTS and IBC are enabled in the SPS / PPS / slice header / picture header, etc. b. Alternatively, whether to enable MTS for IBC coded blocks (eg, one flag) may be derived from whether to enable MTS for inter coded blocks. i. In this case, only one SPS flag may be signaled to control both IBC and Inter-MTS. c. In one example, MTS for IBC coded blocks may not always be allowed. d. In one example, whether and / or how MTS is applied may depend on the number of non-zero coding coefficients. e. In one example, whether and / or how MTS is applied may depend on the sum of the absolute values ​​of the non-zero coding coefficients. f. In one example, whether and / or how MTS is applied may depend on the last position of a non-zero coefficient. 6. Whether and / or how MTS is applied to chroma components may depend on the color format. In one example, if the color subsampling format is 4:4:4, MTS for the chroma component (or a subordinate component such as B / R color components) may be enabled. b. In one example, if MTS for the chroma component is enabled, two corresponding blocks of a color component may be forced to apply the same transformation matrix. i. An indication of the selected transformation matrix may be signaled for one block in one color component, and another block in another color component follows the same matrix. ii. The transformation matrix applied to the chroma components may be derived from the transformation matrix used for the corresponding luma block or principal component (eg, the G color component). c. In one example, when MTS for the chroma component is enabled, corresponding blocks of two corresponding color components may use different transformation matrices. i. An indication of the transformation matrices selected for the two blocks may be signaled separately. 1. Additionally or alternatively, predictive coding of transformation matrix indices between the two color components may be applied. 2. Additionally, alternatively, predictive coding of the transformation matrix index between one chromatic component and the luminance / principal component may be applied. 3. Alternatively, the transformation matrix and / or luminance / principal component of one color component may be utilized for context modeling to encode the index of another color component. d. Whether to signal an MTS index for the chroma component may depend on the color format and / or whether separate plane coding is enabled. i. In one example, there is no need to signal an MTS index for chroma components if it is 4:0:0 and / or separate plane coding is enabled. 7. The above method applied to implicit MTS may also be applicable to SBT, which derives the transformation matrix on the fly. 8. Whether and / or how an ISP is applied to the chroma component may depend on the color format. In one example, if the color subsampling format is 4:4:4, the ISP for the chroma component (or a subordinate component such as B / R color components) may be enabled. Additionally, alternatively, if the color subsampling format is not 4:4:4, the ISP for the chroma component (or a subordinate component such as B / R color components) may be disabled. b. When an ISP is enabled for the chroma components, an indication of use of the ISP and / or other related information (e.g., ISP splitting) for the chroma blocks may be encoded. i. In one example, it may be conditionally coded according to the block size. ii. In one example, conditional coding may be performed according to the intra prediction method, for example, whether or not a cross-component linear model prediction method is applied. iii. In one example, conditional coding may be performed according to the intra prediction method, such as whether joint chroma residual coding is applied. iv. In one example, it may be conditionally coded according to the intra-prediction direction. v. In one example, it may be conditionally coded according to whether DM is used (ie, whether the intra prediction mode is derived from the luma component). c. When an ISP is enabled for chroma components, an indication of use of the ISP and / or other related information (e.g., ISP split) for chroma blocks may be derived on the fly. i. In one example, they may be derived according to the reconstructed samples / coded information of neighboring chroma blocks. ii. In one example, they may be derived according to one or more selected blocks within the co-located luminance block. iii. In one example, they may be derived according to the information of neighbors of the co-located luminance blocks.

[0106] The above examples may be taken in the context of the methods described in, for example, methods 810, 820, 830, 840, 850, 860, 870, 880, 890, which may be implemented in a video decoder or video encoder.

[0107] 8A shows a flowchart of an example video processing method. The method 810 includes, at step 812, determining that an indication of a transform type in a multiple transform selection (MTS) operation is excluded from the bitstream representation for converting between a current video block of a video and a bitstream representation of the video, where the current video block is encoded using an intra block copy (IBC) mode.

[0108] The method 810 includes performing the transform at step 814. In some embodiments, the indication is in a sequence parameter set (SPS), a picture parameter set (PPS), a tile group header, a slice header, a picture header, a tile header, a coding tree unit (CTU) row, a coding unit, or a video data unit, and the MTS operation includes using a transform from a plurality of pre-defined transform candidates to transform a prediction error of the current video block during the transform.

[0109] 8B shows a flow chart of an exemplary video processing method. The method 820 includes, at step 822, determining, based on an encoding mode of a current video block of the video, regarding selective application of a multiple transform selection (MTS) operation.

[0110] The method 820 includes, at step 824, converting between the current video block and the bitstream representation of the video based on the determination. In some embodiments, the MTS operation includes using a transform from a plurality of pre-defined candidate transforms to convert a prediction error of the current video block during the conversion.

[0111] 8C shows a flowchart of an example video processing method. The method 830 includes, at step 832, constructing a context model for encoding at least one index of a multiple transform selection (MTS) operation based on characteristics of the current video block.

[0112] The method 830 includes converting between the current video block and the bitstream representation of the video that constitutes the current video block based on the composing, at step 834. In some embodiments, the MTS operation includes using a transform from a plurality of pre-defined candidate transforms to convert a prediction error of the current video block during the transform.

[0113] 8D shows a flowchart of an exemplary video processing method. The method 840 includes, at step 842, determining a transformation that includes a multiple transform selection (MTS) operation during conversion between the current video block and a bitstream representation of the video that includes the current video block.

[0114] The method 840 includes separately encoding one or more horizontal indices and one or more vertical indices of the matrix of the MTS operation based on the determining, at step 844. In some embodiments, the MTS operation includes using a transform from a plurality of pre-defined candidate transforms to transform the prediction error of the current video block during transformation.

[0115] 8E shows a flowchart of an exemplary video processing method. The method 850 includes, at step 852, configuring an indication of a transform type in a multiple transform selection (MTS) operation for converting between a current video block of a video and a bitstream representation of the video to be coded using an intra block copy (IBC) mode.

[0116] The method 850 includes performing the transform at step 854. In some embodiments, the indication is in a sequence parameter set (SPS), a picture parameter set (PPS), a tile group header, a slice header, a picture header, a tile header, a coding tree unit (CTU) row, or a video data unit, and the MTS operation includes using a transform from a plurality of pre-defined transform candidates to transform a prediction error of the current video block during the transform.

[0117] 8F shows a flowchart of an exemplary video processing method. The method 860 includes, at step 862, determining whether an indication of a transform type in a multiple transform selection (MTS) operation for a current video block of a video for conversion between the current video block of a video and a bitstream representation of the video is excluded from the bitstream representation.

[0118] The method 860 includes performing the transform at step 864. In some embodiments, the indication is in a sequence parameter set (SPS), a picture parameter set (PPS), a tile group header, a slice header, a picture header, a tile header, a coding tree unit (CTU) row, a coding unit, or a video data unit, and the determining, based on a final position of the non-zero coding coefficient, includes the MTS operation using a transform from a plurality of pre-defined transform candidates to transform the prediction error of the current video block during the transform.

[0119] 8G shows a flowchart of an exemplary video processing method. The method 870 includes, at step 872, configuring instructions to use a multiple transform selection (MTS) operation on chroma components of a current video block for conversion between the current video block of the video and a bitstream representation of the video.

[0120] The method 870 includes performing the transformation at step 874. In some embodiments, the configuring is based on a color format of the current video block, and the MTS operation includes using a transform from a plurality of pre-defined candidate transforms to transform a prediction error of the current video block during the transformation.

[0121] 8H shows a flowchart of an exemplary video processing method. The method 880 includes determining, at step 882, that a sub-block transform (SBT) operation is applied to a current video block to convert between the current video block of the video and a bitstream representation of the video.

[0122] The method 880 includes performing the transform using a multiple transform selection (MTS) operation at step 884. In some embodiments, the SBT operation includes a position-dependent transform operation, and the MTS operation includes using a transform from a plurality of pre-defined transform candidates to transform a prediction error of the current video block during the transform.

[0123] 8I shows a flowchart of an example video processing method. The method 890 includes, at step 892, determining, based on a color format of a current video block of an image, regarding selective application of an intra-sub-block partitioning (ISP) operation to chroma components of the current video block.

[0124] The method 890 includes converting between the current video block and a bitstream representation of the video based on the determination, at step 894. In some embodiments, the ISP operation includes dividing the block vertically or horizontally into subpartitions having at least a predetermined number of samples.

[0125] 5. Exemplary implementations of the disclosed technology FIG. 9 is a block diagram of a video processing device 900. The device 900 may be used to implement one or more of the methods described herein. The device 900 may be implemented by a smartphone, a tablet, a computer, an IoT (Internet of Things) receiver, etc. The device 900 may include one or more processing devices 902, one or more memories 904, and video processing hardware 906. The one or more processing devices 902 may be configured to implement one or more methods described herein (including, but not limited to, methods 800, 810, 820, 830, and 840). The memory(s) 904 may be used to store data and codes used to implement the methods and techniques described herein. The video processing hardware 906 may be used to implement the techniques described herein in a hardware circuit.

[0126] In some embodiments, the video encoding method may be performed using an apparatus implemented on a hardware platform, such as that described with reference to FIG.

[0127] Some embodiments of the disclosed technology include determining or determining to enable a video processing tool or mode. In one example, if a video processing tool or mode is enabled, the encoder uses or implements the tool or mode when processing one video block, but does not necessarily modify the resulting bitstream based on the use of the tool or mode. That is, the conversion from a block of video to a bitstream representation of video uses the video processing tool or mode if the video processing tool or mode is enabled based on the decision or determination. In another example, if the video processing tool or mode is enabled, the decoder processes the bitstream knowing that the bitstream has been modified based on the video processing tool or mode. That is, the conversion from the bitstream representation of video to a block of video is performed using the video processing tool or mode enabled based on the decision or determination.

[0128] Some embodiments of the disclosed techniques include deciding or determining to disable a video processing tool or mode. In one example, when a video processing tool or mode is disabled, an encoder does not use the tool or mode when converting blocks of a video into a bitstream representation of the video. In another example, when a video processing tool or mode is disabled, a decoder processes the bitstream with the knowledge that the bitstream has not been modified using a video processing tool or mode that was enabled based on the decision or determination.

[0129] FIG. 10 is a block diagram illustrating an example video processing system 1000 in which various techniques disclosed herein may be implemented. Various implementations may include some or all of the modules of the system 1000. The system 1000 may include an input unit 1002 for receiving video content. The video content may be received in a raw or uncompressed format, for example, 8 or 10 bit multi-module pixel values, or may be received in a compressed or encoded format. The input unit 1002 may represent 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.

[0130] The system 1000 may include an encoding module 1004 that may implement various encoding or coding methods described herein. The encoding module 1004 may reduce the average bit rate of the video from the input unit 1002 to the output of the encoding module 1004, generating an encoded representation of the video. Thus, this encoding technique may be referred to as a video compression or video transcoding technique. The output of the encoding module 1004 may be stored or transmitted via a communication connection, as represented by module 1006. The bitstream (or encoded) representation of the video received at the input unit 1002, stored or communicated, may be used by module 1008 to generate pixel values ​​or a displayable video that is transmitted to the display interface unit 1010. The process of generating a user-viewable video from the bitstream representation may be referred to as video decompression. Additionally, although certain video processing operations are referred to as "encoding" operations or tools, it will be understood that the encoding tools or operations are performed by an encoder and corresponding decoding tools or operations that reverse the results of the decoding, performed by a decoder.

[0131] Examples of peripheral bus interface units or display interface units 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 implemented in various electronic devices such as mobile phones, laptops, smartphones, or other devices capable of digital data processing and / or video display.

[0132] In the following embodiments, bold double parentheses are used to indicate additions, e.g., {{a}} indicates that an "a" has been added, and deletions are indicated using bold double brackets, e.g., [[b]] ​​indicates that a "b" has been deleted.

[0133] 5.1 Embodiment #1 In this section, we give examples of separate control of MTS for IBC and inter-coded blocks. 7.3.2.3 Sequence Parameter Set RBSP Syntax

[0134] [Table 23]

[0135] Alternatively, conditional signaling may be used.

[0136] [Table 24]

[0137] 7.3.7.10 Transformation Unit Syntax

[0138] [Table 25]

[0139] [Table 26]

[0140] If sps_explicit_mts_intra_enabled_flag is set to 1, it indicates that tu_mts_idx may be present in the transform unit syntax of an intra-coded unit. If sps_explicit_mts_intra_enabled_flag is set to 0, it indicates that tu_mts_idx is not present in the transform unit syntax of an intra-coded unit. If not present, the value of sps_explicit_mts_intra_enabled_flag is inferred to be 0. If sps_explicit_mts_inter_enabled_flag is set to 1, it indicates that tu_mts_idx may be present in the transform unit syntax of an inter coding unit. If sps_explicit_mts_inter_enabled_flag is set to 0, it indicates that tu_mts_idx is not present in the transform unit syntax of an inter coding unit. If not present, the value of sps_explicit_mts_inter_enabled_flag is inferred to be 0. {{sps_explicit_mts_ibc_enabled_flag, when set to 1, indicates that tu_mts_idx may be present in the transform unit syntax of the IBC coding unit. If sps_explicit_mts_ibc_enabled_flag is set to 0, it indicates that tu_mts_idx is not present in the transform unit syntax of the IBC coding unit. If not present, the value of sps_explicit_mts_ibc_enabled_flag is inferred to be 0.}}

[0141] 5.2 Embodiment #2 This section gives an example of joint control of MTS for IBC and inter-coded blocks.

[0142] The current syntax design remains unchanged, but the semantics are changed as follows:

[0143] If sps_explicit_mts_intra_enabled_flag is set to 1, it indicates that tu_mts_idx may be present in the transform unit syntax of an intra-coded unit. If sps_explicit_mts_intra_enabled_flag is set to 0, it indicates that tu_mts_idx is not present in the transform unit syntax of an intra-coded unit. If not present, the value of sps_explicit_mts_intra_enabled_flag is inferred to be 0.

[0144] If sps_explicit_mts_inter_enabled_flag is set to 1, it indicates that tu_mts_idx may be present in the transform unit syntax of a {{non-intra}}[[inter]] coding unit. If sps_explicit_mts_inter_enabled_flag is set to 0, it indicates that tu_mts_idx is not present in the inter transform unit syntax of an inter coding unit. If not present, the value of sps_explicit_mts_inter_enabled_flag is inferred to be 0.

[0145] Alternatively, the semantics may be modified as follows:

[0146] If sps_explicit_mts_inter_enabled_flag is set to 1, it indicates that tu_mts_idx may be present in the transform unit syntax for an inter {{and IBC}} coding unit. If sps_explicit_mts_inter_enabled_flag is set to 0, it indicates that tu_mts_idx is not present in the transform unit syntax for an inter coding unit. If not present, the value of sps_explicit_mts_inter_enabled_flag is inferred to be 0.

[0147] In some embodiments, the following technical solutions may be implemented.

[0148] A1. A video processing method comprising: determining that an indication of a transform type in a multiple transform selection (MTS) operation is excluded from a bitstream representation of a video for converting between a current video block of a video and the bitstream representation of the video, wherein the current video block is encoded using an intra block copy (IBC) mode; and performing the conversion, wherein the indication is in a sequence parameter set (SPS), a picture parameter set (PPS), a tile group header, a slice header, a picture header, a tile header, a coding tree unit (CTU) row, a coding unit, or a video data unit, and the MTS operation includes using a transform from a plurality of pre-defined transform candidates to convert a prediction error of the current video block during the conversion.

[0149] A2. A video processing method comprising: determining, based on an encoding mode of a current video block of a video, a selective application of a multiple transform selection (MTS) operation; and converting between the current video block and a bitstream representation of the video based on the determining, the MTS operation including using a transform from a plurality of predefined transform candidates to convert a prediction error of the current video block during the conversion.

[0150] A3. The method according to Solution A2, wherein the MTS operation is an implicit MTS operation and a transform index of the MTS operation is excluded from the bitstream representation.

[0151] A4. The method according to solution A2 or A3, wherein the encoding mode is an intra block copy (IBC) mode.

[0152] A5. The method according to solution A2 or A3, wherein the MTS operation is similarly applied when the encoding mode is an intra block copy mode or an intra mode.

[0153] A6. The method according to solution A5, wherein the current image block is a square block and a Discrete Cosine Transform type II (DCT-II) is applied.

[0154] A7. The method according to Solution A5, wherein the current image block is a non-square block, and a Discrete Cosine Transform type II (DCT-II) is applied to a long side of the current image block, and a DCT-VII is applied to a short side of the current image block.

[0155] A8. The method according to Solution A2 or A3, wherein the coding mode is an intra-block (IBC) copy mode, the current image block is a square block, and a Discrete Cosine Transform type VII (DCT-VII) is applied.

[0156] A9. The method according to any one of Solutions A2 to A3, wherein the coding mode is an intra block copy (IBC) mode, the current video block is a non-square block, and a transform skip is applied to a shorter side of the current video block.

[0157] A10. The method according to solution A2 or A3, wherein the encoding mode is a block differential pulse code modulation (BDPCM) mode, a DPCM mode, a residual BDPCM (RBDPCM) mode, or an affine linear weighted intra prediction (ALWIP) mode.

[0158] A11. The method according to any one of Solutions A2 to A3, wherein the encoding mode is an angular intra prediction mode.

[0159] A12. The method of Solution A2, wherein the bitstream representation includes an indication of a set of allowed transformations determined based on the coding mode of the current video block.

[0160] A13. The method according to solution A12, wherein the encoding mode is an intra block copy (IBC) mode.

[0161] A14. The method according to solution A12, wherein the encoding mode is a combined intra and inter prediction (CIIP) mode.

[0162] A15. The method according to solution A12, wherein the encoding mode is a block differential pulse code modulation (BDPCM) mode, a DPCM mode, a residual BDPCM (RBDPCM) mode, or an affine linear weighted intra prediction (ALWIP) mode.

[0163] A16. The method according to solution A12, wherein the encoding mode is an angular intra prediction mode.

[0164] A17. A video processing method, comprising: constructing a context model for encoding at least one index of a multiple transform selection (MTS) operation based on characteristics of a current video block; and converting between the current video block and a bitstream representation of a video including the current video block based on the constructing, wherein the MTS operation includes using a transform from a plurality of predefined transform candidates to convert a prediction error of the current video block during the conversion.

[0165] A18. The method of solution A17, wherein the characteristics include a coding mode of the current video block.

[0166] A19. The method according to solution A18, wherein the coding mode includes an intra coding mode, or an inter coding mode, or an inter block copy (IBC).

[0167] A20. The method according to solution A18, wherein the coding mode comprises an inter coding mode or a non-inter coding mode.

[0168] A21. The method of solution A17, wherein the features include shape information associated with the current image block.

[0169] A22. The method according to solution A21, wherein the shape information includes that the current image block is square or non-square.

[0170] A23. The method according to solution A21, wherein the shape information is such that the width of the current image block is less than the height of the current image block.

[0171] A24. The method according to solution A21, wherein the shape information is such that a width of the current image block is greater than a height of the current image block.

[0172] A25. The method of solution A21, wherein the shape information includes a ratio of a width of the current image block to a height of the current image block.

[0173] A26. A video processing method comprising: determining a transformation including a multiple transform selection (MTS) operation during a conversion between a current video block and a bitstream representation of a video including the current video block; and separately encoding one or more horizontal indices and one or more vertical indices of a matrix of the MTS operation based on the determining, wherein the MTS operation includes using a transform from a plurality of predefined transform candidates to transform a prediction error of the current video block during the conversion.

[0174] A27. The method according to solution A26, wherein the one or more horizontal indices and / or the one or more vertical indices include a transform skip operation.

[0175] A28. The method according to solution A26, wherein a context model for the one or more horizontal indices is based on the one or more vertical indices.

[0176] A29. The method according to solution A26, wherein a context model for the one or more vertical indexes is based on the one or more horizontal indexes.

[0177] A30. A video processing method comprising: configuring an indication of a transform type of a multiple transform selection (MTS) operation on a current video block that is encoded using an intra block copy (IBC) mode for converting between a current video block of a video and a bitstream representation of the video; and performing the conversion, the indication being in a sequence parameter set (SPS), a picture parameter set (PPS), a tile group header, a slice header, a picture header, a tile header, a coding tree unit (CTU) row, or a video data unit; and the MTS operation including using a transform from a plurality of predefined transform candidates to convert a prediction error of the current video block during the conversion.

[0178] A31. The method according to solution A30, wherein the indication is conditionally coded by the bitstream representation based on whether the MTS operation and the IBC mode are explicitly coded in the SPS, the PPS, the tile group header, the slice header, the picture header, the tile header, the CTU row, or the video data unit.

[0179] A32. The method of Solution A30, wherein the indication is conditionally encoded in the bitstream representation based on whether the MTS operation is enabled for inter-coded video blocks.

[0180] A33. The method of solution A30, wherein the SPS includes the instructions, the instructions further configuring using the MTS operation for inter-coded video blocks.

[0181] A34. The method according to solution A30, wherein the indication is based on the number of non-zero coding coefficients.

[0182] A35. The method according to solution A30, wherein the indication is based on the sum of the absolute values ​​of the non-zero coding coefficients.

[0183] A36. A method according to any of Solutions A1 to A35, wherein the transformation generates a current block from the bitstream representation.

[0184] A37. A method according to any of Solutions A1 to A35, wherein the transformation generates the bitstream representation from the current block.

[0185] A38. An apparatus of a video system comprising a processing unit and a non-transitory memory storing instructions, the instructions, when executed by the processing unit, causing the processing unit to perform a method according to any one of solutions A1 to A37.

[0186] A39. A computer program product stored on a non-transitory computer readable medium, comprising program code for performing the method according to any of the solutions A1 to A37.

[0187] In some embodiments, the following technical solutions may be implemented.

[0188] B1. A video processing method comprising: determining whether an indication of a transform type in a multiple transform selection (MTS) operation is excluded from the bitstream representation for a current video block of a video and performing the conversion for the current video block, the indication being in a sequence parameter set (SPS), a picture parameter set (PPS), a tile group header, a slice header, a picture header, a tile header, a coding tree unit (CTU) row, a coding unit, or a video data unit; and performing the conversion based on a final position of a non-zero coding coefficient, the MTS operation including using a transform from a plurality of predefined transform candidates to transform a prediction error of the current video block during the conversion.

[0189] B2. A video processing method comprising: configuring instructions to use a multiple transform selection (MTS) operation on chroma components of a current video block of a video for converting between the current video block and a bitstream representation of the video; and performing the conversion, wherein the configuring is based on a color format of the current video block, and the MTS operation includes using a transform from a plurality of pre-defined transform candidates to transform a prediction error of the current video block during the conversion.

[0190] B3. The method according to solution B2, wherein if the color format is determined to be 4:4:4, applying the MTS operation to the chroma component.

[0191] B4. The method according to solution B2, wherein the MTS operation is applied to the chroma component, and two blocks of one color component use the same transformation matrix.

[0192] B5. The method according to Solution B2, wherein the MTS operation is applied to the chroma component, and two blocks of one color component use different transformation matrices.

[0193] B6. The method according to solution B2, wherein including the indication in the bitstream representation is based on the use of a color format or a separate plane encoding.

[0194] B7. A video processing method comprising: determining a sub-block transform (SBT) operation to be applied to a current video block for converting between a current video block of a video and a bitstream representation of the video; and performing the conversion by using a multiple transform selection (MTS) operation, the SBT operation including a position-dependent transform operation, and the MTS operation including using a transform from a plurality of pre-defined transform candidates to convert a prediction error of the current video block during the conversion.

[0195] B8. The method according to Solution B7, wherein the encoding mode is an intra block copy (IBC) mode.

[0196] B9. The method according to Solution 7, wherein the SBT operation is similarly applied when the encoding mode is an intra block copy mode or an intra mode.

[0197] B10. The method according to Solution B7, wherein the coding mode is a block differential pulse code modulation (BDPCM) mode, a DPCM mode, a residual BDPCM (RBDPCM) mode, or an affine linear weighted intra prediction (ALWIP) mode.

[0198] B11. The method according to Solution B7, wherein the encoding mode is an angular intra prediction mode.

[0199] B12. A method for processing an image, comprising: determining, based on a color format of a current image block of an image, selectively applying an intra-subblock partitioning (ISP) operation to chroma components of the current image block; and converting between the current image block and a bitstream representation of the image based on the determination; the ISP operation including vertically or horizontally partitioning the block into sub-partitions having at least a predetermined number of samples.

[0200] B13. The method according to solution B12, wherein the ISP operation is applied to a chroma component and the color format is 4:4:4.

[0201] B14. The method described in Solution B12, wherein the ISP operation is applied to the chroma component, and the configuration of the ISP operation is based on one or more of: (i) a height or width of the current video block, (ii) whether to apply a cross-component linear model (CCLM) prediction method to the current video block, (iii) whether to apply joint chroma residual coding to the current video block, (iv) an intra prediction direction, or (v) whether to derive an intra prediction mode from a luma component of the current video block.

[0202] B15. The method according to Solution B12, wherein the ISP operation is applied to the chroma components, and the configuration of the ISP operation is based on reconstructed samples or coded information of chroma components of one or more neighboring blocks.

[0203] B16. The method according to any of Solutions B11 to B15, wherein the transform generates the current block from the bitstream representation.

[0204] B17. The method according to any of Solutions B11 to B15, wherein the transform generates the bitstream representation from the current video block.

[0205] B18. An apparatus of a video system comprising a processing device and a non-transitory memory having instructions stored therein, the instructions being implemented by the processing device to cause the processing device to perform a method according to any of solutions B1 to B17.

[0206] B19. A computer program product stored on a non-transitory computer readable medium, comprising a program code for performing the method according to any of the solutions B1 to B17.

[0207] In some embodiments, the following technical solutions may be implemented.

[0208] C1. A video processing method comprising: making a decision regarding selective application of a multiple transform selection (MTS) operation based on an encoding mode of a current video block; and, based on the decision, performing a transform between the current video block and a bitstream representation of a video including the current video block, wherein the MTS operation includes using a transform from a plurality of predefined transform candidates.

[0209] C2. The method of solution C1, wherein the MTS operation includes implicit signaling of one or more transform indexes in the MTS operation.

[0210] C3. The method according to solution C2, wherein the coding mode is an intra block copy (IBC) mode.

[0211] C4. The method according to solution C2, wherein the MTS operation is similarly applied when the coding mode is an intra block copy mode or an intra mode.

[0212] C5. The method according to solution C4, wherein the current image block is a square block and a Discrete Cosine Transform type II (DCT-II) is applied.

[0213] C6. The method according to solution C4, wherein the current video block is a non-square block, and a Discrete Cosine Transform type II (DCT-II) is applied to a long side of the current video block, and a DCT-VII is applied to a short side of the current video block.

[0214] C7. The method according to solution C2, wherein the coding mode is an intra block copy (IBC) mode, the current image block is a square block, and a discrete cosine transform type VII (DCT-VII) is applied.

[0215] C8. The method according to Solution C2, wherein the coding mode is an intra block copy (IBC) mode, the current video block is a non-square block, and a transform skip is applied to a shorter side of the current video block.

[0216] C9. The method according to solution C2, wherein the coding mode is a block differential pulse code modulation (BDPCM) mode, a DPCM mode, a residual BDPCM (RBDPCM) mode, or an affine linear weighted intra prediction (ALWIP) mode.

[0217] C10. The method according to solution C2, wherein the coding mode is an angular intra prediction mode.

[0218] C11. The method of Solution C1, wherein the MTS operation includes a set of allowable transformations determined based on an encoding mode of a current video block.

[0219] C12. The method according to solution C11, wherein the encoding mode is an intra block copy (IBC) mode.

[0220] C13. The method according to solution C11, wherein the coding mode is a combined intra and inter prediction (CIIP) mode.

[0221] C14. The method according to solution C11, wherein the coding mode is a block differential pulse code modulation (BDPCM) mode, a DPCM mode, a residual BDPCM (RBDPCM) mode, or an affine linear weighted intra prediction (ALWIP) mode.

[0222] C15. The method according to solution C11, wherein the coding mode is an angular intra prediction mode.

[0223] C16. A video processing method, the method including: constructing a context model for encoding at an index of a multiple transform selection (MTS) operation based on characteristics of a current video block; and performing a transform between the current video block and a bitstream representation of a video including the current video block based on the constructing, the MTS operation including using a transform from a plurality of predefined transform candidates.

[0224] C17. The method of solution C16, wherein the features include coding mode information of the current video block.

[0225] C18. The method according to solution C17, wherein the coding mode information includes intra block copy, inter block copy, or inter block copy (IBC).

[0226] C19. The method according to solution C17, wherein the coding mode information comprises inter or non-inter.

[0227] C20. The method of solution C16, wherein the features include shape information of the current image block.

[0228] C21. The method of solution C20, wherein the shape information includes whether the current image block is square or non-square.

[0229] C22. The method of solution C20, wherein the shape information includes whether a width of the current video block is less than a height of the current video block.

[0230] C23. The method of solution C20, wherein the shape information includes whether a width of the current image block is greater than a height of the current image block.

[0231] C24. The method of solution C20, wherein the shape information includes a ratio of a width of the current image block to a height of the current image block.

[0232] C25. A method of video processing comprising: determining a transform including a multiple transform selection (MTS) operation during conversion between a current video block and a bitstream representation of a video including the current video block; and separately encoding one or more horizontal indices and one or more vertical indices of a matrix of the MTS operation, wherein the MTS operation includes using a transform from a plurality of predefined candidate transforms.

[0233] C26. The method according to solution C25, wherein the one or more horizontal indices or the one or more vertical indices include a transform skip flag.

[0234] C27. The method according to solution C25, wherein the context model for the one or more horizontal indexes is based on the one or more vertical indexes.

[0235] C28. The method according to solution C25, wherein the context model for the one or more vertical indexes is based on the one or more horizontal indexes.

[0236] C29. The method according to solution C1, wherein the coding mode is an intra block copy (IBC) mode and the decision is based on signaling in a sequence parameter set (SPS), a picture parameter set (PPS), a tile group header, a slice header, a picture header, a tile header, a coding tree unit (CTU) row or a video data unit.

[0237] C30. The method according to Solution C1, wherein the coding mode is an intra block copy (IBC) mode and the decision is based on the number of non-zero coding coefficients.

[0238] C31. The method according to Solution C1, wherein the coding mode is an intra block copy (IBC) mode and the decision is based on the sum of absolute values ​​of non-zero coding coefficients.

[0239] C32. The method according to solution C1, wherein the coding mode is an intra block copy (IBC) mode and the decision is based on a last position of a non-zero coding coefficient.

[0240] C33. The method of Solution C1, wherein the selective application of the MTS operation includes selective application to chroma components of the current image block, and wherein the determining is based on a color format of the current image block.

[0241] C34. The method according to solution C33, wherein the MTS operation is applied to chroma components and the color format is 4:4:4.

[0242] C35. The method according to solution C33, wherein the MTS operation is applied to the chroma component, and two blocks of one color component use the same transformation matrix.

[0243] C36. The method according to solution C33, wherein the MTS operation is applied to the chroma component, and two blocks of one color component use different transformation matrices.

[0244] C37. The method according to solution C33, further comprising making a decision regarding signaling an index of the MTS operation for the chroma component based on a color format of the current video block.

[0245] C38. A method of video processing comprising: determining, based on an encoding mode of a current video block, a selective application of a sub-block transform (SBT) operation; and converting between the current video block and a bitstream representation of a video including the current video block based on the determination, wherein the SBT operation includes using a position-dependent transform on a luma transform block associated with the current video block.

[0246] C39. The method according to solution C38, wherein the encoding mode is an intra block copy (IBC) mode.

[0247] C40. The method according to solution C38, wherein the SBT operation is similarly applied when the coding mode is an intra block copy mode or an intra mode.

[0248] C41. The method according to solution C38, wherein the coding mode is a block differential pulse code modulation (BDPCM) mode, a DPCM mode, a residual BDPCM (RBDPCM) mode, or an affine linear weighted intra prediction (ALWIP) mode.

[0249] C42. The method according to solution C38, wherein the coding mode is an angular intra prediction mode.

[0250] C43. A method of video processing comprising: determining, based on a color format of a current video block, selectively applying an intra-subblock partitioning (ISP) operation to chroma components of the current video block; and converting between the current video block and a bitstream representation of a video including the current video block based on the determination; the ISP operation including dividing a block vertically or horizontally into sub-partitions having at least a predetermined number of samples.

[0251] C44. The method according to solution C43, wherein the ISP operation is applied to a chroma component and the color format is 4:4:4.

[0252] C45. The method of Solution C43, wherein the ISP operation is applied to the chroma component, and the configuration of the ISP operation is based on one or more of: (i) a height or width of a current video block, (ii) whether to apply a cross-component linear model (CCLM) prediction method to the current video block, (iii) whether to apply joint chroma residual coding to the current video block, (iv) an intra prediction direction, or (v) whether to derive an intra prediction mode from a luma component of the current video block.

[0253] C46. The method according to solution C43, wherein the ISP operation is applied to the chroma components, and the configuration of the ISP operation is based on reconstructed samples or coded information of the chroma components of one or more neighbouring blocks.

[0254] C47. An apparatus of a video system comprising a processing device and a non-transitory memory having instructions stored therein, the instructions being implemented by the processing device to cause the processing device to perform a method according to any of solutions C1 to C46.

[0255] C48. A computer program product stored on a non-transitory computer readable medium, comprising a program code for performing the method according to any of solutions C1 to C46.

[0256] While specific embodiments of the disclosed technology have been described above for purposes of illustration, it will be understood that various modifications may be made without departing from the scope of the invention. Accordingly, the disclosed technology is not to be limited except as by the appended claims.

[0257] Implementations of the subject matter and functional operations described in this patent specification may be implemented in various systems, digital electronic circuits, or 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 may be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a tangible, non-transportable computer-readable medium for execution by or for controlling the operation of a data processing device. The computer-readable medium may be a machine-readable storage device, a machine-readable storage substrate, a memory device, a composition of matter that provides a machine-readable propagated signal, or one or more combinations thereof. The term "data processing unit" or "data processing device" includes all apparatus, devices, and machines for processing data, including, for example, a programmable processing device, a computer, or multiple processing devices or computers. In addition to hardware, the apparatus may include code that creates an environment for the execution of the computer program, such as code that constitutes a processing device firmware, a protocol stack, a database management system, an operating system, or one or more combinations thereof.

[0258] A computer program (also called a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, and can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program may be recorded as part of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), may be stored in a single file dedicated to the program, or may be stored in multiple coordinating files (e.g., a file that stores one or more modules, subprograms, or code portions). A computer program can be deployed to run on one computer located at one site, or on multiple computers distributed across multiple sites and interconnected by a communication network.

[0259] The processes and logic flows described herein may be performed by one or more programmable processing devices 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 devices may be implemented as, special purpose logic circuits, such as an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit).

[0260] Processing devices suitable for executing computer programs include, for example, both general purpose and special purpose microprocessors, as well as any one or more processors of any kind of digital computer. Typically, a processing device receives 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 storage devices for storing instructions and data. Typically, a computer may include one or more mass storage devices, e.g., magnetic, magneto-optical, or optical disks, for storing data, or may be operatively coupled to receive data from or transfer data to these mass storage devices. However, a computer need not have such devices. Computer-readable media suitable for storing computer program instructions and data include all types of non-volatile memory, media, and memory devices, including, for example, semiconductor memory devices such as EPROM, EEPROM, flash memory devices, and the like. The processing device and memory may be supplemented by, or incorporated in, special purpose logic circuitry.

[0261] This specification, together with the drawings, are for illustrative purposes only, and illustrative is intended to mean example. In this specification, the use of "or" is intended to include "and / or" unless the context clearly indicates otherwise.

[0262] Although this patent specification contains many details, these should not be construed as limiting the scope of any invention or the scope of the claims, but rather as descriptions of features that may be specific to certain embodiments of a particular invention. Certain features described in this patent document in the context of separate embodiments may be implemented in combination in one example. Conversely, various features described in the context of one example may be implemented in multiple embodiments separately or in any suitable subcombination. Furthermore, although features may be described above as acting in a particular combination and initially claimed as such, one or more features from a claimed combination may, in some cases, be extracted from the combination, and the claimed combination may be directed to a subcombination or a variation of the subcombination.

[0263] Similarly, although operations are shown in a particular order in the figures, this should not be understood as requiring that such operations be performed in the particular order or sequential order shown, or that all of the operations shown be performed, to achieve desired results, nor should the separation of various system components in the examples described in this patent specification be understood as requiring such separation in all embodiments.

[0264] Only certain implementations and examples have been described; other embodiments, extensions and variations are possible based on the content described and illustrated in this patent document.

Claims

1. 1. A method for processing video data, comprising the steps of: determining whether an indication of a transform type in a multiple transform selection operation is included in the bitstream for transforming a current video block of a video and the bitstream of the video based at least on whether the current video block is coded using an intra block copy mode; performing the conversion based on the determination; the multiple transform selection operation includes using transforms from a plurality of predefined candidate transforms during the transform; whether to implicitly apply the multiple transform selection operation is based on whether the current video block is coded in a matrix-based intra-prediction mode. A method for processing video data.

2. If the current video block is coded using the intra block copy mode, then the indication is excluded from the bitstream. The method of claim 1.

3. When the indication is included in the bitstream, the indication is in a sequence parameter set, a picture parameter set, a tile group header, a slice header, a picture header, a tile header, a coding tree unit row, a coding unit, or a video data unit. The method of claim 1.

4. whether the indication is included in the bitstream is further based on a position of a last non-zero coefficient of the current video block.

4. The method according to any one of claims 1 to 3.

5. Whether the indication is included in the bitstream is further based on at least one of a first syntax element in a sequence parameter set indicating whether the indication is allowed to be present in the bitstream for an intra-coding unit, and a second syntax element in a sequence parameter set indicating whether the indication is allowed to be present in the bitstream for an inter-coding unit.

5. The method according to any one of claims 1 to 4.

6. If the current video block is a chroma component that is split using a dual tree from a coding tree unit, the indication is removed from the bitstream. The method according to any one of claims 1 to 5.

7. and in response to a value of a third syntax element indicating a transformation that is not applied to an associated transformation block of the current video block, the indication is omitted from the bitstream. The method according to any one of claims 1 to 6.

8. the transform type of the multiple transform selection includes discrete cosine transform type II (DCT-II), discrete cosine transform type VII (DCT-VII), or discrete sine transform type VIII (DST-VIII); The method according to any one of claims 1 to 7.

9. For coding blocks in intra block copy mode, the prediction is derived from a block of sample values ​​of the same picture determined by a block vector. The method according to any one of claims 1 to 8.

10. the transforming includes encoding the current video block into the bitstream. The method according to any one of claims 1 to 9.

11. the converting includes decoding the current video block from the bitstream. The method according to any one of claims 1 to 9.

12. 1. An apparatus for processing video data comprising a processor and a non-transitory memory containing instructions that, when executed by the processor, cause the processor to: determining whether an indication of a transform type in a multiple transform selection operation is included in the bitstream for transforming a current video block of a video and the bitstream of the video based at least on whether the current video block was coded using an intra block copy mode; performing the conversion based on the determination; the multiple transform selection operation includes using transforms from a plurality of predefined candidate transforms during the transform; whether to implicitly apply the multiple transform selection operation is based on whether the current video block is coded in a matrix-based intra-prediction mode. A device for processing video data.

13. 1. A non-transitory computer-readable storage medium, comprising: determining whether an indication of a transform type in a multiple transform selection operation is included in the bitstream for transforming a current video block of a video and the bitstream of the video based at least on whether the current video block was coded using an intra block copy mode; performing the conversion based on the determination; and the multiple transform selection operation includes using transforms from a plurality of predefined candidate transforms during the transform; whether to implicitly apply the multiple transform selection operation is based on whether the current video block is coded in a matrix-based intra-prediction mode. A non-transitory computer-readable storage medium.

14. A method for storing a video bitstream, the method comprising: determining whether an indication of a transform type in a multiple transform selection operation is included in the bitstream of the video based at least on whether a current video block of the video is coded using an intra block copy mode; generating the bitstream based on the determination; and storing the bitstream on a non-transitory computer-readable recording medium; the multiple transform selection operation includes using transforms from a plurality of predefined candidate transforms during the transform; whether to implicitly apply the multiple transform selection operation is based on whether the current video block is coded in a matrix-based intra-prediction mode. method.

Citation Information

Patent Citations

  • Image processing apparatus and method

    WO2018123644A1