Secondary transforms for video encoding and decoding

By applying secondary transformation and LFNST in the intra-subpartition mode, dynamically selecting the transformation matrix, the problem of low video encoding and decoding efficiency in the intra-subblock partition mode in the prior art is solved, and more efficient video compression and decoding is achieved .

CN119299678APending Publication Date: 2025-01-10INTERDIGITAL CE PATENT HOLDINGS SAS
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411549381.9
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2019-09-24
Filing Date
2020-07-27
Publication Date
2025-01-10

AI Technical Summary

Technical Problem

Existing video encoding and decoding technologies are difficult to effectively utilize secondary transformation in intra-subblock partition mode, resulting in low compression efficiency. The transformation selection of existing standards such as HEVC and VVC in intra-prediction mode is complex, affecting encoding and decoding. efficiency.

Method used

In the intra-subpartition mode, by applying secondary transformation in the decoding unit and the transformation unit, using LFNST (low-frequency non-separable transformation) and pre-determined transformation pairs, the encoding and decoding efficiency is improved, using LFNST (low-frequency non-separable transformation) and pre-determined transformation pairs, and the encoding and decoding efficiency is improved. .

Benefits of technology

The compression efficiency of video encoding and decoding is improved, especially in the intra prediction mode, by dynamically selecting the transformation matrix and applying the secondary transformation, the entropy encoding efficiency of the quantized residual block is significantly improved.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119299678A_ABST
    Figure CN119299678A_ABST
Patent Text Reader

Abstract

A quadratic transform for video encoding and decoding relates to a method and apparatus for encoding / decoding a picture using a quadratic transform for video encoding and decoding in INTRA mode, and more particularly, using a quadratic transform for a transform unit of a coding unit in intra sub-partition mode. Different signaling and selection variables are proposed according to various parameters of the coding unit and the transformation unit.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of the Chinese invention patent application with application date of July 27, 2020, application number 202080054509.8, and invention name “Secondary Transform for Video Coding and Decoding”. Technical Field

[0002] At least one embodiment of the present invention generally relates to the field of video compression.At least one embodiment is specifically directed to using a secondary transform for video encoding or decoding of intra-frame sub-block partitions. Background Art

[0003] In order to achieve high compression efficiency, image and video coding schemes usually use prediction and transformation to exploit spatial and temporal redundancy in video content. Typically, intra-frame or inter-frame prediction is used to exploit intra-frame or inter-frame correlation, and then the difference between the original block and the predicted block, which is usually represented as a prediction error or prediction residual, is transformed, quantized, and entropy decoded. In order to reconstruct the video, the compressed data is decoded by the inverse process corresponding to entropy decoding, quantization, transformation, and prediction. Summary of the invention

[0004] One or more embodiments of the present invention use secondary transform for video encoding and decoding in intra mode, and more specifically, use secondary transform for transform units of decoding units in intra sub-partition mode. Different signaling and selection variables are proposed according to various parameters of decoding units and transform units.

[0005] According to a first aspect of at least one embodiment, a video encoding method includes applying a first transform to a decoding unit, determining whether a second transform is to be applied and when the second transform is to be applied: signaling the use of the second transform for the decoding unit and performing the second transform on the transform unit of the decoding unit, and then encoding the decoding unit using the signaled information, wherein the decoding unit is decoded in an intra-frame sub-partition mode.

[0006] According to a second aspect of at least one embodiment, a video decoding method includes, when a second transform is signaled for a decoding unit, performing a second inverse transform on the transform unit and performing a first inverse transform on the transform unit of the decoding unit, and decoding the inversely transformed transform unit, wherein the decoding unit is decoded in an intra-frame sub-partition mode.

[0007] According to a third aspect of at least one embodiment, a device includes an encoder for encoding picture data of at least one block in a picture or video, wherein the encoder is configured to apply a first transform to a decoding unit, decide whether a second transform is to be applied, and when the second transform is to be applied: signal the use of the second transform for the decoding unit and perform the second transform on the transform unit of the decoding unit, and then encode the decoding unit using the signaled information, wherein the decoding unit is decoded in an intra-frame sub-partition mode.

[0008] According to a fourth aspect of at least one embodiment, a device includes a decoder for decoding picture data of at least one block in a picture or video, wherein the decoder is configured to perform a second inverse transform on the transform unit and a first inverse transform on the transform unit of the decoding unit when a second transform is signaled for the decoding unit, and then decode the inversely transformed transform unit, wherein the decoding unit is decoded in an intra-frame sub-partition mode.

[0009] According to a fifth aspect of at least one embodiment, a computer program comprising program code instructions executable by a processor is proposed, which computer program implements the steps of the method according to at least the first or second aspect.

[0010] According to a sixth aspect of at least one embodiment, a computer program product is proposed, which is stored on a non-transitory computer-readable medium and includes program code instructions executable by a processor, and the computer program product implements the steps of the method according to at least the first aspect or the second aspect. BRIEF DESCRIPTION OF THE DRAWINGS

[0011] Figure 1 A block diagram of an example of a video encoder 100 , such as a High Efficiency Video Coding (HEVC) encoder, is shown.

[0012] Figure 2 A block diagram of an example of a video decoder 200 is shown, such as a HEVC decoder.

[0013] Figure 3 A block diagram of an example of a system in which various aspects and embodiments may be implemented is shown.

[0014] Figure 4 Examples of possible intra-frame sub-partitioning (ISP) modes are shown.

[0015] Figure 5 An example of a predetermined transformation pair used in ISP mode is shown.

[0016] Fig. 6A At a high level, an example embodiment of the encoding process when using a secondary transform in intra sub-block partition mode is shown.

[0017] Figure 6B An example embodiment of the decoding process when using a secondary transform in intra sub-block partition mode is shown at a high level.

[0018] Figure 6C An example embodiment of a decoding process of an INTRA CU that is coded in intra sub-block partition mode and uses LFNST as a secondary transform is shown.

[0019] Fig.6D and Fig. 6E Example embodiments of tests of whether the LFNST index should be resolved in an OR or AND manner are shown, respectively.

[0020] Figure 7 An example embodiment of a decoding process is shown, where a primary inverse transform for each TU is derived based on a LFNST index associated with a considered CU coded in ISP mode.

[0021] Figure 8 An example embodiment of a decoding process is shown, wherein the selection of the secondary transform is predetermined.

[0022] Fig. 9 An example embodiment of a decoding process is shown in which the selection of a secondary transform is predetermined and the use of the secondary transform is signaled by a flag.

[0023] Fig.10 An example embodiment of a decoding process is shown in which the use of a secondary transform is implicit.

[0024] Fig.11 An example embodiment of a decoding process is shown, with the use of a secondary transform at TU level.

[0025] Fig. 12A and Fig. 12B An example embodiment of a decoding process is shown in which the use of the secondary transform is restricted to a subset of TUs.

