# US 11,310,496 B2 · Determining quality values for blocks of encoded video

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

- Number: US 11,310,496 B2
- Document ID: US11310496B2
- Status: Granted
- Kind: B2
- Application number: 16/366,959
- Filed: 2019-03-27
- Published: 2020-10-01
- Granted: 2022-04-19
- Earliest claimed: 2019-03-27
- Assignees: ATI Technologies ULC
- Applicants: ATI Technologies ULC
- Inventors: Mehdi Saeedi; Boris Ivanovic
- Web page: https://patentgrep.com/patent/US11310496B2

## CPC

- H04N 19/117: Filters, e.g. for pre-processing or post-processing (sub-band filter banks H04N19/635)
- H04N 19/124: Quantisation
- H04N 19/139: Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
- H04N 19/154: Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion (use of rate-distortion criteria H04N19/147)
- H04N 19/176: the region being a block, e.g. a macroblock
- H04N 19/198: {including smoothing of a sequence of encoding parameters, e.g. by averaging, by choice of the maximum, minimum or median value}
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

A technique for determining a quality value for a subject block of encoded video is provided. Contributing blocks, of the same frame and/or different frames of the subject block, are determined by identifying blocks likely to be a part of the same moving object or background as the subject block. A spatial and/or temporal filter is then applied to the quality values of the contributing blocks and an initial quality value of the subject block. With a spatial filter, quality values for contributing blocks from the same frame are combined and used to modify the quality value of the subject block. With a spatial filter, a temporal characteristic quality value for contributing blocks of one or more other frames (such as the immediately previous frame) is determined and then combined with a quality value representative of the subject block.

## Claims

### Claim 1

A method for determining a filtered quality value for a block of a frame of video, the method comprising:
determining an initial quality value for a subject block including an object;
identifying one or more contributing blocks that include the object present in the subject block, wherein the one or more contributing blocks including the object are from one or more frames;
identifying one or more quality values associated with the one or more contributing blocks including the object; and
determining the filtered quality value for the subject block based on the determined initial quality value and the one or more quality values associated with the one or more contributing blocks, wherein determining the filtered quality value includes determining a characteristic quality value that is characteristic of quality values of the one or more contributing blocks including the object and adjusting the initial quality value for the subject block towards the characteristic quality value.

### Claim 2 (depends on 1)

The method of claim 1, wherein the one or more contributing blocks including the object are from the same frame as the subject block.

### Claim 3 (depends on 2)

The method of claim 2, wherein determining the filtered quality value comprises performing spatial filtering on the one or more quality values associated with the one or more contributing blocks including the object and the initial quality value.

### Claim 4 (depends on 3)

The method of claim 3, wherein performing spatial filtering on the one or more quality values associated with the one or more contributing blocks including the object and the initial quality value comprises one of calculating an arithmetic mean of the contributing blocks to produce a spatial characteristic value, calculating a weighted arithmetic mean of the contributing blocks to produce a spatial characteristic value, calculating a minimum of the contributing blocks to produce a spatial characteristic value, or calculating a maximum of the contributing blocks to produce a spatial characteristic value.

### Claim 5 (depends on 1)

The method of claim 1, wherein the one or more contributing blocks are from a different frame as the subject block.

### Claim 6 (depends on 5)

The method of claim 5, wherein determining the filtered quality value comprises performing temporal filtering on the one or more quality values associated with the one or more contributing blocks and the initial quality value.

### Claim 7 (depends on 6)

The method of claim 6, wherein performing temporal filtering on the one or more quality values associated with the one or more contributing blocks and the initial quality value comprises determining a temporal characteristic value for the one or more contributing blocks and mathematically combining the temporal characteristic value with the initial quality value.

### Claim 8 (depends on 1)

The method of claim 1, wherein:
the one or more contributing blocks are from both the same frame and a different frame as the subject block; and
determining the filtered quality value comprises performing spatial filtering on the one or more quality values associated with the one or more contributing blocks and the initial quality value to obtain a spatially filtered quality value and performing temporal filtering on the one or more quality values associated with the one or more contributing blocks and the spatially filtered quality value.

