IP Library Granted Patent US 10,277,915
Granted Patent B2
US 10,277,915 · App. 13/670,011 · Granted Apr 30, 2019

Signaling quantization matrices for video coding

Inventors: Rajan Laxman Joshi (San Diego, CA); Marta Karczewicz (San Diego, CA)
Assignee: QUALCOMM Incorporated
H04N19/463H04N19/126H04N19/157H04N19/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 10,277,915
App. No.
13/670,011
Granted
Apr 30, 2019
Kind
B2
Abstract

The techniques of this disclosure may be generally related to signaling values of a quantization matrix. In some examples, coefficient values in the quantization matrix may be downsampled with different factors based on where the coefficient values are located in the quantization matrix.

Claims (97)

1. A method of encoding video data comprising:

determining a quantization matrix that includes a plurality of values, wherein the quantization matrix is used to quantize transform coefficients;

determining a first downsampling factor based on a location of a first set of values in the quantization matrix, wherein the first set of values includes only the value at location (0,0) of the quantization matrix;

determining a second downsampling factor based on a location of a second set of values in the quantization matrix, wherein the second set of values is different from the first set of values;

downsampling the first set of values in the quantization matrix by the first downsampling factor to generate a first set of downsampled values;

downsampling the second set of values in the quantization matrix by the second downsampling factor to generate a second set of downsampled values, wherein the second set of downsampled values has fewer values than the second set of values in the quantization matrix and represents the second set of values in the quantization matrix, wherein each value of the second set of downsampled values represents a plurality of values of the second set of values, wherein downsampling the second set of values in the quantization matrix comprises filtering a number of quantization matrix values in the second set of values to generate values in the second set of downsampled values, and wherein the number of quantization matrix values in the second set of values is determined from the second downsampling factor; and

generating a coded bitstream that includes the first set of downsampled values and the second set of downsampled values.

2. The method of claim 1 , wherein the first downsampling factor is determined to be 1, and wherein the second downsampling factor is determined to be one of 2 and 4.

3. The method of claim 1 , wherein the quantization matrix has a size of 16×16 or 32×32.

4. The method of claim 1 , further comprising:

predicting one of the downsampled values along a scan order in the first and second sets of downsampled values from a previous downsampled value along the scan order in the first and second sets of downsampled values, wherein downsampled values in the first set may be used to predict downsampled values in the second set.

5. The method of claim 1 , further comprising:

performing a prediction process on a block of video data to form a block of residual video data;

transforming the residual video data to form a block of transform coefficients;

quantizing values of transform coefficients in the block of transform coefficients according to the quantization matrix to form quantized transform coefficients; and

entropy coding the quantized transform coefficients into the coded bitstream.

6. A method of decoding video data comprising:

receiving a quantization matrix coded with downsampled values in a coded bitstream;

determining a first upsampling factor based on a location of a first set of downsampled values in the quantization matrix, wherein the first set of downsampled values includes only the value at location (0,0) of the quantization matrix;

determining a second upsampling factor based on a location of a second set of downsampled values in the quantization matrix, wherein the second set of downsampled values is different from the first set of downsampled values;

upsampling the first set of downsampled values in the quantization matrix by the first upsampling factor to generate a first set of values;

upsampling the second set of downsampled values in the quantization matrix by the second upsampling factor to generate a second set of values, wherein the second set of downsampled values has fewer values than the second set of values and represents the second set of values, wherein each value of the second set of downsampled values represents a plurality of values of the second set of values, wherein upsampling the second set of downsampled values in the quantization matrix comprises replicating a downsampled value in the second set of downsampled values for a number of the second set of values, and wherein the number of the second set of values is determined from the second upsampling factor; and

inverse quantizing a block of transform coefficients with the first and second sets of values.

7. The method of claim 6 , wherein the first upsampling factor is determined to be 1, and wherein the second upsampling factor is determined to be one of 2 and 4.

8. The method of claim 7 , wherein the quantization matrix has a size of 16×16 or 32×32.

9. The method of claim 6 , further comprising:

predicting each successive one of the downsampled values along a scan order in the first and second sets of downsampled values from a previous downsampled value along the scan order in the first and second sets of downsampled values, wherein downsampled values in the first set may be used to predict downsampled values in the second set.

10. The method of claim 6 , wherein different upsampling techniques are used to upsample the first and second set of downsampled values.

11. The method of claim 6 , wherein at least one of the first and second set of values is upsampled using bilinear interpolation.

12. The method of claim 6 , further comprising:

inverse transforming the inverse quantized block of transform coefficients to form a residual block of video data; and

performing a prediction process on the residual block of video data to form a decoded block of video data.

13. An apparatus configured to code video data comprising:

a memory configured to store the video data; and

