# US 10,771,819 B2 · Sample adaptive offset filtering

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

- Number: US 10,771,819 B2
- Document ID: US10771819B2
- Status: Granted
- Kind: B2
- Application number: 16/110,929
- Filed: 2018-08-23
- Published: 2018-12-20
- Granted: 2020-09-08
- Earliest claimed: 2011-11-07
- Assignees: Canon Kabushiki Kaisha
- Applicants: Canon Kabushiki Kaisha
- Inventors: Guillaume Laroche; Christophe Gisquet; Edouard Francois; Patrice Onno
- Web page: https://patentgrep.com/patent/US10771819B2

## CPC

- H04N 19/85: using pre-processing or post-processing specially adapted for video compression
- H04N 19/117: Filters, e.g. for pre-processing or post-processing (sub-band filter banks H04N19/635)
- H04N 19/13: Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
- H04N 19/136: Incoming video signal characteristics or properties
- H04N 19/139: Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
- H04N 19/14: Coding unit complexity, e.g. amount of activity or edge presence estimation (H04N19/146 takes precedence)
- H04N 19/44: Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
- H04N 19/80: Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation (H04N19/635, H04N19/86 take precedence)
- H04N 19/82: involving filtering within a prediction loop
- H04N 19/86: involving reduction of coding artifacts, e.g. of blockiness
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

A method of performing sample adaptive offset (SAO) filtering on a sequence of images comprises associating a fixed set of four offset values with at least one direction of edge-type filtering. For every image area for which it is determined that edge-type filtering is to be used and for which it is determined that a direction of the edge-type filtering is the at least one direction, the fixed set of four offset values associated with said at least one direction is systematically used.

## Claims

### Claim 1

A method of performing sample adaptive offset filtering on one or more images of a sequence of images, comprising:
associating a fixed set of four offset values with at least one direction of edge-type filtering, and
for any image area for which it is determined that edge-type filtering is to be used and for which it is determined that a direction of the edge-type filtering is said at least one direction, using the fixed set of four offset values associated with said at least one direction to perform the sample adaptive offset filtering on the image area concerned,
wherein a first offset value +O1 is used when C<Cn1 and C<Cn2, a second offset value +O2 is used when (C<Cn1 and C==Cn2) or (C<Cn2 and C==Cn1), a third offset value −O3 is used when (C>Cn1 and C==Cn2) or (C>Cn2 and C==Cn1), and a fourth offset value −O4 is used when C>Cn1 and C>Cn2, where C is the value of a target pixel and Cn1 and Cn2 are respective values of neighbouring pixels of the target pixel in an edge-filtering direction, and the or each said fixed set has the following properties:
O1≥O2, and
O4≥O3.

### Claim 2 (depends on 1)

The method as claimed in claim 1, wherein the or each said fixed set has the following properties:
O2<O1
O3<O1
O2<O4
O3<O4.

### Claim 3 (depends on 2)

The method as claimed in claim 2, wherein O2 and O3 are both zero.

### Claim 4 (depends on 2)

The method as claimed in claim 2, wherein O1 and O4 are equal.

### Claim 5

A method of performing sample adaptive offset filtering on one or more images of a sequence of images, comprising:
associating a fixed set of four offset values with at least one direction of edge-type filtering, and
for any image area for which it is determined that edge-type filtering is to be used and for which it is determined that a direction of the edge-type filterininq is said at least one direction, using the fixed set of four offset values associated with said at least one direction to perform the sample adaptive offset filtering on the image area concerned,
wherein a first offset value +O1 is used when C<Cn1 and C<Cn2, a second offset value +O2 is used when (C<Cn1 and C==Cn2) or (C<Cn2 and C==Cn1), a third offset value −O3 is used when (C>Cn1 and C==Cn2) or (C>Cn2 and C==Cn1), and a fourth offset value −O4 is used when C>Cn1 and C>Cn2, where C is the value of a target pixel and Cn1 and Cn2 are respective values of neighbouring pixels of the target pixel in an edge-filtering direction, and the or each said fixed set has the following properties:
O1−O2=O4−O3.

### Claim 6

