IP Library Granted Patent US 11,146,809
Granted Patent B2
US 11,146,809 · App. 16/838,954 · Granted Oct 12, 2021

Adaptive interpolation filter

Inventors: Huanbang Chen (Shenzhen, CN); Haitao Yang (Shenzhen, CN); Jianle Chen (San Diego, CA)
Assignee: Huawei Technologies Co., Ltd.
H04N19/52H04N19/176H04N19/625H04N19/80
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 11,146,809
App. No.
16/838,954
Granted
Oct 12, 2021
Kind
B2
Abstract

Disclosed is a mechanism for selecting an interpolation filter for use in conjunction with an affine block in video coding. A motion vector is determined for a sub-block of the affine block based on control points. A sub-block size of the sub-block is also determined. The interpolation filter is selected for application to a reference block corresponding to the sub-block. The interpolation filter is selected based on the sub-block size. The motion vector of the sub-block and an offset of a current sample of the sub-block are employed to determine a reference sample at the reference block. This includes applying the interpolation filter to the reference block to determine the reference sample when the motion vector at the offset points to a fractional position at the reference block. The reference samples are employed to determine residual information in order to encode the affine block.

Claims (59)

1. A method implemented in an encoder, the method comprising:

determining, by one or more processors of the encoder, control points to encode an affine block from a video signal according to affine inter-prediction;

determining, by the one or more processors, a sub-block size of a sub-block based on the control points for the affine block;

determining, by the one or more processors, a motion vector for the sub-block of the affine block based on the control points;

selecting, by the one or more processors, an interpolation filter for application to a reference block corresponding to the sub-block, the interpolation filter selected based on the sub-block size;

determining, by the one or more processors, which fractional position at the reference block a motion vector for a current sample points to;

applying, by the one or more processors, the interpolation filter to the reference block to determine a reference sample at the fractional position;

determining, by the one or more processors, residual information for the sub-block based on a difference between the current sample of the sub-block and the reference sample at the reference block; and

encoding, by the one or more processors, the control points and the residual information in a bitstream.

2. The method of claim 1 , wherein the interpolation filter is selected to include a first number of taps when the sub-block size is greater than a threshold and is selected to include a second number of taps when the sub-block size is less than or equal to the threshold, and wherein the first number of taps is larger than the second number of taps.

3. The method of claim 2 , wherein the interpolation filter is selected as a discrete cosine transform interpolation filter (DCT-IF) with six taps, eight taps, or twelve taps when the sub-block size is greater than the threshold.

4. The method of claim 2 , wherein the interpolation filter is selected as a discrete cosine transform interpolation filter (DCT-IF) with four taps or six taps when the sub-block size is less than or equal to the threshold.

5. The method of claim 2 , wherein the interpolation filter is selected as a warping interpolation filter (WIF) with five taps when the sub-block size is less than or equal to the threshold.

6. The method of claim 1 , wherein the sub-block size is determined based on a motion vector difference between the control points for the affine block, a width of the affine block, and a height of the affine block.

7. The method of claim 1 , wherein the sub-block size is determined from a three dimensional lookup table indexed by a motion vector difference between the control points for the affine block, a size of the affine block, and a motion vector precision.

8. A video coding device comprising:

one or more processors configured to:

determine control points to encode an affine block from a video signal according to affine inter-prediction;

determine a sub-block size of a sub-block based on the control points for the affine block;

determine a motion vector for the sub-block of the affine block based on the control points;

select an interpolation filter for application to a reference block corresponding to the sub-block, the interpolation filter selected based on the sub-block size;

determine which fractional position at the reference block a motion vector for a current sample points to;

apply the interpolation filter to the reference block to determine a reference sample at the fractional position;

determine residual information for the sub-block based on a difference between the current sample of the sub-block and the reference sample at the reference block; and

encode the control points and the residual information in a bitstream.

9. The video coding device of claim 8 , wherein the interpolation filter is selected to include a first number of taps when the sub-block size is greater than a threshold and is selected to include a second number of taps when the sub-block size is less than or equal to the threshold, and wherein the first number of taps is larger than the second number of taps.

10. The video coding device of claim 9 , wherein the interpolation filter is selected as a discrete cosine transform interpolation filter (DCT-IF) with six taps, eight taps, or twelve taps when the sub-block size is greater than the threshold.