[0026] Fig.13 An example embodiment of a split ratio variation between TUs within an intra CU coded in ISP mode is shown. DETAILED DESCRIPTION

[0027] Various embodiments relate to video encoding and decoding of transform units of coding units in intra sub-partition mode using secondary transforms. Various methods and other aspects described herein can be used to signal and select the transform to be used based on various parameters of the coding units and transform units.

[0028] Furthermore, although principles related to specific drafts of VVC (Universal Video Coding) or HEVC (High Efficiency Video Coding) specifications are described, aspects of the present invention are not limited to VVC or HEVC and may be applied, for example, to other standards and recommendations (whether pre-existing or developed in the future) and extensions of any such standards and recommendations (including VVC and HEVC). Unless otherwise indicated or technically excluded, the aspects described in this application may be used alone or in combination.

[0029] Figure 1 A block diagram of an example of a video encoder 100 , such as a HEVC encoder, is shown. Figure 1 Encoders in which improvements are made to the HEVC standard or encoders employing techniques similar to HEVC may also be shown, such as the JEM (Joint Exploration Model) encoder for VVC being developed by the JVET (Joint Video Exploration Team).

[0030] Before being encoded, the video sequence may be subjected to a pre-encoding process (101). This is performed, for example, by applying a color transform to the input color picture (e.g., conversion from RGB 4:4:4 to YCbCr 4:2:0) or performing a remapping of the input picture components to obtain a signal distribution that is more resilient to compression (e.g., using histogram equalization of one of the color components). Metadata may be associated with the pre-processing and appended to the bitstream.

[0031] In HEVC, to encode a video sequence having one or more pictures, a picture is partitioned (102) into one or more slices, where each slice may include one or more slice segments. Slice segments are organized into coding units, prediction units, and transform units. The HEVC specification distinguishes between "blocks" and "units", where a "block" addresses a specific area in a sample array (e.g., luma Y), and a "unit" includes a concatenated block of all coded color components (Y, Cb, Cr, or monochrome), syntax elements, and prediction data (e.g., motion vectors) associated with the block.

[0032] For decoding in HEVC, pictures are partitioned into coding tree blocks (CTBs) of square shape with configurable size, and continuous sets of coding tree blocks are grouped into slices. A coding tree unit (CTU) contains the CTB of the color component being encoded. The CTB is the root of the quadtree partition into coding blocks (CBs), and the coding blocks can be partitioned into one or more prediction blocks (PBs) and form the root of the quadtree partition into transform blocks (TBs). Corresponding to the coding blocks, prediction blocks, and transform blocks, the coding unit (CU) includes a tree structure set of prediction units (PUs) and transform units (TUs), the PU includes prediction information for all color components, and the TU includes a residual decoding syntax structure for each color component. The sizes of the CB, PB, and TB of the luminance component apply to the corresponding CU, PU, ​​and TU. In the present application, the term "block" may be used to refer to any one of, for example, CTU, CU, PU, ​​TU, CB, PB, and TB. Additionally, "block" may also be used to refer to macroblocks and partitions as specified in H.264 / AVC or other video coding standards, and more generally to data arrays of various sizes.

[0033] In the example of encoder 100, as described below, a picture is encoded by an encoder element. The picture to be encoded is processed in units of CUs. Each CU is encoded using intra or inter mode. When a CU is encoded in intra mode, it performs intra prediction (160). In inter mode, motion estimation (175) and compensation (170) are performed. The encoder decides (105) whether to encode the CU using one of intra mode or inter mode, and indicates the intra / inter decision through a prediction mode flag. The prediction residual is calculated by subtracting (110) the prediction block from the original image block.

[0034] A CU in intra mode is predicted from reconstructed neighboring samples within the same slice. A set of 35 intra prediction modes is available in HEVC, including DC, planar, and 33 angular prediction modes. The intra prediction reference is reconstructed from rows and columns adjacent to the current block. The reference uses available samples from previously reconstructed blocks, extending over twice the block size in both horizontal and vertical directions. When an angular prediction mode is used for intra prediction, the reference samples may be copied along the direction indicated by the angular prediction mode.

[0035] Two different options can be used to code the applicable luma intra prediction mode for the current block. If the applicable mode is included in a constructed list of six most probable modes (MPMs), the mode is signaled by an index in the MPM list. Otherwise, the mode is signaled by a fixed-length binarization of the mode index. The six most probable modes are derived from the intra prediction modes of the top and left neighboring blocks (see Table 1 below).

[0036]

[0037] Table 1

[0038] For an inter CU, motion information (eg, motion vector and reference picture index) may be signaled in a variety of methods (eg, “merge mode” or “advanced motion vector prediction (AMVP)”).

[0039] In merge mode, the video encoder or decoder assembles a candidate list based on already coded blocks, and the video encoder signals the index of one of the candidates in the candidate list. At the decoder side, motion vectors (MVs) and reference picture indices are reconstructed based on the signaled candidates.

[0040] In AMVP, a video encoder or decoder assembles a candidate list based on motion vectors determined from already coded blocks. The video encoder then signals an index in the candidate list to identify the motion vector predictor (MVP) and signals a motion vector difference (MVD). On the decoder side, the motion vector (MV) is reconstructed as MVP+MVD. Applicable reference picture indexes are also explicitly coded in the CU syntax for AMVP.

[0041] The prediction residual is then transformed (125) and quantized (130), including at least one embodiment described below for adapting the chrominance quantization parameters. The transform is generally based on a separable transform. For example, a DCT transform is first applied in the horizontal direction and then in the vertical direction. In recent codecs such as JEM, the transforms used in the two directions may be different (e.g., DCT in one direction, DST in the other), which results in a wide variety of 2D transforms, whereas in previous codecs, the variety of 2D transforms for a given block size was generally limited.

[0042] The quantized transform coefficients as well as the motion vectors and other syntax elements are entropy decoded (145) to output a bitstream. The encoder may also skip the transform and apply quantization directly to the untransformed residual signal on a 4×4TU basis. The encoder may also bypass both the transform and quantization, i.e., directly decode the residual without applying the transform or quantization process. In direct PCM decoding, no prediction is applied and the coding unit samples are decoded directly into the bitstream.

[0043] The encoder decodes the coded block to provide a reference for further prediction. The quantized transform coefficients are dequantized (140) and inverse transformed (150) to decode the prediction residual. The decoded prediction residual and the prediction block are combined (155) to reconstruct the image block. An in-loop filter (165) is applied to the reconstructed picture, for example, to perform deblocking / SAO (sample adaptive offset) filtering to reduce coding artifacts. The filtered image is stored in a reference picture buffer (180).