a video encoder configured to:

determine a quantization matrix that includes a plurality of values, wherein the quantization matrix is used to quantize transform coefficients;

determine a first downsampling factor based on a location of a first set of values in the quantization matrix, wherein the first set of values includes only the value at location (0,0) of the quantization matrix;

determine a second downsampling factor based on a location of a second set of values in the quantization matrix, wherein the second set of values is different from the first set of values;

downsample the first set of values in the quantization matrix by the first downsampling factor to generate a first set of downsampled values;

downsample the second set of values in the quantization matrix by the second downsampling factor to generate a second set of downsampled values, wherein the second set of downsampled values has fewer values than the second set of values in the quantization matrix and represents the second set of values in the quantization matrix, wherein each value of the second set of downsampled values represents a plurality of values of the second set of values, wherein downsampling the second set of values in the quantization matrix comprises filtering a number of quantization matrix values in the second set of values to generate values in the second set of downsampled values, and wherein the number of quantization matrix values in the second set of values is determined from the second downsampling factor; and

generate a coded bitstream related to the video data that includes the first set of downsampled values and the second set of downsampled values.

14. The apparatus of claim 13 , wherein the first downsampling factor is determined to be 1, and wherein the second downsampling factor is determined to be one of 2 and 4.

15. The apparatus of claim 14 , wherein the quantization matrix has a size of 16×16 or 32×32.

16. The apparatus of claim 13 , wherein the video encoder is further configured to:

predict one of the downsampled values along a scan order in the first and second sets of downsampled values from a previous downsampled value along the scan order in the first and second sets of downsampled values, wherein downsampled values in the first set may be used to predict downsampled values in the second set.

17. The apparatus of claim 13 , wherein the video encoder is further configured to:

perform a prediction process on a block of video data to form a block of residual video data;

transform the residual video data to form a block of transform coefficients;

quantize values of transform coefficients in the block of transform coefficients according to the quantization matrix to form quantized transform coefficients; and

entropy code the quantized transform coefficients into the coded bitstream.

18. An apparatus configured to decode video data comprising:

a memory configured to store the video data; and

a video decoder configured to:

receive a quantization matrix coded with downsampled values in a coded bitstream of the video data;

determine a first upsampling factor based on a location of a first set of downsampled values in the quantization matrix, wherein the first set of downsampled values includes only the value at location (0,0) of the quantization matrix;

determine a second upsampling factor based on a location of a second set of downsampled values in the quantization matrix, wherein the second set of downsampled values is different from the first set of downsampled values;

upsample the first set of downsampled values in the quantization matrix by the first upsampling factor to generate a first set of values;

upsample the second set of downsampled values in the quantization matrix by the second upsampling factor to generate a second set of values, wherein the second set of downsampled values has fewer values than the second set of values and represents the second set of values, wherein each value of the second set of downsampled values represents a plurality of values of the second set of values, wherein upsampling the second set of downsampled values in the quantization matrix comprises replicating a downsampled value in the second set of downsampled values for a number of the second set of values, and wherein the number of the second set of values is determined from the second upsampling factor; and

inverse quantize a block of transform coefficients with the first and second sets of values.

19. The apparatus of claim 18 , wherein the first upsampling factor is determined to be 1, and wherein the second upsampling factor is determined to be one of 2 and 4.

20. The apparatus of claim 19 , wherein the quantization matrix has a size of 16×16 or 32×32.

21. The apparatus of claim 18 , wherein the video decoder is further configured to:

predict each successive one of the downsampled values along a scan order in the first and second sets of downsampled values from a previous downsampled value along the scan order in the first and second sets of downsampled values, wherein downsampled values in the first set may be used to predict downsampled values in the second set.

22. The apparatus of claim 18 , wherein different upsampling techniques are used to upsample the first and second set of downsampled values.

23. The apparatus of claim 18 , wherein at least one of the first and second set of values is upsampled using bilinear interpolation.

24. The apparatus of claim 18 , wherein the video decoder is further configured to:

inverse transform the inverse quantized block of transform coefficients to form a residual block of video data; and

perform a prediction process on the residual block of video data to form a decoded block of video data.

25. An apparatus configured to encode video data comprising:

means for determining a quantization matrix that includes a plurality of values, wherein the quantization matrix is used to quantize transform coefficients;

means for determining a first downsampling factor based on a location of a first set of values in the quantization matrix, wherein the first set of values includes only the value at location (0,0) of the quantization matrix;

means for determining a second downsampling factor based on a location of a second set of values in the quantization matrix, wherein the second set of values is different from the first set of values;

means for downsampling the first set of values in the quantization matrix by the first downsampling factor to generate a first set of downsampled values;

