# US 12,192,463 B2 · Control and use of chroma quantization parameter values

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,192,463 B2
- Document ID: US12192463B2
- Status: Granted
- Kind: B2
- Application number: 17/951,409
- Filed: 2022-09-23
- Published: 2023-01-26
- Granted: 2025-01-07
- Earliest claimed: 2012-07-02
- Assignees: Microsoft Technology Licensing, LLC
- Applicants: Microsoft Technology Licensing, LLC
- Inventors: Gary J. Sullivan; Sandeep Kanumuri
- Web page: https://patentgrep.com/patent/US12192463B2

## CPC

- H04N 19/124: Quantisation
- H04N 19/126: Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
- H04N 19/174: the region being a slice, e.g. a line of blocks or a group of blocks
- H04N 19/186: the unit being a colour or a chrominance component
- H04N 19/44: Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
- H04N 19/70: characterised by syntax aspects related to video coding, e.g. related to compression standards
- H04N 19/146: Data rate or code amount at the encoder output
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

Innovations in control and use of chroma quantization parameter (“QP”) values that depend on hum 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

### Claim 1

A computer system comprising one or more processing units and memory, wherein the computer system implements a video decoder configured to perform operations comprising:
receiving encoded data in a bitstream for which values of quantization parameter (QP) vary according to a relationship between a luma component and chroma components, wherein the encoded data in the bitstream includes:
a flag in a picture parameter set that indicates presence of slice-level chroma QP offsets in slice headers;
syntax elements that indicate picture-level chroma QP offsets; and
syntax elements that indicate the slice-level chroma QP offsets; and
decoding at least some of the encoded data to reconstruct one or more pictures, including, for a portion of a given picture among the one or more pictures:
determining a QP index from a luma component QP and a chroma component QP offset, wherein the chroma component QP offset incorporates one of the picture-level chroma QP offsets and one of the slice-level chroma QP offsets, the QP index being determined according to:
qPI=Clip3(a,b,QPY+qp_offset+slice_qp_delta),
where qPI represents the QP index, QPY represents the luma component QP, qp_offset represents the one of the picture-level chroma QP offsets, slice_qp_delta represents the one of the slice-level chroma QP offsets, 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.

### Claim 2 (depends on 1)

The computer system of claim 1, wherein the mapping follows a table that maps different values of QP index to corresponding values of chroma component QP.

### Claim 3 (depends on 1)

The computer system of claim 1, wherein the mapping follows logic that maps different values of QP index to corresponding values of chroma component QP.

### Claim 4 (depends on 1)

The computer system of claim 1, wherein the decoding further includes:
inverse quantizing transform coefficients based at least in part on the chroma component QP.

### Claim 5 (depends on 1)

The computer system of claim 1, wherein the encoded data in the bitstream further includes syntax elements that at least in part indicate the luma component QP.

### Claim 6 (depends on 5)

The computer system of claim 5, wherein the syntax elements that at least in part indicate the luma component QP include a picture-level luma QP value, a slice-level QP offset value, and a unit-level QP offset value.

### Claim 7 (depends on 1)

The computer system of claim 1, wherein the syntax elements that indicate the picture-level chroma QP offsets indicate a picture-level Cb QP offset value and a picture-level Cr QP offset value.

### Claim 8 (depends on 1)

The computer system of claim 1, wherein the syntax elements that indicate the slice-level chroma QP offsets indicate a slice-level Cb QP offset value and a slice-level Cr QP offset value.

### Claim 9

