IP Library › Granted Patent US 10,560,714
Granted Patent B2
US 10,560,714 · App. 15/855,005 · Granted Feb 11, 2020

Picture prediction method and picture prediction apparatus

Inventors: Sixin Lin (Shenzhen, CN); Ruopu Huang (Shenzhen, CN); Haitao Yang (Shenzhen, CN)
Assignee: Huawei Technologies Co., Ltd.
H04N19/52H04N19/159H04N19/176H04N19/56
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,560,714
App. No.
15/855,005
Granted
Feb 11, 2020
Kind
B2
Abstract

A picture prediction method includes: determining motion vectors of W control points in a current picture block; obtaining motion vectors of P pixel units of the current picture block by using a motion model and the motion vectors of the W control points, where precision of the determined motion vectors of the W control points is 1/n of pixel precision, precision of the motion vector of each of the P pixel units is 1/N of the pixel precision, the motion vector of each of the P pixel units is used to determine a corresponding reference pixel unit in a reference picture of a corresponding pixel unit; and performing interpolation filtering on a pixel of the corresponding reference pixel unit by using an interpolation filter with a phase of Q, to obtain a predicted pixel value of each of the P pixel units.

Claims (900)

1. A picture prediction method, comprising:

determining motion vectors of W control points in a current picture block;

obtaining, by calculation, motion vectors of P pixel units of the current picture block by using a motion model and the motion vectors of the W control points, wherein precision of the determined motion vectors of the W control points is 1/n of pixel precision, precision of the motion vector of each of the P pixel units is 1/N of the pixel precision, the motion vector of each of the P pixel units is used to determine a corresponding reference pixel unit in a reference picture of a corresponding pixel unit, W, n, and N are integers greater than 1, N is greater than n, and P is a positive integer; and

performing interpolation filtering on a pixel of the corresponding reference pixel unit by using an interpolation filter with a phase of Q, to obtain a predicted pixel value of each of the P pixel units, wherein Q is an integer greater than n.

2. The method according to claim 1 , wherein a value of N is a preset fixed value, and Q is less than or equal to N.

3. The method according to claim 1 , wherein a horizontal component or a vertical component of one of the motion vectors of the W control points is amplified N times in the motion model, or a component difference between motion vectors of any two of the W control points is amplified N times in the motion model.

4. The method according to claim 1 , wherein the performing interpolation filtering comprises:

obtaining, by calculation, a phase of each of the P pixel units by using the motion vector of each of the P pixel units;

determining, based on the phase of each of the P pixel units, the interpolation filter with the phase of Q that is corresponding to the pixel unit, wherein a filter coefficient used by the interpolation filter is corresponding to the phase; and

performing interpolation filtering on the pixel of the corresponding pixel unit, in the reference picture, of each pixel unit by using the determined interpolation filter with the phase of Q that is corresponding to the pixel unit.

5. The method according to claim 4 , wherein the obtaining the phase of each of the P pixel units comprises: obtaining the phase of each of the P pixel units according to the following formula by using the motion vector of each of the P pixel units:

X′= abs(ν Nx )% N , or X′=ν Nx &((1≤ M )−1);

Y′= abs(ν Ny )% N , or Y′=ν Ny &((1≤ M )−1);

wherein

M is equal to log 2 N, N is an integral power of 2, X′ represents a horizontal phase of a pixel unit with coordinates of (x, y) in the current picture block, Y′ represents a vertical phase of the pixel unit with the coordinates of (x, y) in the current picture block, ν Nx represents a horizontal component of a motion vector, whose precision is 1/N of the pixel precision, of the pixel unit with the coordinates of (x, y) in the current picture block, and ν Ny represents a vertical component of the motion vector, whose precision is 1/N of the pixel precision, of the pixel unit with the coordinates of (x, y) in the current picture block.

6. The method according to claim 4 , wherein the phase comprises a horizontal phase and a vertical phase; and the determining the interpolation filter with the phase of Q comprises:

determining, based on the horizontal phase of each pixel unit, a horizontal interpolation filter with a phase of Q that is corresponding to the pixel unit; and

determining, based on the vertical phase of each pixel unit, a vertical interpolation filter with a phase of Q that is corresponding to the pixel unit, wherein a filter coefficient used by the horizontal interpolation filter is corresponding to the horizontal phase, and a filter coefficient used by the vertical interpolation filter is corresponding to the vertical phase.

7. The method according to claim 6 , wherein the performing interpolation filtering comprises:

performing horizontal interpolation filtering on a pixel of a corresponding reference pixel unit, in the reference picture, of a pixel unit i by using a determined horizontal interpolation filter with a phase of Q that is corresponding to the pixel unit i, to obtain a horizontal interpolation filtering result; and

performing vertical interpolation filtering on the horizontal interpolation filtering result by using a determined vertical interpolation filter with a phase of Q that is corresponding to the pixel unit i, to obtain a predicted pixel value of the pixel unit i, wherein the pixel unit i is any one of the P pixel units.

8. The method according to claim 6 , wherein the performing interpolation filtering comprises:

performing vertical interpolation filtering on a pixel of a corresponding pixel unit, in the reference picture, of a pixel unit j by using a determined vertical interpolation filter with a phase of Q that is corresponding to the pixel unit j, to obtain a vertical interpolation filtering result; and

performing horizontal interpolation filtering on the vertical interpolation filtering result by using a determined horizontal interpolation filter with a phase of Q that is corresponding to the pixel unit j, to obtain a predicted pixel value of the pixel unit j, wherein the pixel unit j is any one of the P pixel units.

9. The method according to claim 1 , wherein the motion model is a translational motion model, an affine motion model, a rotational motion model, a parabolic motion model, a shearing motion model, a zooming motion model, a perspective motion model, or a bilinear motion model.

10. The method according to claim 1 , wherein the motion model is represented as follows, wherein W is equal to 2:

{

v

Nx

=

(

(

v

1

⁢

x

-

v

0

⁢

x

)

×

N

L

⁢

x

-

(

v

1

⁢

y

-

v

0

⁢

y

)

×

N

L

⁢

y

+

Nv

0

⁢

x

)

/

n

v

Ny

=

(

(

v

1

⁢

y

-

v

0

⁢

y

)

×

N

L

⁢

x

+

(

v

1

⁢

x

-

v

0

⁢

x

)

×

N

L

⁢

y

+

Nv

0

⁢

y

)

/

n

;

or

⁢

⁢

{

v

Nx

=

(

v

1

⁢

x

-

v

0

⁢

x

)

×

(

N

/

n

)

L

⁢

x

-

(

v

1

⁢

y

-

v

0

⁢

y

)

×

(

N

/

n

)

L

⁢

y

+

(

N

/

n

)

⁢

v

0

⁢

x

v

Ny

=

(

v

1

⁢

y

-

v

0

⁢

y

)

×

(

N

/

n

)

L

⁢

x

+

(

v

1

⁢

x

-

v

0

⁢

x

)

×

(

N

/

n

)

L

⁢

y

+

(

N

/

n

)

⁢

v

0

⁢

y

,

wherein

L represents a width or a height of the current picture block, (ν 0x ,ν 0y ) and (ν 1x ,ν 1y ) represent motion vectors, whose precision is 1/n of the pixel precision, of two control points, ν Nx represents a horizontal component of a motion vector, whose precision is 1/N of the pixel precision, of a pixel unit with coordinates of (x, y) in the current picture block, and ν Ny represents a vertical component of the motion vector, whose precision is 1/N of the pixel precision, of the pixel unit with the coordinates of (x, y) in the current picture block.

11. The method according to claim 1 , wherein the motion model is represented as follows, wherein W is equal to 3:

{

v

Nx

=

(

(

v

1

⁢

x

-

v

0

⁢

x

)

×

N

w

⁢

x

+

(

v

2

⁢

x

-

v

0

⁢

x

)

×

N

h

⁢

y

+

Nv

0

⁢

x

)

/

n

v

Ny

=

(

(

v

1

⁢

y

-

v

0

⁢

y

)

×

N

w

⁢

x

+

(

v

2

⁢

y

-

v

0

⁢

y

)

×

N

h

⁢

y

+

Nv

0

⁢

y

)

/

n

;

or

⁢

⁢

{

v

Nx

=

(

v

1

⁢

x

-

v

0

⁢

x

)

×

(

N

/

n

)

w

⁢

x

+

(

v

2

⁢

x

-

v

0

⁢

x

)

×

(

N

/

n

)

h

⁢

y

+

(

N

/

n

)

⁢

v

0

⁢

x

v

Ny

=

(

v

1

⁢

y

-

v

0

⁢

y

)

×

(

N

/

n

)

w

⁢

x

+

(

v

2

⁢

y

-

v

0

⁢

y

)

×

(

N

/

n

)

h

⁢

y

+

(

N

/

n

)

⁢

v

0

⁢

y

,

wherein

ν Nx represents a horizontal component of a motion vector, whose precision is 1/N of the pixel precision, of a pixel unit with coordinates of (x, y) in the current picture block, ν Ny represents a vertical component of the motion vector, whose precision is 1/N of the pixel precision, of the pixel unit with the coordinates of (x, y) in the current picture block, (ν 0x ,ν 0y ), (ν 1x ,ν 1y ), and (ν 2x ,ν 2y ) represent motion vectors, whose precision is 1/n of the pixel precision, of three control points, w represents a width of the current picture block, and h represents a height of the current picture block.

12. The method according to claim 1 , wherein the motion vectors of the W control points are predicted based on a motion vector, whose precision is 1/n of the pixel precision, of an encoded picture block or a decoded picture block that surrounds the current picture block.

13. The method according to claim 1 , wherein the picture prediction method is applied to a video coding process or applied to a video decoding process.

14. A picture prediction apparatus, comprising:

a non-transitory memory storage comprising instructions; and

one or more hardware processors in communication with the memory storage, wherein the one or more hardware processors execute the instructions to:

determine motion vectors of W control points in a current picture block;

obtain, by calculation, motion vectors of P pixel units of the current picture block by using a motion model and the motion vectors of the W control points, wherein precision of the determined motion vectors of the W control points is 1/n of pixel precision, precision of the motion vector of each of the P pixel units is 1/N of the pixel precision, the motion vector of each of the P pixel units is used to determine a corresponding reference pixel unit in a reference picture of a corresponding pixel unit, W, n, and N are integers greater than 1, N is greater than n, and P is a positive integer; and

perform interpolation filtering on a pixel of the corresponding reference pixel unit by using an interpolation filter with a phase of Q, to obtain a predicted pixel value of each of the P pixel units, wherein Q is an integer greater than n.

15. The apparatus according to claim 14 , wherein a value of N is a preset fixed value, and Q is less than or equal to N.

16. The apparatus according to claim 14 , wherein a horizontal component or a vertical component of one of the motion vectors of the W control points is amplified N times in the motion model, or a component difference between motion vectors of any two of the W control points is amplified N times in the motion model.

17. The apparatus according to claim 14 , wherein the one or more hardware processors is configured to:

obtain, by calculation, a phase of each of the P pixel units by using the motion vector of each of the P pixel units;

determine, based on the phase of each of the P pixel units, the interpolation filter with the phase of Q that is corresponding to the pixel unit, wherein a filter coefficient used by the interpolation filter is corresponding to the phase; and

perform interpolation filtering on the pixel of the corresponding pixel unit, in the reference picture, of each pixel unit by using the determined interpolation filter with the phase of Q that is corresponding to the pixel unit.

18. The apparatus according to claim 17 , wherein the one or more hardware processors is configured to: obtain the phase of each of the P pixel units according to the following formula by using the motion vector of each of the P pixel units:

X′= abs(ν Nx )% N , or X′=ν Nx &((1≤ M )−1);

Y′= abs(ν Ny )% N , or Y′=ν Ny &((1≤ M )−1);

wherein

M is equal to log 2 N, N is an integral power of 2, X′ represents a horizontal phase of a pixel unit with coordinates of (x, y) in the current picture block, Y′ represents a vertical phase of the pixel unit with the coordinates of (x, y) in the current picture block, ν Nx represents a horizontal component of a motion vector, whose precision is 1/N of the pixel precision, of the pixel unit with the coordinates of (x, y) in the current picture block, and ν Ny represents a vertical component of the motion vector, whose precision is 1/N of the pixel precision, of the pixel unit with the coordinates of (x, y) in the current picture block.

19. The apparatus according to claim 17 , wherein the phase comprises a horizontal phase and a vertical phase; and the one or more hardware processors is configured to:

determine, based on the horizontal phase of each pixel unit, a horizontal interpolation filter with a phase of Q that is corresponding to the pixel unit; and

determine, based on the vertical phase of each pixel unit, a vertical interpolation filter with a phase of Q that is corresponding to the pixel unit, wherein a filter coefficient used by the horizontal interpolation filter is corresponding to the horizontal phase, and a filter coefficient used by the vertical interpolation filter is corresponding to the vertical phase.

20. The apparatus according to claim 19 , wherein the one or more hardware processors is configured to:

perform horizontal interpolation filtering on a pixel of a corresponding reference pixel unit, in the reference picture, of a pixel unit i by using a determined horizontal interpolation filter with a phase of Q that is corresponding to the pixel unit i, to obtain a horizontal interpolation filtering result; and

perform vertical interpolation filtering on the horizontal interpolation filtering result by using a determined vertical interpolation filter with a phase of Q that is corresponding to the pixel unit i, to obtain a predicted pixel value of the pixel unit i, wherein the pixel unit i is any one of the P pixel units.

21. The apparatus according to claim 19 , wherein the one or more hardware processors is configured to:

perform vertical interpolation filtering on a pixel of a corresponding pixel unit, in the reference picture, of a pixel unit j by using a determined vertical interpolation filter with a phase of Q that is corresponding to the pixel unit j, to obtain a vertical interpolation filtering result; and

perform horizontal interpolation filtering on the vertical interpolation filtering result by using a determined horizontal interpolation filter with a phase of Q that is corresponding to the pixel unit j, to obtain a predicted pixel value of the pixel unit j, wherein the pixel unit j is any one of the P pixel units.

22. The apparatus according to claim 14 , wherein the motion model is a translational motion model, an affine motion model, a rotational motion model, a parabolic motion model, a shearing motion model, a zooming motion model, a perspective motion model, or a bilinear motion model.

23. The apparatus according to claim 14 , wherein the motion model is represented as follows, wherein W is equal to 2:

{

v

Nx

=

(

(

v

1

⁢

x

-

v

0

⁢

x

)

×

N

L

⁢

x

-

(

v

1

⁢

y

-

v

0

⁢

y

)

×

N

L

⁢

y

+

Nv

0

⁢

x

)

/

n

v

Ny

=

(

(

v

1

⁢

y

-

v

0

⁢

y

)

×

N

L

⁢

x

+

(

v

1

⁢

x

-

v

0

⁢

x

)

×

N

L

⁢

y

+

Nv

0

⁢

y

)

/

n

;

or

⁢

⁢

{

v

Nx

=

(

v

1

⁢

x

-

v

0

⁢

x

)

×

(

N

/

n

)

L

⁢

x

-

(

v

1

⁢

y

-

v

0

⁢

y

)

×

(

N

/

n

)

L

⁢

y

+

(

N

/

n

)

⁢

v

0

⁢

x

v

Ny

=

(

v

1

⁢

y

-

v

0

⁢

y

)

×

(

N

/

n

)

L

⁢

x

+

(

v

1

⁢

x

-

v

0

⁢

x

)

×

(

N

/

n

)

L

⁢

y

+

(

N

/

n

)

⁢

v

0

⁢

y

,

wherein

L represents a width or a height of the current picture block, (ν 0x ,ν 0y ) and (ν 1x ,ν 1y ) represent motion vectors, whose precision is 1/n of the pixel precision, of two control points, ν Nx represents a horizontal component of a motion vector, whose precision is 1/N of the pixel precision, of a pixel unit with coordinates of (x, y) in the current picture block, and ν Ny represents a vertical component of the motion vector, whose precision is 1/N of the pixel precision, of the pixel unit with the coordinates of (x, y) in the current picture block.

24. The apparatus according to claim 14 , wherein the motion model is represented as follows, wherein W is equal to 3:

{

v

Nx

=

(

(

v

1

⁢

x

-

v

0

⁢

x

)

×

N

w

⁢

x

+

(

v

2

⁢

x

-

v

0

⁢

x

)

×

N

h

⁢

y

+

Nv

0

⁢

x

)

/

n

v

Ny

=

(

(

v

1

⁢

y

-

v

0

⁢

y

)

×

N

w

⁢

x

+

(

v

2

⁢

y

-

v

0

⁢

y

)

×

N

h

⁢

y

+

Nv

0

⁢

y

)

/

n

;

or

⁢

⁢

{

v

Nx

=

(

v

1

⁢

x

-

v

0

⁢

x

)

×

(

N

/

n

)

w

⁢

x

+

(

v

2

⁢

x

-

v

0

⁢

x

)

×

(

N

/

n

)

h

⁢

y

+

(

N

/

n

)

⁢

v

0

⁢

x

v

Ny

=

(

v

1

⁢

y

-

v

0

⁢

y

)

×

(

N

/

n

)

w

⁢

x

+

(

v

2

⁢

y

-

v

0

⁢

y

)

×

(

N

/

n

)

h

⁢

y

+

(

N

/

n

)

⁢

v

0

⁢

y

,

wherein

ν Nx represents a horizontal component of a motion vector, whose precision is 1/N of the pixel precision, of a pixel unit with coordinates of (x, y) in the current picture block, ν Ny represents a vertical component of the motion vector, whose precision is 1/N of the pixel precision, of the pixel unit with the coordinates of (x, y) in the current picture block, (ν 0x ,ν 0y ), (ν 1x ,ν 1y ), and (ν 2x ,ν 2y ) represent motion vectors, whose precision is 1/n of the pixel precision, of three control points, w represents a width of the current picture block, and h represents a height of the current picture block.

25. The apparatus according to claim 14 , wherein the motion vectors of the W control points are predicted based on a motion vector, whose precision is 1/n of the pixel precision, of an encoded picture block or a decoded picture block that surrounds the current picture block.

26. The apparatus according to claim 14 , wherein the current picture block is generated in a video coding process or applied to a video decoding process.

27. A non-transitory computer-readable medium storing computer instructions, that when executed by one or more hardware processors, cause the one or more hardware processors to perform operations comprising:

determining motion vectors of W control points in a current picture block;

obtaining, by calculation, motion vectors of P pixel units of the current picture block by using a motion model and the motion vectors of the W control points, wherein precision of the determined motion vectors of the W control points is 1/n of pixel precision, precision of the motion vector of each of the P pixel units is 1/N of the pixel precision, the motion vector of each of the P pixel units is used to determine a corresponding reference pixel unit in a reference picture of a corresponding pixel unit, W, n, and N are integers greater than 1, N is greater than n, and P is a positive integer; and

performing interpolation filtering on a pixel of the corresponding reference pixel unit by using an interpolation filter with a phase of Q, to obtain a predicted pixel value of each of the P pixel units, wherein Q is an integer greater than n.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 16, 2018
From: LIN, SIXIN; HUANG, RUOPU; YANG, HAITAO
To: HUAWEI TECHNOLOGIES CO., LTD.
Reel/Frame 045257/0795 →
Priority Claims (1)
CN 2015 1 0391765 · Jul 3, 2015 · national
Continuity (2)
Continuation PCTCN2016087750 · Jun 29, 2016
Related Publication 20180139468A1 · May 17, 2018