IP Library › Granted Patent US 11,902,531
Granted Patent B2
US 11,902,531 · App. 17/658,385 · Granted Feb 13, 2024

Low frequency non-separable transform for video coding

Inventors: Louis Joseph Kerofsky (San Diego, CA); Muhammed Zeyd Coban (Carlsbad, CA); Bappaditya Ray (San Diego, CA); Hilmi Enes Egilmez (San Diego, CA); Marta Karczewicz (San Diego, CA)
Assignee: QUALCOMM Incorporated
H04N19/136H04N19/159H04N19/176H04N19/18
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,902,531
App. No.
17/658,385
Granted
Feb 13, 2024
Kind
B2
Abstract

A method of decoding video data includes determining an intra prediction mode from a plurality of intra prediction modes for a current block of the video data, determining a low frequency non-separable transform (LFNST) kernel from a plurality of LFNST kernels for the current block based on the determined intra prediction mode, wherein at least one LFNST kernel of the plurality of LFNST kernels is associated with at least two different intra prediction modes of the plurality of intra prediction modes, applying an inverse of the determined LFNST kernel to coefficient values generated from a transform unit (TU) of the current block to generate intermediate values, applying an inverse primary transform on the intermediate values to generate residual data, and reconstructing the current block based on the residual data.

Claims (81)

1. A method of decoding video data, the method comprising:

determining a transform unit (TU) class from a plurality of TU classes based on a height and a width of a current block of the video data, wherein the plurality of TU classes includes more than two TU classes;

determining an intra prediction mode from a plurality of intra prediction modes for the current block of the video data;

determining an intra prediction mode cluster based on the intra prediction mode and the TU class;

determining a low frequency non-separable transform (LFNST) kernel from a plurality of LFNST kernels for the current block based on the intra prediction mode cluster and the TU class, wherein each LFNST kernel of the plurality of LFNST kernels is assigned to at least one intra prediction mode cluster from a plurality of intra prediction mode clusters and at least one TU class from the plurality of TU classes;

applying an inverse of the determined LFNST kernel to coefficient values generated from a transform unit (TU) of the current block to generate intermediate values;

applying an inverse primary transform on the intermediate values to generate residual data; and

reconstructing the current block based on the residual data.

2. The method of claim 1 , wherein the current block is a first block and the intra prediction mode is a first intra prediction mode, the method further comprising:

determining a second intra prediction mode from the plurality of intra prediction modes for a second block of the video data, wherein the second intra prediction mode is different than the first intra prediction mode; and

determining, based on the second intra prediction mode, the same LFNST kernel for the second block as the LFNST kernel for the first block, wherein the LFNST kernel is assigned to the first intra prediction mode and the second intra prediction mode.

3. The method of claim 1 , wherein determining the LFNST kernel from the plurality of LFNST kernels for the current block comprises:

utilizing a value indicative of the determined intra prediction mode cluster as an index into a list of LFNST kernels, wherein at least one of the plurality of LFNST kernels is identified in two or more locations in the list of LFNST kernels.

4. The method of claim 1 , wherein determining the TU class comprises:

utilizing both the height and the width as indices into a two-dimensional look-up table (LUT).

5. The method of claim 1 , wherein determining the TU class comprises:

utilizing both the height and the width as inputs into an equation that outputs the TU class.

6. The method of claim 1 , wherein applying the inverse of the determined LFNST kernel comprises applying the inverse of the determined LFNST to a subset of the coefficient values generated from the TU.

7. The method of claim 1 , further comprising:

entropy decoding coefficient levels of coefficients of the TU to generate quantized coefficient values; and

inverse quantizing the quantized coefficient values to generate the coefficient values.

8. The method of claim 1 , further comprising:

generating a prediction block for the current block, wherein reconstructing the current block comprises adding the prediction block to the residual data.

9. The method of claim 1 , wherein determining the LFNST kernel comprises determining an inverse LFNST kernel, and wherein applying the inverse of the determined LFNST kernel comprises applying the determined inverse LFNST kernel.

10. A device for decoding video data, the device comprising:

memory; and

processing circuitry coupled to the memory and configured to:

determine a transform unit (TU) class from a plurality of TU classes based on a height and a width of a current block of the video data, wherein the plurality of TU classes includes more than two TU classes;

determine an intra prediction mode from a plurality of intra prediction modes for the current block of the video data;

determine an intra prediction mode cluster based on the intra prediction mode and the TU class;

determine a low frequency non-separable transform (LFNST) kernel from a plurality of LFNST kernels for the current block based on the intra prediction mode cluster and the TU class, wherein each LFNST kernel of the plurality of LFNST kernels is assigned to at least one intra prediction mode cluster from a plurality of intra prediction mode clusters and at least one TU class from the plurality of TU classes;

apply an inverse of the determined LFNST kernel to coefficient values generated from a transform unit (TU) of the current block to generate intermediate values;

apply an inverse primary transform on the intermediate values to generate residual data; and

reconstruct the current block based on the residual data.

11. The device of claim 10 , wherein the current block is a first block and the intra prediction mode is a first intra prediction mode, and wherein the processing circuitry is configured to:

determine a second intra prediction mode from the plurality of intra prediction modes for a second block of the video data, wherein the second intra prediction mode is different than the first intra prediction mode; and

determine, based on the second intra prediction mode, the same LFNST kernel for the second block as the LFNST kernel for the first block, wherein the LFNST kernel is assigned to the first intra prediction mode and the second intra prediction mode.

12. The device of claim 10 , wherein to determine the LFNST kernel from the plurality of LFNST kernels for the current block, the processing circuitry is configured to:

utilize a value indicative of the determined intra prediction mode as an index into a list of LFNST kernels, wherein at least one of the plurality of LFNST kernels is identified in two or more locations in the list of LFNST kernels.

13. The device of claim 10 , wherein to determine the TU class, the processing circuitry is configured to:

utilize both the height and the width as indices into a two-dimensional look-up table (LUT).

14. The device of claim 10 , wherein to determine the TU class, the processing circuitry is configured to:

utilize both the height and the width as inputs into an equation that outputs the TU class.

15. The device of claim 10 , wherein to apply the inverse of the determined LFNST kernel, the processing circuitry is configured to apply the inverse of the determined LFNST to a subset of the coefficient values generated from the TU.

16. The device of claim 10 , wherein the processing circuitry is configured to:

entropy decode coefficient levels of coefficients of the TU to generate quantized coefficient values; and

inverse quantize the quantized coefficient values to generate the coefficient values.

17. The device of claim 10 , wherein the processing circuitry is configured to:

generate a prediction block for the current block, and

wherein to reconstruct the current block, the processing circuitry is configured to add the prediction block to the residual data.

18. The device of claim 10 , wherein to determine the LFNST kernel, the processing circuitry is configured to determine an inverse LFNST kernel, and wherein to apply the inverse of the determined LFNST kernel, the processing circuitry is configured to apply the determined inverse LFNST kernel.

19. The device of claim 10 , further comprising a display configured to display the video data.

20. The device of claim 10 , wherein the device comprises one or more of a camera, a computer, a mobile device, a broadcast receiver device, or a set-top box.

21. A method of encoding video data, the method comprising:

applying a primary transform on residual data indicative of a difference between a current block of the video data and a prediction block to generate intermediate coefficients;

determining a transform unit (TU) class from a plurality of TU classes based on a height and a width of the current block of the video data, wherein the plurality of TU classes includes more than two TU classes;

determining an intra prediction mode from a plurality of intra prediction modes for the current block;

determining an intra prediction mode cluster based on the intra prediction mode and the TU class;

determining a low frequency non-separable transform (LFNST) kernel from a plurality of LFNST kernels for the current block based on the intra prediction mode cluster and the TU class, wherein each LFNST kernel of the plurality of LFNST kernels is assigned to at least one intra prediction mode cluster from a plurality of intra prediction mode clusters and at least one TU class from the plurality of TU classes;

applying the determined LFNST kernel to the intermediate coefficients to generate coefficients of a transform unit (TU) of the current block; and

signaling information indicative of the coefficients of the TU.

22. The method of claim 21 , wherein the current block is a first block and the intra prediction mode is a first intra prediction mode, the method further comprising:

determining a second intra prediction mode from the plurality of intra prediction modes for a second block of the video data, wherein the second intra prediction mode is different than the first intra prediction mode; and

determining, based on the second intra prediction mode, the same LFNST kernel for the second block as the LFNST kernel for the first block, wherein the LFNST kernel is assigned to the first intra prediction mode and the second intra prediction mode.

23. A device for encoding video data, the device comprising:

memory; and

processing circuitry coupled to the memory and configured to:

apply a primary transform on residual data indicative of a difference between a current block of the video data and a prediction block to generate intermediate coefficients;

determine a transform unit (TU) class from a plurality of TU classes based on a height and a width of the current block of the video data, wherein the plurality of TU classes includes more than two TU classes;

determine an intra prediction mode from a plurality of intra prediction modes for the current block;

determine an intra prediction mode cluster based on the intra prediction mode and the TU class;

determine a low frequency non-separable transform (LFNST) kernel from a plurality of LFNST kernels for the current block based on the intra prediction mode cluster and the TU class, wherein each LFNST kernel of the plurality of LFNST kernels is assigned to at least one intra prediction mode cluster from a plurality of intra prediction mode clusters and at least one TU class from the plurality of TU classes;

apply the determined LFNST kernel to the intermediate coefficients to generate coefficients of a transform unit (TU) of the current block; and

signal information indicative of the coefficients of the TU.

24. The device of claim 23 , wherein the current block is a first block and the intra prediction mode is a first intra prediction mode, and wherein the processing circuitry is configured to:

determine a second intra prediction mode from the plurality of intra prediction modes for a second block of the video data, wherein the second intra prediction mode is different than the first intra prediction mode; and

determine, based on the second intra prediction mode, the same LFNST kernel for the second block as the LFNST kernel for the first block, wherein the LFNST kernel is assigned to the first intra prediction mode and the second intra prediction mode.

25. The method of claim 3 , wherein the list of LFNST kernels is a two-dimensional look-up table (LUT) and utilizing the value indicative of the determined intra prediction mode cluster as the index into the list of LFNST kernels comprises:

utilizing the value indicative of the determined intra prediction mode as a first index into the two-dimensional LUT and a value of the determined TU class as a second index into the two-dimensional LUT.

26. The apparatus of claim 12 , wherein the list of LFNST kernels is a two-dimensional look-up table (LUT) and, to utilize the value indicative of the determined intra prediction mode cluster as the index into the list of LFNST kernels, the processing circuitry is configured to:

utilize the value indicative of the determined intra prediction mode as a first index into the two-dimensional LUT and a value of the determined TU class as a second index into the two-dimensional LUT.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 6, 2022
From: KEROFSKY, LOUIS JOSEPH; COBAN, MUHAMMED ZEYD; RAY, BAPPADITYA; EGILMEZ, HILMI ENES; KARCZEWICZ, MARTA
To: QUALCOMM INCORPORATED
Reel/Frame 060415/0083 →
Continuity (3)
Provisional Application 63176804 · Apr 19, 2021
Provisional Application 63173879 · Apr 12, 2021
Related Publication 20220329819A1 · Oct 13, 2022