[0044] Figure 2 1 shows a block diagram of an example of a video decoder 200, such as a HEVC decoder. In the example of the decoder 200, a bitstream is decoded by the decoder elements as described below. The video decoder 200 generally performs the same Figure 1 The encoding pass described in is reciprocal to the decoding pass, which performs video decoding as part of encoding the video data. Figure 2 Decoders in which improvements are made to the HEVC standard or decoders employing techniques similar to HEVC may also be shown, such as the JEM decoder.

[0045] Specifically, the input to the decoder comprises a video bitstream, which may be generated by the video encoder 100. The bitstream is first entropy decoded (230) to obtain transform coefficients, motion vectors, picture partition information and other decoding information. The picture partition information indicates the size of the CTU, and the way in which the CTU is partitioned into CUs and, if applicable, into PUs. The decoder can therefore divide (235) the picture into CTUs and each CTU into CUs based on the decoded picture partition information. The transform coefficients are dequantized (240), including at least one embodiment for adapting the chrominance quantization parameters as described below, and inverse transformed (250) to decode the prediction residual.

[0046] The decoded prediction residual is combined with the prediction block (255) to reconstruct the image block. The prediction block can be obtained (270) from intra-frame prediction (260) or motion compensated prediction (i.e., inter-frame prediction) (275). As described above, AMVP and merge mode techniques can be used to derive motion vectors for motion compensation, which can use interpolation filters to calculate interpolated values ​​of sub-integer samples of the reference block. An in-loop filter (265) is applied to the reconstructed image. The filtered image is stored in a reference picture buffer (280).

[0047] The decoded picture may further undergo post-decoding processing (285), such as an inverse color transform (e.g., conversion from YCbCr 4:2:0 to RGB 4:4:4) or inverse remapping that performs the inverse of the remapping process performed in the pre-encoding process (101). The post-decoding process may use metadata derived in the pre-encoding process and signaled in the bitstream.

[0048] Figure 3A block diagram of an example of a system in which various aspects and embodiments are implemented is shown. System 300 may be implemented as a device including various components as described below, and is configured to perform one or more of the various aspects described in this application. Examples of such devices include, but are not limited to, various electronic devices, such as personal computers, laptop computers, smart phones, tablet computers, digital multimedia set-top boxes, digital television receivers, personal video recording systems, connected home appliances, encoders, code converters, and servers. The elements of system 300 may be implemented individually or in combination in a single integrated circuit, multiple ICs, and / or discrete components. For example, in at least one embodiment, the processing and encoder / decoder elements of system 300 are distributed over multiple ICs and / or discrete components. In various embodiments, the elements of system 300 are coupled communicatively via an internal bus 310. In various embodiments, system 300 is coupled communicatively to other similar systems or other electronic devices via, for example, a communication bus or by dedicated input and / or output ports. In various embodiments, system 300 is configured to implement one or more of the aspects described in this document, such as video encoder 100 and video decoder 200 as described above and modifications as described below.

[0049] System 300 includes at least one processor 301, which is configured to execute instructions loaded therein, for implementing various aspects described in this document, for example. Processor 301 may include embedded memory, input and output interfaces, and various other circuits known in the art. System 300 includes at least one memory 302 (e.g., a volatile memory device and / or a non-volatile memory device). System 300 includes storage device 304, which may include non-volatile memory and / or volatile memory, including but not limited to EEPROM, ROM, PROM, RAM, DRAM, SRAM, flash memory, disk drive, and / or optical drive. As a non-limiting example, storage device 304 may include an internal storage device, an attached storage device, and / or a network accessible storage device.

[0050] The system 300 includes an encoder / decoder module 303, which is configured to process data to provide encoded video or decoded video, and the encoder / decoder module 303 may include its own processor and memory. The encoder / decoder module 303 represents a module (one or more) that may be included in a device to perform encoding and / or decoding functions. As known, a device may include one or both of the encoding and decoding modules. In addition, the encoder / decoder module 303 may be implemented as a separate element of the system 300, or may be incorporated into the processor 301 as a combination of hardware and software known to those skilled in the art.

[0051] Program code to be loaded onto the processor 301 or encoder / decoder 303 to perform various aspects described in this document may be stored in the storage device 304 and subsequently loaded onto the memory 302 for execution by the processor 301. According to various embodiments, one or more of the processor 301, memory 302, storage device 304, and encoder / decoder module 303 may store one or more of various items during execution of the processes described herein. These stored items may include, but are not limited to, input video, decoded video or portions of decoded video, bitstreams, matrices, variables, and intermediate or final results from the processing of equations, formulas, operations, and operational logic.

[0052] In several embodiments, memory inside the processor 301 and / or the encoder / decoder module 303 is used to store instructions and provide working memory for processing required during encoding or decoding. However, in other embodiments, memory external to the processing device (e.g., the processing device may be the processor 301 or the encoder / decoder module 303) is used for one or more of these functions. The external memory may be a memory 302 and / or a storage device 304, such as a dynamic volatile memory and / or a non-volatile flash memory. In several embodiments, the external non-volatile flash memory is used to store the operating system of the television. In at least one embodiment, a fast external dynamic volatile memory such as RAM is used as working memory for video coding and decoding operations such as MPEG-2, HEVC, or VVC.

[0053] As shown in block 309, input to the elements of system 300 may be provided through various input devices. Such input devices include, but are not limited to: (i) an RF section that receives an RF signal transmitted over the air, such as by a broadcaster; (ii) a composite input terminal; (iii) a USB input terminal; and / or (iv) an HDMI input terminal.

[0054] In various embodiments, the input device of block 309 has associated corresponding input processing elements known in the art. For example, the RF portion may be associated with elements required for: (i) selecting a desired frequency (also referred to as selecting a signal, or band limiting a signal to a frequency band); (ii) down-converting the selected signal; (iii) band limiting again to a narrower frequency band to select a signal frequency band that may be referred to as a channel in some embodiments; (iv) demodulating the down-converted and band-limited signal; (v) performing error correction; and (vi) demultiplexing to select a desired data packet stream. The RF portion of various embodiments includes one or more elements to perform these functions, such as a frequency selector, a signal selector, a band limiter, a channel selector, a filter, a down-converter, a demodulator, an error corrector, and a demultiplexer. The RF portion may include a tuner that performs various of these functions, including, for example, down-converting a received signal to a lower frequency (e.g., an intermediate frequency or near baseband frequency) or baseband. In a set-top box embodiment, the RF part and its associated input processing element receive the RF signal transmitted by wired (for example, cable) medium, and filter to the desired frequency band again by filtering, down-conversion and perform frequency selection. Various embodiments rearrange the order of above-mentioned (and other) elements, remove some in these elements and / or add other elements that perform similar or different functions. Adding element can include inserting element between existing element, for example inserting amplifier and analog-to-digital converter. In various embodiments, the RF part comprises antenna.

