IP Library Granted Patent US 10,958,916
Granted Patent B2
US 10,958,916 · App. 16/780,845 · Granted Mar 23, 2021

Fractional quantization step sizes for high bit rates

Inventors: Thomas W. Holcomb (Bothell, WA); Sridhar Srinivasan (Shanghai, CN); Pohsiang Hsu (Redmond, WA); Chih-Lung Lin (Redmond, WA)
Assignee: Microsoft Technology Licensing, LLC
H04N19/18H04N19/124H04N19/126H04N19/136H04N19/137H04N19/17H04N19/176H04N19/184H04N19/186H04N19/44H04N19/46H04N19/61H04N19/625H04N19/70H04N19/91
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,958,916
App. No.
16/780,845
Granted
Mar 23, 2021
Kind
B2
Abstract

A video codec uses fractional increments of quantization step size at high bit rates to permit a more continuous variation of quality and/or bit rate as the quantization scale changes. For high bit rate scenarios, the bit stream syntax includes an additional syntax element to specify fractional step increments (e.g., half step) of the normal quantizer scale step sizes.

Claims (44)

1. In a computer system that implements a video decoder, a method comprising:

receiving encoded data in a bitstream for at least part of a video sequence; and

decoding the encoded data, including, for each of multiple frames of the video sequence:

decoding a quantizer index for the frame, wherein the quantizer index indicates a picture quantizer scale for the frame;

comparing the quantizer index to a comparison value;

responsive to the quantizer index being less than or equal to the comparison value, decoding a half-step quantization parameter field, the half-step quantization parameter field indicating a half-step increment for the picture quantizer scale for the frame, and selectively adjusting the picture quantizer scale for the frame according to the half-step increment, wherein syntax of the bitstream allows half-step picture quantization step sizes as specified by the quantizer index and the half-step quantization parameter field when the quantizer index is less than or equal to the comparison value but allows only integer-step picture quantization step sizes as specified by the quantizer index when the quantizer index is greater than the comparison value; and

inverse quantizing at least some quantized transform coefficients for the frame.

2. The method of claim 1 , wherein the quantizer index is a 5-bit field.

3. The method of claim 1 , wherein the quantizer index is signaled in a frame header.

4. The method of claim 1 , wherein the half-step quantization parameter field is a 1-bit field.

5. The method of claim 1 , wherein the half-step quantization parameter field is signaled in a frame header.

6. The method of claim 1 , wherein the selectively adjusting the picture quantizer scale for the frame includes:

if the half-step quantization parameter field is 1, adding ½ to the picture quantizer scale for the frame; and

otherwise, the half-step quantization parameter field being 0, not adjusting the picture quantizer scale for the frame.

7. The method of claim 1 , wherein the inverse quantizing includes performing operations according to dequant_coeff=quant_coeff*(2*quant_scale+halfstep), where dequant_coeff is a dequantized transform coefficient, quant_coeff is a quantized transform coefficient, quant_scale is the picture quantizer scale for the frame, and halfstep is the half-step quantization parameter field.

8. The method of claim 1 , wherein the inverse quantizing includes performing operations according to dequant_coeff=quant_coeff*(2* quant_scale+halfstep)+sign(quant_coeff)*quant_scale, where dequant_coeff is a dequantized transform coefficient, quant_coeff is a quantized transform coefficient, quant_scale is the picture quantizer scale for the frame, halfstep is the half-step quantization parameter field, and sign(x) is a function defined as +1 for x≥0, or −1 for x<0.

9. One or more computer-readable memory or storage devices having stored thereon computer-executable instructions for causing one or more processing units, when programmed thereby, to perform operations comprising:

receiving encoded data in a bitstream for at least part of a video sequence; and

decoding the encoded data, including, for each of multiple frames of the video sequence:

decoding a quantizer index for the frame, wherein the quantizer index indicates a picture quantizer scale for the frame;

comparing the quantizer index to a comparison value;

responsive to the quantizer index being less than or equal to the comparison value, decoding a half-step quantization parameter field, the half-step quantization parameter field indicating a half-step increment for the picture quantizer scale for the frame, and selectively adjusting the picture quantizer scale for the frame according to the half-step increment, wherein syntax of the bitstream allows half-step picture quantization step sizes as specified by the quantizer index and the half-step quantization parameter field when the quantizer index is less than or equal to the comparison value but allows only integer-step picture quantization step sizes as specified by the quantizer index when the quantizer index is greater than the comparison value; and

inverse quantizing at least some quantized transform coefficients for the frame.

