IP Library Granted Patent US 10,652,542
Granted Patent B2
US 10,652,542 · App. 16/387,857 · Granted May 12, 2020

Use of chroma quantization parameter offsets in deblocking

Inventor: Gary J. Sullivan (Bellevue, WA)
Assignee: Microsoft Technology Licensing, LLC
H04N19/124H04N19/117H04N19/126H04N19/15H04N19/172H04N19/174H04N19/186H04N19/70H04N19/86H04N19/176H04N19/184
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,652,542
App. No.
16/387,857
Granted
May 12, 2020
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 (39)

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

a quantizer configured to quantize transform coefficients for one or more portions of a slice of a picture;

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 a picture-level chroma QP offset for the picture but not a slice-level chroma QP offset for the slice, 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 for the picture, 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, the at least part of the bitstream including 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.

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

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

4. The computing system of claim 3 , wherein the deblock filter is configured to separately derive values of the control parameter for the two different chroma components.

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

6. The computing system of claim 1 , wherein the video encoder further comprises a controller configured to adjust the picture-level chroma QP offset for the picture and/or the slice-level chroma QP offset for the slice during encoding for rate control.

7. The computing system of claim 1 , wherein the video encoder is configured to store the picture-level chroma QP offset for the picture after the quantizing, for use in the derivation of the control parameter for the deblock filtering.

8. A non-volatile memory or storage device having stored thereon at least part of a bitstream including encoded video content for which values of quantization parameter (QP) vary according to a relationship between a luma component and chroma components, wherein the bitstream includes one or more syntax elements that indicate a picture-level chroma QP offset for a picture and one or more syntax elements that indicate a slice-level chroma QP offset for a slice of the picture, and wherein the bitstream results from encoding that includes:

setting the picture-level chroma QP offset for the picture and the slice-level chroma QP offset for the slice;

quantizing transform coefficients for one or more portions of the slice;

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 for the picture but not the slice-level chroma QP offset for the slice, 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 for the picture, 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

outputting the at least part of a bitstream including the encoded content.

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

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

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

12. The non-volatile memory or storage device of claim 11 , wherein values of the control parameter are derived separately for the two different chroma components.

13. The non-volatile memory or storage device of claim 8 , wherein the variable qP I is also clipped according to a clipping function.

14. In a computing device that implements a video decoder, a method comprising:

receiving at least part of a bitstream including encoded video content for which values of quantization parameter (QP) vary according to a relationship between a luma component and chroma components, wherein the bitstream includes one or more syntax elements that indicate a picture-level chroma QP offset for a picture and one or more syntax elements that indicate a slice-level chroma QP offset for a slice of the picture; and

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

using the picture-level chroma QP offset for the picture and the slice-level chroma QP offset for the slice 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 for the picture but not the slice-level chroma QP offset for the slice, 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 for the picture, and wherein the variable qP I is used to determine a variable QP C that is used in the derivation of the control parameter.

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

16. The method of claim 14 , wherein bitstream syntax permits signaling of different slice-level chroma QP offsets for different slices of the picture.

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

18. The method of claim 17 , wherein values of the control parameter are derived separately for the two different chroma components.

19. The method of claim 14 , wherein the variable qP I is also clipped according to a clipping function.

20. The method of claim 14 , wherein the decoding further comprises:

storing the picture-level chroma QP offset for the picture 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 for the slice after the inverse quantization.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 5, 2019
From: SULLIVAN, GARY J.
To: MICROSOFT CORPORATION
Reel/Frame 051195/0478 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 5, 2019
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 051195/0489 →
Continuity (7)
Continuation 16126176 · Sep 10, 2018
Continuation 15685278 · Aug 24, 2017
Continuation 15410924 · Jan 20, 2017
Continuation 13732369 · Dec 31, 2012
Provisional Application 61667381 · Jul 2, 2012
Provisional Application 61707948 · Sep 29, 2012
Related Publication 20190289291A1 · Sep 19, 2019
Cited By (4)
US 12,192,463 US 12,284,348 US 12,348,718 US 12,348,719