[0055] In addition, the USB and / or HDMI terminals may include corresponding interface processors for connecting the system 300 to other electronic devices via USB and / or HDMI connections. It should be understood that various aspects of input processing, such as Reed-Solomon error correction, can be implemented as needed, for example, in a separate input processing IC or in the processor 301. Similarly, various aspects of USB or HDMI interface processing can be implemented as needed in a separate interface IC or in the processor 301. The demodulated, error-corrected, and demultiplexed streams are provided to various processing elements, including, for example, the processor 301 and the encoder / decoder 303, which operate in conjunction with memory and storage elements to process the data streams as needed for presentation on the output device.

[0056] The various elements of system 300 may be provided in an integrated housing. Within the integrated housing, the various elements may be interconnected and transfer data between them using suitable connection arrangements, such as internal buses (including I2C buses), wiring, and printed circuit boards known in the art.

[0057] The system 300 includes a communication interface 305 that enables communication with other devices via a communication channel 320. The communication interface 305 may include, but is not limited to, a transceiver configured to transmit and receive data through the communication channel 320. The communication interface 305 may include, but is not limited to, a modem or a network card, and the communication channel 320 may be implemented, for example, within a wired and / or wireless medium.

[0058] In various embodiments, data is streamed to the system 300 using a Wi-Fi network such as IEEE 802.11. The Wi-Fi signals of these embodiments are received via a communication channel 320 and a communication interface 305 suitable for Wi-Fi communications. The communication channel 320 of these embodiments is typically connected to an access point or router that provides access to external networks including the Internet to allow streaming applications and other over-the-top communications. Other embodiments provide streaming data to the system 300 using a set-top box that passes data through an HDMI connection of an input block 309. Still other embodiments provide streaming data to the system 300 using an RF connection of an input block 309.

[0059] The system 300 can provide output signals to various output devices, including a display 330, a speaker 340, and other peripherals 350. In various examples of embodiments, the other peripherals 350 include one or more of a stand-alone DVR, a disk player, a stereo system, a lighting system, and other devices that provide functions based on the output of the system 300. In various embodiments, control signals are transmitted between the system 300 and the display 100, the speaker 340, or other peripherals 350 using signaling such as AV. Link, CEC, or other communication protocols, which enables device-to-device control with or without user intervention. The output device can be communicatively coupled to the system 300 via a dedicated connection through the corresponding interfaces 306, 307, and 308. Alternatively, the output device can be connected to the system 300 via the communication interface 305 using the communication channel 320. The display 330 and the speaker 340 can be integrated into a single unit with other components of the system 300 in an electronic device (e.g., a television). In various embodiments, the display interface 306 includes a display driver, such as a timing controller (TCon) chip.

[0060] For example, if the RF portion of input 309 is part of a separate set-top box, the display 330 and the speaker 340 can be replaced with one or more of the other components. In various embodiments where the display 330 and the speaker 340 are external components, the output signal can be provided via a dedicated output connection, which includes, for example, an HDMI port, a USB port, or a COMP output. The implementation described herein can be implemented in, for example, a method or process, a device, a software program, a data stream, or a signal. Even if only discussed in the context of a single form of implementation (for example, discussed only as a method), the implementation of the discussed feature can also be implemented in other forms (for example, a device or a program). For example, the device can be implemented with appropriate hardware, software, and firmware. The method can be implemented in, for example, a device such as a processor, which generally refers to a processing device, including, for example, a computer, a microprocessor, an integrated circuit, or a programmable logic device. The processor also includes a communication device, such as a computer, a cellular phone, a portable / personal digital assistant ("PDA"), and other devices that facilitate information transmission between terminal users.

[0061] Figure 4 Examples of possible intra sub-partitioning (ISP) modes are shown. The ISP mode is used for intra prediction and consists in splitting the coding unit into 2 or 4 transform units of equal size. The splitting is performed horizontally or vertically. As shown in Table 2, the splitting depends on the size of the block. Basically, 4×4 cannot be split.

[0062] A CU of size 4×8 or 8×4 is partitioned into 2 TUs. Other CUs are partitioned into 4 TUs.

[0063]

[0064] Table 2

[0065] Within a CU coded using ISP mode, TUs are decoded sequentially and intra prediction is performed from TU to TU using the same intra prediction mode signaled at the CU level. Finally, residual coding is also adapted according to the intra sub-partition size. In practice, sub-partitions may have sizes 1×N, N×1, 2×N, or N×2, using coding groups of size 1×16, 16×1, 2×8, or 8×2 in these respective cases.

[0066] The ISP decoding mode can be signaled, for example, by two consecutive flags:

[0067] - intra_subpartitions_mode_flag indicates the use of ISP mode for a given intra CU.

[0068] - When the partition direction cannot be directly inferred from the CU size, intra_subpartitions_flag indicates the orientation of the partition into intra sub-partitions, where 0 indicates horizontal partition and 1 indicates vertical partition.

[0069] Figure 5 An example of a predetermined transform pair used in ISP mode is shown. In practice, when ISP is used for a given intra CU, then the predetermined transform pair is used to encode and decode each of the (2 or 4) TUs contained in that CU. Depending on the dimension of the transform block, the transform pair is selected as a combination between DCT2 and DST7 applied in the horizontal or vertical direction. That is, the horizontal (trTypeHor) and vertical (trTypeVer) transforms are selected as follows:

[0070] trTypeHor=(width>=4&&width<=16)?DST7:DCT2

[0071] trTypeVer = (height>=4&&height<=16)? DST7:DCT2

[0072] This type of selection creates 4 different sets of pairs, which are Figure 5 A combination between DCT2 and DST7 is shown. The separable transform applied to a transform unit is called a primary transform.

[0073] In addition to the primary transform, in some cases, a so-called low-frequency non-separable transform (LFNST, formerly known as non-separable secondary transform (NSST)) can be applied to a subset of the transform coefficients emitted from the primary transform. LFNST improves the decoding efficiency of the video codec. Two LFNST transform sets can be defined: one for large residual blocks and one for small residual blocks. For each set, 4 groups of transforms are defined, each of which contains 2 transform matrices. The selection of the group depends on the intra-frame prediction mode, and the transform index, hereinafter referred to as the LFNST index, is decoded in the bitstream. Unlike the primary transform, the LFSNT is a trained transform obtained by learning from some large data set residual data. However, conventionally, the LFNST secondary transform is not applied in the case of INTRA CUs decoded in ISP mode.

[0074] On the decoder side, Figure 2 Between steps 240 and 250, an inverse LFNST transform is performed after inverse quantization and before inverse primary transform. At the encoder, Figure 1Between steps 125 and 130, LFNST is performed between the forward primary transform and the quantization stage. LFNST can take the form of two possible inseparable transforms: 4×4 LFNST and 8×8 LFNST. 4×4 LFNST is applied to small blocks, i.e., blocks with min(width, height) < 8, where width and height represent the width and height of the block. 8×8 LFNST is applied to larger blocks, i.e., blocks with min(width, height) > 4.

