Implicitly selecting transform candidates
Through multiple transformation methods and implicit MTS processing, the conversion of video blocks and bitstream representations is optimized, and the contradiction between high-resolution video bandwidth and computing resources is solved, and the encoding and decoding efficiency and performance are improved.
Patent Information
- Application Number
- CN202080041881.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-08-21
- Filing Date
- 2020-06-08
- Publication Date
- 2025-01-03
- Estimated Expiration
- 2040-06-08
AI Technical Summary
When existing video encoding and decoding technologies efficiently process high-resolution video, the bandwidth requirements increase and the computational complexity is high, which conflicts between encoding and decoding efficiency and computing resources.
Using multiple transformation methods, including transformation decisions based on decoding coefficients and implicit multiple transformation set (MTS) processing, optimize the conversion between video blocks and bitstream representations by selecting appropriate transformations in the absence of transformation indexes, reducing the conversion between video blocks and bitstream representations. Necessary computing and bandwidth consumption.
Improves the efficiency and performance of video encoding and decoding, reduces the computational complexity, applies to existing and future video encoding and decoding standards, and enhances the processing capabilities of high-resolution videos.
Smart Images

Figure CN113994666B_ABST
Abstract
Description
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application timely claims the priority and benefit of International Patent Application No. PCT / CN2019 / 090261 filed on June 6, 2019, International Patent Application No. PCT / CN2019 / 091435 filed on June 15, 2019, International Patent Application No. PCT / CN2019 / 098468 filed on July 30, 2019, and International Patent Application No. PCT / CN2019 / 101793 filed on August 21, 2019. The entire disclosure of the above applications is incorporated herein by reference as part of the disclosure of this application. Technical Field
[0003] This patent document relates to video encoding and decoding technologies, devices and systems. Background Art
[0004] Despite advances in video compression, digital video remains the largest bandwidth used on the Internet and other digital communications networks. As the number of connected user devices capable of receiving and displaying video increases, bandwidth requirements for digital video use are expected to continue to grow. Summary of the invention
[0005] Devices, systems and methods related to digital video coding are described, and in particular, multiple transform methods for video coding are described. The described methods can be applied to existing video coding standards (e.g., High Efficiency Video Codec (HEVC)) and future video coding standards (e.g., Versatile Video Codec (VVC)) or codecs.
[0006] In one representative aspect, the disclosed technology can be used to provide an example method of video processing, the method comprising making a decision about applying a transform to a current block of video based on one or more decoded coefficients and in the absence of one or more transform indices, and performing a conversion between the current block and a bitstream representation of the video based on the decision.
[0007] In another representative aspect, the disclosed technology can be used to provide an example method of video processing, the method comprising making a decision about applying a transform to a current block based on a representative coefficient set and in the absence of one or more transform indices, and performing a conversion between the current block and a bitstream representation based on the decision, wherein the representative coefficient set is included in a significant coefficient set, and wherein each coefficient in the significant coefficient set is non-zero.
[0008] In yet another representative aspect, the disclosed technology can be used to provide an example method of video processing, the method comprising selecting one or more transforms in a transform set from a predefined transform set as part of an implicit selection of transform (IST) mode, and applying at least one of the one or more transforms to a current block as part of performing a conversion between a current block and a bitstream representation.
[0009] In another representative aspect, the disclosed technology can be used to provide an example method of video processing. The method includes making a decision about applying implicit multiple transform set (MTS) processing to a codec mode based on a codec mode of a current block of the video, regardless of an indication value of enabling MTS processing at a sequence level, a picture level, a sub-picture level, a slice level, a slice group level, a tile level, a brick level, a codec tree unit (CTU) row level, or a CTU level in a bitstream representation of the video, and performing a conversion between the current block and the bitstream representation based on the decision, wherein the implicit MTS processing includes using characteristics of the current block to determine a transform to use during the conversion.
[0010] In yet another representative aspect, the disclosed technology can be used to provide an example method of video processing, the method comprising making a decision regarding enabling intra-sub-block segmentation (ISP) mode or sub-block transform (SBT) mode for a video region based on enabling multiple transform set (MTS) processing for a video region of the video, and performing conversion between the video region and a bitstream representation of the video based on the decision.
[0011] In yet another representative aspect, the disclosed technology can be used to provide an example method of video processing, the method comprising making a decision regarding enabling of multiple transform set (MTS) processing for a video region based on enabling of an intra-sub-block segmentation (ISP) mode or a sub-block transform (SBT) mode for a video region of the video, and performing conversion between the video region and a bitstream representation of the video based on the decision.
[0012] In yet another representative aspect, the disclosed technology can be used to provide an example method of video processing. The method includes performing a conversion between a current block of video and a bitstream representation of the video, wherein the bitstream representation includes a first syntax element that controls the use of an implicit multiple transform set (MTS) processing of the current block and a second syntax element that controls the use of an explicit MTS processing of the current block, and wherein the first syntax element is different from the second syntax element, wherein the implicit MTS processing includes using characteristics of the current block to determine a transform to use during the conversion.
[0013] In yet another representative aspect, the disclosed technology can be used to provide an example method of video processing. The method includes: for a video region of a video, making a decision about applying implicit multiple transform set (MTS) processing and / or explicit MTS processing to the video region using one or more control parameters of a codec mode based on the video region; and based on the decision, performing a conversion between the video region and a bitstream representation of the video, wherein the implicit MTS processing includes using characteristics of a current block to determine a transform to use during the conversion.
[0014] In yet another representative aspect, the above method is embodied in the form of processor executable code and stored in a computer readable program medium.
[0015] In yet another representative aspect, a device configured or operable to perform the above method is disclosed. The device may include a processor programmed to implement the method.
[0016] In yet another representative aspect, a video decoder device may implement the methods described herein.
[0017] The above and other aspects and features of the disclosed technology are described in more detail in the drawings, the description and the claims. BRIEF DESCRIPTION OF THE DRAWINGS
[0018] Figure 1 An example of a codec block diagram is shown.
[0019] Figure 2 Examples of 67 intra prediction modes are shown.
[0020] Figure 3A and 3B An example of reference samples for wide-angle intra prediction mode for a non-square block is shown.
[0021] Figure 4 An example of discontinuity when using wide angle intra prediction is shown.
[0022] Figures 5A-5D An example of samples used by the Position Dependent Intra Prediction Combining (PDPC) method is shown.
[0023] Figure 6 Examples of partitioning of 4x8 and 8x4 blocks are shown.
[0024] Figure 7 Examples of partitioning of all blocks except 4×8, 8×4, and 4×4 are shown.
[0025] Figure 8 An example of dividing a block of 4×8 samples into two independently decodable regions is shown.
[0026] Fig. 9An example of a processing order for pixel rows that maximizes throughput for a 4xN block using vertical prediction values is shown.
[0027] Fig.10 An example of a secondary transform of JEM is shown.
[0028] Fig.11 An example of the proposed simplified quadratic transform (RST) is shown.
[0029] Fig.12 Examples of forward and inverse simplification transforms are shown.
[0030] Fig.13 An example of forward RST 8×8 processing with a 16×48 matrix is shown.
[0031] Fig.14 An example is shown where positions 17 to 64 are scanned in an 8x8 block for non-zero elements.
[0032] Fig.15 Examples of sub-block transform modes SBT-V and SBT-H are shown
[0033] Fig.16A and 16B An example of coefficient encoding and decoding based on the scan area is shown.
[0034] Figures 17A-17H A flow chart illustrating an example method of video processing is shown.
[0035] Fig.18 is a block diagram of an example of a hardware platform for implementing the visual media decoding or visual media encoding techniques described in this document.
[0036] Fig.19 is a block diagram of an example video processing system in which the disclosed techniques may be implemented. DETAILED DESCRIPTION
[0037] 1 Introduction
[0038] Video coding methods and techniques are ubiquitous in modern technology due to the growing demand for higher resolution video. Video codecs typically include electronic circuits or software that compress or decompress digital video and are constantly being improved to provide higher codec efficiency. Video codecs convert uncompressed video to a compressed format and vice versa. There is a complex relationship between video quality, the amount of data used to represent the video (determined by the bitrate), the complexity of the encoding and decoding algorithms, sensitivity to data loss and errors, ease of editing, random access, and end-to-end delay (latency). The compression format usually conforms to a standard video compression specification, such as the High Efficiency Video Codec (HEVC) standard (also known as H.265 or MPEG-H Part 2), the yet-to-be-finalized Versatile Video Codec (VVC) standard, or other current and / or future video codec standards.
[0039] Embodiments of the disclosed technology can be applied to existing video codec standards (e.g., HEVC, H.265) and future standards to improve runtime performance. Section headings are used in this document to improve the readability of the description and do not in any way limit the discussion or embodiments (and / or implementations) to only the corresponding sections.
[0040] 2. Implementation and Examples of Multiple Transformation Methods
[0041] 2.1 Color Space and Chroma Subsampling
[0042] A color space, also called a color model (or color system), is an abstract mathematical model that simply describes the range of colors as a tuple of numbers, usually 3 or 4 values or color components (such as RGB). Fundamentally, a color space is a refinement of coordinate systems and subspaces.
[0043] For video compression, the most commonly used color spaces are YCbCr and RGB.
[0044] YCbCr, Y'CbCr, or Y Pb / Cb Pr / Cr, also known as YCBCR or Y'CbCr, is a family of color spaces used as part of the color image pipeline in video and digital photography systems. Y' is the luminance component, CB and CR are the blue difference and red difference chrominance components. Y' (with primaries) is different from Y (luminance), which means that the light intensity is non-linearly encoded and decoded based on the gamma-corrected RGB primaries.
[0045] Chroma subsampling is the practice of encoding an image at a lower resolution for chroma information than for luminance information, taking advantage of the fact that the human visual system is less sensitive to color differences than to brightness.
[0046] 4:4:4 format.Each of the three Y'CbCr components has the same sample rate, so there is no chroma subsampling. This scheme is sometimes used in high-end film scanners and film post-production.
[0047] 4:2:2 format. The two chroma components are sampled at half the luma sampling rate: the horizontal chroma resolution is halved. This reduces the bandwidth of the uncompressed video signal by one third, with little visible difference
[0048] 4:2:0 format. In 4:2:0, the horizontal sampling is doubled compared to 4:1:1, but since in this scheme the Cb and Cr channels are sampled only on every alternate line, the vertical resolution is halved. Hence the data rate is the same. Cb and Cr are subsampled by a factor of 2 both horizontally and vertically. There are three variants of the 4:2:0 scheme with different horizontal and vertical positions.
[0049] ○ In MPEG-2, Cb and Cr are located at the same position in the horizontal direction. Cb and Cr are located between pixels in the vertical direction (in the gap).
[0050] ○ In JPEG / jif, H.261 and MPEG-1, Cb and Cr are located in the gaps, in the middle of alternating luminance samples.
[0051] ○ In 4:2:0 DV, Cb and Cr are located in the same position horizontally. In the vertical direction, they are located on alternating lines.
[0052] 2.2 Encoding and decoding process of typical video codecs
[0053] Figure 1 An example of a VVC codec block diagram is shown, which contains three in-loop filtering blocks: deblocking filter (DF), sample adaptive offset (SAO) and ALF. Unlike DF, which uses a predefined filter, SAO and ALF use the original samples of the current picture to reduce the mean square error between the original and reconstructed samples by adding an offset and by applying a finite impulse response (FIR) filter, respectively, where the codec's side information signals the offset and filter coefficients. ALF is located at the last processing stage for each picture and can be seen as a tool that tries to catch and repair artifacts created by previous stages.
[0054] 2.3 Intra-mode codec with 67 intra-prediction modes
[0055] To capture arbitrary edge orientations present in natural videos, the number of directional intra modes is extended from the 33 used by HEVC to 65. The additional directional modes are Figure 2The directional intra prediction modes are depicted as red dot arrows in , and the planar and DC modes remain the same. These dense directional intra prediction modes apply to all block sizes and both luma and chroma intra prediction.
[0056] like Figure 1 As shown, the traditional angular intra prediction direction is defined as from 45 degrees to -135 degrees in the clockwise direction. In VTM2, for non-square blocks, several traditional angular intra prediction modes are adaptively replaced with wide-angle intra prediction modes. The replaced mode is signaled using the original method and remapped to the index of the wide-angle mode after parsing. The total number of intra prediction modes remains unchanged (e.g., 67), and the intra mode encoding and decoding remains unchanged.
[0057] In HEVC, each intra-coded block has a square shape, where the length of each side is a power of 2. Therefore, no division operation is required to generate intra prediction values using DC mode. In VTV2, blocks can have a rectangular shape, and in general, a division operation must be used for each block. To avoid division operations for DC prediction, only the longer sides are used to calculate the average value for non-square blocks.
[0058] 2.4 Wide-angle intra prediction for non-square blocks
[0059] In some embodiments, the traditional angular intra prediction direction is defined as from 45 degrees to -135 degrees in a clockwise direction. In VTM2, for non-square blocks, several traditional angular intra prediction modes are adaptively replaced with wide-angle intra prediction modes. The replaced modes are signaled using the original method and remapped to the index of the wide-angle mode after parsing. The total number of intra prediction modes for a block remains unchanged (e.g., 67), and the intra mode encoding and decoding remains unchanged.
[0060] To support these prediction directions, a top reference of length 2W+1 and a left reference of length 2H+1 are defined as Figure 3A and 3B as shown in the example.
[0061] In some embodiments, the mode number of the replaced modes in the wide direction mode depends on the aspect ratio of the block. Table 1 shows the replaced intra prediction modes.
[0062] Table 1: Intra prediction modes replaced by wide angle mode
[0063]
[0064] like Figure 4 As shown in Figure 2, in the case of wide-angle intra prediction, two vertically adjacent prediction samples can use two non-adjacent reference samples. Therefore, low-pass reference sample filtering and side smoothing are applied to wide-angle prediction to reduce the increased gap Δp.α negative impact.
[0065] 2.5 Example of Position Dependent Intra Prediction Combination (PDPC)
[0066] In VTM2, the result of intra prediction for planar mode is further modified by the Position Dependent Intra Prediction Combination (PDPC) method. PDPC is an intra prediction method that calls for a combination of unfiltered boundary reference samples and HEVC-type intra prediction with filtered boundary reference samples. PDPC is applicable to the following intra modes that do not require signaling: planar, DC, horizontal, vertical, bottom left corner mode and its eight adjacent corner modes, and top right corner mode and its eight adjacent corner modes.
[0067] The prediction sample pred(x,y) is predicted using the intra prediction mode (DC, planar, angular) and a linear combination of the reference samples according to the following equation:
[0068] pred(x,y)=(wL×R -1,y +wT×R x,-1 –wTL×R -1,-1 +(64–wL–wT+wTL)×pred(x,y)+32)>>shift
[0069] In this paper, R x,-1 , R -1,y Respectively represent the reference sample points located at the top and left of the current sample point (x, y), R -1,-1 Indicates the reference sample located at the upper left corner of the current block.
[0070] In some embodiments, and if PDPC is applied to DC, planar, horizontal, and vertical intra modes, no additional boundary filters are needed as required in the case of HEVC DC mode boundary filters or horizontal / vertical mode edge filters.
[0071] Figures 5A-5D The reference samples (R) of PDPC applied to various prediction modes are shown. x,-1 ,R -1,y and R -1,-1 ). The prediction sample pred(x',y') is located at (x',y') in the prediction block. The reference sample R x,-1 The coordinate x of is given by: x = x' + y' + 1, with reference to the sample point R -1,y The coordinate y of is similarly given by: y=x'+y'+1.
[0072] In some embodiments, the PDPC weight depends on the prediction mode and is shown in Table 2, where S=shift.
[0073] Table 2: Examples of PDPC weights according to prediction mode
[0074] Prediction Model w wxya wxya Upper right diagonal 16>>((y'<<1)>>S) 16>>((x'<<1)>>S) 0 Lower left diagonal 16>>((y'<<1)>>S) 16>>((x'<<1)>>S) 0 Upper right adjacent diagonal 32>>((y'<<1)>>S) 0 0 Lower left adjacent diagonal 0 32>>((x'<<1)>>S) 0
[0075] 2.6 Intra-frame segmentation of sub-blocks
[0076] In JVET-M0102, ISP is proposed, which divides the luma intra prediction block vertically or horizontally into 2 or 4 sub-partitions according to the size of the block, as shown in Table 3. Figure 6 and Figure 7 Examples of two possibilities are shown. All sub-partitions satisfy the condition of having at least 16 samples.
[0077] Table 3: Number of subpartitions depending on block size
[0078]
[0079]
[0080] For each of these subpartitions, a residual signal is generated by entropy decoding the coefficients sent by the encoder, followed by inverse quantization and inverse transformation. The subpartitions are then intra predicted, and the corresponding reconstructed samples are finally obtained by adding the residual signal to the prediction signal. Thus, the reconstructed values of each subpartition will be used to generate the prediction of the next subpartition, which will repeat the process and so on. All subpartitions share the same intra mode.
[0081] Two different categories of processing order (called normal and reverse order) are used, based on the intra mode and partition used. In the normal order, the first sub-partition to be processed is the partition containing the top left sample of the CU, and then continues downwards (horizontal partitioning) or to the right (vertical partitioning). As a result, the reference samples used to generate the sub-partition prediction signal are located only to the left and above the line. On the other hand, the reverse processing order starts either from the sub-partition containing the bottom left sample of the CU and continues upwards, or from the sub-partition containing the top right sample of the CU and continues to the left.
[0082] 2.7 Block Differential Pulse Codec Modulation Codec (BDPC)
[0083] BDPCM was proposed in JVET-M0057. Due to the shape of the horizontal (or vertical) prediction value (using the left (A) (or, above (B)) pixel for the prediction of the current pixel), the most throughput-efficient way to process a block is to process all pixels of a column (or, a row) and process these columns (or rows) sequentially. In order to increase the throughput, we introduce the following processing: when the prediction value selected on the block is vertical, the block of width 4 is divided into two halves with a horizontal boundary, and when the prediction value selected on the block is horizontal, the block of height 4 is divided into two halves with a vertical boundary.
[0084] When partitioning a block, samples from one area are not allowed to use pixels from another area to compute a prediction: if this happens, the predicted pixels will be replaced by reference pixels in the prediction direction. Figure 8 , different positions of the current pixel X in a 4×8 block for vertical prediction are shown.
[0085] Due to this feature, it is now possible to process a 4×4 block in 2 cycles, and a 4×8 or 8×4 block in 4 cycles, and so on. Fig. 9 shown.
[0086] Table 4 summarizes the number of cycles required to process a block, depending on the block size. It is common to show that any block with both dimensions greater than or equal to 8 can be processed with 8 pixels per cycle or more.
[0087] Table 4: Throughput of blocks of size 4xN, Nx4
[0088]
[0089]
[0090] 2.8 Quantized Residual Domain BDPCM
[0091] In JVET-N0413, quantized residual domain BDPCM (hereinafter referred to as RBDPCM) is proposed. Similar to intra prediction, intra prediction is performed on the entire block by copying samples in the prediction direction (horizontal or vertical prediction). The residual is quantized, and the deviation between the quantized residual and its predicted value (horizontal or vertical) quantized value is encoded and decoded.
[0092] For a block of size M (rows) × N (columns), let r i,j , 0≤i≤M-1,0≤j≤N-1 is the prediction residual after performing intra prediction using unfiltered samples from the upper or left block boundary samples horizontally (copying the left neighbor pixel values row by row across the prediction block) or vertically (copying the top neighbor to each row in the prediction block). Let Q(r i,h), 0≤i≤M-1,0≤j≤N-1 represents the residual r i,j The quantized version of , where the residual is the difference between the original block and the predicted block value. Then, block DPCM is applied to the quantized residual samples to obtain a modified , with elements An M×N array When vertical BDPCM is signaled:
[0093]
[0094] For horizontal prediction, similar rules apply and the residual quantization samples are obtained by
[0095]
[0096] Residual quantization samples is sent to the decoder.
[0097] At the decoder side, the above calculation is reversed to produce Q(r i,j ),0≤i≤M-1,0≤j≤N-1. For vertical prediction,
[0098]
[0099] For the horizontal case,
[0100]
[0101] Dequantized residual Q -1 (Q(r i,j )) is added to the intra block prediction value to produce the reconstructed sample value.
[0102] One of the benefits of this approach is that DPCM inversion can be done dynamically during the coefficient parsing process by simply adding prediction values when parsing the coefficients, or it can be performed after parsing.
[0103] Transform skipping is always used in quantized residual domain BDPCM.
[0104] 2.9 Multiple Transform Set (MTS) in VVC
[0105] In VTM4, large block size conversion of up to 64×64 is supported, which is mainly suitable for higher resolution videos, such as 1080p and 4K sequences. For transform blocks with a size (width or height, or both width and height) equal to 64, the high-frequency transform coefficients are zeroed, so that only the low-frequency coefficients are retained. For example, for an M×N transform block, with M as the block width and N as the block height, when M is equal to 64, only the 32 columns of transform coefficients on the left are retained. Similarly, when N is equal to 64, only the top 32 rows of transform coefficients are retained. When the transform skip mode is used for a large block, the entire block will be used without zeroing any values.
[0106] In addition to DCT-II already used in HEVC, the Multiple Transform Selection (MTS) scheme is used for residual coding of inter-frame and intra-frame coding blocks. It uses multiple selected transforms from DCT8 / DST7. The newly introduced transform matrices are DST-VII and DCT-VIII. Table 4 below shows the basis functions of the selected DST / DCT.
[0107] Table 4: Basis functions of the transformation matrix used in VVC
[0108]
[0109] To maintain orthogonality of the transform matrices, the transform matrices are quantized more precisely than in HEVC. To keep the intermediate values of the transform coefficients within 16 bits, all coefficients have 10 bits after horizontal and vertical transforms.
[0110] To control the MTS scheme, separate enable flags are specified at the SPS level for intra and inter frames respectively. When MTS is enabled at SPS, a CU-level flag is signaled to indicate whether MTS is applied. Here, MTS is applied only to luma. The MTS CU-level flag is signaled when the following conditions are met.
[0111] ○ Both width and height are less than or equal to 32
[0112] ○CBF sign equals one
[0113] If the MTS CU flag is equal to zero, DCT2 is applied bidirectionally. However, if the MTS CU flag is equal to 1, two other flags are additionally signaled to indicate the transform type in the horizontal and vertical directions, respectively. The transform and signaling mapping table is shown in Table 5. When it comes to transform matrix precision, an 8-bit main transform core is used. Therefore, all transform cores used by HEVC remain unchanged, including 4-point DCT-2 and DST-7, 8-point, 16-point, and 32-point DCT-2. In addition, other transform cores including 64-point DCT-2, 4-point DCT-8, 8-point, 16-point, 32-point DST-7 and DCT-8 use an 8-bit main transform core.
[0114]
[0115] To reduce the complexity of large-size DST-7 and DCT-8, high-frequency transform coefficients are zeroed for DST-7 and DCT-8 blocks with size (width or height, or both) equal to 32. Only coefficients in the 16×16 low-frequency region are retained.
[0116] As in HEVC, the residual of a block can be coded with transform skip mode. To avoid redundancy in syntax coding and decoding, the transform skip flag is not signaled when MTS_CU_flag at the CU level is not equal to 0. The block size restrictions for transform skip are the same as MTS in JEM4, which indicates that transform skip is applicable to a CU when both block width and height are equal to or less than 32.
[0117] Implicit MTS is a recent tool of VVC. The variable implicitMtsEnabled is derived as follows: – If sps_mts_enabled_flag is equal to 1 and one of the following conditions is true, implicitMtsEnabled is set to 1:
[0118] –IntraSubPartitionsSplitType is not equal to ISP_NO_SPLIT
[0119] –cu_sbt_flag is equal to 1 and Max(nTbW, nTbH) is less than or equal to 32
[0120] –sps_explicit_mts_intra_enabled_flag is equal to 0, CuPredMode[0][xTbY][yTbY] is equal to MODE_INTRA, lfnst_idx[x0][y0] is equal to 0, and intra_mip
[0121] _flag[x0][y0] is equal to 0
[0122] – Otherwise, implicitMtsEnabled is set to 0.
[0123] In VVC draft v6, if the current codec block is the luma component and implicitMtsEnabled is equal to 1, the implicit MTS transform selection is determined by the following formula:
[0124] trTypeHor=(nTbW>=4&&nTbW<=16)? DST7:DCT2
[0125] (8-965)
[0126] trTypeVer=(nTbH>=4&&nTbH<=16)? DST7:DCT2
[0127] (8-966)
[0128] where trTypeHor and trTypeVer specify the horizontal and vertical transform kernels, and nTbW and nTbH specify the width and height of the transform block. These two formulas indicate that the implicit MTS transform is selected from the following pairs: {DST7, DST7}, {DST7, DCT2}, {DCT2, DST7}, {DCT2, DCT2}
[0129] 2.10 Simplified quadratic transform (RST) proposed in JVET-N 0193
[0130] 2.10.1 JEM’s Nonseparable Quadratic Transform (NSST)
[0131] In JEM, a secondary transform is applied between the forward main transform and quantization (at the encoder side) and between inverse quantization and inverse main transform (at the decoder side). Fig.10 As shown, a 4×4 (or 8×8) secondary transform is performed according to the block size. For example, for each 8×8 block, a 4×4 secondary transform is applied to small blocks (i.e., min(width, height) <8), and an 8×8 secondary transform is applied to larger blocks (i.e., min(width, height)>4).
[0132] The following describes the application of the inseparable transformation using the input as an example. To apply the inseparable transformation, the 4x4 input block
[0133]
[0134] First, we represent it as a vector
[0135]
[0136] The inseparable transformation is computed as in indicates the transform coefficient vector, and T is the 16×16 transform matrix. 16×1 coefficient vector Subsequently, the scan order (horizontal, vertical, or diagonal) of the block is reorganized into 4×4 blocks. Coefficients with smaller indices are placed in the 4x4 coefficient block together with smaller scan indices. There are a total of 35 transform sets, and each transform set uses 3 non-separable transform matrices (kernels). The mapping from the intra prediction mode to the transform set is predefined. For each transform set, the selected non-separable second-order transform (NSST) candidate is further specified by the explicitly signaled second-order transform index. After the transform coefficients, this index is signaled once per intra-CU per frame in the bitstream.
[0137] 2.10.2 Reduced Second-Order Transform (RST) in JVET-N0193
[0138] The RST transform (also known as the Low-Frequency Non-Separable Transform (LFNST)) was introduced in JVET-K0099, and a mapping of 4 transform sets (instead of 35 transform sets) was introduced in JVET-L0133. In this JVET-N0193, 16×64 (further simplified to 16×48) and 16×16 matrices are adopted. For ease of annotation, the 16×64 (simplified to 16×48) transform is denoted as RST8×8, and the 16×16 transform is denoted as RST4×4. Fig.11 An example of RST is shown.
[0139] RST calculation
[0140] The main idea of the Reduced Transform (RT) is to map an N-dimensional vector to an R-dimensional vector in a different space, where R / N (R < N) is the reduction factor.
[0141] The RT matrix is an R×N matrix as follows:
[0142]
[0143] where the R rows of the transform are the R bases of the N-dimensional space. The inverse transform matrix of RT is the transpose of its forward transform. The forward and reverse RTs are as Fig.12 shown.
[0144] In this proposal, RST8×8 with a simplification factor of 4 (1 / 4 size) is applied. Therefore, a 16×64 direct matrix is used instead of 64×64, which is the traditional 8×8 inseparable transform matrix size. In other words, a 64×16 inverse RST matrix is used on the decoder side to generate the core (main) transform coefficients in the 8×8 upper left region. Forward RST8×8 uses a 16×64 (or 8×64 for 8×8 blocks) matrix, so it only produces non-zero coefficients in the upper left 4×4 region within a given 8×8 region. In other words, if RST is applied, then the 8×8 region except the upper left 4×4 region will have only zero coefficients. For RST4×4, a 16×16 (or 8×16 for 4×4 blocks) direct matrix multiplication is applied.
[0145] Anti-RST is applied conditionally when both of the following conditions are met:
[0146] ○Block size is greater than or equal to a given threshold (W>=4&&H>=4)
[0147] ○ Transform skip mode flag equals zero
[0148] If the width (W) and height (H) of the transform coefficient block are both greater than 4, RST8×8 is applied to the upper left 8×8 area of the transform coefficient block. Otherwise, RST4×4 is applied to the upper left min(8,W)×min(8,H) area of the transform coefficient block.
[0149] If the RST index is equal to 0, the RST is not applied. Otherwise, the RST is applied and its kernel is selected together with the RST index. The RST selection method and encoding and decoding of the RST index will be explained later.
[0150] In addition, RST is applied to intra CUs in intra and inter slices, and to both luma and chroma. If dual tree is enabled, the RST indexes for luma and chroma are signaled separately. For inter slices (dual tree is disabled), a single RST index is signaled and used for both luma and chroma.
[0151] In the 13th JVET meeting, intra sub-partitioning (ISP) was adopted as a new intra prediction mode. When ISP mode is selected, RST is disabled and the RST index is not signaled, because even if RST is applied to each feasible partition block, the performance improvement is minimal. In addition, disabling RST for the residual of ISP prediction can reduce the coding complexity.
[0152] RST selection
[0153] The RST matrix is selected from four transform sets, each consisting of two transforms. Which transform set is applied is determined according to the intra prediction mode as follows:
[0154] (1) If one of the three CCLM modes is indicated, transform set 0 is selected.
[0155] (2) Otherwise, select the transformation set according to the following table:
[0156] Transformation Set Selection Table
[0157] Intra mode Transform Set Index Intra mode < 0 1 0<=intra mode<=1 0 2<=Intra mode<=12 1 13<=intra mode<=23 2 24<=Intra mode<=44 3 45<=Intra-frame mode<=55 2 56<=Intra-frame mode 1
[0158] The index for accessing the above table (denoted as IntraPredMode) is in the range of [-14, 83], which is the transform mode index for wide-angle intra prediction.
[0159] Reduced Dimensionality RST Matrix
[0160] As a further simplification, 16×48 matrices are used instead of 16×64 matrices with the same transform set configuration. Each 16×48 matrix takes 48 input data from three 4×4 blocks in the upper left 8×8 block (excluding the lower right 4×4 block) (e.g. Fig.13 shown).
[0161] RST signaling
[0162] Forward RST 8×8 with R=16 uses a 16×64 matrix, so it only generates non-zero coefficients in the top-left 4×4 region within a given 8×8 region. In other words, if RST is applied, only zero coefficients are generated in the 8×8 region other than the top-left 4×4 region. As a result, when any non-zero element is detected in the 8×8 block region other than the top-left 4×4, the RST index is not encoded (it is in Fig.14 ), because this means that no RST is applied. In this case, the RST index is inferred to be zero.
[0163] Zero range
[0164] Typically, any coefficient in a 4×4 subblock can be non-zero before inverse RST is applied to the 4×4 subblock. However, in some cases, it is restricted that certain coefficients in the 4×4 subblock must be zero before inverse RST can be applied to the subblock.
[0165] Let nonZeroSize be a variable. Require that coefficients with indices no less than nonZeroSize must be zero when rearranged into a 1D array before inverse RST.
[0166] When nonZeroSize is equal to 16, the coefficients in the upper left 4×4 sub-block have no zeroing constraints.
[0167] In JVET-N0193, when the current block size is 4×4 or 8×8, nonZeroSize is set equal to 8 (i.e., the coefficient with a scan index in the range [8, 15] (e.g., Fig.14 For other block sizes, nonZeroSize is set equal to 16.
[0168] Description of RST in the working draft
[0169] Sequence Parameter Set RBSP Syntax
[0170]
[0171] Residual Codec Syntax
[0172]
[0173]
[0174] Codec unit syntax
[0175] Sequence Parameter Set RBSP Semantics
[0176] …
[0177] sps_st_enabled_flag equal to 1 specifies that st_idx may be present in the residual codec syntax of an intra codec unit. sps_st_enabled_flag equal to 0 specifies that st_idx is not present in the residual codec syntax of an intra codec unit.
[0178] …
[0179] Codec unit semantics
[0180] …
[0181] st_idx[x0][y0] specifies which secondary transform kernel to apply between the two candidate kernels in the selected transform set. st_idx[x0][y0] equal to 0 specifies that no secondary transform is applied. Array index x0, y0 specifies the position (x0, y0) of the top left corner sample of the considered transform block relative to the top left corner sample of the picture.
[0182] When st_idx[x0][y0] does not exist, st_idx[x0][y0] is inferred to be equal to 0.
[0183] Transformation Processing of Scaled Transform Coefficients
[0184] Overview
[0185] The inputs to this process include:
[0186] –Specify the luminance position (xTbY, yTbY) of the upper left corner sample of the current luminance transform block relative to the luminance sample of the upper left corner of the current image,
[0187] – variable nTbW that specifies the current transform block width,
[0188] – variable nTbH that specifies the current transform block height,
[0189] – Variable cIdx that specifies the color component of the current block,
[0190] – An (nTbW)x(nTbH) array d[x][y] with scaled transform coefficients, where x=0..nTbW-1, y=0..nTbH-1.
[0191] The output of this process is an (nTbW)x(nTbH) array r[x][y] of residual samples, where x=0..nTbW-1 and y=0..nTbH-1.
[0192] If st_idx[xTbY][yTbY] is not equal to 0, the following applies:
[0193] 1. The variables nStSize, log2StSize, numStX, numStY, and nonZeroSize are derived as follows:
[0194] – If nTbW and nTbH are both greater than or equal to 8, log2StSize is set to 3 and nStOutSize is set to 48.
[0195] – Otherwise, log2StSize is set to 2 and nStOutSize is set to 16.
[0196] –nStSize is set to (1< <log2StSize)。
[0197] – If nTbH is equal to 4 and nTbW is greater than 8, numStX is set to 2.
[0198] – Otherwise, numStX is set to 1.
[0199] – If nTbW is equal to 4 and nTbH is greater than 8, numStY is set to 2.
[0200] – Otherwise, numStY is set equal to 1.
[0201] – If nTbW and nTbH are both equal to 4, or if nTbW and nTbH are both equal to 8, then nonZeroSize is set equal to 8.
[0202] – Otherwise, nonZeroSize is set to 16.
[0203] 2. For xSbIdx = 0..numStX – 1 and ySbIdx = 0..numStY – 1, the following applies:
[0204] – The derivation of the variable array u[x] (x = 0..nonZeroSize – 1) is as follows:
[0205] xC = (xSbIdx << log2StSize) + DiagScanOrder[log2StSize][log2StSize][x][0]
[0206] yC = (ySbIdx << log2StSize) + DiagScanOrder[log2StSize][log2StSize][x][1]
[0207] u[x] = d[xC][yC]
[0208] – By calling the one-dimensional transform process specified in Clause 8.7.4.4, u[x] (x = 0..nonZeroSize – 1) is transformed into the variable array v[x] (x = 0..nStOutSize – 1). In this one-dimensional transform process, the transform input length of the scaled transform coefficients is nonZeroSize, the transform output length is nStOutSize, the list u[x] (x = 0..nonZeroSize – 1), the index stPredModeIntra of the transform set selection, and the index st_idx[xTbY][yTbY] of the transform selection in the transform set are used as inputs, and the output is the list v[x] (x = 0..nStOutSize – 1). The variable stPredModeIntra is set to predModeIntra specified in Clause 8.4.4.2.1.
[0209] – The array d[(xSbIdx << log2tsize) + x][(ySbIdx << log2tsize) + y] (x = 0..nStSize – 1, y = 0..nStSize – 1) is derived as follows:
[0210] – If stPredModeIntra is less than or equal to 34, or equal to INTRA_LT_CCLM,
[0211] INTRA_T_CCLM or INTRA_L_CCLM, then the following applies:
[0212] d[(xSbIdx< <log2StSize)+x][(ySbIdx<<log2StSize)+y]
[0213] =
[0214] (y<4)? v[x+(y< <log2StSize)]:((x<4)?v[32+x+((y–4)<<2)]:d[(xSbIdx<<log2StSize)+x][(ySbIdx<<log2StSize)+y])
[0215] – Otherwise, the following applies:
[0216] d[(xSbIdx< <log2StSize)+x][(ySbIdx<<log2StSize)+y]
[0217] =(y<4)? v[y+(x< <log2StSize)]:((x<4)?v[32+(y–4)+(x<<2)]:d[(xSbIdx<<log2StSize)+x][(ySbIdx<<log2StSize)+y])
[0218] Secondary transformation processing
[0219] The input to this process is:
[0220] – variable nTrS that specifies the transform output length,
[0221] – variable nonZeroSize that specifies the length of the conversion input,
[0222] – List of transformed inputs x[j] (j=0..nonZeroSize-1),
[0223] – the variable stPredModeIntra that specifies the index of the transform set selection,
[0224] – The variable stIdx, which specifies the index of the transform selection in the collection.
[0225] The output of this process is a list y[i] (i=0..nTrS-1) of transformed samples.
[0226] The transform matrix derivation process specified in clause 8.7.4.5 involves the transform output length nTrS, the transform set selection index stPredModeIntra and the transform selection index stIdx in the transform set as input, and the transform matrix secTransMatrix as output.
[0227] The transformation sample list y[i] (i=0..nTrS-1) is derived as follows:
[0228]
[0229] CoeffMin=-(1<<15)and CoeffMax=(1<<15)-1;
[0230] Secondary transformation matrix derivation and processing
[0231] The inputs to this process include:
[0232] – variable nTrS that specifies the transform output length,
[0233] – the variable stPredModeIntra that specifies the index of the transform set selection,
[0234] – The variable stIdx that specifies the index of the transform selection in the transform set.
[0235] The output of this process is the transformation matrix secTransMatrix.
[0236] The variable stTrSetIdx is derived as follows:
[0237]
[0238]
[0239] The transformation matrix secTransMatrix is derived based on nTrS, stTrSetIdx and stIdx as follows:
[0240] – If nTrS is equal to 16, stTrSetIdx is equal to 0, and stIdx is equal to 1, the following applies:
[0241] secTransMatrix[m][n]=…
[0242] – If nTrS is equal to 16, stTrSetIdx is equal to 0, and stIdx is equal to 2, the following applies:
[0243] secTransMatrix[m][n]=…
[0244] – If nTrS is equal to 16, stTrSetIdx is equal to 1, and stIdx is equal to 1, the following applies:
[0245] secTransMatrix[m][n]=…
[0246] – If nTrS is equal to 16, stTrSetIdx is equal to 1, and stIdx is equal to 2, the following applies:
[0247] secTransMatrix[m][n]=…
[0248] – If nTrS is equal to 16, stTrSetIdx is equal to 2, and stIdx is equal to 1, the following applies:
[0249] secTransMatrix[m][n]=…
[0250] – If nTrS is equal to 16, stTrSetIdx is equal to 2, and stIdx is equal to 2, then the following applies:
[0251] secTransMatrix[m][n]=…
[0252] – If nTrS is equal to 16, stTrSetIdx is equal to 3, and stIdx is equal to 1, the following applies:
[0253] secTransMatrix[m][n]=…
[0254] – If nTrS is equal to 16, stTrSetIdx is equal to 3, and stIdx is equal to 2, the following applies:
[0255] secTransMatrix[m][n]=…
[0256] – If nTrS is equal to 48, stTrSetIdx is equal to 0, and stIdx is equal to 1, the following applies:
[0257] secTransMatrix[m][n]=…
[0258] – If nTrS is equal to 48, stTrSetIdx is equal to 0, and stIdx is equal to 2, the following applies:
[0259] secTransMatrix[m][n]=…
[0260] – If nTrS is equal to 48, stTrSetIdx is equal to 1, and stIdx is equal to 1, the following applies:
[0261] secTransMatrix[m][n]=…
[0262] – If nTrS is equal to 48, stTrSetIdx is equal to 1, and stIdx is equal to 2, the following applies:
[0263] secTransMatrix[m][n]=…
[0264] – If nTrS is equal to 48, stTrSetIdx is equal to 2, and stIdx is equal to 1, the following applies:
[0265] secTransMatrix[m][n]=…
[0266] – If nTrS is equal to 48, stTrSetIdx is equal to 2, and stIdx is equal to 2, then the following applies:
[0267] secTransMatrix[m][n]=…
[0268] – If nTrS is equal to 48, stTrSetIdx is equal to 3, and stIdx is equal to 1, the following applies:
[0269] secTransMatrix[m][n]=…
[0270] – If nTrS is equal to 48, stTrSetIdx is equal to 3, and stIdx is equal to 2, the following applies:
[0271] secTransMatrix[m][n]=…
[0272] 2.11 Inverse Quantization Limiting in HEVC
[0273] In HEVC, the scaled transform coefficient d' is calculated as follows
[0274] d'=Clip3(coeffMin,coeffMax,d),
[0275] where d is the scaled transform coefficient before clipping.
[0276] For the luminance component,
[0277] coeffMin=CoeffMinY, coeffMax=CoeffMaxY
[0278] For the chrominance component,
[0279] coeffMin=CoeffMinC, coeffMax=CoeffMaxC.
[0280] In this article,
[0281] CoeffMinY=-(1<<(extended_precision_processing_flag?Max(15,BitDepthY+6):15))
[0282] CoeffMinC=-(1<<(extended_precision_processing_flag?Max(15,BitDepthC+6):15))
[0283] CoeffMaxY=(1< <(extended_precision_processing_flag?Max(15,
[0284] BitDepthY+6): 15)-1
[0285] CoeffMaxC=(1< <(extended_precision_processing_flag?Max(15,
[0286] BitDepthC+6):15))–1
[0287] The extended_precision_processing_flag is a syntax element signaled in the SPS.
[0288] 2.12 Affine Linear Weighted Intra Prediction (ALWIP, or Matrix-based Intra Prediction)
[0289] Affine Linear Weighted Intra Prediction (ALWIP, or Matrix-based Intra Prediction (MIP)) was proposed in JVET-N0217.
[0290] In JVET-N0217, two tests were performed. In Test 1, ALWIP was designed with a memory limit of 8K bytes and a maximum of 4 multiplications per sample. Test 2 was similar to Test 1, but the design was further simplified in terms of memory requirements and model architecture.
[0291] ○ A single set of matrices and offset vectors for all block shapes.
[0292] Reduced the number of patterns used for all block shapes to 19.
[0293] ○ Reduces memory requirements to 5760 10-bit values, or 7.20 kilobytes.
[0294] o Linear interpolation of the prediction samples is performed in a single step in each direction, instead of the iterative interpolation in the first test.
[0295] 2.13 Sub-block Transformation
[0296] For inter-prediction CUs with cu_cbf equal to 1, cu_sbt_flag can be signaled to indicate whether to decode the entire residual block or a sub-part of the residual block. In the former case, the MTS information is further parsed to determine the transform type of the CU. In the latter case, a portion of the residual block is coded with the inferred adaptive transform and another portion of the residual block is zeroed. SBT is not applicable to combined inter-intra modes.
[0297] In sub-block transforms, position-dependent transforms are applied to luma transform blocks in SBT-V and SBT-H (chroma TBs of DCT-2 are always used). The two positions of SBT-H and SBT-V are associated with different core transforms. More specifically, Fig.15 The horizontal and vertical transforms for each SBT position are specified in . For example, the horizontal and vertical transforms for SBT-V position 0 are DCT-8 and DST-7, respectively. When one side of the residual TU is larger than 32, the corresponding transform is set to DCT-2. Therefore, the sub-block transform jointly specifies the horizontal and vertical transforms, TU tiling, and cbf of the residual block, which can be considered as a syntactic shortcut for the case where the primary residual of a block is on one side of the block.
[0298] 2.14AVS-M4763: Scan Region Based Coefficient Codec (SRCC)
[0299] SRCC has been incorporated into AVS-3. Using SRCC, such as Fig.16A and 16B The lower right corner position (SRx, SRy) is signaled, and only the coefficients within the rectangle with four corners (0, 0), (SRx, 0), (0, SRy), (SRx, SRy) are scanned and signaled. All coefficients outside the rectangle are zero. 3 Examples of defects in existing implementations
[0300] The current design of MTS has the following problems:
[0301] Signaling the index may result in overhead bits.
[0302] In MTS and SBT, some combinations of transformations may not be efficient.
[0303] The decision of implicit MTS may not be efficient. In the current VVC, implicitMtsEnabled depends on sps_mts_enabled_flag being equal to 1. However, when sps_mts_enabled_flag is equal to 0, implicitMtsEnabled may also need to be applied.
[0304] In the current VVC, the transform skip (TS) flag is encoded regardless of whether the current block is encoded or decoded in QR-BDPCM mode. However, when QR-BDPCM is enabled, no transform needs to be applied. Therefore, when a block is encoded and decoded in QR-BDPCM, the signaling of the TS flag is redundant.
[0305] In current VVC, the transform skip flag is context-coded with a context that can also be used to code the bin indicating whether the transform matrix is DCT2. Sharing contexts may be less efficient.
[0306] Bins with 5 context encoding use 9 contexts required to encode and decode the transform matrix index, which affects the parsing throughput.
[0307] QR-BDPCM / TS may also be applicable to chrominance blocks. How to better determine the use of QR-BDPCM / TS requires further research.
[0308] 4 Exemplary Methods of Multiple Transformations
[0309] Embodiments of the currently disclosed technology overcome the shortcomings of existing implementations, thereby providing a video codec with higher codec efficiency but lower computational complexity. As described in this document, methods for multiple transforms can enhance existing and future video codec standards, as described in the examples described below for various implementations. The examples of the disclosed technology provided below illustrate the general concepts and are not meant to be interpreted as limiting. In the examples, the various features described in these examples may be combined unless expressly stated to the contrary.
[0310] In the following examples, assume that:
[0311] Max(x, y) returns the larger of x and y, and
[0312] ○Min(x, y) returns the smaller of x and y.
[0313] Implicit MTS
[0314] It is proposed to decide the transform (horizontal and / or vertical transform) applied to a block based on the decoded coefficients without receiving the transform index.
[0315] 1. The decoded coefficients may be associated with one or more representative blocks of the same color component or different color components as the current block.
[0316] a. In one example, determination of a transform for the first block may depend on decoded coefficients of the first block.
[0317] b. In one example, determination of a transform for a first block may depend on decoded coefficients of a second block which may be different from the first block.
[0318] i. In one example, the second block may have the same color component, such as a luminance component, as the color component of the first block.
[0319] 1) In one example, the second block may be adjacent to the first block.
[0320] 2) In one example, the second block may have the same intra prediction mode as the first block.
[0321] 3) In one example, the second block may have the same block size as the first block.
[0322] 4) In one example, the second block may be the last decoded block preceding the first block in decoding order that satisfies certain conditions, such as the same intra prediction mode or the same size.
[0323] ii. In one example, the second block may have different color components than the first block.
[0324] 1) In one example, the first block may be a luma component, and the second block may be a chroma component (eg, Cb / Cr, B / R component).
[0325] a) In one example, the three blocks are in the same codec unit.
[0326] b) Furthermore, alternatively, the implicit MTS is applied only to luma blocks,
[0327] It does not apply to chroma blocks.
[0328] 2) In one example, the first block in the first color component and the second block in the second color component may be located at corresponding positions of the picture to each other.
[0329] c. In one example, determination of a transform for a first block may depend on decoded coefficients of a plurality of blocks including at least one block that is different from the first block.
[0330] i. In one example, the plurality of blocks may include a first block.
[0331] ii. In one example, the plurality of blocks may include one block or a plurality of blocks adjacent to the first block.
[0332] iii. In one example, the plurality of blocks may include one block or a plurality of blocks having the same block size as the first block.
[0333] iv. In one example, the plurality of blocks may include the last N decoded blocks that precede the first block in decoding order and satisfy a certain condition (such as the same intra prediction mode or the same size). N is an integer greater than 1.
[0334] v. In one example, the plurality of blocks may include a block or blocks that are not in the same color component as the first block.
[0335] 1) In one example, the first block may be in the luma component. The plurality of blocks may include blocks in the chroma components (eg, the second block in the Cb / B component, and the third block in the Cr / R component).
[0336] a) In one example, the three blocks are in the same codec unit.
[0337] b) Furthermore, alternatively, the implicit MTS is only applied to luma blocks and not to chroma blocks.
[0338] 2) In one example, the first block in the first color component and a number of blocks included in the plurality of blocks that are not in the first color component may be located at corresponding positions of the picture having the first block.
[0339] 2. The coefficients used for transform determination decoding are those coefficients that are not equal to zero (denoted as significant coefficients
[0340] The coefficients used for transform determination are called representative coefficients.
[0341] a. In one example, the representative coefficients are all significant coefficients in the representative block.
[0342] b. Alternatively, the representative coefficients are a portion of the significant coefficients in the representative block.
[0343] i. In one example, representative coefficients are those decoded significant coefficients that are greater than or not less than a threshold value
[0344] ii. In one example, representative coefficients are those decoded significant coefficients that are less than or not greater than a threshold
[0345] iii. In one example, the representative coefficients are the first K (K>=1) decoded significant coefficients in decoding order.
[0346] iv. In one example, the representative coefficients are the last K (K>=1) decoded significant coefficients in decoding order.
[0347] v. In one example, the representative coefficients may be those coefficients at predetermined positions in the block.
[0348] 1) In one example, the representative coefficient may include only one coefficient located at the coordinate (xPos, yPos) relative to the representative block, for example xPos=yPos=0.
[0349] 2) For example, the position may depend on the size of the block.
[0350] vi. In one example, the representative coefficients may be those coefficients at predetermined positions in the coefficient scanning order.
[0351] c. Alternatively, the representative coefficients may also include those zero coefficients.
[0352] d. Alternatively, the representative coefficients may be those derived from the decoded coefficients, such as by clipping to a range, by quantization.
[0353] 3. The transformation determines a function that may depend on the representative coefficients, such as a function that has a value V as output using the representative coefficients as input.
[0354] a. In one example, V is derived as the number of representative coefficients.
[0355] i. Alternatively, V is derived as the sum of representative coefficients.
[0356] 1) Alternatively, furthermore, the sum may be clipped to derive V.
[0357] ii. Alternatively, V is derived as the sum of the absolute values of the representative coefficients.
[0358] 1) Alternatively, furthermore, the sum may be clipped to derive V.
[0359] b. In one example, the choice can be implicitly determined at the decoder depending on the parity of V
[0360] i. For example, if V is an even number, the first transform is selected as the horizontal transform and the second transform is selected as the vertical transform; if V is an odd number, the third transform is selected as the horizontal transform and the fourth transform is selected as the vertical transform.
[0361] 1) In one example, the first transform is the same as the second transform.
[0362] a) Alternatively, the first transform is different from the second transform.
[0363] 2) In one example, the third transform is the same as the fourth transform.
[0364] a) Alternatively, the third transform is different from the fourth transform.
[0365] 3) The first / second / third / fourth transformations are specific transformations, such as
[0366] DCT-X or DST-Y. X can be an integer such as 2 or 8. Y
[0367] Can be an integer such as 7 or 8.
[0368] 4) Alternatively, furthermore, at least one of the third and fourth transformations is different from the first and second transformations.
[0369] a) In one example, when V is even, the first and second transforms are DCT-2, and when V is odd, the third and fourth transforms are DST-7.
[0370] b) Alternatively, when V is odd, the first and second transforms are DCT-2, and when V is even, the third and fourth transforms are DST-7.
[0371] c. In one example, if V is less than a threshold value T1, the fifth transform is selected as the horizontal transform, and the sixth transform is selected as the vertical transform. For example, T1=1 or 2.
[0372] i. Alternatively, if V is greater than threshold T2, the fifth transform is selected as the horizontal transform and the sixth transform is selected as the vertical transform.
[0373] ii. For example, the threshold may depend on the size of the block.
[0374] iii. For example, the threshold may depend on the QP.
[0375] iv. In one example, the fifth transform is the same as the sixth transform.
[0376] 1) Alternatively, the fifth transform is different from the sixth transform.
[0377] v. In one example, the fifth / sixth transform is a specific transform such as
[0378] DCT-X or DST-Y. X can be an integer such as 2 or 8. Y can be an integer such as 7 or 8.
[0379] d. In one example, the choice of transform may depend on a combination of V and other codec information.
[0380] i. For example, when the current picture / strip is intra-coded, if V is an even number, the first transform is selected as the horizontal transform, and the second transform is selected as the vertical transform; if V is an odd number, the third transform is selected as the horizontal transform, and the fourth transform is selected as the vertical transform; but when the current picture / strip is not intra-coded, if V is an even number, the third transform is selected as the horizontal transform, and the fourth transform is selected as the vertical transform;
[0381] And if V is odd, the first transform is selected as the horizontal transform, and the second transform is selected as the vertical transform. The four transforms may be defined as in point 3.b.
[0382] 4. The transformation determination may also depend on the codec information of the current block.
[0383] a. In one example, if the current intra-coded block is in an I slice / picture, when V is an even number, DST-7 may be applied to the current block, and when V is an odd number, DCT-2 may be applied to the current block.
[0384] b. In one example, if the current intra-coded block is in a P / B slice / picture and V is an even number, DCT-2 may be applied to the current block, and when V is an odd number, DST-7 may be applied to the current block.
[0385] c. In one example, the determination may further depend on mode information (eg, intra-frame or inter-frame mode information).
[0386] d. In one example, the transform determination may depend on a scan area, which is the smallest rectangle covering all coefficients (e.g., Figures 16A-16B shown).
[0387] i. In one example, if the size (width times height) of the scan area associated with the current block is greater than a given threshold, a default transform (including horizontal and vertical transforms) may be used. Otherwise, the rules defined in point 3 may be used (e.g., DST-7 when V is even, and DCT-2 when V is odd).
[0388] ii. In one example, if the width of the scan area associated with the current block is greater than (or less than) a given maximum width (eg, 16), a default horizontal transform may be used. Otherwise, the rules defined in point 3 may be used.
[0389] iii. In one example, if the height of the scan area associated with the current block is greater than (or less than) a given maximum height (eg, 16), a default vertical transformation may be used. Otherwise, the rules defined in point 3 may be used.
[0390] iv. In one example, the given size is LxK, where L and K are integers, such as 16.
[0391] v. In one example, the default transform matrix may be DCT-2 or DST-7. 5. The transform set from which the implicit MTS may select a transform may be predefined.
[0392] a. In one example, the horizontal and vertical transform sets may not be the same.
[0393] i. Alternatively, the horizontal and vertical transform sets may be the same.
[0394] b. In one example, the transform set may include DCT-2 and DST-7.
[0395] c. In one example, the transform set may include DCT-2, DST-7, and identity transform.
[0396] d. In one example, the transform set may depend on codec information, color component, partition structure (eg, dual tree / single tree; quadtree / binary tree / ternary tree / extended quadtree), slice / picture type, etc.
[0397] i. In one example, the set of transforms may depend on the block size.
[0398] ii. In one example, for intra-coded blocks, DCT-2 and DST-7 may be included.
[0399] iii. In one example, for a block encoded with reference samples in the same picture
[0400] (e.g., intra block copy), may include DST-7 and identity transform (ie, no transform applied).
[0401] 6. In one example, one or more methods disclosed in points 1-5 can only be applied to a specific block.
[0402] a. For example, one or more methods disclosed in points 1-5 can only be applied to intra-frame coding blocks.
[0403] b. For example, one or more of the methods disclosed in points 1-5 can only be applied to blocks with specific constraints on coefficients.
[0404] i. A rectangle with four corners (0, 0), (CRx, 0), (0, CRy), (CRx, CRy) is defined as a constrained rectangle. In one example, one or more methods disclosed in points 1-5 can be applied only when all coefficients outside the constrained rectangle are zero. For example, CRx=CRy=16.
[0405] 1) For example, CRx=SRx and CRy=SRy, where (SRx, SRy) is defined in SRCC as described in Section 2.14.
[0406] 2) Alternatively, furthermore, the above method is only applied when the block width or block height is greater than K.
[0407] a) In one example, K is equal to 16.
[0408] b) In one example, the above method is only used when the block width is greater than K1 and K1 is equal to CRx or the block height is greater than K2 and
[0409] Applicable when K2 equals CRy.
[0410] 7. When the proposed transform selection method disclosed in points 1-5 is not applied, a default transform is used, such as DCT2.
[0411] Simplified MTS / SBT
[0412] 8. In one example, the vertical transform and the horizontal transform in MTS must be the same.
[0413] a. In one example, a block can only choose one of the following two transformations:
[0414] i. DCT-2 in horizontal transform and DCT-2 in vertical transform;
[0415] ii. DST-7 in horizontal conversion and DST-7 in vertical conversion;
[0416] b. In one example, signaling for MTS may include at most one flag for a block.
[0417] i. In one example, if the flag is equal to 0, DCT-2 in the horizontal transform and DCT-2 in the vertical transform are selected; if the flag is equal to 1, DST-7 in the horizontal transform and DST-7 in the vertical transform are selected.
[0418] ii. In one example, if the flag is equal to 1, DCT-2 in the horizontal transform and DCT-2 in the vertical transform are selected; if the flag is equal to 0, DST-7 in the horizontal transform and DST-7 in the vertical transform are selected.
[0419] 9. Assume that the width and height of the block are W and H respectively. Point 7 is applicable only if:
[0420] aW>=T1, and H>=T2, for example, T1=T2=8;
[0421] bW<=T1, and H<=T2, for example, T1=T2=16;
[0422] c.Min(W,H)>=T1, for example, T1=8;
[0423] d.Max(W,H)<=T1, e.g. T1=32
[0424] eW*H>=T1, e.g. T1=64
[0425] fW*H<=T1, for example, T1=256.
[0426] 10. In one example, transforms not including DST-8 may be applied to blocks encoded with SBT.
[0427] a. In one example, only DCT-2 and DST-7 can be applied to blocks encoded with SBT.
[0428] b. In one example, Fig.15 In the case of the SBT shown (SBT-V, position 0), DCT-2 is applied horizontally and DST-7 is applied vertically.
[0429] c. In one example, Fig.15 In the case of the SBT shown (SBT-H, position 0), DST-7 is applied horizontally and DCT-2 is applied vertically.
[0430] 11. Assume that the width and height of the transform block are W and H, respectively. In one example, the selection of transform for a block coded with SBT may depend on the transform block size, where the transform block may be smaller than the coded block when SBT is applied.
[0431] a. In one example, Fig.15 In the case of the SBT shown (SBT-V, position 0), if W>=T1, DCT-2 is applied horizontally and DST-7 is applied vertically; otherwise, DCT-8 is applied horizontally and DST-7 is applied vertically. For example, T1=8.
[0432] b. In one example, Fig.15In the case of the SBT shown (SBT-H, position 0), if H>=T1, DST-7 is applied horizontally and DCT-2 is applied vertically; otherwise, DST-7 is applied horizontally and DCT-8 is applied vertically. For example, T1=8.
[0433] 12. Whether transform coefficient zeroing is applied may depend on one or more messages signaled from the codec to the decoder, such as in VPS / SPS / PPS / APS / DPS / slice header / picture header / sequence header / slice group header / slice / CTU row / CTU / CU / PU / TU, etc.
[0434] a. In one example, the message may include a flag that controls the use of MTS (eg, sps_mts_enabled_flag in SPS).
[0435] b. In one example, the message may include a flag that controls the use of the SBT (eg, cu_sbt_flag in the CU).
[0436] c. In one example, whether transform coefficient zeroing is applied may depend on the signaled message and the transform block size.
[0437] d. In one example, once MTS is not enabled in the bitstream (eg, sps_mts_enabled_flag is equal to "false"), transform coefficient zeroing may not be applied to transform blocks of a specified size.
[0438] i. For example, if sps_mts_enabled_flag is equal to "false", for a transform block with size M×32 (M<=32) or 32xN (N<=32), transform coefficient zeroing may not be applied, so the entire M×N (M<=32, N<=
[0439] 32) The block is encoded and decoded without zeroing any transform coefficients.
[0440] e. In one example, once MTS is enabled in the bitstream (eg, sps_mts_enabled_flag is equal to "true"), for a bitstream having size M×32 (M<=32)
[0441] Or for a 32×N (N<=32) transform block, transform coefficients may be zeroed.
[0442] i. In one example, for an M×N transform block, if sps_mts_enabled_flag is equal to “true” and cu_sbt_flag is equal to
[0443] "True", then when M is equal to 32, only the left 16 columns of transform coefficients are retained.
[0444] Similarly, when N is equal to 32, only the upper 16 rows of transform coefficients are retained. All other coefficients are reset to zero.
[0445] 13. Whether transform coefficient zeroing is applied may depend on the transform type and / or transform size.
[0446] a. In one example, when the transform type is DCT-2, for M×64 (M<=64) or 64×N (N<=64) transform blocks, transform coefficient zeroing may be applied.
[0447] i. In one example, for an M×N transform block encoded and decoded with DCT-2, when M is equal to 64, only the left 32 columns of transform coefficients are retained. Similarly, when N is equal to 62, only the upper 32 rows of transform coefficients are retained.
[0448] b. In one example, when the transform type is DCT-8 or DST-7, for M×32
[0449] For a 32×N (M<=32) or 32×N (N<=32) transform block, transform coefficient zeroing may be applied.
[0450] i. In one example, for an M×N transform block encoded and decoded with DCT8 or DST7, when M is equal to 32, only the left 16 columns of transform coefficients are retained. Similarly, when N is equal to 32, only the upper 16 rows of transform coefficients are retained.
[0451] c. In one example, when transform skip mode is used for a block, the entire block is encoded without zeroing any transform coefficients.
[0452] 14. Whether transform coefficient zeroing is applied may depend on the implicit transform.
[0453] a. In one example, for M×32 (M<=32) or 32 encoded with implicit transform
[0454] ×N (N<=32) transform blocks, transform coefficients may be zeroed.
[0455] i. In one example, for an M×N transform block coded and decoded with implicit transform, when M is equal to 32, only the left 16 columns of transform coefficients are retained. Similarly, when N is equal to 32, only the upper 16 rows of transform coefficients are retained.
[0456] Implicit MTS Decision Making
[0457] 15. Regardless of whether MTS is enabled at the sequence / picture / sub-picture / slice / slice group / slice / tile / CTU row / CTU level (e.g., sps_mts_enabled_flag is equal to 1 or 0), implicit MTS can be applied to certain modes.
[0458] a. In one example, when MTS is disabled at the sequence / picture / sub-picture / slice / slice group / slice / tile / CTU row / CTU level (e.g., sps_mts_enabled_flag is equal to 0), implicit MTS can be applied in ISP mode.
[0459] b. In one example, when MTS is disabled at sequence / picture / sub-picture / slice / slice group / slice / tile / CTU row / CTU level (e.g., sps_mts_enabled_flag is equal to 0), implicit MTS may be applied in SBT mode.
[0460] c. In one example, when MIP and / or LFNST and / or explicit MTS are not applied and MTS is disabled at the sequence / picture / sub-picture / slice / slice group / slice / tile / CTU row / CTU level (e.g., sps_mts_enabled_flag is equal to 0), implicit MTS can be applied to intra prediction mode.
[0461] d. Alternatively, when in the sequence / picture / sub-picture / slice / slice group / slice / tile / CTU line
[0462] When MTS is disabled at the CTU level (eg, sps_mts_enabled_flag is equal to 0), implicit MTS may not be applied to blocks with certain modes.
[0463] i. In one example, when MTS is disabled at the sequence / picture / sub-picture / slice / slice group / slice / tile / CTU row / CTU level (e.g., sps_mts_enabled_flag is equal to 0), implicit MTS may not be applied to blocks with intra prediction mode.
[0464] ii. In one example, when MTS is disabled at the sequence / picture / sub-picture / slice / slice group / slice / tile / CTU row / CTU level (e.g., sps_mts_enabled_flag is equal to 0), implicit MTS may not be applied to blocks with intra prediction modes that do not include ISP mode.
[0465] e. In one example, for ISP coded blocks, implicit MTS may be forced to be used. i. For example, implicit transform may be forced to be used for ISP coded blocks (eg, for ISP coded blocks, the variable implicitMtsEnabled may be inferred to be 1).
[0466] ii. For example, a bitstream constraint may be applied that an implicit MTS must be used for blocks encoded by ISP.
[0467] iii. Alternatively, if the SPS level MTS flag is equal to 0 (such as sps_mts_enabled_flag is equal to 0), DCT-2 transform can be used for ISP coded blocks.
[0468] f. In one example, for SBT-coded blocks, implicit MTS may be forced to be used. i. For example, when both the block width and block height of an SBT-coded block are less than or equal to 32, and the current coded block is a luma component, then implicit MTS may be forced to be applied to such an SBT-coded block (e.g., for such an SBT-coded block, the variable implicitMtsEnabled may be forced to 1).
[0469] 1) In another example, a bitstream constraint may be applied that for such ISP-coded blocks, an implicit MTS must be used.
[0470] ii. Alternatively, if the SPS level MTS flag is equal to 0 (such as sps_mts_enabled_flag is equal to 0), DCT-2 transform can be used for the SBT codec block.
[0471] g. In one example, the correlation between the SPS level MTS flag and the implicit MTS can be used only for intra-frame but non-ISP coded blocks.
[0472] i. For example, for blocks that are intra-coded but not ISP-coded, whether implicit MTS is used may be determined by the SPS-level MTS control flag(s) (such as when sps_mts_enabled_flag is equal to 1 and sps_explicit_mts_intra_enabled_flag is equal to 0).
[0473] 1) Alternatively, whether implicit MTS is used for ISP / SBT codec blocks has nothing to do with the MTS flag at the SPS level.
[0474] 16. Whether SBT / ISP is allowed for a sequence / video / picture / slice / slice group / slice / tile / sub-picture / CTU row / CTU / CU / block may depend on whether MTS is enabled for the sequence / video / picture / slice / slice group / slice / tile / sub-picture / CTU row / CTU / CU / block (e.g., sps_mts_enabled_flag is equal to 1 or 0).
[0475] a. In one example, when MTS is disabled (eg, sps_mts_enabled_flag is equal to 0), SBT / ISP may not be allowed.
[0476] b. In one example, explicit signaling of the ISP flag and / or the SBT flag may be conditional on enabling MTS (eg, sps_mts_enabled_flag equal to 1).
[0477] i. For example, once sps_mts_enabled_flag is equal to 1, ISP flags (eg, intra_subpartitions_mode_flag, intra_subpartitions_split_flag) may be signaled.
[0478] ii. For example, once sps_mts_enabled_flag is equal to 1, SBT flags (e.g., cu_sbt_flag, cu_sbt_quad_flag, cu_sbt_horizontal_flag, cu_sbt_pos_flag) may be signaled.
[0479] c. In one example, when implicit MTS is disabled, SBT / ISP may not be allowed.
[0480] d. In one example, when MTS is disabled in the conformant bitstream (e.g., sps_mts_enabled_flag is equal to 0), the control information of SBT and / or ISP of sequence / video / picture / slice / slice group / slice / tile / sub-picture / CTU row / CTU / CU / block (e.g., sps_isp_enabled_flag and / or sps_sbt_enabled_flag) must be 0.
[0481] i. Alternatively, when MTS is disabled (e.g., when sps_mts_enabled_flag is equal to 0), the control information of SBT and / or ISP of sequence / video / picture / slice / slice group / slice / tile / sub-picture / CTU row / CTU / CU / block (e.g., sps_isp_enabled_flag and / or sps_sbt_enabled_flag) is not signaled and is inferred to be 0.
[0482] ii. Alternatively, the control information of SBT and / or ISP for sequence / video / picture / slice / slice group / slice / tile / sub-picture / CTU line / CTU / CU / block (e.g., sps_isp_enabled_flag and / or sps_sbt_enabled_flag) is signaled but omitted by the decoder.
[0483] sps_mts_enabled_flag is equal to 0), SBT and / or ISP are inferred to be disabled.
[0484] 17. Whether MTS is enabled (e.g., sps_mts_enabled_flag is equal to 1 or 0) for a sequence / video / picture / slice / slice group / slice / tile / sub-picture / CTU row / CTU / CU / block) may depend on whether SBT / ISP is allowed for the sequence / video / picture / slice / slice group / slice / tile / sub-picture / CTU row / CTU / CU / block.
[0485] a. In one example, when SBT and / or ISP are not enabled for a sequence / video / picture / slice / slice group / slice / tile / sub-picture / CTU row / CTU / CU / block in a conforming bitstream, MTS may be enabled (e.g., sps_mts_enabled_flag must be equal to 1).
[0486] i. Alternatively, when SBT and / or ISP is not enabled for a sequence / video / picture / slice / slice group / slice / tile / sub-picture / CTU row / CTU / CU / block, sps_mts_enabled_flag is not signaled and is inferred to be 1.
[0487] ii. Alternatively, when SBT and / or ISP is not enabled for a sequence / video / picture / slice / slice group / slice / tile / sub-picture / CTU row / CTU / CU / block, sps_mts_enabled_flag is signaled but omitted by the decoder and MTS is inferred to be enabled.
[0488] 18. Implicit MTS and explicit MTS can be controlled by separate syntax elements. For example, sps_implicit_mts_intra_enabled_flag and sps_explicit_mts_intra_enabled_flag control whether implicit MTS and explicit MTS are enabled at the sequence level, respectively.
[0489] a. In one example, the syntax element controlling MTS in points 11-13 (eg, sps_mts_enabled_flag) may be replaced by a syntax element controlling implicit MTS (eg, sps_implict_mts_intra_enabled_flag).
[0490] b. In one example, sps_implict_mts_intra_enabled_flag is signaled only if sps_mts_enabled_flag is equal to 1. If sps_implict_mts_intra_enabled_flag is not present, it can be inferred to be 0.
[0491] 19. In one example, for different coding modes of sequence / video / picture / slice / slice group / slice / tile / sub-picture / CTU row / CTU / CU / block, whether and / or how to apply implicit and / or explicit MTS can be controlled separately.
[0492] a. In one example, when implicit and / or explicit MTS is disabled for an intra-coded CU, sps_mts_enabled_flag is 0.
[0493] b. In one example, sps_mts_enabled_flag does not control whether inter-frame coding / decoding is enabled.
[0494] Non-intra-coded CUs enable implicit and / or explicit MTS.
[0495] General claims
[0496] 20. The decision of the transformation matrix can be made at the CU / CB level or the TU level.
[0497] a. In one example, the decision is made at the CU level, where all TUs share the same transform matrix.
[0498] i. Alternatively, further, when a CU is divided into a plurality of TUs, coefficients in one TU (eg, the first or last TU) or a portion or all of the TUs may be used to determine the transform matrix.
[0499] b. Whether to use a CU-level solution or a TU-level solution may depend on the block size and
[0500] / or VPDU size and / or maximum CTU size and / or encoding and decoding information of a block.
[0501] i. In one example, when the block size is larger than the VPDU size, a CU level determination method may be applied.
[0502] 21. In the method disclosed in this document, the coefficients or representative coefficients may be quantized or dequantized.
[0503] 22. Transform skipping can also be determined implicitly by coefficients or representative coefficients using any of the methods disclosed in this document.
[0504] 23. In the methods disclosed in this document, coefficients or representative coefficients may be modified before being used to derive the transform.
[0505] a. For example, coefficients or representative coefficients may be clipped before being used to derive the transform.
[0506] b. For example, the coefficients or representative coefficients may be scaled before being used to derive the transform.
[0507] c. For example, coefficients or representative coefficients may be offset before being used to derive the transform.
[0508] d. For example, coefficients or representative coefficients may be filtered before being used to derive the transform.
[0509] e. For example, coefficients or representative coefficients may be mapped to other values (eg, via a lookup table) before being used to derive a transform.
[0510] 24. The methods disclosed in this document can also be used to derive other codec modes / information implicitly through coefficients or representative coefficients.
[0511] a. In one example, the disclosed method can be used to derive a secondary transform that can be applied to a sub-region of a block.
[0512] b. Alternatively, furthermore, the representative coefficients are from those corresponding to a sub-region rather than the entire block.
[0513] 25. In one example, whether and / or how to apply the above disclosed method can be at the sequence level / picture level / slice level / slice group level, such as at the sequence header / picture header / SPS / VPS / DPS / PPS / APS /
[0514] Signaling notification in the stripe header / slice group header.
[0515] 26. In one example, whether and / or how to apply the above disclosed method may depend on codec information, which may include:
[0516] a. Block size.
[0517] i. In one example, for blocks whose width and height are both not greater than a threshold (eg, 32), the implicit MTS method described above may be applied.
[0518] b.QP
[0519] c. Picture or stripe type (such as I frame or P / B frame, I stripe or P / B stripe)
[0520] i. In one example, the proposed method can be enabled on I frames, but disabled on P / B frames.
[0521] d. Structural partitioning method (single tree or dual tree)
[0522] i. In one example, for a slice / picture / tile / slice applied with a single tree partitioning, the implicit MTS method described above may be applied.
[0523] e. Codec mode (such as inter-frame mode / intra-frame mode / IBC mode, etc.)
[0524] i. In one example, for intra-frame coded blocks, the implicit MTS method described above may be applied.
[0525] f. Coding and decoding methods (such as intra-sub-block segmentation, derivative tree (DT) method, etc.)
[0526] i. In one example, for intra-frame codec blocks to which DT is applied, the implicit MTS method described above may be disabled.
[0527] ii. In one example, for an intra-frame codec block to which ISP is applied, the implicit MTS method described above may be disabled.
[0528] g. Color component
[0529] i. In one example, for luma blocks, the implicit MTS method described above may be applied, but for chroma blocks, it is not applied.
[0530] h. Intra-frame prediction mode (such as DC, vertical, horizontal, etc.)
[0531] i. Motion information (such as MV and reference index).
[0532] j. Profile / Level / Tier
[0533] Codec tools on chroma components
[0534] 27. The proposed codec tool X may be applied to one or more chrominance components of a block, depending on whether it is applied to one or more corresponding luminance blocks. In the following discussion, "chrominance component"
[0535] Can refer to "one or more chrominance components".
[0536] a. In one example, for a chroma block, the usage of codec tool X is derived from the information of whether the codec tool is applied to the corresponding luma block. Therefore, no additional signaling of the usage of codec tool X for chroma blocks is required.
[0537] i. In one example, if codec tool X is applied to the corresponding luma block, it may be applied to the chroma components of the block; and if it is not applied to the corresponding luma block, it is not applied to the chroma components of the block.
[0538] ii. In one example, when codec X is applied to the corresponding luma block, it can be applied to luma and chroma components in the same way.
[0539] b. In one example, a message (such as a flag or index) may be conditionally signaled to indicate whether codec X is applied to the chroma components of a block. The condition may be defined as whether it is applied to the corresponding luma block. Alternatively, further, if it is not applied to the corresponding luma block, it may not be applied to the chroma components of the block without signaling.
[0540] i. In one example, when codec X is applied to the corresponding luma block and the message indicates that it is also applied to chroma components, codec X may be applied to the luma component and the chroma components in the same manner.
[0541] ii. In one example, codec tool X may be applied to luma components and chroma components in different ways.
[0542] 1) It is possible to signal how to apply codec X to the luminance component and the chrominance component separately.
[0543] c. In the above discussion, a "corresponding luma block" may refer to a luma block that covers at least one "corresponding sample" of a chroma block. The sample position may be based on the color format (such as 4:
[0544] 4:4 or 4:2:0). Assume the top left corner of the chroma block is at (x0, y0), and the width and height of the chroma block are W and H, all of which are scaled to luma sampling units.
[0545] i. In one example, the corresponding sample point may be at (x0, y0);
[0546] ii. In one example, the corresponding sample point may be at (x0+W-1, y0+H-1);
[0547] iii. In one example, the corresponding sample point may be at (x0+W / 2-1, y0+H / 2-1);
[0548] iv. In one example, the corresponding sample point may be at (x0+W / 2, y0+H / 2);
[0549] v. In one example, the corresponding sample point may be at (x0+W / 2, y0+H / 2-1);
[0550] vi. In one example, the corresponding sample point may be at (x0+W / 2-1, y0+H / 2);
[0551] 28. The proposed codec tool X may be applied to one chroma component of a block, depending on whether it is applied to one or more corresponding blocks of other chroma components.
[0552] a. In one example, for a chroma block, the usage of codec tool X is derived from information on whether the codec tool is applied to corresponding blocks of other chroma components. Therefore, no additional signaling of the usage of codec tool X for chroma blocks is required.
[0553] b. In one example, a message (such as a flag) may be conditionally signaled to indicate whether codec tool X is applied to the chroma components of a block. The condition may be defined as whether it is applied to the corresponding blocks of other chroma components. Alternatively, further, if it is not applied to the corresponding blocks of other chroma components, it may not be applied to the chroma components of a block without signaling.
[0554] 29. The proposed codec tool X may be applied to the luma component of a block, depending on whether it is applied to one or more corresponding blocks of chroma components.
[0555] a. In one example, for a luma block, the usage of codec tool X is derived from the information of whether the codec tool is applied to the corresponding block of chroma components. Therefore, no additional signaling of the usage of codec tool X for luma blocks is required.
[0556] b. In one example, a message (such as a flag) may be conditionally signaled to indicate whether codec tool X is applied to the luma component of a block. The condition may be defined as whether it is applied to the corresponding block of the chroma component. Alternatively, furthermore, if it is not applied to the corresponding block of the chroma component, it will not be applied to the luma component of the block without signaling.
[0557] 30. The codec tool X mentioned above can be defined as follows.
[0558] a. In one example, codec tool X may be MTS.
[0559] b. In one example, codec tool X may be transform skip.
[0560] c. In one example, codec X may be RST.
[0561] d. In one example, codec X may be RBDPCM.
[0562] e. In one example, codec X may be BDPCM.
[0563] Signaling of MTS index and transition jump flag
[0564] 31. It is proposed that the MTS index and / or transform skip flag may be signaled conditionally, depending on the use of BDPCM or QR-BDPCM or any variance of BDPCM. a. In one example, when BDPCM or QR-BDPCM or any variance of BDPCM is enabled for a block (such as intra_bdpcm_flag is equal to "true"), the MTS index and / or transform skip flag may not be signaled in the bitstream for the block.
[0565] i. Alternatively, in addition, when BDPCM or QR-BDPCM or any variation of BDPCM is enabled in a block, the transform skip flag of the block can be inferred to be
[0566] "real".
[0567] b. In one example, when BDPCM or QR-BDPCM or any variation of BDPCM is enabled in a block, the MTS index of the block can be inferred to be 0.
[0568] 32. Fixed-length codecs can be used to encode and decode different MTS types (such as DST7-DST7, DCT8-DST7, DST7-DCT8, DCT8-DCT8 in the VVC specification), but excluding TS and DCT-2.
[0569] a. In one example, a fixed length of 2 binary bits may be applied.
[0570] b. In one example, each bin can be context encoded or decoded.
[0571] c. In one example, the first or last bin may be context decoded and the remaining bins bypass decoded.
[0572] d. In one example, all bins are bypassed for encoding and decoding.
[0573] 33. Context modeling of transform matrix indices (eg, TS, DCT-2, other transform matrices) may depend on the codec mode, transform block size and / or QT depth and / or MTT depth and / or BT depth and / or TT depth.
[0574] a. In one example, the context modeling of the transform matrix index may depend on the coding mode of the block, such as whether the block is coded in intra / inter / IBC mode.
[0575] b. In one example, context modeling of the transformation matrix index may depend on a function of multiple segmentation depths, which may include QT depth, MTT depth, BT depth, and TT depth.
[0576] c. In one example, context modeling of the transformation matrix index can depend on the
[0577] The transform depth of the TU / TB of the CU / PU.
[0578] d. In one example, the context index increment may be set as a function of the TU / TB size.
[0579] i. In one example, the context index increment may be set to ((Log2(TbW)+Log2(TbH))>>1)−X, where TbW and TbH indicate the width and height of the transform block, and X is an integer (such as X=2).
[0580] ii. In one example, the context index increment may be set to Log2(max(TbW, TbH))−X, where TbW and TbH indicate the width and height of the transform block, X is an integer (such as X=2), and max(a, b) returns the larger value.
[0581] iii. In one example, the context index increment may be set to Log2(min(TbW, TbH))−X, where TbW and TbH indicate the width and height of the transform block, X is an integer (such as X=2), and min(a, b) returns a smaller value.
[0582] iv. The context index increment mentioned above can be further clipped to a range, such as [k0, k1], where k0 and k1 are integers.
[0583] e. In one example, the context index increment may be set as a function of the TU / TB width or height.
[0584] f. In one example, the context index increment may be set as a function of the MTT depth.
[0585] g. In one example, the context index increment can be set to min(K, quadtree depth), where the function min(a, b) returns the smaller value between a and b, and K is an integer such as 4 or 5.
[0586] h. In one example, the above method can be applied to encode and decode specific binary bits used in matrix index encoding and decoding.
[0587] i. In one example, the bit indicating whether it is DCT2 is context encoded and the context modeling is based on the above method, such as the first bit of tu_mts_idx.
[0588] 34. It is proposed that context modeling for encoding and decoding can be shared to indicate whether it is TS or DCT2.
[0589] a. In one example, the context modeling (ie, how to select the context index) for encoding and decoding transform_skip_flag and the first bin of tu_mts_idx may be the same.
[0590] b. Alternatively, furthermore, the contexts used for encoding and decoding the two bins may be different or partially shared.
[0591] i. In one example, the first set of contexts can be used to encode and decode transform_skip_flag, and the second set of contexts can be used to encode and decode the first binary bit of tu_mts_idx. And these two sets are not shared.
[0592] c. Alternatively, furthermore, the context used to encode and decode these two bins may be fully shared.
[0593] 35. It is proposed to use a single context for some or all context-coded bins of the syntax element tu_mts_idx.
[0594] a. For example, a single context may be used for the first binary bit of tu_mts_idx.
[0595] b. For example, a single context may be used for all bins except the first bin of tu_mts_idx.
[0596] i. Alternatively, in addition, the first binary bit of tu_mts_idx can be context encoded and decoded using the context modeling method mentioned in point 24.
[0597] 1. In one example, depending on the transform size, the first bin may be context-decoded with N contexts (e.g., the context index increment may be set to ((Log 2(TbW)+Log 2(TbH))>>1)–2, such that N=4), and all remaining bins may be context-decoded with a single context.
[0598] c. Alternatively, furthermore, the first and second bins of tu_mts_idx may be context coded, while all remaining bins may be bypass coded.
[0599] d. In one example, depending on the transform size (e.g., N=4), the first bin can be context-coded with N contexts, while the second bin can be context-coded with a single context, and the remaining bins can be bypass-coded. For example, all bins of tu_mts_idx can be bypass-coded.
[0600] 36.The binarization of the transformation matrix can be defined in the following way:
[0601] a. In one example, the following table shows the mapped bins and the corresponding matrix.
[0602]
[0603]
[0604] b. In one example, the following table shows the mapped bins and the corresponding matrix.
[0605] Transformation Matrix Binary bit string TS 0 DCT2-DCT2 1 0 DST7-DST7 1 1 0 0 DCT8-DST7 1 1 0 1 DST7-DCT8 1 1 1 0 DCT8-DCT8 1 1 1 1
[0606] c. In one example, the following table shows the mapped bins and the corresponding matrix.
[0607] Transformation Matrix Binary bit string TS 1 DCT2-DCT2 0 1 DST7-DST7 0 0 0 0 DCT8-DST7 0 0 0 1 DST7-DCT8 0 0 1 0 DCT8-DCT8 0 0 1 1
[0608] d. In one example, the following table shows the mapped bins and the corresponding matrix.
[0609] Transformation Matrix Binary bit string TS 0 DCT2-DCT2 10 DST7-DST7 11
[0610] e. In one example, the following table shows the mapped bins and the corresponding matrix.
[0611] Transformation Matrix Binary bit string TS 0 DCT2-DCT2 11 DST7-DST7 10
[0612] f. In one example, the following table shows the mapped bins and the corresponding matrix.
[0613]
[0614]
[0615] g. In one example, the following table shows the mapped bins and the corresponding matrix.
[0616] Transformation Matrix Binary bit string TS 1 DCT2-DCT2 01 DST7-DST7 00
[0617] 37. The proposed MTS has only two candidate transform combinations: DCT2-DCT2 and DST7-DST7.
[0618] The examples described above may be combined in the context of the methods described below, such as methods 1705 , 1710 , 1715 , 1720 , 1725 , 1730 , 1735 , and 1740 , which may be implemented at a video encoder and / or decoder.
[0619] Fig.17A A flow chart of an exemplary method for video processing is shown. The method 1705 includes, at step 1706, making a decision regarding applying a transform to a current block of video based on the one or more decoded coefficients and in the absence of one or more transform indices.
[0620] The method 1705 includes, at step 1707, performing a conversion between the current block and a bitstream representation of the video based on the decision.
[0621] Fig. 17B A flow chart of an exemplary method for video processing is shown. The method 1710 includes, at step 1711, making a decision regarding applying a transform to a current block based on a representative set of coefficients and in the absence of one or more transform indices.
[0622] The method 1710 includes, based on the decision, performing a conversion between the current block and the bitstream representation, at step 1712. In some embodiments, the representative set of coefficients is included in a significant coefficient set, and each coefficient in the significant coefficient set is non-zero.
[0623] Fig. 17C A flow chart of an exemplary method for video processing is shown. The method 1715 includes, at step 1716, selecting one or more transforms in a transform set from a predefined transform set as part of an implicit selection of transforms (IST) mode.
[0624] The method 1715 includes, at step 1717, applying at least one of the one or more transforms to the current block as part of performing a conversion between the current block and a bitstream representation.
[0625] Fig.17D A flow chart of an exemplary method for video processing is shown. The method 1720 includes, at step 1721, based on a codec mode of a current block of a video, making a decision about applying implicit multiple transform set (MTS) processing to the codec mode, regardless of the value of an indication of enabling MTS processing at a sequence level, a picture level, a sub-picture level, a slice level, a slice group level, a slice level, a tile level, a codec tree unit (CTU) row level, or a CTU level in a bitstream representation of the video.
[0626] The method 1720 includes, based on the decision, performing a conversion between the current block and the bitstream representation, at step 1722. In some embodiments, implicit MTS processing includes using characteristics of the current block to determine a transform to use during conversion.
[0627] Fig.17E A flow chart of an exemplary method for video processing is shown. The method 1725 includes, at step 1726, making a decision regarding enabling intra-sub-block segmentation (ISP) mode or sub-block transform (SBT) mode for a video region based on enabling multiple transform set (MTS) processing for the video region of the video.
[0628] The method 1725 includes, at step 1727, performing a conversion between the video region and a bitstream representation of the video based on the decision.
[0629] Fig.17F A flow chart of an exemplary method for video processing is shown. The method 1730 includes, at step 1731, making a decision regarding enabling of multiple transform set (MTS) processing for a video region based on enabling of intra-sub-block segmentation (ISP) mode or sub-block transform (SBT) mode for the video region of the video.
[0630] The method 1730 includes, at step 1732, performing a conversion between the video region and a bitstream representation of the video based on the decision.
[0631] Figure 17G A flow chart of an exemplary method for video processing is shown. The method 1735 includes, at step 1736, performing a conversion between a current block of video and a bitstream representation of the video. In some embodiments, the bitstream representation includes a first syntax element that controls the use of implicit multiple transform set (MTS) processing of the current block and a second syntax element that controls the use of explicit MTS processing of the current block, the first syntax element is different from the second syntax element, and the implicit MTS processing includes using characteristics of the current block to determine a transform to use during the conversion.
[0632] Fig.17H A flow chart of an exemplary method for video processing is shown. The method 1740 includes, at step 1741, for a video region of a video, making a decision about applying implicit multiple transform set (MTS) processing and / or explicit MTS processing to the video region using one or more control parameters of a codec mode based on the video region.
[0633] The method 1740 includes, based on the decision, performing a conversion between the video region and a bitstream representation of the video at step 1742. In some embodiments, implicit MTS processing includes using characteristics of the current block to determine a transform to use during conversion.
[0634] 5 Example Implementations of the Disclosed Technology
[0635] In the following embodiments, additions are indicated using bold double brackets, for example, {{a}} indicates that "a" has been added, and deletions are indicated using bold double brackets, for example, [[a]] indicates that "a" has been deleted.
[0636] 5.1 Example #1
[0637] The working draft specified in JVET-N1001-v7 can be modified as follows.
[0638] 8.7.4 Transformation Processing of Scaling Transform Coefficients
[0639] 8.7.4.1 Overview
[0640] …
[0641] Table 8-17 – Specification of trTypeHor and trTypeVer depending on cu_sbt_horizontal_flag and cu_sbt_pos_flag
[0642] cu_sbt_horizontal_flag cu_sbt_pos_flag trTypeHor trTypeVer 0 0 {{nTbW>=8?0:}}2 1 0 1 1 1 1 0 1 {{nTbH>=8?0:}}2 1 1 1 1
[0643] …
[0644] 5.2 Example 2
[0645] The working draft specified in JVET-N1001-v8 can be modified as follows.
[0646] 7.3.7.10 Transformation unit syntax
[0647]
[0648] Alternatively, the following may apply:
[0649]
[0650] 5.3 Example 3
[0651] The working draft specified in JVET-N1001-v8 can be modified as follows.
[0652] 9.5.3.7 Fixed-length binarization
[0653] …
[0654] {{
[0655] 9.5.3.8 Binarization of tu_mts_idx
[0656] The input to this process is a request to binarize the syntax element tu_mts_idx.
[0657] The output of this process is the binarization of the syntax elements.
[0658] The binarization of the syntax element tu_mts_idx is specified in Table 9-14.
[0659] Table 0-14-binarization of tu_MTS_idx
[0660]
[0661] }}
[0662] 5.4 Example 4
[0663] The working draft specified in JVET-N1001-v8 can be modified as follows.
[0664] 9.5.4.2 Export process of ctxTable, ctxIdx and bypassFlag
[0665] 9.5.4.2.1 Overview
[0666] …
[0667] Table 0-17 - Assignment of ctxInc to syntax elements with context codec bits
[0668]
[0669] 5.5 Example 5
[0670] The working draft specified in JVET-N1001-v8 can be modified as follows.
[0671] 9.5.4.3Derivation of ctxTable, ctxIdx and bypassFlag
[0672] 9.5.4.3.1 Overview
[0673] …
[0674] Table 0-17 - Assignment of ctxInc to syntax elements with context codec bits
[0675]
[0676] 5.6 Example 6
[0677] The working draft specified in JVET-N1001-v8 can be modified as follows.
[0678] 9.5.4.4Derivation of ctxTable, ctxIdx and bypassFlag
[0679] 9.5.4.4.1 Overview
[0680] …
[0681] Table 0-17 - Assignment of ctxInc to syntax elements with context codec bits
[0682]
[0683] 5.7 Example 7
[0684] The working draft specified in JVET-N1001-v8 can be modified as follows.
[0685] 9.5.4.5 Derivation of ctxTable, ctxIdx and bypassFlag
[0686] 9.5.4.5.1 Overview
[0687] …
[0688] Table 0-17 - Assignment of ctxInc to syntax elements with context codec bits
[0689]
[0690] 5.8 Example 8
[0691] The working draft specified in JVET-N1001-v8 can be modified as follows.
[0692] 9.5.4.6Derivation of ctxTable, ctxIdx and bypassFlag
[0693] 9.5.4.6.1 Overview
[0694] …
[0695] Table 0-17 - Assignment of ctxInc to syntax elements with context codec bits
[0696]
[0697] Alternatively, the following may apply:
[0698]
[0699] 5.9 Example 9
[0700] The working draft specified in JVET-O2001-vC may be modified as follows.
[0701] 8.7.4 Transformation Processing of Scaling Transform Coefficients
[0702] 8.7.4.1 Overview
[0703] …
[0704] The variable implicitMtsEnabled is derived as follows:
[0705] – implicitMtsEnabled is set equal to 1 if [[sps_mts_enabled_flag is equal to 1 and]] one of the following conditions is true:
[0706] –IntDraSubPartitionsSplitType is not equal to ISP_NO_SPLIT
[0707] –cu_sbt_flag is equal to 1, and Max(nTbW, nTbH) is less than or equal to 32
[0708] –sps_explicit_mts_intra_enabled_flag is equal to 0, CuPredMode[0][xTbY][yTbY] is equal to MODE_INTRA, lfnst_idx[x0][y0] is equal to 0, and intra_mip_flag[x0][y0] is equal to 0
[0709] – Otherwise, implicitMtsEnabled is set equal to 0.
[0710] 5.10 Example 10
[0711] The working draft specified in JVET-O2001-vC may be modified as follows.
[0712] 8.7.4 Transformation Processing of Scaling Transform Coefficients
[0713] 8.7.4.1 Overview
[0714] …
[0715] The variable implicitMtsEnabled is derived as follows:
[0716] – implicitMtsEnabled is set equal to 1 if [[sps_mts_enabled_flag is equal to 1 and]] one of the following conditions is true:
[0717] –IntDraSubPartitionsSplitType is not equal to ISP_NO_SPLIT
[0718] –cu_sbt_flag is equal to 1, and Max(nTbW, nTbH) is less than or equal to 32
[0719] – {{sps_mts_enabled_flag is equal to 1 and}}sps_explicit_mts_intra_enabled_flag is equal to 0 and CupredMode[0][xTbY][yTbY] is equal to MODE_INTRA and lfnst_idx[x0][y0] is equal to 0 and intra_mip_flag[x0][y0] is equal to 0
[0720] – Otherwise, implicitMtsEnabled is set to 0.
[0721] 5.11 Example 11
[0722] The working draft specified in JVET-O2001-vC may be modified as follows.
[0723] 7.3.2.3 Sequence parameter set RBSP syntax
[0724] …
[0725]
[0726] 5.12 Example 12
[0727] The working draft specified in JVET-O2001-vC may be modified as follows.
[0728] 7.3.2.3 Sequence parameter set RBSP syntax
[0729] …
[0730]
[0731] 1.4.3.3 Sequence Parameter Set RBSP Semantics
[0732] [[sps_mts_enabled_flag equal to 1 specifies that sps_explicit_mts_intra_enabled_flag is present in the sequence parameter set RBSP syntax, and sps_explicit_mts_inter_enabled_flag is present in the sequence parameter set RBSP syntax. sps_mts_enabled_flag equal to 0 specifies that sps_explicit_mts_intra_enabled_flag is not present in the sequence parameter set RBSP syntax, and sps_explicit_mts_inter_enabled_flag is not present in the sequence parameter set RBSP syntax. ]]
[0733] 8.7.4 Transformation process of scaled transform coefficients
[0734] 8.7.4.1 Overview
[0735] …
[0736] The variable implicitMtsEnabled is derived as follows:
[0737] – implicitMtsEnabled is set equal to 1 if [[sps_mts_enabled_flag is equal to 1 and]] one of the following conditions is true:
[0738] –IntDraSubPartitionsSplitType is not equal to ISP_NO_SPLIT
[0739] –cu_sbt_flag is equal to 1, and Max(nTbW, nTbH) is less than or equal to 32
[0740] –sps_explicit_mts_intra_enabled_flag is equal to 0, CuPredMode[0][xTbY][yTbY] is equal to MODE_INTRA, lfnst_idx[x0][y0] is equal to 0, and intra_mip_flag[x0][y0] is equal to 0
[0741] – Otherwise, implicitMtsEnabled is set equal to 0.
[0742] 5.13 Example 13
[0743] The working draft specified in JVET-O2001-vC may be modified as follows.
[0744] 8.7.4 Transformation Processing of Scaling Transform Coefficients
[0745] 8.7.4.1 Overview
[0746] …
[0747] The variable implicitMtsEnabled is derived as follows:
[0748] – implicitMtsEnabled is set equal to 1 if [[sps_mts_enabled_flag is equal to 1 and]] one of the following conditions is true:
[0749] –IntDraSubPartitionsSplitType is not equal to ISP_NO_SPLIT
[0750] –cu_sbt_flag is equal to 1, Max(nTbW, nTbH) is less than or equal to 32
[0751] – {{sps_mts_enabled_flag is equal to 1 and}}sps_explicit_mts_intra_enabled_flag is equal to 0 and CuPredMode[0][xTbY][yTbY] is equal to MODE_INTRA and lfnst_idx[x0][y0] is equal to 0 and intra_mip_flag[x0][y0] is equal to 0
[0752] – Otherwise, implicitMtsEnabled is set equal to 0.
[0753] 5.14 Example 14
[0754] The working draft specified in JVET-O2001-vC may be modified as follows.
[0755] 7.3.8.5 Codec unit syntax
[0756]
[0757] 5.15 Example 15
[0758] This embodiment applies transform coefficient zeroing according to the SPS flag sps_mts_enabled_flag.
[0759] The working draft specified in JVET-O2001-v14 may be modified as follows.
[0760] 7.3.8.11 Residual Codec Syntax
[0761]
[0762]
[0763] In some embodiments, the following technical solutions can be implemented:
[0764] A1. A method for video processing, comprising: making a decision about applying a transform to a current block of a video based on one or more decoded coefficients and in the absence of one or more transform indices; and based on the decision, performing a conversion between the current block and a bitstream representation of the video.
[0765] A2. The method of solution A1, wherein the one or more decoded coefficients are associated with one or more representative blocks in the same color component as the current block.
[0766] A3. The method of solution A1, wherein the one or more decoded coefficients are associated with one or more representative blocks of color components other than the color components of the current block.
[0767] A4. The method of solution A1, wherein the type of transform is based on decoded coefficients associated with the current block.
[0768] A5. The method of solution A1, wherein the type of transform is based on decoded coefficients associated with a second block different from the current block.
[0769] A6. The method of solution A5, wherein the second block is a neighbor of the current block.
[0770] A7. The method of solution A5, wherein the current block and the second block are encoded and decoded using the same intra prediction mode.
[0771] A8. The method of solution A5, wherein the size of the current block is the same as the size of the second block.
[0772] A9. The method of solution A5, wherein the current block is in a luma component, and wherein the second block is in a chroma component.
[0773] A10. The method of solution A1, wherein the type of transform is based on a plurality of decoded coefficients associated with a plurality of blocks.
[0774] A11. The method of solution A10, wherein the plurality of blocks includes the current block.
[0775] A12. The method of solution A10 or A11, wherein the plurality of blocks includes at least one neighboring block of the current block.
[0776] A13. The method of solution A10, wherein the plurality of blocks includes the last N decoded blocks that precede the current block in decoding order, wherein each of the last N decoded blocks satisfies the condition, and wherein N is an integer greater than 1.
[0777] A14. The method of solution A13, wherein the condition includes that each of the last N decoded blocks is encoded and decoded using the same intra-frame prediction mode as the current block.
[0778] A15. The method of solution A13, wherein the condition includes that each of the last N decoded blocks has the same size as the current block.
[0779] A16. A method for video processing, comprising: making a decision about applying a transform to a current block based on a representative coefficient set and in the absence of one or more transform indices; and based on the decision, performing a conversion between the current block and a bitstream representation, wherein the representative coefficient set is included in a significant coefficient set and wherein each coefficient in the significant coefficient set is non-zero.
[0780] A17. The method of solution A16, wherein each coefficient in the effective coefficient set is included in the representative coefficient set.
[0781] A18. The method of solution A17, wherein the decision further comprises determining a transform type for the current block.
[0782] A19. The method of solution A16, wherein at least one coefficient in the set of valid coefficients is excluded from the set of representative coefficients.
[0783] A20. The method of solution A19, wherein the at least one coefficient is greater than or equal to a predetermined threshold.
[0784] A21. The method of solution A19, wherein the at least one coefficient is less than or equal to a predetermined threshold.
[0785] A22. The method of solution A19, wherein the at least one coefficient comprises the first K coefficients in the set of significant coefficients in decoding order, where K is an integer and where K≥1.
[0786] A23. The method of solution A19, wherein the at least one coefficient comprises the last K coefficients in the set of significant coefficients in decoding order, where K is an integer and where K ≥ 1.
[0787] A24. The method of solution A16, wherein the representative set of coefficients includes coefficients at one or more predefined positions in the current block.
[0788] A25. The method of solution A16, wherein the representative set of coefficients includes coefficients at one or more predetermined positions in the coefficient scanning order.
[0789] A26. The method of solution A16, wherein the representative set of coefficients includes at least one zero coefficient.
[0790] A27. The method of solution A16, wherein the transform comprises a horizontal transform and a vertical transform, and wherein the type of horizontal transform or the type of vertical transform is based on a function of the representative coefficient set.
[0791] A28. The method of solution A27, wherein the function is a cardinality of the set of representative coefficients.
[0792] A29. The method of solution A27, wherein the function is based on the sum of the values of each coefficient of the representative set of coefficients.
[0793] A30. The method of solution A27, wherein the function is based on the sum of the absolute values of each coefficient of the representative set of coefficients.
[0794] A31. The method of solution A27, wherein the function is a parity check of multiple coefficients in the representative coefficient set.
[0795] A32. The method of solution A31, wherein, when the parity check is even, the horizontal transform comprises a first transform and the vertical transform comprises a second transform, and wherein, when the parity check is odd, the horizontal transform comprises a third transform and the vertical transform comprises a fourth transform.
[0796] A33. The method of solution A31, wherein, when the current picture or the current slice including the current block is intra-frame encoded and decoded, when the parity check is an even number, the horizontal transform includes a first transform and the vertical transform includes a second transform, and when the parity check is an odd number, the horizontal transform includes a third transform and the vertical transform includes a fourth transform, and when the current picture or the current slice is not intra-frame encoded and decoded, when the parity check is an even number, the horizontal transform includes a third transform and the vertical transform includes a fourth transform, and when the parity check is an odd number, the horizontal transform includes the first transform and the vertical transform includes the second transform.
[0797] A34. The method of solution A32 or A33, wherein the type of the first transform is the same as the type of the second transform.
[0798] A35. The method of solution A32 or A33, wherein the type of the first transform is different from the type of the second transform.
[0799] A36. The method of solution A32 or A33, wherein the type of the third transform is the same as the type of the fourth transform.
[0800] A37. The method of solution A32 or A33, wherein the type of the third transform is different from the type of the fourth transform.
[0801] A38. The method of solution A31, wherein an I slice or I picture includes an intra-coded current block, wherein, when the parity check is even, the transform is a discrete sine transform of type VII (DST-VII), and wherein, when the parity check is odd, the transform is a discrete cosine transform of type II (DCT-II).
[0802] A39. The method of solution A31, wherein the P / B slice or P / B picture includes an intra-coded current block, wherein, when the parity check is even, the transform is a discrete cosine transform of type II (DCT-II), and wherein, when the parity check is odd, the transform is a discrete sine transform of type VII (DST-VII).
[0803] A40. The method of solution A31, wherein the type of transform is based on a scan area comprising a minimum rectangle covering the set of significant coefficients.
[0804] A41. The method of solution A29 or A30, wherein, when the sum is less than a threshold, the horizontal transform comprises a first transform and the vertical transform comprises a second transform, and wherein, when the sum is greater than or equal to the threshold, the horizontal transform comprises a third transform and the vertical transform comprises a fourth transform.
[0805] A42. The method of solution A41, wherein the threshold is based on the size of the current block.
[0806] A43. The method of solution A41, wherein the threshold is based on a quantization parameter associated with the current block.
[0807] A44. A method of any one of solutions A32 to A43, wherein each of the first, second, third and fourth transforms is one of a discrete cosine transform (DCT) of type II (DCT-II), DCT-VIII, a discrete sine transform (DST) of type VII (DST-VII) or DST-VIII.
[0808] A45. A method for video processing, comprising: selecting one or more transforms in a transform set from a predefined transform set as part of an implicit selection of transforms (IST) mode; and applying at least one of the one or more transforms to a current block as part of performing a conversion between the current block and a bitstream representation.
[0809] A46. The method of solution A45, wherein the transform set comprises a vertical transform set and a horizontal transform set.
[0810] A47. The method of solution A46 wherein the set of vertical transforms is the same as the set of horizontal transforms.
[0811] A48. The method of solution A46 wherein the set of vertical transforms is different from the set of horizontal transforms.
[0812] A49. The method of solution A45, wherein the transform set includes a discrete cosine transform of type II (DCT-II) and a discrete sine transform of type VII (DCT-VII).
[0813] A50. The method of solution A49, wherein the set of transformations also includes an identity transformation.
[0814] A51. The method of solution A45, wherein the transform set is based on at least one of: codec information of the current block, a color component, a partition structure of the current block, a slice type of a current slice including the current block, and a picture type of a current picture including the current block.
[0815] A52. The method of solution A51, wherein the set of transforms is based on the size of the current block.
[0816] A53. The method of solution A51, wherein, when the current block is intra-coded, the transform set includes a discrete cosine transform of type II (DCT-II) and a discrete sine transform of type VII (DST-VII).
[0817] A54. The method of solution A51, wherein when the current block is encoded using intra block copy (IBC) mode, the transform set includes a discrete sine transform of type VII (DST-VII) and an identity transform.
[0818] A55. The method of any one of solutions A1 to A54, wherein the current block is an intra-coded block.
[0819] A56. The method of any of Solutions A1 to A54, wherein the set of coefficients associated with the current block is constrained.
[0820] A57. The method of solution A56, wherein each coefficient in the coefficient set that is outside a predetermined region of the current block is zero.
[0821] A58. The method of any of Solutions A1 to A54, wherein the current block is configured to use a default transform when another transform is not selected.
[0822] A59. The method of solution A58, wherein the default transform is a discrete cosine transform of type II (DCT-II).
[0823] A60. A method for video processing, comprising: based on a codec mode of a current block of a video, making a decision about applying implicit multiple transform set (MTS) processing to the codec mode, regardless of the value of an indication of enabling MTS processing at a sequence level, a picture level, a sub-picture level, a slice level, a slice group level, a slice level, a tile level, a codec tree unit (CTU) row level, or a CTU level in a bitstream representation of the video; and performing a conversion between the current block and the bitstream representation based on the decision, wherein the implicit MTS processing includes using characteristics of the current block to determine a transform to be used during the conversion.
[0824] A61. The method of solution A60, wherein when the codec mode is intra sub-block segmentation (ISP) mode and the MTS processing is disabled, implicit MTS processing is applied.
[0825] A62. The method of solution A60, wherein when the codec mode is sub-block transform (SBT) mode and the MTS processing is disabled, implicit MTS processing is applied.
[0826] A63. A method for video processing, comprising: making a decision regarding enabling intra-sub-block segmentation (ISP) mode or sub-block transform (SBT) mode for a video region based on enabling multiple transform set (MTS) processing for a video region of the video; and based on the decision, performing conversion between the video region and a bitstream representation of the video.
[0827] A64. The method of solution A63, wherein the video region comprises a sequence, a video, a picture, a slice, a slice group, a slice, a tile, a sub-picture, a codec tree unit (CTU) row, a CTU, a codec unit (CU), or a block.
[0828] A65. The method of solution A63 or A64, wherein when MTS processing is disabled, ISP mode and / or SBT mode is disabled.
[0829] A66. The method of solution A63 or A64, wherein, when MTS processing is enabled, the bitstream representation includes explicit flags for ISP mode and / or SBT mode.
[0830] A67. The method of solution A63 or A64, wherein when implicit MTS processing is disabled, ISP mode and / or SBT mode is disabled.
[0831] A68. A method for video processing, comprising: making a decision about enabling multiple transform set (MTS) processing for a video region based on enabling an intra-sub-block partitioning (ISP) mode or a sub-block transform (SBT) mode for the video region; and based on the decision, performing conversion between the video region and a bitstream representation of the video.
[0832] A69. The method of solution A68, wherein the video region comprises a sequence, a video, a picture, a slice, a slice group, a slice, a tile, a sub-picture, a codec tree unit (CTU) row, a CTU, a codec unit (CU), or a block.
[0833] A70. The method of solution A68 or A69, wherein MTS processing is enabled when ISP mode and / or SBT mode is disabled.
[0834] A71. A method for video processing, comprising performing a conversion between a current block of video and a bitstream representation of the video, wherein the bitstream representation comprises a first syntax element and a second syntax element, the first syntax element controlling the use of implicit multiple transform set (MTS) processing of the current block, and the second syntax element controlling the use of explicit MTS processing of the current block, and wherein the first syntax element is different from the second syntax element, wherein the implicit MTS processing comprises using characteristics of the current block to determine a transform to use during the conversion.
[0835] A72. The method of solution A71, wherein the first syntax element and the second syntax element are signaled at sequence level in the bitstream representation.
[0836] A73. A method for video processing, comprising: for a video region of a video, using one or more control parameters of a codec mode based on the video region, making a decision about applying implicit multiple transform set (MTS) processing and / or explicit MTS processing to the video region; and based on the decision, performing conversion between the video region and a bitstream representation of the video, wherein the implicit MTS processing includes using characteristics of a current block to determine the transform used during the conversion.
[0837] A74. An apparatus in a video system, comprising a processor and a non-transitory memory having instructions thereon, wherein the instructions, when executed by the processor, cause the processor to implement the method in any one of solutions A1 to A73.
[0838] A75. A computer program product stored on a non-transitory computer-readable medium, the computer program product comprising program code for executing the method in any one of solutions A1 to A73.
[0839] Fig.181 is a block diagram of a video processing device 1800. Device 1800 may be used to implement one or more methods described herein. Device 1800 may be embodied in a smartphone, a tablet computer, a computer, an IoT receiver, etc. Device 1800 may include one or more processors 1802, one or more memories 1804, and video processing hardware 1806. (Multiple) processors 1802 may be configured to implement one or more methods described in this document (including but not limited to methods 1705, 1710, 1715, 1720, 1725, 1730, 1735, and 1740). Memory (multiple memories) 1804 may be used to store data and code for implementing the methods and techniques described herein. Video processing hardware 1806 may be used to implement some of the techniques described in this document in hardware circuits.
[0840] In some embodiments, the video encoding and decoding method can be implemented using a device implemented on a hardware platform, such as reference Fig.18 described.
[0841] Some embodiments of the disclosed technology include making a decision or determination to enable a video processing tool or mode. In an example, when a video processing tool or mode is enabled, the encoder will use or implement the tool or mode in the processing of a video block, but will not necessarily modify the resulting bitstream based on the use of the tool or mode. That is, when a video processing tool or mode is enabled based on a decision or determination, the conversion from a video block to a bitstream representation of a video will use the video processing tool or mode. In another example, when a video processing tool or mode is enabled, a decoder will process the bitstream using the knowledge that the bitstream has been modified based on the video processing tool or mode. That is, the conversion from the bitstream representation of a video to a video block will be performed using a video processing tool or mode enabled based on a decision or determination.
[0842] Some embodiments of the disclosed technology include making a decision or determination to disable a video processing tool or mode. In one example, when the video processing tool or mode is disabled, the encoder will not use the tool or mode in the conversion of video blocks to a bitstream representation of the video. In another example, when the video processing tool or mode is disabled, the decoder will process the bitstream with the knowledge that the bitstream has not been modified using the video processing tool or mode that was enabled based on the decision or determination.
[0843] Fig.191 is a block diagram illustrating an example video processing system 1900 in which various techniques disclosed herein may be implemented. Various implementations may include some or all of the components of system 1900. System 1900 may include an input 1902 for receiving video content. The video content may be received in a raw or uncompressed format, such as 8 or 10 bit multi-component pixel values, or may be in a compressed or encoded format. Input 1902 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 networks, etc.) and wireless interfaces (such as wireless networks or cellular interfaces).
[0844] System 1900 may include a codec component 1904, which may implement various codecs or encoding methods described in this document. Codec component 1904 may reduce the average bit rate of the video from the input 1902 of codec component 1904 to the output to generate a codec representation of the video. Therefore, codec technology is sometimes referred to as video compression or video code conversion technology. The output of codec component 1904 may be stored or transmitted by a connected communication (as represented by component 1906). Component 1908 may use the bitstream (or codec) representation of the storage or communication of the video received at input end 1902 to generate pixel values or displayable video sent to display interface 1910. The process of generating user-visible video from bitstream representation is sometimes referred to as video decompression. In addition, although some video processing operations are referred to as "codec" operations or tools, it should be understood that codec tools or operations are used at encoders, and corresponding decoding tools or operations that reverse the codec results will be performed by decoders.
[0845] Examples of peripheral bus interfaces or display interfaces may include Universal Serial Bus (USB) or High Definition Multimedia Interface (HDMI) or Display Port, etc. Examples of storage interfaces include SATA (Serial Advanced Technology Attachment), PCI, IDE interfaces, etc. The technology described in this document may be embodied in various electronic devices, such as mobile phones, laptops, smartphones, or other devices capable of performing digital data processing and / or video display.
[0846] From the above, it will be appreciated that specific embodiments of the presently disclosed technology have been described herein for purposes of illustration, but that various modifications may be made without departing from the scope of the invention. Accordingly, the presently disclosed technology is not limited except as defined by the appended claims.
[0847] The implementation of the subject matter and functional operations described in this patent document can be implemented in various systems, digital electronic circuits, or in computer software, firmware or hardware (including the structures disclosed in this specification and their structural equivalents), or in a combination of one or more of them. The implementation of the subject matter described in this specification can be implemented as one or more computer program products, that is, one or more modules of computer program instructions encoded on a tangible and non-transitory computer-readable medium, for execution by a data processing device or controlling the operation of the data processing device. The computer-readable medium can be a machine-readable storage device, a machine-readable storage substrate, a storage device, a material combination that implements a machine-readable propagation signal, or a combination of one or more of them. The term "data processing unit" or "data processing device" includes all devices, equipment and machines for processing data, including, for example, a programmable processor, a computer or multiple processors or computers. In addition to hardware, the device may include code that creates an execution environment for the computer program in question, for example, code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them.
[0848] A computer program (also referred to as a program, software, software application, script, or code) may be written in any form of programming language, including compiled or interpreted languages, and it may be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program may be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files storing one or more modules, subroutines, or portions of code). A computer program may be deployed to be executed on a single computer or on multiple computers located at one site or distributed across multiple sites and interconnected by a communications network.
[0849] The processes and logic flows described in this specification can be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output. These processes and logic flows can also be performed by special purpose logic circuits, and the device can also be implemented as a special purpose logic circuit, for example, an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit).
[0850] For example, processors suitable for executing computer programs include general and special purpose microprocessors, and any one or more processors of any type of digital computer. Typically, the processor will receive instructions and data from a read-only memory or a random access memory or both. The basic elements of a computer are a processor for executing instructions and one or more storage devices for storing instructions and data. Typically, a computer will also include or be operably coupled to one or more large-capacity storage devices for storing data, such as magnetic disks, magneto-optical disks, or optical disks, to receive data from or transmit data to, or both. However, a computer does not need to have such a device. Computer-readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media, and storage devices, including, for example, semiconductor storage devices, such as EPROM, EEPROM, and flash memory devices. The processor and memory can be supplemented or incorporated therein by dedicated logic circuits.
[0851] Although this patent document contains many details, these details should not be interpreted as limitations on any invention or the scope of the claimed protection, but rather as descriptions of features that may be specific to a particular embodiment of a particular invention. Certain features described in this patent document in the context of a separate embodiment may also be implemented in combination in a single embodiment. On the contrary, the various features described in the context of a single embodiment may also be implemented separately in multiple embodiments or in any suitable sub-combination. In addition, although features may be described above as working in certain combinations, and even initially claimed as such, in some cases, one or more features from the claimed combination may be deleted from the combination, and the claimed combination may point to a variant of a sub-combination or a sub-combination.
[0852] Similarly, while operations are described in a particular order in the drawings, this should not be understood as requiring that the operations be performed in the particular order or order shown, or that all of the illustrated operations be performed, in order to achieve the desired results. Furthermore, the separation of various system components in the embodiments described in this patent document should not be understood as requiring such separation in all embodiments.
[0853] Only a few implementations and examples are described, and other implementations, enhancements, and variations may be made based on what is described and illustrated in this patent document.
Claims
1. A method for processing video data, comprising: For a first conversion between a current block of a video and a bitstream of the video, based on a representative set of coefficients of the current block and / or one or more neighboring blocks of the current block and in the absence of one or more transform indices, making a decision regarding one or more transform matrices to apply to the current block in a transform process, wherein the one or more transform matrices include at least one of a horizontal transform matrix or a vertical transform matrix; and performing the first conversion based on the decision, wherein the horizontal transform matrix or the vertical transform matrix is determined based on the parity of the number of representative coefficients in the representative coefficient set, and The current block applies an implicitly selected transform to a main transform, wherein when the current block is an intra-frame coded block with a derivative tree DT, the implicitly selected transform is not applied to the current block, wherein the implicitly selected transform is applied under at least one condition including that the height and width of the current block are not greater than a threshold, and wherein the threshold is a positive integer.
2. The method according to claim 1, wherein: The representative coefficient set includes a portion of all coefficients of the current block and / or the one or more neighboring blocks.
3. The method according to claim 1, wherein: The one or more transform matrices are based on a function of the representative set of coefficients, and an output of the function is the number of coefficients in the representative set of coefficients.
4. The method according to claim 1, wherein: The horizontal transformation matrix is the same as the vertical transformation matrix.
5. The method according to claim 4, wherein: The horizontal transform matrix and the vertical transform matrix are one of a discrete cosine transform DCT of type II (DCT-II) or a discrete sine transform DST of type VII (DST-VII).
6. The method according to claim 1, wherein: The horizontal transformation matrix is different from the vertical transformation matrix.
7. The method according to claim 6, wherein: The horizontal transformation matrix is a discrete sine transform DST of type VII (DST-VII), and the vertical transformation matrix is a discrete cosine transform DCT of type II (DCT-II).
8. The method according to claim 1, wherein: The current block is encoded and decoded in a specific mode, wherein the specific mode includes an intra mode or an inter mode.
9. The method of claim 1, further comprising performing conversion between a second block of the video to which the implicitly selected transform is not applied and the bitstream, wherein A default discrete cosine transform DCT of type II (DCT-II) is used for the second block.
10. The method of claim 1, further comprising performing conversion between a third block of a specific color format of the video and the bitstream, wherein: The third block is encoded and decoded in an intra block copy mode using reference samples in the same video region as the third block and a transform skip mode is allowed to be applied to the third block.
11. The method according to claim 1, wherein: The first conversion includes encoding the current block into the bitstream.
12. The method according to claim 1, wherein: The first conversion includes decoding the current block from the bitstream.
13. The method according to claim 1, comprising: Based on the one or more decoded coefficients and in the absence of one or more transform indices, making a decision regarding applying a transform to a current block of the video; and Based on the decision, a second conversion between the current block and a bitstream of a video is performed.
14. The method according to claim 13, wherein: The one or more decoded coefficients are associated with one or more representative blocks of color components that are the same as color components of the current block.
15. The method according to claim 13, wherein: The one or more decoded coefficients are associated with one or more representative blocks of color components that are different from the color components of the current block.
16. The method according to claim 13, wherein: The type of transform is based on decoded coefficients associated with the current block.
17. The method according to claim 13, wherein: The type of transform is based on decoded coefficients associated with a second block different from the current block.
18. The method according to claim 17, wherein: The second block is a neighbor of the current block.
19. The method of claim 17, wherein: The current block and the second block are encoded and decoded using the same intra prediction mode.
20. The method according to claim 17, wherein: The size of the current block is the same as the size of the second block.
21. The method according to claim 17, wherein: The current block is in a luma component, and wherein the second block is in a chroma component.
22. The method according to claim 13, wherein: The type of transform is based on a plurality of decoded coefficients associated with a plurality of blocks.
23. The method according to claim 22, wherein: The plurality of blocks include the current block.
24. The method according to claim 22 or 23, wherein: The plurality of blocks include at least one neighboring block of the current block.
25. The method according to claim 22, wherein: The plurality of blocks include last N decoded blocks preceding the current block in a decoding order, wherein each of the last N decoded blocks satisfies a condition, and wherein N is an integer greater than 1.
26. The method according to claim 25, wherein: The condition includes that each of the last N decoded blocks is encoded and decoded using the same intra prediction mode as the current block.
27. The method according to claim 25, wherein: The condition includes that each of the last N decoded blocks has the same size as the current block.
28. The method of claim 1, comprising: Based on the representative set of coefficients and in the absence of one or more transform indices, making a decision regarding applying a transform to a current block; and Based on the decision, a third conversion between the current block and a bitstream is performed, wherein the representative coefficient set is included in a significant coefficient set, and wherein each coefficient in the significant coefficient set is non-zero.
29. The method according to claim 28, wherein: Each coefficient in the significant coefficient set is included in the representative coefficient set.
30. The method of claim 29, wherein: The decision also includes determining a transform type for the current block.
31. The method of claim 28, wherein: At least one coefficient in the significant coefficient set is excluded from the representative coefficient set.
32. The method according to claim 31, wherein: The at least one coefficient is greater than or equal to a predetermined threshold.
33. The method according to claim 31, wherein: The at least one coefficient is less than or equal to a predetermined threshold.
34. The method of claim 31, wherein: The at least one coefficient comprises first K coefficients in the set of significant coefficients in decoding order, where K is an integer, and where K≧1.
35. The method of claim 31, wherein: The at least one coefficient comprises last K coefficients in the set of significant coefficients in decoding order, where K is an integer, and where K≧1.
36. The method of claim 28, wherein: The representative coefficient set includes coefficients at one or more predefined positions in the current block.
37. The method of claim 28, wherein: The representative coefficient set includes coefficients at one or more predetermined positions in a coefficient scanning order.
38. The method of claim 28, wherein: The representative set of coefficients includes at least one zero coefficient.
39. The method of claim 28, wherein: The transform comprises a horizontal transform and a vertical transform, and wherein a type of the horizontal transform or a type of the vertical transform is based on a function of the representative coefficient set.
40. The method of claim 39, wherein: The function is a cardinality of the set of representative coefficients.
41. The method of claim 39, wherein: The function is based on a sum of the values of each coefficient of the representative set of coefficients.
42. The method of claim 39, wherein: The function is based on a sum of the absolute values of each coefficient of the representative set of coefficients.
43. The method of claim 39, wherein: The function is a parity check of a plurality of coefficients in the representative set of coefficients.
44. The method of claim 43, wherein: When the parity check is even, the horizontal transform comprises a first transform and the vertical transform comprises a second transform, and wherein when the parity check is odd, the horizontal transform comprises a third transform and the vertical transform comprises a fourth transform.
45. The method of claim 43, wherein When the current picture or the current slice including the current block is intra-coded, When the parity check is an even number, the horizontal transform includes a first transform and the vertical transform includes a second transform, and when the parity check is an odd number, the horizontal transform includes a third transform and the vertical transform includes a fourth transform, and When the current image or the current slice is not intra-coded, When the parity check is an even number, the horizontal transform includes a third transform and the vertical transform includes a fourth transform, and when the parity check is an odd number, the horizontal transform includes a first transform and the vertical transform includes a second transform.
46. The method according to claim 44 or 45, wherein: The type of the first transform is the same as the type of the second transform.
47. The method according to claim 44 or 45, wherein: The type of the first transform is different from the type of the second transform.
48. The method of claim 44 or 45, wherein: The type of the third transform is the same as the type of the fourth transform.
49. The method according to claim 44 or 45, wherein: The type of the third transform is different from the type of the fourth transform.
50. The method of claim 43, wherein: An I slice or an I picture comprises an intra-coded current block, wherein when the parity is even, the transform is a discrete sine transform DST-VII of type VII, and wherein when the parity is odd, the transform is a discrete cosine transform DCT-II of type II.
51. The method of claim 43, wherein: The P / B slice or P / B picture includes a current block that is intra-coded, wherein, when the parity check is an even number, the transform is a discrete cosine transform DCT-II of type II, and wherein when the parity check is an odd number, the transform is a discrete sine transform DST-VII of type VII.
52. The method of claim 43, wherein: The type of transform is based on a scan area comprising a smallest rectangle covering the set of significant coefficients.
53. The method of claim 41 or 42, wherein: When the sum is less than a threshold, the horizontal transform comprises a first transform and the vertical transform comprises a second transform, and wherein when the sum is greater than or equal to a threshold, the horizontal transform comprises a third transform and the vertical transform comprises a fourth transform.
54. The method of claim 53, wherein: The threshold is based on the size of the current block.
55. The method of claim 53, wherein: The threshold is based on a quantization parameter associated with the current block.
56. The method of claim 44, wherein: Each of the first, second, third and fourth transforms is one of a discrete cosine transform DCT of type II (DCT-II), DCT-VIII, a discrete sine transform DST of type VII (DST-VII) or DST-VIII.
57. The method of claim 1, comprising: Selecting one or more transforms in a transform set from a predefined transform set as part of an implicit selection of transforms (IST) mode; as well as At least one of the one or more transforms is applied to a current block as part of performing a fourth conversion between the current block and a bitstream.
58. The method of claim 57, wherein: The transformation set includes a vertical transformation set and a horizontal transformation set.
59. The method of claim 58, wherein: The vertical transform set is the same as the horizontal transform set.
60. The method of claim 58, wherein: The vertical transform set is different from the horizontal transform set.
61. The method of claim 57, wherein: The transform set includes a discrete cosine transform DCT-II of type II and a discrete sine transform DCT-VII of type VII.
62. The method of claim 61, wherein: The set of transformations also includes an identity transformation.
63. The method of claim 57, wherein: The transform set is based on at least one of: codec information of the current block, a color component, a partition structure of the current block, a slice type of a current slice including the current block, and a picture type of a current picture including the current block.
64. The method of claim 63, wherein: The transform set is based on the size of the current block.
65. The method of claim 63, wherein: When the current block is intra-coded, the transform set includes a discrete cosine transform DCT-II of type II and a discrete sine transform DST-VII of type VII.
66. The method of claim 63, wherein: When the intra block copy (IBC) mode is used to encode and decode the current block, the transform set includes a discrete sine transform (DST-VII) of type VII and an identity transform.
67. The method of claim 13, wherein: The current block is an intra-frame coded block.
68. The method of claim 13, wherein: The set of coefficients associated with the current block is constrained.
69. The method of claim 68, wherein: Each coefficient in the coefficient set that is outside a predetermined area of the current block is zero.
70. The method of claim 13, wherein: The current block is configured to use a default transform when another transform is not selected.
71. The method of claim 70, wherein: The default transform is the discrete cosine transform DCT-II of type II.
72. The method of claim 1, comprising: making a decision about applying implicit multiple transform set (MTS) processing to the codec mode based on a codec mode of a current block of the video, regardless of a value of an indication enabling MTS processing at a sequence level, a picture level, a sub-picture level, a slice level, a slice group level, a slice level, a tile level, a codec tree unit (CTU) row level, or a CTU level in a bitstream of the video; and Based on the decision, performing a fifth conversion between the current block and the bitstream, Therein, implicit MTS processing includes using characteristics of the current block to determine a transform used during a fifth conversion.
73. The method of claim 72, wherein: The implicit MTS processing is applied when the codec mode is intra sub-block segmentation (ISP) mode and the MTS processing is disabled.
74. The method of claim 72, wherein: When the coding mode is the sub-block transform (SBT) mode and the MTS processing is disabled, the implicit MTS processing is applied.
75. The method of claim 1, comprising: Based on the enabling of multiple transform set (MTS) processing for a video region of the video, making a decision regarding enabling of an intra-sub-block segmentation (ISP) mode or a sub-block transform (SBT) mode for the video region; and Based on the decision, a sixth conversion between the video region and a bitstream of the video is performed.
76. The method of claim 75, wherein: The video region includes a sequence, a video, a picture, a slice, a slice group, a slice, a tile, a sub-picture, a codec tree unit CTU row, a CTU, a codec unit CU or a block.
77. The method of claim 75 or 76, wherein: When MTS processing is disabled, ISP mode and / or SBT mode are disabled.
78. The method of claim 75 or 76, wherein: When the MTS processing is enabled, the bitstream includes explicit flags for the ISP mode and / or the SBT mode.
79. The method of claim 75 or 76, wherein: When implicit MTS processing is disabled, ISP mode and / or SBT mode are disabled.
80. The method of claim 1, comprising: Based on the enabling of intra-sub-block segmentation ISP mode or sub-block transform SBT mode for a video region of the video, a decision is made regarding enabling of multiple transform set (MTS) processing for the video region; and Based on the decision, a seventh conversion between the video region and a bitstream of the video is performed.
81. The method of claim 80, wherein: The video region includes a sequence, a video, a picture, a slice, a slice group, a slice, a tile, a sub-picture, a codec tree unit CTU row, a CTU, a codec unit CU or a block.
82. The method of claim 80 or 81, wherein: When the ISP mode and / or the SBT mode are disabled, the MTS processing is enabled.
83. The method of claim 1, comprising: performing an eighth conversion between the current block of video and a bitstream of the video, wherein the bitstream comprises a first syntax element and a second syntax element, the first syntax element controlling use of implicit multiple transform set (MTS) processing of the current block and the second syntax element controlling use of explicit MTS processing of the current block, wherein the first syntax element is different from the second syntax element, and Therein, implicit MTS processing includes using characteristics of the current block to determine a transform used during an eighth conversion.
84. The method of claim 83, wherein: The first syntax element and the second syntax element are signaled at a sequence level in the bitstream.
85. The method of claim 1, comprising: For a video region of a video, using one or more control parameters based on a codec mode of the video region, making a decision about applying implicit multiple transform set (MTS) processing and / or explicit MTS processing to the video region; as well as Based on the decision, performing a ninth conversion between the video region and a bitstream of the video, Among other things, implicit MTS processing includes using characteristics of the current block to determine the transform used during the ninth conversion.
86. An apparatus for processing video data, comprising a processor and a non-transitory memory having instructions thereon, wherein: The instructions, when executed by the processor, cause the processor to: For conversion between a current block of a video and a bitstream of the video, making a decision about one or more transform matrices to apply to the current block in a transform process based on a representative set of coefficients of the current block and / or one or more neighboring blocks of the current block and in the absence of one or more transform indices, wherein the one or more transform matrices include at least one of a horizontal transform matrix or a vertical transform matrix; and performing the conversion based on the decision, wherein the horizontal transform matrix or the vertical transform matrix is determined based on the parity of the number of representative coefficients in the representative coefficient set, and The current block applies an implicitly selected transform to a main transform, wherein when the current block is an intra-frame coded block with a derivative tree DT, the implicitly selected transform is not applied to the current block, wherein the implicitly selected transform is applied under at least one condition including that the height and width of the current block are not greater than a threshold, and wherein the threshold is a positive integer.
87. The apparatus of claim 86, wherein: The representative coefficient set includes a portion of all coefficients of the current block and / or the one or more neighboring blocks, and the one or more transform matrices are based on a function of the representative coefficient set, the output of the function being the number of coefficients in the representative coefficient set, and The horizontal transformation matrix is a discrete sine transform DST of type VII (DST-VII), and the vertical transformation matrix is a discrete cosine transform DCT of type II (DCT-II).
88. A non-transitory computer-readable storage medium storing instructions that cause a processor to: For conversion between a current block of a video and a bitstream of the video, making a decision about one or more transform matrices to apply to the current block in a transform process based on a representative set of coefficients of the current block and / or one or more neighboring blocks of the current block and in the absence of one or more transform indices, wherein The one or more transform matrices include at least one of a horizontal transform matrix or a vertical transform matrix; and performing the conversion based on the decision, wherein the horizontal transform matrix or the vertical transform matrix is determined based on the parity of the number of representative coefficients in the representative coefficient set, and The current block applies an implicitly selected transform to a main transform, wherein when the current block is an intra-frame coded block with a derivative tree DT, the implicitly selected transform is not applied to the current block, wherein the implicitly selected transform is applied under at least one condition including that the height and width of the current block are not greater than a threshold, and wherein the threshold is a positive integer.
89. The non-transitory computer-readable storage medium of claim 88, wherein: The representative coefficient set includes a portion of all coefficients of the current block and / or the one or more neighboring blocks, and the one or more transform matrices are based on a function of the representative coefficient set, the output of the function being the number of coefficients in the representative coefficient set, and The horizontal transformation matrix is a discrete sine transform DST of type VII (DST-VII), and the vertical transformation matrix is a discrete cosine transform DCT of type II (DCT-II).
90. A method for storing a bit stream of a video, comprising: Based on a representative set of coefficients of a current block of video and / or one or more neighboring blocks of the current block and in the absence of one or more transform indices, making a decision regarding one or more transform matrices to apply to the current block in a transform process, wherein the one or more transform matrices include at least one of a horizontal transform matrix or a vertical transform matrix; generating the bitstream based on the decision; and storing the generated bit stream in a non-transitory computer-readable recording medium, wherein the horizontal transform matrix or the vertical transform matrix is determined based on the parity of the number of representative coefficients in the representative coefficient set, and The current block applies an implicitly selected transform to a main transform, wherein when the current block is an intra-frame coded block with a derivative tree DT, the implicitly selected transform is not applied to the current block, wherein the implicitly selected transform is applied under at least one condition including that the height and width of the current block are not greater than a threshold, and wherein the threshold is a positive integer.
91. The method of claim 90, wherein: The representative coefficient set includes a portion of all coefficients of the current block and / or the one or more neighboring blocks, and the one or more transform matrices are based on a function of the representative coefficient set, the output of the function being the number of coefficients in the representative coefficient set, and The horizontal transformation matrix is a discrete sine transform DST of type VII (DST-VII), and the vertical transformation matrix is a discrete cosine transform DCT of type II (DCT-II).
92. An apparatus for processing video data, comprising a processor and a non-transitory memory having instructions thereon, wherein: The instructions, when executed by the processor, cause the processor to implement the method of any one of claims 4 to 6 and 8 to 84.
93. A non-transitory computer-readable storage medium storing instructions that cause a processor to perform the method of any one of claims 4 to 6 and 8 to 84.