In a computer system that implements a video encoder, a method comprising:
encoding one or more pictures, thereby producing encoded data, including, as part of a motion compensation loop, for a portion of a given picture among the one or more pictures:
determining a quantization parameter (QP) index indicated by a luma component QP and a chroma component QP offset, wherein the chroma component QP offset incorporates one of multiple picture-level chroma QP offsets and one of multiple slice-level chroma QP offsets, the QP index being determined in a manner consistent with:
qPI=Clip3(a,b,QPY+qp_offset+slice_qp_delta),
where qPI represents the QP index, QPY represents the luma component QP, qp_offset represents the one of the multiple picture-level chroma QP offsets, slice_qp_delta represents the one of the multiple slice-level chroma QP offsets, 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 the encoded data in a bitstream for which values of QP vary according to a relationship between a luma component and chroma components, wherein the encoded data in the bitstream includes:
a flag in a picture parameter set that indicates presence of the multiple slice-level chroma QP offsets in slice headers;
syntax elements that indicate the multiple picture-level chroma QP offsets; and
syntax elements that indicate the multiple slice-level chroma QP offsets.

### Claim 10 (depends on 9)

The method of claim 9, wherein the encoding further includes, as part of the motion compensation loop, for the portion of the given picture:
inverse quantizing transform coefficients based at least in part on the chroma component QP.

### Claim 11 (depends on 9)

The method of claim 9, wherein the encoded data in the bitstream further includes syntax elements that at least in part indicate the luma component QP.

### Claim 12 (depends on 11)

The method of claim 11, wherein the syntax elements that at least in part indicate the luma component QP include a picture-level luma QP value, a slice-level QP offset value, and a unit-level QP offset value.

### Claim 13 (depends on 9)

The method of claim 9, wherein the syntax elements that indicate the picture-level chroma QP offsets indicate a picture-level Cb QP offset value and a picture-level Cr QP offset value.

### Claim 14 (depends on 9)

The method of claim 9, wherein the syntax elements that indicate the slice-level chroma QP offsets indicate a slice-level Cb QP offset value and a slice-level Cr QP offset value.

### Claim 15

One or more non-transitory computer-readable media having stored thereon encoded data in a bitstream for which values of quantization parameter (QP) vary according to a relationship between a luma component and chroma components, wherein the encoded data in the bitstream includes:
a flag in a picture parameter set that indicates presence of slice-level chroma QP offsets in slice headers,
syntax elements that indicate picture-level chroma QP offsets, and
syntax elements that indicate the slice-level chroma QP offsets, and wherein the encoded data is organized to facilitate decoding, with a computer system that implements a video decoder, of at least some of the encoded data to reconstruct one or more pictures by operations that include, for a portion of a given picture among the one or more pictures:
determining a QP index from a luma component QP and a chroma component QP offset, wherein the chroma component QP offset incorporates one of the picture-level chroma QP offsets and one of the slice-level chroma QP offsets, the QP index being determined according to:
qPI=Clip3(a,b,QPY+qp_offset+slice_qp_delta),
where qPI represents the QP index, QPY represents the luma component QP, qp_offset represents the one of the picture-level chroma QP offsets, slice_qp_delta represents the one of the slice-level chroma QP offsets, 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.

### Claim 16 (depends on 15)

The one or more computer-readable media of claim 15, wherein the operations further include, for the portion of the given picture:
inverse quantizing transform coefficients based at least in part on the chroma component QP.

### Claim 17 (depends on 15)

The one or more computer-readable media of claim 15, wherein the encoded data in the bitstream further includes syntax elements that at least in part indicate the luma component QP.

### Claim 18 (depends on 17)

The one or more computer-readable media of claim 17, wherein the syntax elements that at least in part indicate the luma component QP include a picture-level luma QP value, a slice-level QP offset value, and a unit-level QP offset value.

### Claim 19 (depends on 15)

The one or more computer-readable media of claim 15, wherein the syntax elements that indicate the picture-level chroma QP offsets indicate a picture-level Cb QP offset value and a picture-level Cr QP offset value.

### Claim 20 (depends on 15)

The one or more computer-readable media of claim 15, wherein the syntax elements that indicate the slice-level chroma QP offsets indicate a slice-level Cb QP offset value and a slice-level Cr QP offset value.