[0075] The forward 4×4 LFNST is applied as follows. It is applied to the 4×4 lowest frequency sub-block of the transformed block under consideration. The input 16 coefficients are represented as a 16×1 vector X→. The LFNST transform consists of the following operations:

[0076]

[0077] Where T is a 16×16 matrix and F→ is the output transform 16×1 vector. F→ is then reorganized into 4×4 sub-blocks, which become the lowest frequency decoding group in the scanning order.

[0078] For larger blocks, 8×8 LFNST is applied as follows. It takes as input the 3 left-up transformed 4×4 sub-blocks, i.e. the forward primary transform block. Therefore, this corresponds to 48 transform coefficients. LFNST is then applied to the 48 lowest frequency coefficients in scan order, organized into a 48×1 coefficient vector (X 48 ). Therefore, the forward LFNST takes the following form:

[0079]

[0080] At the decoder side, the transposed matrix 48×16 of T_16×48 is applied to the inverse quantized coefficients to perform an inverse LFNST transform.

[0081] Four LFNST transform sets may be used for 4x4 LFNST and 8x8 LFNST respectively. These sets are defined based on intra prediction mode. For each set, 2 LFNST transform matrices (kernels) may be used. The transform matrix used is signaled by the LFNST index syntax element.

[0082] The embodiments described below are designed in view of the foregoing.

[0083] In at least one embodiment, a secondary transform is used for the transform unit of the decoding unit in the intra-frame sub-block partition mode. This allows the efficiency of compression to be increased by further compacting the energy of the transform coefficients towards the low frequency band, thereby making the entropy decoding of the quantized transformed residual block more efficient. Different embodiments with some variations are described below based on this principle.

[0084] Fig. 6A At a high level, an example embodiment of the encoding process when using a secondary transform in intra sub-block partition mode is shown. Figure 3 First, in step 601, the processor 301 applies the primary transform to the decoding unit. In step 602, the processor checks whether a secondary transform should be used. In at least one embodiment, the secondary transform is LFNST (e.g., Figure 6C ), and the test is a conventional test of the suitability of the LFNST. In at least one embodiment, according to Fig.6D or Fig. 6E The process performs the test of step 602. When the secondary transform should not be used, the process ends and the decoding unit can be encoded normally. When the secondary transform should not be used, in step 603, the process signals the use of the secondary transform for the decoding unit. Then, in step 604, the secondary transform is determined and applied to the transform unit. Step 604 is repeated for all transform units of the decoding unit. When all transform units have been processed, in step 605, the process ends and the decoding unit can be encoded normally.

[0085] Signaling the use of a secondary transform can be done by different mechanisms. In one example embodiment, a dedicated flag is used. In another embodiment, an index is used, the index having a value identifying the transform to be used from a transform list and having a zero value corresponding to the case where a secondary transform is not used.

[0086] Figure 6B At a high level, an example embodiment of the decoding process when using a secondary transform in intra sub-block partition mode is shown. Figure 3 First, in step 650, the processor checks whether a signal is sent and a secondary transform should be used. In at least one embodiment, the secondary transform is a LFNST (e.g., Figure 6C ), and the test is a conventional test of the suitability of the LFNST. In at least one embodiment, the test of step 650 is based on Fig.6D or Fig. 6E When this is the case, in step 660, a secondary transform is determined and applied to the transform unit of the decoding unit. In step 680, a primary inverse transform is performed on the transform unit, and in step 690, the process is repeated from step 650 until all TUs are processed. The decoding process then continues in a conventional manner to complete the decoding.

[0087] Figure 6CAn example embodiment of the decoding process of an INTRA CU coded in intra sub-block partition mode and using LFNST as a secondary transform is shown. Figure 3 The processor 301 is executed. According to at least one embodiment, the secondary transform for the INTRA CU decoded in the intra sub-block partition mode is LNFST, and its use is signaled by the index LFNST idx: when the index is zero, LNFST is not used, and when it is not equal to zero, the index indicates which transform in the transform list should be used.

[0088] First, in step 609, the residual is decoded. In step 610, the processor checks whether LFNST indexes will be resolved for the CU. This test involves separately testing whether LFNST indexes will be resolved for the TUs of the CU. Fig.6D The "or" alternative to this test is described in Fig. 6E The "and" alternative is described in . The conditions for the decision on whether to resolve LFNST indices for a TU are the same as those used in the conventional way:

[0089] - the CU size in the considered component is at least 4 in width and height;

[0090] - Enable LFNST on SPS level;

[0091] - the number of significant coefficients in a CU is strictly higher than 1 in the dual-tree case, or strictly higher than 2 in the single-tree case;

[0092] - In 4x4 coding groups other than the lowest frequency 4x4 coding group for transform blocks of size at least 4x4, or scanning positions greater than 7 in square transform blocks of size equal to 4 or 8, there are no non-zero quantized coefficients in the TUs of the considered CU.

[0093] When LNFST is not used, then in step 615, the LFNST index is set to 0. This means that no LFNST is applied to the considered CU, and thus no LFNST is applied to any TU contained in the considered CU.

[0094] In step 620, the LFNST index is parsed. If it is 0, then LFNST is not applied. If it is different from 0, then the corresponding LFNST transform is applied.

[0095] In step 630, inverse quantization is performed in a conventional manner, and the index to the TU count is set to zero in step 640. In step 650, the LFNST index is tested and serves both as a flag indicating that LFNST is not used (when equal to 0) and as a value indicating which transform will be used. If the LFNST index is different from 0, an inverse LFNST (secondary transform) is performed in step 660 on the decoder side. In the case of a shared coding tree between luma and chroma components, this includes 2 or 4 luma transform blocks contained in the considered CU, and chroma transform blocks contained in the CU. Then, in step 670, a primary transform pair is determined in a conventional manner, and an inverse primary transform is applied to the current TU. In step 690, the process verifies that all TUs have been processed before ending the process or repeating from step 650 when at least one TU has not been processed.

[0096] When applied to VVC, Figure 6C The embodiment of the invention requires modification of the coding unit syntax. The modification is shown in Table 3 and is identified by a grey background. It includes removing the test on IntraSubPartitionSplitType to authorize the use of LNFST when IntraSubPartitionSplitType is equal to ISP_NO_SPLIT. As a result, a secondary transform is used in intra sub-block partition mode.

[0097]

[0098] Table 3

[0099] Fig.6D and Fig. 6E An example embodiment of a test of whether the LFNST index should be parsed in an OR or AND manner is shown respectively. This test is used, for example, in Fig. 6A Step 602, Figure 6B Step 650, Figure 6C In steps 610 and 655. Fig.6D The test of operates in an OR fashion such that once a valid condition is detected for one of the TUs of a CU, the LFNST index is resolved. Fig. 6E The test of operates in an AND manner such that once an invalid condition is detected for one of the TUs of the CU, the LFNST index is not resolved, meaning that the condition should be valid for all TUs in order to resolve the LFNST index.