10. The one or more computer-readable memory or storage devices of claim 9 , wherein the quantizer index is a 5-bit field, and wherein the quantizer index is signaled in a frame header.

11. The one or more computer-readable memory or storage devices of claim 9 , wherein the half-step quantization parameter field is a 1-bit field, and wherein the half-step quantization parameter field is signaled in a frame header.

12. The one or more computer-readable memory or storage devices of claim 9 , wherein the selectively adjusting the picture quantizer scale for the frame includes:

if the half-step quantization parameter field is 1, adding ½ to the picture quantizer scale for the frame; and

otherwise, the half-step quantization parameter field being 0, not adjusting the picture quantizer scale for the frame.

13. The one or more computer-readable memory or storage devices of claim 9 , wherein the inverse quantizing includes performing operations according to dequant_coeff=quant_coeff*(2*quant_scale+halfstep), where dequant_coeff is a dequantized transform coefficient, quant_coeff is a quantized transform coefficient, quant_scale is the picture quantizer scale for the frame, and halfstep is the half-step quantization parameter field.

14. The one or more computer-readable memory or storage devices of claim 9 , wherein the inverse quantizing includes performing operations according to dequant_coeff=quant_coeff*(2*quant_scale+halfstep)+sign(quant_coeff)*quant_scale, where dequant_coeff is a dequantized transform coefficient, quant_coeff is a quantized transform coefficient, quant_scale is the picture quantizer scale for the frame, halfstep is the half-step quantization parameter field, and sign(x) is a function defined as +1 for x≥0, or −1 for x<0.

15. A computer system comprising memory and one or more processing units, wherein the computer system implements a video decoder configured to perform operations comprising:

receiving encoded data in a bitstream for at least part of a video sequence; and

decoding the encoded data, including, for each of multiple frames of the video sequence:

decoding a quantizer index for the frame, wherein the quantizer index indicates a picture quantizer scale for the frame;

comparing the quantizer index to a comparison value;

responsive to the quantizer index being less than or equal to the comparison value, decoding a half-step quantization parameter field, the half-step quantization parameter field indicating a half-step increment for the picture quantizer scale for the frame, and selectively adjusting the picture quantizer scale for the frame according to the half-step increment, wherein syntax of the bitstream allows half-step picture quantization step sizes as specified by the quantizer index and the half-step quantization parameter field when the quantizer index is less than or equal to the comparison value but allows only integer-step picture quantization step sizes as specified by the quantizer index when the quantizer index is greater than the comparison value; and

inverse quantizing at least some quantized transform coefficients for the frame.

16. The computer system of claim 15 , wherein the quantizer index is a 5-bit field, and wherein the quantizer index is signaled in a frame header.

17. The computer system of claim 15 , wherein the half-step quantization parameter field is a 1-bit field, and wherein the half-step quantization parameter field is signaled in a frame header.

18. The computer system of claim 15 , wherein the selectively adjusting the picture quantizer scale for the frame includes:

if the half-step quantization parameter field is 1, adding ½ to the picture quantizer scale for the frame; and

otherwise, the half-step quantization parameter field being 0, not adjusting the picture quantizer scale for the frame.

19. The computer system of claim 15 , wherein the inverse quantizing includes performing operations according to dequant_coeff=quant_coeff*(2*quant_scale+halfstep), where dequant_coeff is a dequantized transform coefficient, quant_coeff is a quantized transform coefficient, quant_scale is the picture quantizer scale for the frame, and halfstep is the half-step quantization parameter field.

20. The computer system of claim 15 , wherein the inverse quantizing includes performing operations according to dequant_coeff=quant_coeff*(2*quant_scale+halfstep)+sign(quant_coeff)*quant_scale, where dequant_coeff is a dequantized transform coefficient, quant_coeff is a quantized transform coefficient, quant_scale is the picture quantizer scale for the frame, halfstep is the half-step quantization parameter field, and sign(x) is a function defined as +1 for x≥0, or −1 for x<0.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 2, 2020
From: SRINIVASAN, SRIDHAR; LIN, CHIH-LUNG
To: MICROSOFT CORPORATION
Reel/Frame 053112/0682 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 2, 2020
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 053112/0707 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 2, 2020
From: HOLCOMB, THOMAS W.; HSU, POHSIANG
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 053112/0738 →
Continuity (6)
Continuation 16051094 · Jul 31, 2018
Continuation 15068325 · Mar 11, 2016
Continuation 12815029 · Jun 14, 2010
Division 10893168 · Jul 17, 2004
Provisional Application 60488710 · Jul 18, 2003
Related Publication 20200177892A1 · Jun 4, 2020