IP Library Granted Patent US 10,250,882
Granted Patent B2
US 10,250,882 · App. 15/202,933 · Granted Apr 2, 2019

Control and use of chroma quantization parameter values

Inventors: Gary J. Sullivan (Bellevue, WA); Sandeep Kanumuri (Redmond, WA)
Assignee: Microsoft Technology Licensing, LLC
H04N19/124H04N19/126H04N19/174H04N19/186H04N19/44H04N19/70H04N19/146
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,250,882
App. No.
15/202,933
Granted
Apr 2, 2019
Kind
B2
Abstract

Innovations in control and use of chroma quantization parameter (“QP”) values that depend on luma QP values. More generally, the innovations relate to control and use of QP values for a secondary color component that depend on QP values for a primary color component. For example, during encoding, an encoder determines a QP index from a primary component QP and secondary component QP offset. The encoder maps the QP index to a secondary component QP, which has an extended range. The encoder outputs at least part of a bitstream including the encoded content. A corresponding decoder receives at least part of a bitstream including encoded content. During decoding, the decoder determines a QP index from a primary component QP and secondary component QP offset, then maps the QP index to a secondary component QP, which has an extended range.

Claims (46)

1. A computing device that implements an image or video encoder adapted to perform operations comprising:

encoding image or video content for which values of quantization parameter (QP) vary according to a relationship between a luma component and one or more chroma components, wherein the encoding includes:

determining a QP index from a luma component QP and a chroma component QP offset, wherein the chroma component QP offset incorporates a picture-level chroma QP offset and a slice-level chroma QP offset, and wherein the QP index is a variable qP I determined according to:

qP I =Clip3( a,b ,QP Y +qp_offset+slice_qp_delta),

where QP Y represents the luma component QP, qp_offset represents the picture-level chroma QP offset, slice_qp_delta represents the slice-level chroma QP offset, and Clip3(a, b, c) represents a function that clips the value of c to the range of a to b; and

mapping the QP index to a chroma component QP; and

outputting at least part of a bitstream including the encoded content, wherein the bitstream includes a flag in a picture parameter set that indicates presence of slice-level chroma QP offsets in slice headers.

2. The computing device of claim 1 wherein the mapping follows a table that maps different values of QP index to corresponding values of chroma component QP.

3. The computing device of claim 1 wherein the mapping follows logic that maps different values of QP index to corresponding values of chroma component QP.

4. The computing device of claim 1 wherein the encoding further comprises:

quantizing transform coefficients for one or more portions of a slice of a picture based at least in part on the chroma component QP.

5. The computing device of claim 1 wherein the encoder constrains values of the picture-level chroma QP offset, the slice-level chroma QP offset and sum of the picture-level chroma QP offset and the slice-level chroma QP offset to a defined range.

6. In a computing device that implements an image or video decoder, a method comprising:

receiving at least part of a bitstream including encoded image or video content for which values of quantization parameter (QP) vary according to a relationship between a luma component and one or more chroma components, wherein the bitstream includes a flag in a picture parameter set that indicates presence of slice-level chroma QP offsets in slice headers; and

decoding at least some of the encoded content, wherein the decoding includes:

determining a QP index from a luma component QP and a chroma component QP offset, wherein the chroma component QP offset incorporates a picture-level chroma QP offset and a slice-level chroma QP offset, and wherein the QP index is a variable qP I determined according to:

qP I =Clip3( a,b ,QP Y +qp_offset+slice_qp_delta),

where QP Y represents the luma component QP, qp_offset represents the picture-level chroma QP offset, slice_qp_delta represents the slice-level chroma QP offset, and Clip3(a, b, c) represents a function that clips the value of c to the range of a to b; and

mapping the QP index to a chroma component QP.

7. The method of claim 6 wherein the mapping follows a table that maps different values of QP index to corresponding values of chroma component QP.

8. The method of claim 6 wherein the mapping follows logic that maps different values of QP index to corresponding values of chroma component QP.

9. The method of claim 6 wherein the decoding further comprises:

inverse quantizing transform coefficients for one or more portions of a slice of a picture based at least in part on the chroma component QP.

10. One or more computer-readable storage media storing computer-executable instructions for causing a computing device, when programmed thereby to perform operations, the one or more computer-readable storage media being selected from the group consisting of non-volatile memory and storage devices, the operations comprising:

determining a QP index from a luma component QP and a chroma component QP offset, wherein the luma component QP and chroma component QP offset are indicated in a bitstream, wherein the bitstream includes a flag in a picture parameter set that indicates presence of slice-level chroma QP offsets in slice headers, wherein the chroma component QP offset incorporates a picture-level chroma QP offset and a slice-level chroma QP offset, and wherein the QP index is a variable qP I determined according to:

qP I =Clip3( a,b ,QP Y +qp_offset+slice_qp_delta),

where QP Y represents the luma component QP, qp_offset represents the picture-level chroma QP offset, slice_qp_delta represents the slice-level chroma QP offset, and Clip3(a, b, c) represents a function that clips the value of c to the range of a to b; and

mapping the QP index to a chroma component QP.

11. The one or more computer-readable storage media of claim 10 wherein the mapping follows a table that maps different values of QP index to corresponding values of chroma component QP.

12. The one or more computer-readable storage media of claim 10 wherein the mapping follows logic that maps different values of QP index to corresponding values of chroma component QP.

13. The one or more computer-readable storage media of claim 10 wherein the determining the QP index and the mapping are performed as part of encoding, and wherein the operations further comprise constraining values of the picture-level chroma QP offset, the slice-level chroma QP offset and sum of the picture-level chroma QP offset and the slice-level chroma QP offset to a defined range.

14. The one or more computer-readable storage media of claim 10 wherein the determining the QP index and the mapping are performed as part of encoding, and wherein the operations further comprise:

quantizing transform coefficients for one or more portions of a slice of a picture based at least in part on the chroma component QP.

15. The one or more computer-readable storage media of claim 10 wherein the determining the QP index and the mapping are performed as part of decoding, and wherein the operations further comprise:

inverse quantizing transform coefficients for one or more portions of a slice of a picture based at least in part on the chroma component QP.

16. A computing device that implements an image or video decoder adapted to perform operations comprising:

receiving at least part of a bitstream including encoded image or video content for which values of quantization parameter (QP) vary according to a relationship between a luma component and one or more chroma components, wherein the bitstream includes a flag in a picture parameter set that indicates presence of slice-level chroma QP offsets in slice headers; and

decoding at least some of the encoded content, wherein the decoding includes:

determining a QP index from a luma component QP and a chroma component QP offset, wherein the chroma component QP offset incorporates a picture-level chroma QP offset and a slice-level chroma QP offset, and wherein the QP index is a variable qP I determined according to:

qP I =Clip3( a,b ,QP Y +qp_offset+slice_qp_delta),

where QP Y represents the luma component QP, qp_offset represents the picture-level chroma QP offset, slice_qp_delta represents the slice-level chroma QP offset, and Clip3(a, b, c) represents a function that clips the value of c to the range of a to b; and

mapping the QP index to a chroma component QP.

17. The computing device of claim 16 wherein the mapping follows a table that maps different values of QP index to corresponding values of chroma component QP.

18. The computing device of claim 16 wherein the mapping follows logic that maps different values of QP index to corresponding values of chroma component QP.

19. The computing device of claim 16 wherein the decoding further comprises:

inverse quantizing transform coefficients for one or more portions of a slice of a picture based at least in part on the chroma component QP.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 6, 2016
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 039086/0343 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 6, 2016
From: SULLIVAN, GARY J.; KANUMURI, SANDEEP
To: MICROSOFT CORPORATION
Reel/Frame 039086/0349 →
Continuity (3)
Division 13732356 · Dec 31, 2012
Provisional Application 61667381 · Jul 2, 2012
Related Publication 20160316206A1 · Oct 27, 2016
Cited By (5)
US 12,192,463 US 12,206,859 US 12,284,348 US 12,348,718 US 12,348,719