[0100] Figure 7An example embodiment of a decoding process is shown in which the primary inverse transform used for each TU is derived based on the LFNST index associated with the CU being considered for ISP mode coding. In this embodiment, a loop is performed on each TU in a CU within an ISP frame and tests whether a secondary transform is used. In this embodiment, this is done in step 710 by testing the LFNST index. When the LFNST index is zero, then no secondary transform is used when encoding the CU. In this case, in step 720, a secondary transform is used, e.g. Figure 5 The selection of the primary transform is performed in a conventional manner using a table of . Then, in step 730, the selected primary transform is applied to the TU, and the process continues to loop on the TU in step 760. Returning to step 710, when the LFNST index is different from 0, then a secondary transform is used in conjunction with the {DCT2, DCT2} pair for the primary transform. In this case, the secondary transform is identified according to the LNFST index, and an inverse transform is performed on the TU in step 740. In step 750, an inverse 2D DCT2 transform is performed on the TU. When all TUs have been processed, the process ends.

[0101] Figure 8 An example embodiment of a decoding process is shown in which the choice of a secondary transform is predetermined. In this embodiment, it is first verified whether the conditions for LNFST are met, as is conventionally done for LNFST. When this is not the case, in step 810, the LFNST index is set to 0. Otherwise, the LFNST index is set to 1. In other words, in this embodiment, the secondary transform is predetermined. The only choice is the first transform pair in the list. As in the previous embodiment, when a secondary transform is used, the primary transform to be used is the 2D DCT2 pair.

[0102] In a variation of this embodiment, in case of an intra CU coded in ISP mode, another LFNST index value may be inferred by the decoder to select another secondary transform.

[0103] Fig. 9 An example embodiment of a decoding process is shown in which the selection of a secondary transform is predetermined and the use of the secondary transform is signaled by a flag. While the previous embodiments used a value of the LNFST index different from 0 to indicate the use of a secondary transform, this embodiment uses a dedicated flag to signal the use of LFNST for intra CUs decoded in ISP mode. In this case, when LFNST is used (flag set to true), the LFNST index is inferred to be a fixed value. In an example embodiment, the fixed value is equal to 1 to select the first transform pair. Similar to the previous embodiment, when LFNST is used, the 2D primary transform to be applied for the current CU is inferred to be DCT2_DCT2.

[0104] Fig.10 An example embodiment of a decoding process is shown in which the use of a secondary transform is implicit. Figure 7 , Figure 8 and Fig. 9 In this variation of the previous embodiment, the use of LFNST is implicit, while the selection of the secondary transform is explicit, carried by the LFNST index. Furthermore, in case of intra CUs decoded with ISP, the 2D primary transform is inferred to be DCT2_DCT2.

[0105] In at least one embodiment, the use of LFNST for an intra ISP CU depends on the size of the CU under consideration. For example, if the size of the CU in width and height is less than a given threshold, then LFNST is not used for the CU under consideration. In practice, the same constraints as in the matrix-based intra prediction (MIP) case can be imposed on the CU size to allow the use of LFNST. When applied to VVC, this embodiment requires modifications to the coding unit syntax as shown in Table 4 and highlighted by the grey background.

[0106]

[0107] Table 4

[0108] According to a variant embodiment, when ISP mode is active for the considered CU, LFNST is allowed if the size of the CU is greater than or equal to 16 in width and height.

[0109] According to a variant embodiment, when ISP mode is active for the considered CU, LFNST is allowed if the size of the CU is greater than or equal to 32 in width and height.

[0110] In general, those skilled in the art will appreciate that LFNST designed for block sizes greater than or equal to 4 in width and height may perform well for CU sizes such that the TU size is at least equal to 4 in width and height.

[0111] In at least one embodiment, the condition for enabling LFNST for an intra CU decoded in ISP mode depends on the size of the luma transform block emitted from the CU partitioned according to the ISP mode of the considered CU. Let tbWidth and tbHeight denote the width and height of the luma transform block. In the proposed embodiment, LFNST can generally be enabled if the luma transform block size is at least 4 in width and height. When applied to VVC, this embodiment requires modifications to the decoding unit syntax as shown in Table 5 and highlighted by the gray background.

[0112]

[0113] Table 5

[0114] Fig.11 An example embodiment of a decoding process is shown in which the use of a secondary transform is performed at the TU level. In this embodiment, in the case of intra ISP decoding units, an LFNST index is signaled for each transform unit contained in a CU. The same conditions for signaling the use of LFNST are used in a conventional manner, except that the LFNST index is signaled at the TU level, such that one LFNST index is signaled per TU. Fig.11 As shown, in this embodiment, the loop over the TUs contained in the CU includes parsing the LFNST index for each TU.

[0115] As a result of this embodiment, different primary inverse transforms may be used between TUs contained in the considered CU. This may result in higher coding efficiency than the previous embodiment because some flexibility is introduced in assigning LFNST to each TU within a coding unit coded in ISP mode. Thus, the encoder has more freedom in rate-distortion optimization to find the best coding mode for intra CUs in ISP mode.

[0116] Fig. 12A and Fig. 12B Example embodiments of a decoding process are shown in which the use of the secondary transform is limited to a subset of TUs. According to these embodiments, the LFNST index is signaled on a TU level inside an intra ISP decoding unit, in addition to the subset of TUs contained in the decoding unit. Fig. 12A In the first variant shown in , LFNST is not allowed for the first TU of a CU and conventional transform selection is available for this TU. However, as explained in the previous embodiments, LFNST is allowed and signaled for the other TUs of the CU. Fig. 12B In the second variant shown in , for the two first TUs of the CU, LFNST is not allowed and the conventional transform selection can be used for this TU. However, as explained in the previous embodiments, for the other TUs of the CU, LFNST is allowed and signaled.

[0117] Fig.13 An example embodiment of a change in the partition ratio between TUs within an intra CU decoded in ISP mode is shown. In this embodiment, the ISP mode divides the intra CU into 3 TUs instead of 4 TUs. Then, the TU size relative to the parent CU can be 1 / 4, 1 / 4, and 1 / 2 along the considered partition orientation, horizontal or vertical direction. In this embodiment, only the third TU uses LFNST. Fig.13In the example shown, the two first TUs have a size equal to one quarter of the parent CU. Conventional primary transform type selection is used for these TUs, but LFNST is not used. The third TU has a size equal to one-half the CU size. For the last TU of the CU, DCT2 is used as the primary transform and LFNST is allowed. As described in the previous embodiments, the LFNST index can be signaled at the CU level or at the TU level.

