IP Library Granted Patent US 10,097,832
Granted Patent B2
US 10,097,832 · App. 15/685,278 · Granted Oct 9, 2018

Use of chroma quantization parameter offsets in deblocking

Inventor: Gary J. Sullivan (Bellevue, WA)
Assignee: Microsoft Technology Licensing, LLC
H04N19/124H04N19/117H04N19/15H04N19/70H04N19/86H04N19/172H04N19/174H04N19/176H04N19/184H04N19/186
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,097,832
App. No.
15/685,278
Granted
Oct 9, 2018
Kind
B2
Abstract

Innovations in use of chroma quantization parameter (“QP”) offsets when determining a control parameter for deblock filtering. For example, as part of encoding, an encoder sets a picture-level chroma QP offset and slice-level chroma QP offset for encoding of a slice of a picture. The encoder also performs deblock filtering of at least part of the slice, where derivation of a control parameter considers only the picture-level chroma QP offset. The encoder outputs at least part of a bitstream including the encoded content. As part of decoding, a corresponding decoder sets a picture-level chroma QP offset and a slice-level chroma QP offset for decoding of a slice of a picture, but derivation of a control parameter for deblock filtering considers only the picture-level chroma QP offset.

Claims (42)

1. A non-volatile memory or storage device having stored thereon 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 chroma components, wherein the bitstream is organized to facilitate decoding of at least some of the encoded content by operations comprising:

setting a picture-level chroma QP offset and a slice-level chroma QP offset for decoding of a slice of a picture;

for the decoding of the slice, using the picture-level chroma QP offset and the slice-level chroma QP offset to regulate inverse quantization, according to a chroma QP, of transform coefficients for one or more portions of the slice; and

performing deblock filtering of at least part of the slice, wherein derivation of a control parameter for the deblock filtering of the at least part of the slice considers the picture-level chroma QP offset but not the slice-level chroma QP offset, the control parameter depending on a variable qP I derived as:

qP I =(((QP Q +QP P +1)>>1)+ cqp _offset),

wherein variables QP Q and QP P represent luma QP values for blocks on either side of an edge in the at least part of the slice on which deblock filtering is performed, wherein variable cqp_offset represents the picture-level chroma QP offset, and wherein the variable qP I is used to determine a variable QP c that is used in the derivation of the control parameter.

2. The non-volatile memory or storage device of claim 1 wherein the bitstream includes one or more syntax elements that indicate the picture-level chroma QP offset for the picture and one or more syntax elements that indicate the slice-level chroma QP offset for the slice.

3. The non-volatile memory or storage device of claim 1 wherein, according to bitstream syntax, the slice-level chroma QP offset is separately signaled for two different chroma components for the slice, and wherein values of the control parameter are derived separately for the two different chroma components.

4. The non-volatile memory or storage device of claim 1 wherein bitstream syntax permits signaling of different slice-level chroma QP offsets for different slices of the picture.

5. The non-volatile memory or storage device of claim 1 wherein, according to bitstream syntax, the picture-level chroma QP offset is separately signaled for two different chroma components for the picture.

6. The non-volatile memory or storage device of claim 1 wherein the operations further comprise:

storing the picture-level chroma QP offset after the inverse quantization, for use in the derivation of the control parameter for the deblock filtering; and

discarding the slice-level chroma QP offset after the inverse quantization.

7. A computing system that comprises one or more processing units and memory, wherein the computing system implements an image or video encoder configured to encode image or video content for which values of quantization parameter (QP) vary according to a relationship between a luma component and chroma components, the encoder comprising:

a controller configured to set a picture-level chroma QP offset and a slice-level chroma QP offset for encoding of a slice of a picture;

a quantizer configured to, for the encoding of the slice, use the picture-level chroma QP offset and the slice-level chroma QP offset to regulate quantization, according to a chroma QP, of transform coefficients for one or more portions of the slice;

a deblock filter configured to perform deblock filtering of at least part of the slice, wherein derivation of a control parameter for the deblock filtering of the at least part of the slice considers the picture-level chroma QP offset but not the slice-level chroma QP offset, the control parameter depending on a variable qP I derived as:

qP I =(((QP Q +QP P +1)>>1)+ cqp _offset),