### Claim 9 (depends on 1)

The method of claim 1, further comprising:
determining that the subject block has substantial motion based on a motion vector of the subject block.

### Claim 10

An encoder for encoding video, the encoder comprising:
a transform block, configured to convert pixels representative of a subject block into a transformed block, based on a filtered quality value; and
a pre-encoding analysis block configured to determine the quality value, by:
determining an initial quality value for the subject block including an object;
identifying that one or more contributing blocks that include the object present in the subject block, wherein the one or more contributing blocks including the object are from one or more frames;
identifying one or more quality values associated with the one or more contributing blocks including the object; and
determining the filtered quality value for the subject block based on the determined initial quality value and the one or more quality values associated with the one or more contributing blocks,
wherein determining the filtered quality value includes determining a characteristic quality value that is characteristic of quality values of the one or more contributing blocks including the object and adjusting the initial quality value for the subject block towards the characteristic quality value.

### Claim 11 (depends on 10)

The encoder of claim 10, wherein the one or more contributing blocks including the object are from the same frame as the subject block.

### Claim 12 (depends on 11)

The encoder of claim 11, wherein determining the filtered quality value comprises performing spatial filtering on the one or more quality values associated with the one or more contributing blocks including the object and the initial quality value.

### Claim 13 (depends on 12)

The encoder of claim 12, wherein performing spatial filtering on the one or more quality values associated with the one or more contributing blocks including the object and the initial quality value comprises one of calculating an arithmetic mean of the contributing blocks to produce a spatial characteristic value, calculating a weighted arithmetic mean of the contributing blocks to produce a spatial characteristic value, calculating a minimum of the contributing blocks to produce a spatial characteristic value, or calculating a maximum of the contributing blocks to produce a spatial characteristic value.

### Claim 14 (depends on 10)

The encoder of claim 10, wherein the one or more contributing blocks are from a different frame as the subject block.

### Claim 15 (depends on 14)

The encoder of claim 14, wherein determining the filtered quality value comprises performing temporal filtering on the one or more quality values associated with the one or more contributing blocks and the initial quality value.

### Claim 16 (depends on 15)

The encoder of claim 15, wherein performing temporal filtering on the one or more quality values associated with the one or more contributing blocks and the initial quality value comprises determining a temporal characteristic value for the one or more contributing blocks and mathematically combining the temporal characteristic value with the initial quality value.

### Claim 17 (depends on 10)

The encoder of claim 10, wherein:
the one or more contributing blocks are from both the same frame and a different frame as the subject block; and
determining the filtered quality value comprises performing spatial filtering on the one or more quality values associated with the one or more contributing blocks and the initial quality value to obtain a spatially filtered quality value and performing temporal filtering on the one or more quality values associated with the one or more contributing blocks and the spatially filtered quality value.

### Claim 18 (depends on 10)

The encoder of claim 10, wherein the pre-encoding analysis block is further configured to:
determine that the subject block has substantial motion based on a motion vector of the subject block.

### Claim 19

A non-transitory computer-readable medium storing instructions that, when executed by a processor, cause the processor to encode video by:
determining an initial quality value for a subject block including an object;
identifying that one or more contributing blocks that include the object present in the subject block, wherein the one or more contributing blocks including the object are from one or more frames;
identifying one or more quality values associated with the one or more contributing blocks including the object; and
determining the filtered quality value for the subject block based on the determined initial quality value and the one or more quality values associated with the one or more contributing blocks, wherein determining the filtered quality value includes determining a characteristic quality value that is characteristic of quality values of the one or more contributing blocks including the object and adjusting the initial quality value for the subject block towards the characteristic quality value.

### Claim 20 (depends on 19)

The non-transitory computer-readable medium of claim 19, wherein:
the one or more contributing blocks are from both the same frame and a different frame as the subject block; and
determining the filtered quality value comprises performing spatial filtering on the one or more quality values associated with the one or more contributing blocks and the initial quality value to obtain a spatially filtered quality value and performing temporal filtering on the one or more quality values associated with the one or more contributing blocks and the spatially filtered quality value.
