# US 10,455,253 B1 · Single direction long interpolation filter

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

- Number: US 10,455,253 B1
- Document ID: US10455253B1
- Status: Granted
- Kind: B1
- Application number: 15/445,063
- Filed: 2017-02-28
- Granted: 2019-10-22
- Earliest claimed: 2017-02-28
- Assignees: Google Inc.
- Applicants: Google LLC
- Inventors: Stanislav Vitvitskyy; Jingning Han; Ching-Han Chiang; Adrian W. Grange
- Web page: https://patentgrep.com/patent/US10455253B1

## CPC

- H04N 19/117: Filters, e.g. for pre-processing or post-processing (sub-band filter banks H04N19/635)
- 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/156: Availability of hardware or computational resources, e.g. encoding based on power-saving criteria
- H04N 19/51: Motion estimation or motion compensation
- H04N 19/523: with sub-pixel accuracy
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

A first interpolation filter is selected for a first direction of the prediction block, and a second interpolation filter is selected for a second direction of the prediction block. The first interpolation filter has a first number of taps and the second interpolation filter has a second number of taps. The second interpolation filter is set to an interpolation filter having a third number of taps in response to determining that the first number of taps is greater than a threshold number of taps and the second number of taps is greater than a threshold number of taps. The third number of taps is smaller than or equal to the threshold number of taps. The prediction block is generated using the first interpolation filter and the second interpolation filter.

## Claims

### Claim 1

A method for determining a prediction block, comprising:
selecting a first interpolation filter for a first direction of the prediction block, the first interpolation filter having a first number of taps;
selecting a second interpolation filter for a second direction of the prediction block, the second interpolation filter having a second number of taps;
in response to determining that the first number of taps is greater than a threshold number of taps and the second number of taps is greater than the threshold number of taps, setting the second interpolation filter to an interpolation filter having a third number of taps, wherein the third number of taps is smaller than or equal to the threshold number of taps; and
generating the prediction block using the first interpolation filter and the second interpolation filter, wherein generating the prediction block comprises:
determining intermediate pixel values for the prediction block using the one of the first interpolation filter and the second interpolation filter having a smaller number of taps; and
determining prediction pixel values for the prediction block using the intermediate pixel values and the other of the first interpolation filter and the second interpolation filter.

### Claim 2 (depends on 1)

The method of claim 1, wherein the threshold number of taps is 8 taps.

### Claim 3 (depends on 1)

The method of claim 1, wherein the third number of taps is less than or equal to 8 taps.

### Claim 4 (depends on 1)

The method of claim 1, wherein the first number of taps is 4 taps or the second number of taps is 4 taps.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
encoding, in an encoded bitstream, an indication of the first interpolation filter and the second interpolation filter.

### Claim 6 (depends on 5)

The method of claim 5, wherein the indication indicates that the first interpolation filter is a first sharp filter and the second interpolation filter is second sharp filter.

### Claim 7

An apparatus for determining a prediction block, the apparatus comprising:
a processor configured to execute operations to:
select a first interpolation filter for a first direction of the prediction block, the first interpolation filter having a first number of taps;
select a second interpolation filter for a second direction of the prediction block, the second interpolation filter having a second number of taps;
in response to determining that the second number of taps is greater than a threshold number of taps, set the second interpolation filter to an interpolation filter having a third number of taps, wherein the third number of taps is smaller than or equal to the threshold number of taps; and
generate the prediction block using the first interpolation filter and the second interpolation filter, wherein to generate the prediction block comprises to:
determine intermediate pixel values for the prediction block using the one of the first interpolation filter and the second interpolation filter having a smaller number of taps; and
determine prediction pixel values for the prediction block using the intermediate pixel values and the other of the first interpolation filter and the second interpolation filter.

### Claim 8 (depends on 7)

The apparatus of claim 7, wherein the threshold number of taps is 8 taps.

### Claim 9 (depends on 7)

The apparatus of claim 7, wherein the third number of taps is less than or equal to 8 taps.

### Claim 10 (depends on 7)

The apparatus of claim 7, wherein the first number of taps is 4 taps or the second number of taps is 4 taps.

### Claim 11 (depends on 7)

The apparatus of claim 7, wherein the operations further comprise an operation to:
encode, in an encoded bitstream, an indication of the first interpolation filter and the second interpolation filter.

### Claim 12 (depends on 11)

The apparatus of claim 11, wherein the indication indicates that the first interpolation filter is a first sharp filter and the second interpolation filter is second sharp filter.

### Claim 13

An apparatus for generating a prediction block by a decoder, the apparatus comprising:
a processor configured to execute operations to:
receive a first interpolation filter having a first number of taps for a first direction of the prediction block and a second interpolation filter having a second number of taps for a second direction of the prediction block;
in response to determining that the first number of taps does not equal the second number of taps, generate intermediate pixel values for the prediction block using the one of the first interpolation filter and the second interpolation filter having a smaller number of taps;
in response to determining that the first number of taps equals the second number of taps, generate the intermediate pixel values for the prediction block using either of the first interpolation filter or the second interpolation filter; and
generate prediction pixels using the intermediate pixel values and the other of the first interpolation filter and the second interpolation filter that is not used to generate the intermediate pixel values.

### Claim 14 (depends on 13)

The apparatus of claim 13, wherein the first number of taps is 12 and the second number of taps is 8.