A method of encoding a sequence of images, comprising performing sample adaptive offset filtering on one or more images of the sequence by:
associating a fixed set of four offset values with at least one direction of edge-type filtering, and
for any image area for which it is determined that edge-type filtering is to be used and for which it is determined that a direction of the edge-type filtering is said at least one direction, using the fixed set of four offset values associated with said at least one direction to perform the sample adaptive offset filtering on the image area concerned,
wherein a first offset value +O1 is used when C<Cn1 and C<Cn2, a second offset value +O2 is used when (C<Cn1 and C==Cn2) or (C<Cn2 and C==Cn1), a third offset value −O3 is used when (C>Cn1 and C==Cn2) or (C>Cn2 and C==Cn1), and a fourth offset value −O4 is used when C>Cn1 and C>Cn2, where C is the value of a target pixel and Cn1 and Cn2 are respective values of neighbouring pixels of the target pixel in an edge-filtering direction, and the or each said fixed set has the following properties:
O1≥O2, and
O4≥O3.

### Claim 7

A non-transitory computer-readable storage medium storing a program which, when executed by a processor or computer, causes the computer or processor to perform sample adaptive offset filtering on one or more images of a sequence of images, the program comprising:
a code portion which associates a fixed set of four offset values with at least one direction of edge-type filtering, and
a code portion which, for any image area for which it is determined that edge-type filtering is to be used and for which it is determined that a direction of the edge-type filtering is said at least one direction, uses the fixed set of four offset values associated with said at least one direction to perform the sample adaptive offset filtering on the image area concerned,
wherein a first offset value +O1 is used when C<Cn1 and C<Cn2, a second offset value +O2 is used when (C<Cn1 and C==Cn2) or (C<Cn2 and C==Cn1), a third offset value −O3 is used when (C>Cn1 and C==Cn2) or (C>Cn2 and C==Cn1), and a fourth offset value −O4 is used when C>Cn1 and C>Cn2, where C is the value of a target pixel and Cn1 and Cn2 are respective values of neighbouring pixels of the target pixel in an edge-filtering direction, and the or each said fixed set has the following properties:
O1≥O2, and
O4≥O3.

### Claim 8

A method of encoding a sequence of images, comprising performing sample adaptive offset filtering on one or more images of the sequence by:
associating a fixed set of four offset values with at least one direction of edge-type filtering, and
for any image area for which it is determined that edge-type filtering is to be used and for which it is determined that a direction of the edge-type filtering is said at least one direction, using the fixed set of four offset values associated with said at least one direction to perform the sample adaptive offset filtering on the image area concerned,
wherein a first offset value +O1 is used when C<Cn1 and C<Cn2, a second offset value +O2 is used when (C<Cn1 and C==Cn2) or (C<Cn2 and C==Cn1), a third offset value −O3 is used when (C>Cn1 and C==Cn2) or (C>Cn2 and C==Cn1), and a fourth offset value −O4 is used when C>Cn1 and C>Cn2, where C is the value of a target pixel and Cn1 and Cn2 are respective values of neighbouring pixels of the target pixel in an edge-filtering direction, and the or each said fixed set has the following properties:
O1−O2=O4−O3.

### Claim 9

A non-transitory computer-readable storage medium storing a program which, when executed by a processor or computer, causes the computer or processor to perform sample adaptive offset filtering on one or more images of a sequence of images, the program comprising:
a code portion which associates a fixed set of four offset values with at least one direction of edge-type filtering, and
a code portion which, for any image area for which it is determined that edge-type filtering is to be used and for which it is determined that a direction of the edge-type filtering is said at least one direction, uses the fixed set of four offset values associated with said at least one direction to perform the sample adaptive offset filtering on the image area concerned,
wherein a first offset value +O1 is used when C<Cn1 and C<Cn2, a second offset value +O2 is used when (C<Cn1 and C==Cn2) or (C<Cn2 and C==Cn1), a third offset value −O3 is used when (C>Cn1 and C==Cn2) or (C>Cn2 and C==Cn1), and a fourth offset value −O4 is used when C>Cn1 and C>Cn2, where C is the value of a target pixel and Cn1 and Cn2 are respective values of neighbouring pixels of the target pixel in an edge-filtering direction, and the or each said fixed set has the following properties:
O1−O2=O4−O3.