[0118] In a variant embodiment of the aforementioned embodiment, a large block 8×8 LFNST may be used to apply LFNST to a TU having a size equal to half or a quarter of the size of the considered CU. In at least another variant embodiment of the aforementioned embodiment, these 8×8 LFNST basis functions may also be applied to transform blocks of size 2×N, N×2, 1×N or N×1, N being a non-zero positive integer value.

[0119] In a variant embodiment of the above proposed embodiment, the constraints on the CU size are changed in order to increase the use of LFNST for larger blocks (typically 8×8 blocks), using, for example, Table 6:

[0120] Block size (height x width) Number of subpartitions 4×4 Not divided 4×8 and 8×4 2 8×8 and 8×16 and 16×8 2 All other cases 4

[0121] Table 6

[0122] In the new case, the 8x16 and 16x8 cases are implicitly split, such that the 2 resulting TUs have size 8x8.

[0123] In a variant embodiment, the conventional partitioning decision of ISP is modified to support LNFST on TUs of at least four samples in both directions. In other words, the ISP conditions are changed, for example, prohibiting 1×N, N×1, 2×N and N×2.

[0124] In another embodiment, the conditions for applying LFNST in the case of a CU decoded in ISP mode are modified compared to the VVC Draft 6 specification. In practice, a TU consists of one or several transform blocks. In the case of VVC Draft 6, in the case of an intra CU decoded in a single-tree configuration, several transform blocks are included in the TU. A single tree means that a single coding tree is used to partition the CTU into coding units for all luminance and chrominance components. Therefore, in this case, the CU consists of luminance and 2 chrominance coding blocks. In addition, a CU consisting of a single TU includes luminance and 2 chrominance transform blocks. In VVC Draft 6, one condition for enabling LFNST for this CU is that at least one transform block in the CU contains residual data, where the last important coefficient position, that is, the position of the non-zero transform coefficient with the largest scan position in the transform block, is not the (0, 0) position in the residual block.

[0125] In the embodiment proposed here, an additional condition is added stating that if all luma transform blocks included in the coding unit have a last significant coefficient position different from coefficient position 0, then LFNST is enabled for a CU coded in ISP mode.

[0126] According to another embodiment, the entropy decoding of the LFNST index is modified according to the use of the ISP for the intra-frame decoding unit under consideration. In VVC Draft 6, LFNST is signaled by 2 binary elements (bins). The first bin indicates whether the LFNST index is zero, that is, it indicates whether the LFNST is used for the current CU. If the first bin is equal to 1, the second bin indicates whether the LFNST index is equal to 1 or 2. In VVC Draft 6, the first bin is decoded based on the context. The CABAC context used depends on whether a separate tree mode is used for the CU under consideration. According to an embodiment of the present invention, the context for the first bin of the signaling LFNST index also depends on whether the ISP mode is turned off or on for the CU under consideration. Therefore, in this embodiment, compared with VVC Draft 6, the number of contexts for decoding the first bin of the LFNST index is doubled: 4 contexts are used instead of 2 contexts.

[0127] Furthermore, according to another variant, in case of intra slices, the initial conditional probability associated with the added CABAC context is set to a value representing a very low probability that the LFNST index is different from 0. In practice, it has been observed that the proposed combination of LFNST and ISP decoding modes brings compression benefits in inter pictures, but this benefit tends to be much lower in intra pictures.

[0128] According to another embodiment, the combined use of LFNST and ISP is normatively enabled only for intra-coded units coded in single-tree mode.

[0129] According to another embodiment, the combined use of LFNST and ISP is normatively enabled only for intra-coding units coded in INTRA slices.

[0130] According to another embodiment, the combined use of LFNST and ISP is canonically enabled for all intra-coded units regardless of single-tree or dual-tree mode, but this mode combination is evaluated as a candidate mode by the encoder-side rate-distortion search only in the single-tree case.

[0131] According to another embodiment, the combined use of LFNST and ISP is canonically enabled for all intra-coded units regardless of single-tree or dual-tree mode, but this mode combination is evaluated as a candidate mode by the encoder-side rate-distortion search only in INTRA slices.

[0132] Various implementations involve decoding. As used in this application, "decoding" may include, for example, all or part of a process performed on a received coded sequence to produce a final output suitable for display. In various embodiments, such a process includes one or more processes typically performed by a decoder, such as entropy decoding, inverse quantization, inverse transform, and differential decoding. In various embodiments, such a process also or alternatively includes a process performed by a decoder of various implementations described in this application, such as in Figure 6B to Figure 13 The embodiments presented in .

[0133] As a further example, in one embodiment, "decoding" refers only to entropy decoding, in another embodiment, "decoding" refers only to differential decoding, and in another embodiment, "decoding" refers to a combination of entropy decoding and differential decoding. Whether the phrase "decoding process" is intended to refer specifically to a subset of operations or generally to a broader decoding process will be clear based on the context of the specific description and is believed to be well understood by those skilled in the art.

[0134] Various implementations involve encoding. In a manner similar to the discussion above regarding "decoding," "encoding," as used in this application, may include, for example, all or part of a process performed on an input video sequence to produce an encoded bitstream. In various embodiments, such processes include one or more processes typically performed by an encoder, such as partitioning, differential encoding, transforms, quantization, and entropy encoding. In various embodiments, such processes also or instead include processes performed by an encoder of the various implementations described in this application, such as Figure 6B to Figure 13 Embodiment of the invention.

[0135] As a further example, in one embodiment, "encoding" refers only to entropy encoding, in another embodiment, "encoding" refers only to differential encoding, and in another embodiment, "encoding" refers to a combination of differential encoding and entropy encoding. Whether the phrase "encoding process" is intended to refer specifically to a subset of operations or generally to a broader encoding process will become clear based on the context of the specific description and is believed to be well understood by those skilled in the art.

[0136] Note that the syntax elements used herein are descriptive terms. Therefore, they do not exclude the use of other syntax element names.

[0137] This application describes multiple aspects, including tools, features, embodiments, models, methods, etc. Many of these aspects are described as being specific, and are often described in a manner that may sound restrictive, at least to illustrate individual characteristics. However, this is for the purpose of clarity of description and does not limit the application or scope of those aspects. In fact, all different aspects can be combined and interchanged to provide additional aspects. In addition, these aspects can also be combined and interchanged with aspects described in earlier submitted documents. The aspects described and considered in this application can be implemented in many different forms. The above Figure 1 , Figure 2 and Figure 3 Some embodiments are provided, but other embodiments are contemplated, and the discussion of the figures does not limit the breadth of implementations.

[0138] In this application, the terms "reconstruction" and "decoding" are used interchangeably, the terms "pixel" and "sample" are used interchangeably, the terms "image", "picture" and "frame" are used interchangeably, and the terms "index" and "idx" are used interchangeably. Usually, but not necessarily, the term "reconstruction" is used on the encoder side, while "decoding" is used on the decoder side.