wherein variables QP Q and QP P represent luma QP values for blocks on either side of an edge in the at least part of the slice on which deblock filtering is performed, wherein variable cqp_offset represents the picture-level chroma QP offset, and wherein the variable qP I is used to determine a variable QP c that is used in the derivation of the control parameter; and

a buffer configured to store at least part of a bitstream including encoded content.

8. The computing system of claim 7 wherein the bitstream includes one or more syntax elements that indicate the picture-level chroma QP offset for the picture and one or more syntax elements that indicate the slice-level chroma QP offset for the slice.

9. The computing system of claim 7 wherein, according to bitstream syntax, the slice-level chroma QP offset is separately signaled for two different chroma components for the slice, and wherein the deblock filter is configured to separately derive values of the control parameter for the two different chroma components.

10. The computing system of claim 7 wherein bitstream syntax permits signaling of different slice-level chroma QP offsets for different slices of the picture.

11. The computing system of claim 7 wherein, according to bitstream syntax, the picture-level chroma QP offset is separately signaled for two different chroma components for the picture.

12. The computing system of claim 7 wherein the controller is configured to adjust the picture-level chroma QP offset and/or the slice-level chroma QP offset during encoding for rate control.

13. A computing system that comprises one or more processing units and memory, wherein the computing system implements an image or video decoder comprising:

a buffer configured to store 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 chroma components; and

a parser configured to parse, from the bitstream, one or more syntax elements that indicate a picture-level chroma QP offset and one or more syntax elements that indicate a slice-level chroma QP offset for decoding of a slice of a picture;

an inverse quantizer configured to, for the decoding of the slice, use the picture-level chroma QP offset and the slice-level chroma QP offset to regulate inverse quantization, according to a chroma QP, of transform coefficients for one or more portions of the slice; and

a deblock filter configured to perform deblock filtering of at least part of the slice, wherein derivation of a control parameter for the deblock filtering of the at least part of the slice considers the picture-level chroma QP offset but not the slice-level chroma QP offset, the control parameter depending on a variable qP I derived as:

qP I =(((QP Q +QP P +1)>>1)+ cqp _offset),

wherein variables QP Q and QP P represent luma QP values for blocks on either side of an edge in the at least part of the slice on which deblock filtering is performed, wherein variable cqp_offset represents the picture-level chroma QP offset, and wherein the variable qP I is used to determine a variable QPc that is used in the derivation of the control parameter.

14. The computing system of claim 13 wherein, according to bitstream syntax, the slice-level chroma QP offset is separately signaled for two different components for the slice.

15. The computing system of claim 13 wherein the deblock filter is configured to separately derive values of the control parameter for two different chroma components for the slice.

16. The computing system of claim 13 wherein bitstream syntax permits signaling of different slice-level chroma QP offsets for different slices of the picture.

17. The computing system of claim 13 wherein, according to bitstream syntax, the picture-level chroma QP offset is separately signaled for two different chroma components for the picture.

18. The computing system of claim 13 wherein the decoder is configured to:

store the picture-level chroma QP offset after the inverse quantization, for use in the derivation of the control parameter for the deblock filtering; and

discard the slice-level chroma QP offset after the inverse quantization.

19. The computing system of claim 7 wherein the controller is further configured to:

store the picture-level chroma QP offset after the quantization, for use in the derivation of the control parameter for the deblock filtering; and

discard the slice-level chroma QP offset after the quantization.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 30, 2017
From: SULLIVAN, GARY J.
To: MICROSOFT CORPORATION
Reel/Frame 043452/0793 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 30, 2017
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 043452/0800 →
Continuity (5)
Continuation 15410924 · Jan 20, 2017
Continuation 13732369 · Dec 31, 2012
Provisional Application 61707948 · Sep 29, 2012
Provisional Application 61667381 · Jul 2, 2012
Related Publication 20170353725A1 · Dec 7, 2017
Cited By (16)
US 12,192,463 US 12,244,819 US 12,284,347 US 12,284,348 US 12,284,371 US 12,341,980 US 12,348,718 US 12,348,719 US 12,356,020 US 12,382,060 US 12,395,650 US 12,418,647 US 12,425,586 US 12,477,130 US 12,581,090 US 12,666,024