IP Library Granted Patent US 10,841,610
Granted Patent B2
US 10,841,610 · App. 15/965,653 · Granted Nov 17, 2020

Block size dependent interpolation filter selection and mapping

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,841,610
App. No.
15/965,653
Filed
Apr 27, 2018
Granted
Nov 17, 2020
Kind
B2
Art Unit
2487
USPC
375/240.13
Abstract

A device implementing the subject video coding system may include a processor that encodes an N×M block using an x-tap filter for horizontal interpolation and a y-tap filter for vertical interpolation, where x is proportional to N and y is proportional to M. The processor may use a current block size to select an interpolation filter with a first length or a second length for a current block, use an overlapped block size to select an interpolation filter with a first length or a second length for overlapped areas, and, when a neighboring block uses a long interpolation filter and a short interpolation filter is selected for the overlapped area, maps the long interpolation filter to a short interpolation filter of a selected type. The processor may calculate a reference block size based on a scaling factor and use the reference block size to select a filter length.

Claims (50)

1. A device, comprising:

a fetching device configured to:

determine whether a first dimension of a current block satisfies a predetermined threshold;

select a first length for an interpolation filter when the first dimension satisfies the predetermined threshold; and

select a second length for the interpolation filter when the first dimension does not satisfy the predetermined threshold, the second length being different from the first length; and

an interpolator configured to apply the interpolation filter with the selected length to the current block,

wherein the fetching device is configured to:

use a block size of an overlapped block interposed between a neighboring block and the current block to select another interpolation filter with one of the first length or the second length for the overlapped block; and

when the neighboring block uses a long interpolation filter and a short interpolation filter is selected for the overlapped block, map the long interpolation filter to the short interpolation filter of a selected type, and

wherein the interpolation filter with the first length corresponds to the long interpolation filter and the interpolation filter with the second length corresponds to the short interpolation filter.

2. The device of claim 1 , wherein the interpolator is configured to apply the interpolation filter with one of the first length or the second length to pixels of the current block along a first axis that corresponds to the first dimension.

3. The device of claim 2 , wherein the fetching device is configured to:

determine whether a second dimension of the current block satisfies the predetermined threshold;

select the first length for the interpolation filter when the second dimension satisfies the predetermined threshold; and

select the second length for the interpolation filter when the second dimension does not satisfy the predetermined threshold.

4. The device of claim 3 , wherein the interpolator is configured to apply the interpolation filter with one of the first length or the second length to pixels of the current block along a second axis orthogonal to the first axis that corresponds to the second dimension.

5. The device of claim 3 , wherein the interpolator is configured to:

encode the current block using an x-tap filter for horizontal interpolation and a y-tap filter for vertical interpolation,

wherein x is greater than y when the first dimension exceeds the predetermined threshold and the second dimension does not exceed the predetermined threshold, and wherein x is less than y when the first dimension does not exceed the predetermined threshold and the second dimension exceeds the predetermined threshold.

6. The device of claim 1 , wherein the fetching device is configured to obtain the predetermined threshold from a decoded data stream.

7. The device of claim 1 , wherein the fetching device is configured to:

use a block size of the current block to select the interpolation filter with one of the first length or the second length for the current block.

8. The device of claim 1 , wherein the fetching device is configured to:

calculate a reference block size from a block size of the current block based on a scaling factor; and

use the reference block size to select the interpolation filter with one of the first length or the second length.

9. A method, comprising:

comparing a first dimension of a current block to a predetermined threshold;

selecting a first length for an interpolation filter when the first dimension exceeds the predetermined threshold;

selecting a second length for the interpolation filter when the first dimension does not exceed the predetermined threshold;

applying the interpolation filter with one of the first length or the second length to the current block;

producing an encoded data stream with the applied interpolation filter;

using a block size of an overlapped block interposed between a neighboring block and the current block to select another interpolation filter with one of the first length or the second length for the overlapped block; and

when the neighboring block uses a long interpolation filter and a short interpolation filter is selected for the overlapped block, mapping the long interpolation filter to the short interpolation filter of a selected type,

wherein the interpolation filter with the first length corresponds to the long interpolation filter and the interpolation filter with the second length corresponds to the short interpolation filter.

10. The method of claim 9 , further comprising:

calculating a reference block size from a block size of the current block based on a scaling factor; and

using the reference block size to select the interpolation filter with one of the first length or the second length.

11. The method of claim 9 , wherein the interpolation filter with one of the first length or the second length is applied along a first axis that corresponds to the first dimension.

12. The method of claim 11 , further comprising:

comparing a second dimension of the current block to the predetermined threshold;

selecting the first length for the interpolation filter when the second dimension exceeds the predetermined threshold; and

selecting the second length for the interpolation filter when the second dimension does not exceed the predetermined threshold.

13. The method of claim 12 , further comprising:

applying the interpolation filter with one of the first length or the second length along a second axis orthogonal to the first axis that corresponds to the second dimension.

14. The method of claim 13 , further comprising:

encoding the current block using an x-tap filter for horizontal interpolation and a y-tap filter for vertical interpolation,

wherein x is greater than y when the first dimension exceeds the predetermined threshold and the second dimension does not exceed the predetermined threshold, and wherein x is less than y when the first dimension does not exceed the predetermined threshold and the second dimension exceeds the predetermined threshold.

15. The method of claim 9 , further comprising obtaining the predetermined threshold from a decoded data stream.

16. The method of claim 9 , further comprising:

using a block size of the current block to select the interpolation filter with one of the first length or the second length for the current block.