means for downsampling the second set of values in the quantization matrix by the second downsampling factor to generate a second set of downsampled values, wherein the second set of downsampled values has fewer values than the second set of values in the quantization matrix and represents the second set of values in the quantization matrix, wherein each value of the second set of downsampled values represents a plurality of values of the second set of values, wherein the means for downsampling the second set of values in the quantization matrix comprises means for filtering a number of quantization matrix values in the second set of values to generate values in the second set of downsampled values, and wherein the number of quantization matrix values in the second set of values is determined from the second downsampling factor; and

means for generating a coded bitstream that includes the first set of downsampled values and the second set of downsampled values.

26. An apparatus configured to decode video data comprising:

means for receiving a quantization matrix coded with downsampled values in a coded bitstream;

means for determining a first upsampling factor based on a location of a first set of downsampled values in the quantization matrix, wherein the first set of downsampled values includes only the value at location (0,0) of the quantization matrix;

means for determining a second upsampling factor based on a location of a second set of downsampled values in the quantization matrix, wherein the second set of downsampled values is different from the first set of downsampled values;

means for upsampling the first set of downsampled values in the quantization matrix by the first upsampling factor to generate a first set of values;

means for upsampling the second set of downsampled values in the quantization matrix by the second upsampling factor to generate a second set of values, wherein the second set of downsampled values has fewer values than the second set of values and represents the second set of values, wherein each value of the second set of downsampled values represents a plurality of values of the second set of values, wherein the means for upsampling the second set of downsampled values in the quantization matrix comprises means for replicating a downsampled value in the second set of downsampled values for a number of the second set of values, and wherein the number of the second set of values is determined from the second upsampling factor; and

means for inverse quantizing a block of transform coefficients with the first and second sets of values.

27. A non-transitory computer-readable storage medium storing instructions that, when executed, cause one or more processors of a device configured to encode video data to:

determine a quantization matrix that includes a plurality of values, wherein the quantization matrix is used to quantize transform coefficients;

determine a first downsampling factor based on a location of a first set of values in the quantization matrix, wherein the first set of values includes only the value at location (0,0) of the quantization matrix;

determine a second downsampling factor based on a location of a second set of values in the quantization matrix, wherein the second set of values is different from the first set of values;

downsample the first set of values in the quantization matrix by the first downsampling factor to generate a first set of downsampled values;

downsample the second set of values in the quantization matrix by the second downsampling factor to generate a second set of downsampled values, wherein the second set of downsampled values has fewer values than the second set of values in the quantization matrix and represents the second set of values in the quantization matrix, wherein each value of the second set of downsampled values represents a plurality of values of the second set of values, wherein, to downsample the second set of values in the quantization matrix, the one or more processors are configured to filter a number of quantization matrix values in the second set of values to generate values in the second set of downsampled values, and wherein the number of quantization matrix values in the second set of values is determined from the second downsampling factor; and

generate a coded bitstream that includes the first set of downsampled values and the second set of downsampled values.

28. A non-transitory computer-readable storage medium storing instructions that, when executed, cause one or more processors of a device configured to decode video data to:

receive a quantization matrix coded with downsampled values in a coded bitstream;

determine a first upsampling factor based on a location of a first set of downsampled values in the quantization matrix, wherein the first set of downsampled values includes only the value at location (0,0) of the quantization matrix;

determine a second upsampling factor based on a location of a second set of downsampled values in the quantization matrix, wherein the second set of downsampled values is different from the first set of downsampled values;

upsample the first set of downsampled values in the quantization matrix by the first upsampling factor to generate a first set of values;

upsample the second set of downsampled values in the quantization matrix by the second upsampling factor to generate a second set of values, wherein the second set of downsampled values has fewer values than the second set of values and represents the second set of values, wherein each value of the second set of downsampled values represents a plurality of values of the second set of values, wherein, to upsample the second set of downsampled values in the quantization matrix, the one or more processors are configured to replicate a downsampled value in the second set of downsampled values for a number of the second set of values, wherein the number of the second set of values is determined from the second upsampling factor; and

inverse quantize a block of transform coefficients with the first and second sets of values.

29. The method of claim 1 , wherein filtering the number of quantization matrix values in the second set of values comprises averaging the number of quantization matrix values in the second set of values.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 22, 2013
From: JOSHI, RAJAN LAXMAN; KARCZEWICZ, MARTA
To: QUALCOMM INCORPORATED
Reel/Frame 029673/0107 →
Continuity (5)
Provisional Application 61556785 · Nov 7, 2011
Provisional Application 61594885 · Feb 3, 2012
Provisional Application 61597107 · Feb 9, 2012
Provisional Application 61605654 · Mar 1, 2012
Related Publication 20130114695A1 · May 9, 2013
Cited By (1)
US 12,294,703