[0139] Various methods are described herein, and each method includes one or more steps or actions for implementing the described method. Unless a specific order of steps or actions is required for proper operation of the method, the order and / or use of specific steps and / or actions may be modified or combined.

[0140] Various numerical values ​​are used in this application, such as regarding block size. The specific values ​​are for example purposes, and the described aspects are not limited to these specific values.

[0141] References to "one embodiment" or "an embodiment" or "an implementation" or "an implementation" and other variations thereof mean that a particular feature, structure, characteristic, etc. described in connection with the embodiment is included in at least one embodiment. Thus, the appearances of the phrases "in one embodiment" or "in an embodiment" or "in an implementation" or "in an implementation" and any other variations thereof in various places throughout this application are not necessarily all referring to the same embodiment.

[0142] Additionally, the application or its claims may refer to "determining" various information. Determining information may include, for example, one or more of estimating information, calculating information, predicting information, or retrieving information from a memory.

[0143] Furthermore, the application or its claims may involve "accessing" various information. Accessing information may include, for example, receiving information, retrieving information (e.g., from a memory), storing information, moving information, copying information, calculating information, determining information, predicting information, or estimating information.

[0144] Additionally, the application or its claims may involve "receiving" various information. Like "accessing," receiving is intended to be a broad term. Receiving information may include, for example, one or more of accessing information or retrieving information (e.g., from a memory or optical storage medium). Furthermore, during operations such as storing information, processing information, transmitting information, moving information, copying information, erasing information, calculating information, determining information, predicting information, or estimating information, "receiving" is often involved in one way or another.

[0145] It should be understood that, for example, in the case of "A / B", "A and / or B", and "at least one of A and B", the use of any of the following " / ", "and / or", and "at least one of..." is intended to cover the selection of only the first listed option (A), or only the second listed option (B), or both options (A and B). As a further example, in the case of "A, B, and / or C" and "at least one of A, B, and C", such wording is intended to include the selection of only the first listed option (A), or only the second listed option (B), or only the third listed option (C), or only the first and second listed options (A and B), or only the first and third listed options (A and C), or only the second and third listed options (B and C), or all three options (A and B and C). This can be extended to many of the listed items, as will be clear to one of ordinary skill in this and related arts.

[0146] As will be appreciated by those skilled in the art, implementations may generate various signals formatted to carry information that may be stored or transmitted, for example. The information may include, for example, instructions for executing a method, or data generated by one of the described implementations. For example, a signal may be formatted to carry a bitstream of the described embodiments. Such a signal may be formatted as, for example, an electromagnetic wave (e.g., using a radio frequency portion of a spectrum) or a baseband signal. Formatting may include, for example, encoding a data stream and modulating a carrier with the encoded data stream. The information carried by the signal may be, for example, analog or digital information. As is known, the signal may be transmitted via a variety of different wired or wireless links. The signal may be stored on a processor readable medium.

Claims

1. A video encoding method, comprising: Splitting the intra-frame decoding block into at least two transform blocks, obtaining a determination that a second transform is to be applied and a selection of an index of the selected second transform in a list of low-frequency inseparable transforms; When the size of the decoding block is less than or equal to a first threshold in width and height, and the size of the transform block is greater than or equal to a second threshold in width and height: signaling the application of the second transform to the intra-coded block; and performing a first transform on all transform blocks in the plurality of transform blocks, and performing a second transform on results of the first transform using the selected second transform; When the size of the decoding block is greater than a first threshold in width and height, or the size of the transform block is less than a second threshold in width and height: In the transform list, selecting a zero value as an index of the second transform; and performing a first transform on all transform blocks in the plurality of transform blocks, the first transform being selected from a transform set; The coded block is encoded using the signaled information representing the application of the second transform to the coded block.

2. A video decoding method, for a decoding block divided into a plurality of transform blocks, comprising: obtaining information indicating an index of a second inverse transform in a list of low-frequency inseparable inverse transforms; When the index is not a zero value and the size of the decoding block is less than or equal to a first threshold in width and height, and the size of the transform block is greater than or equal to a second threshold in width and height, the second inverse transform identified by the index is performed on all transform blocks in the transform block of the decoding block, and a first inverse transform is performed on a result of the second inverse transform, and when the index is a zero value or the size of the decoding block is greater than the first threshold in width and height, or the size of the transform block is less than the second threshold in width and height, the first inverse transform is performed on all transform blocks in the plurality of transform blocks of the decoding block, and the first inverse transform is selected in an inverse transform set; The inverse transform block is decoded. 3 . The method according to claim 1 , wherein the size of the threshold of the transform block is 4.

4. The method according to any one of claims 1 or 2, wherein the first transform is a two-dimensional (2D) discrete cosine transform (DCT) transform.

5. A video encoding apparatus (100, 300), comprising means for: Splitting the intra-frame decoding block into at least two transform blocks, obtaining a determination that a second transform is to be applied and a selection of an index of the selected second transform in a list of low-frequency inseparable transforms; When the size of the decoding block is less than or equal to a first threshold in width and height, and the size of the transform block is greater than or equal to a second threshold in width and height: signaling the application of the second transform to the intra-coded block; and performing a first transform on all transform blocks in the plurality of transform blocks, and performing a second transform on results of the first transform using the selected second transform; When the size of the decoding block is greater than a first threshold in width and height, or the size of the transform block is less than a second threshold in width and height: In the transform list, selecting a zero value as an index of the second transform; and performing a first transform on all transform blocks in the plurality of transform blocks, the first transform being selected from a transform set; The coded block is encoded using the signaled information representing the application of the second transform to the coded block.

6. A video decoding apparatus (200, 300), comprising means for: obtaining information indicating an index of a second inverse transform in a list of low-frequency inseparable inverse transforms; When the index is not a zero value and the size of the decoding block is less than or equal to a first threshold in width and height, and the size of the transform block is greater than or equal to a second threshold in width and height, the second inverse transform identified by the index is performed on all transform blocks in the transform block of the decoding block, and a first inverse transform is performed on a result of the second inverse transform, and when the index is a zero value or the size of the decoding block is greater than the first threshold in width and height, or the size of the transform block is less than the second threshold in width and height, the first inverse transform is performed on all transform blocks in the plurality of transform blocks of the decoding block, and the first inverse transform is selected in an inverse transform set; The inverse transform block is decoded. 7 . The apparatus according to claim 6 , wherein the magnitude of the threshold of the transform block is 4.

8. The apparatus according to any one of claims 6 or 7, wherein the first transform is a two-dimensional (2D) discrete cosine transform (DCT) transform.

9. A computer-readable medium comprising instructions, which, when executed by a computer, cause the computer to perform the method of claim 1.

10. A computer-readable medium comprising instructions, which, when executed by a computer, cause the computer to perform the method of claim 2.