11. The video coding device of claim 9 , wherein the interpolation filter is selected as a discrete cosine transform interpolation filter (DCT-IF) with four taps or six taps when the sub-block size is less than or equal to the threshold.

12. The video coding device of claim 9 , wherein the interpolation filter is selected as a warping interpolation filter (WIF) with five taps when the sub-block size is less than or equal to the threshold.

13. A method implemented in a decoder, the method comprising:

receiving, by a receiver of the decoder, a bitstream including control points describing an affine block coded according to affine inter-prediction;

determining, by one or more processors of the decoder, a sub-block size of a sub-block based on the control points for the affine block;

determining, by the one or more processors, a motion vector for the sub-block of the affine block based on the control points;

selecting, by the one or more processors, an interpolation filter for application to a reference block corresponding to the sub-block, the interpolation filter selected based on the sub-block size;

determining, by the one or more processors, which fractional position at the reference block a motion vector for a current sample points to;

applying, by the one or more processors, the interpolation filter to the reference block to determine a reference sample at the fractional position;

determining, by the one or more processors, prediction information based on the reference sample; and

reconstructing, by the one or more processors, the affine block based on the prediction information and based on residual information for the affine block included in the bitstream.

14. The method of claim 13 , wherein the interpolation filter is selected to include a first number of taps when the sub-block size is greater than a threshold and is selected to include a second number of taps when the sub-block size is less than or equal to the threshold, and wherein the first number of taps is larger than the second number of taps.

15. The method of claim 14 , wherein the interpolation filter is selected as a discrete cosine transform interpolation filter (DCT-IF) with six taps, eight taps, or twelve taps when the sub-block size is greater than the threshold.

16. The method of claim 14 , wherein the interpolation filter is selected as a discrete cosine transform interpolation filter (DCT-IF) with four taps or six taps when the sub-block size is less than or equal to the threshold.

17. The method of claim 14 , wherein the interpolation filter is selected as a warping interpolation filter (WIF) with five taps when the sub-block size is less than or equal to the threshold.

18. A video coding device comprising:

a receiver configured to:

receive a bitstream including control points describing an affine block coded according to affine inter-prediction; and

one or more processors coupled to the receiver and configured to:

determine a sub-block size of a sub-block based on the control points for the affine block;

determine a motion vector for the sub-block of the affine block based on the control points;

select an interpolation filter for application to a reference block corresponding to the sub-block, the interpolation filter selected based on the sub-block size;

determine which fractional position at the reference block a motion vector for a current sample points to;

apply the interpolation filter to the reference block to determine a reference sample at the fractional position;

determine prediction information based on the reference sample; and

reconstruct the affine block based on the prediction information and based on residual information for the affine block included in the bitstream.

19. The video coding device of claim 18 , wherein the interpolation filter is selected to include a first number of taps when the sub-block size is greater than a threshold and is selected to include a second number of taps when the sub-block size is less than or equal to the threshold, and wherein the first number of taps is larger than the second number of taps.

20. The video coding device of claim 19 , wherein the interpolation filter is selected as a discrete cosine transform interpolation filter (DCT-IF) with six taps, eight taps, or twelve taps when the sub-block size is greater than the threshold.

21. The method of claim 1 , further comprising transmitting, by a transmitter of the encoder, the bitstream toward a decoder to support reconstruction of the affine block as part of a video frame.

22. The video coding device of claim 8 , further comprising a transmitter coupled to the one or more processors, the transmitter configured to transmit the bitstream toward a decoder to support reconstruction of the affine block as part of a video frame.

23. The method of claim 13 , further comprising forwarding, by the one or more processors, the affine block as reconstructed toward a display as part of a reconstructed video sequence.

24. The video coding device of claim 18 , wherein the one or more processors are further configured to forward the affine block as reconstructed toward a display as part of a reconstructed video sequence.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 1, 2021
From: FUTUREWEI TECHNOLOGIES, INC.
To: HUAWEI TECHNOLOGIES CO., LTD.
Reel/Frame 057350/0409 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 16, 2020
From: CHEN, HUANBANG; YANG, HAITAO; CHEN, JIANLE
To: FUTUREWEI TECHNOLOGIES, INC.
Reel/Frame 053787/0636 →
Continuity (3)
Continuation PCTUS2019017652 · Feb 12, 2019
Provisional Application 62630607 · Feb 14, 2018
Related Publication 20200260108A1 · Aug 13, 2020
Cited By (1)
US 12,348,788