IP Library › Granted Patent US 11,463,721
Granted Patent B2
US 11,463,721 · App. 17/111,376 · Granted Oct 4, 2022

Motion vector obtaining method and apparatus

Inventors: Huanbang Chen (Shenzhen, CN); Yin Zhao (Hangzhou, CN); Haitao Yang (Shenzhen, CN); Jianle Chen (Santa Clara, CA)
Assignee: Huawei Technologies Co., Ltd.
H04N19/513H04N19/176H04N19/189H04N19/567
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,463,721
App. No.
17/111,376
Granted
Oct 4, 2022
Kind
B2
Abstract

This application provides a motion vector obtaining method and apparatus. The method includes: determining a target offset vector of a block and identifier information of a target picture, wherein the block comprises at least one sub-block; determining a location of the sub-block; determining, as a target location coordinate value of a collocated sub-block, a location coordinate value obtained by performing a clipping operation on an initial location coordinate value in a range, wherein the initial location coordinate value is based on the location of the sub-block and the target offset vector; and obtaining a motion vector of the sub-block based on a motion vector corresponding to the target location coordinate value. Thus, a range of the target offset vector is limited, so that a quantity of memory read times can be reduced in a process of obtaining the motion vector of the collocated sub-block.

Claims (337)

1. A method for inter prediction of video data, comprising:

determining a target offset vector of a block and identifier information of a target picture, wherein the block comprises a sub-block;

determining a location of the sub-block;

determining a target location coordinate value of a collocated sub-block by performing a clipping operation on an initial location coordinate value of the collocated sub-block to be within a range, wherein the initial location coordinate value is determined based on the location of the sub-block and the target offset vector, and the collocated sub-block is in the target picture and corresponds to the sub-block, wherein the target picture is indicated by the identifier information;

obtaining a motion vector of the sub-block based on a motion vector corresponding to the target location coordinate value; and

generating predicted sample values for the sub-block using the motion vector of the sub-block,

wherein the range is represented by a horizontal coordinate value range and a vertical coordinate value range, the horizontal coordinate value range comprises a minimum horizontal coordinate value and a maximum horizontal coordinate value, and the vertical coordinate value range comprises a minimum vertical coordinate value and a maximum vertical coordinate value,

wherein the determining the target location coordinate value of the collocated sub-block by performing the clipping operation on the initial location coordinate value of the collocated sub-block to be within the range, comprises:

determining the target location coordinate value according to the following formulas:

x (i,j) =Clip3(HorMin,HorMax, x (i,j) ); and

y (i,j) =Clip3(VerMin,VerMax, y (i,j) ), wherein

HorMin is the minimum horizontal coordinate value, HorMax is the maximum horizontal coordinate value, VerMin is the minimum vertical coordinate value, VerMax is the maximum vertical coordinate value, a Clip3 function is a clipping function, and the Clip3 function is defined as follows:

Clip

⁢

⁢

3

⁢

(

x

,

y

,

z

)

=

{

x

;

z

<

x

y

;

z

>

y

z

;

otherwise

.

2. The method according to claim 1 , wherein the initial location coordinate value comprises at least one of a horizontal coordinate or a vertical coordinate of the collocated sub-block;

the horizontal coordinate of the collocated sub-block is a sum of a horizontal coordinate of the location of the sub-block and a horizontal component (x off ) of the target offset vector; and

the vertical coordinate of the collocated sub-block is a sum of a vertical coordinate of the location of the sub-block and a vertical component (y off ) of the target offset vector.

3. The method according to claim 2 , wherein the initial location coordinate value of the collocated sub-block is derived as follows:

{

x

(

i

,

j

)

=

x

+

M

×

i

+

M

2

+

x

off

y

(

i

,

j

)

=

y

+

N

×

j

+

N

2

+

y

off

,

wherein

(x, y) represents location coordinates of the block, i represents the sub-block is an i th sub-block in the block in a horizontal direction, j represents the sub-block is a j th sub-block in the block in a vertical direction, (x off , y off ) represents values of components of the target offset vector in the horizontal direction and the vertical direction, respectively, M and N are respectively a width and a height of the sub-block, and (x (i,j) , y (i,j) ) represents the initial location coordinate value of the collocated sub-block that corresponds to the (i, j) th sub-block.

4. The method according to claim 3 , wherein (x, y) represents location coordinates of a top-left vertex of the block, and (x (i,j) , y (i,j) ) represents location coordinates of a center point or a top-left vertex of the collocated sub-block that corresponds to the (i, j) th sub-block.

5. The method according to claim 1 , wherein the sub-block is an (i, j) th sub-block in the block, location coordinates of the (i, j) th sub-block are represented by

(

x

+

M

×

i

+

M

2

,

y

+

N

×

j

+

N

2

)

(x, y) represents location coordinates of the block, i represents the sub-block is the i th sub-block in the block in a horizontal direction, j represents the sub-block is the j th sub-block in the block in a vertical direction, and M and N are respectively a width and a height of the sub-block.

6. The method according to claim 1 , wherein the range is determined based on a location and a size of a coding tree unit (CTU) in which the block is included, a size of the target picture, and an extension range of a temporal motion vector field of the CTU.

7. The method according to claim 6 , wherein the range is determined according to the following formulas:

HorMin=Max( CTUX −Range L, 0);

HorMax=Min( CTUX+CTUW +Range R −1, Pic W −1);

VerMin=Max( CTUY −Range U, 0); and

VerMax=Min( CTUY+CTUH +Range B −1, Pic H −1), wherein

HorMin and HorMax are respectively a minimum value and a maximum value of the range in a horizontal direction, VerMin and VerMax are respectively a minimum value and a maximum value of the range in a vertical direction, CTUX and CTUY represent location coordinates of the CTU in which the block is included, CTUW and CTUH respectively represent a width and a height of the CTU in which the block is included, RangeU, RangeB, RangeL, and RangeR respectively represent extension range values that are in an upward direction, a downward direction, a left direction, and a right direction and that are of the temporal motion vector field of the CTU in which the block is included, and PicW and PicH are respectively a width and a height of the target picture.

8. The method according to claim 7 , wherein a value of the extension range of the temporal motion vector field of the CTU (RangeU, RangeB, RangeL, RangeR) is a predetermined value.

9. The method according to claim 1 , wherein the obtaining a motion vector of the sub-block based on a motion vector corresponding to the target location coordinate value comprises:

scaling the motion vector corresponding to the target location coordinate value based on a picture order count (POC) of a picture comprising the sub-block, a POC of a target reference picture of the picture comprising the sub-block, a POC of the target picture, and a POC of a target reference picture of the target picture, to obtain the motion vector of the sub-block.

10. The method according to claim 9 , wherein the motion vector of the sub-block is obtained according to the following formula:

MV

s

=

P

⁢

⁢

1

-

P

⁢

⁢

2

P

⁢

⁢

3

-

P

⁢

⁢

4

×

MV

,

wherein

P 1 represents the POC of the picture comprising the sub-block, P 2 represents the POC of the target reference picture of the picture comprising the sub-block, P 3 represents the POC of the target picture, P 4 represents the POC of the target reference picture of the target picture, MV represents the motion vector corresponding to the target location coordinate value, and MV s represents the motion vector of the sub-block.

11. The method according to claim 1 , wherein the determining the target offset vector of the block comprises:

determining a motion vector of a spatially neighboring block of the block as the target offset vector.

12. An apparatus, comprising:

a non-transitory computer-readable medium configured to store computer-readable instructions; and

a processor in communication with the non-transitory computer-readable medium and configured to execute the computer-readable instructions stored in the non-transitory computer-readable medium thereby performing operations comprising:

determining a target offset vector of a block and identifier information of a target picture, wherein the block comprises a sub-block;

determining a location of the sub-block;

determining a target location coordinate value of a collocated sub-block by performing a clipping operation on an initial location coordinate value of the collocated sub-block to be within a range, wherein the initial location coordinate value is determined based on the location of the sub-block and the target offset vector, and the collocated sub-block is in the target picture and corresponds to the sub-block, wherein the target picture is indicated by the identifier information;

obtaining a motion vector of the sub-block based on a motion vector corresponding to the target location coordinate value;

generating predicted sample values for the sub-block using the motion vector of the sub-block,

wherein the range is represented by a horizontal coordinate value range and a vertical coordinate value range, the horizontal coordinate value range comprises a minimum horizontal coordinate value and a maximum horizontal coordinate value, and the vertical coordinate value range comprises a minimum vertical coordinate value and a maximum vertical coordinate value; and

determining the target location coordinate value according to the following formulas:

x (i,j) =Clip3(HorMin,HorMax, x (i,j) ; and

y (i,j) =Clip3(VerMin,VerMax, y (i,j) ), wherein

HorMin is the minimum horizontal coordinate value, HorMax is the maximum horizontal coordinate value, VerMin is the minimum vertical coordinate value, VerMax is the maximum vertical coordinate value, a Clip3 function is a clipping function, and the Clip3 function is defined as follows:

Clip

⁢

⁢

3

⁢

(

x

,

y

,

z

)

=

{

x

;

z

<

x

y

;

z

>

y

z

;

otherwise

.

13. The apparatus according to claim 12 , wherein the initial location coordinate value comprises at least one of a horizontal coordinate or a vertical coordinate of the collocated sub-block;

a horizontal coordinate of the collocated sub-block is a sum of a horizontal coordinate of the location of the sub-block and a horizontal component (x off ) of the target offset vector; and

a vertical coordinate of the collocated sub-block is a sum of a vertical coordinate of the location of the sub-block and a vertical component (y off ) of the target offset motion vector.

14. The apparatus according to claim 13 , wherein the initial location coordinate value of the collocated sub-block is derived as follows:

{

x

(

i

,

j

)

=

x

+

M

×

i

+

M

2

+

x

off

y

(

i

,

j

)

=

y

+

N

×

j

+

N

2

+

y

off

,

wherein

(x, y) represents location coordinates of the block, i represents the sub-block is an i th sub-block in the block in a horizontal direction, j represents the sub-block is a j th sub-block in the block in a vertical direction, (x off , y off ) represents values of components of the target offset motion vector in the horizontal direction and the vertical direction, respectively, M and N are respectively a width and a height of the sub-block, and (x (i,j) , y (i,j) ) represents the initial location coordinate value of the collocated sub-block that corresponds to the (i, j) th sub-block.

15. The apparatus according to claim 14 , wherein (x, y) represents location coordinates of a top-left vertex of the block, and (x (i,j) , y (i,j) ) represents location coordinates of a center point or a top-left vertex of the collocated sub-block that corresponds to the (i, j) th sub-block.

16. The apparatus according to claim 12 , wherein the sub-block is an (i, j) th sub-block in the block, location coordinates of the (i, j) th sub-block are represented by

(

x

+

M

×

i

+

M

2

,

y

+

N

×

j

+

N

2

)

(x, y) represents location coordinates of the block, i represents the sub-block is the i th sub-block in the block in a horizontal direction, j represents the sub-block is the j th sub-block in the block in a vertical direction, and M and N are respectively a width and a height of the sub-block.

17. The apparatus according to claim 12 , wherein the range is determined based on a location and a size of a coding tree unit (CTU) in which the block is included, a size of the target picture, and an extension range of a temporal motion vector field of the CTU.

18. The apparatus according to claim 17 , wherein the range is determined according to the following formulas:

HorMin=Max( CTUX −Range L, 0);

HorMax=Min( CTUX+CTUW +Range R− 1, Pic W −1);

VerMin=Max( CTUY −Range U, 0); and

VerMax=Min( CTUY+CTUH +Range B −1, Pic H −1), wherein

HorMin and HorMax are respectively a minimum value and a maximum value of the range in a horizontal direction, VerMin and VerMax are respectively a minimum value and a maximum value of the range in a vertical direction, CTUX and CTUY represent location coordinates of the CTU in which the block is included, CTUW and CTUH represent a width and a height of the CTU in which the block is included, RangeU, RangeB, RangeL, and RangeR respectively represent extension range values that are in an upward direction, a downward direction, a left direction, and a right direction and that are of the temporal motion vector field of the CTU in which the block is included, and PicW and PicH are respectively a width and a height of the target picture.

19. The apparatus according to claim 18 , wherein a value of the extension range of the temporal motion vector field of the CTU (RangeU, RangeB, RangeL, RangeR) is a predetermined value.

20. The apparatus according to claim 12 , wherein the operations further comprise:

scaling the motion vector corresponding to the target location coordinate value based on a picture order count (POC) of a picture comprising the sub-block, a POC of a target reference picture of the picture comprising the sub-block, a POC of the target picture, and a POC of a target reference picture of the target picture, to obtain the motion vector of the sub-block.

21. The apparatus according to claim 20 , wherein the motion vector of the sub-block is obtained according to the following formula:

MV

s

=

P

⁢

⁢

1

-

P

⁢

⁢

2

P

⁢

⁢

3

-

P

⁢

⁢

4

×

MV

,

wherein

P 1 represents the POC of the picture comprising the sub-block, P 2 represents the POC of the target reference picture of the picture comprising the sub-block, P 3 represents the POC of the target picture, P 4 represents the POC of the target reference picture of the target picture, MV represents the motion vector corresponding to the target location coordinate value, and MV s represents the motion vector of the sub-block.

22. The apparatus according to claim 12 , wherein the operations further comprise:

determining a motion vector of a spatially neighboring block of the block as the target offset vector.

23. The apparatus according to claim 12 , wherein the apparatus is a decoding apparatus or an encoding apparatus.

24. A non-transitory computer-readable medium, comprising program code, which, when executed by a processor, causes the processor to perform operations comprising:

determining a target offset vector of a block and identifier information of a target picture, wherein the block comprises a sub-block;

determining a location of the sub-block;

determining a target location coordinate value of a collocated sub-block by performing a clipping operation on an initial location coordinate value of the collocated sub-block to be within a range, wherein the initial location coordinate value is determined based on the location of the sub-block and the target offset vector, and the collocated sub-block is in the target picture and corresponds to the sub-block, wherein the target picture is indicated by the identifier information;

obtaining a motion vector of the sub-block based on a motion vector corresponding to the target location coordinate value; and

generating predicted sample values for the sub-block using the motion vector of the sub-block,

wherein the range is represented by a horizontal coordinate value range and a vertical coordinate value range, the horizontal coordinate value range comprises a minimum horizontal coordinate value and a maximum horizontal coordinate value, and the vertical coordinate value range comprises a minimum vertical coordinate value and a maximum vertical coordinate value,

wherein the determining the target location coordinate value of a collocated sub-block by performing the clipping operation on the initial location coordinate value of the collocated sub-block to be within the range, comprises:

determining the target location coordinate value according to the following formulas:

x (i,j) =Clip3(HorMin,HorMax, x (i,j) ); and

y (i,j) =Clip3(VerMin,VerMax, y (i,j) ), wherein

HorMin is the minimum horizontal coordinate value, HorMax is the maximum horizontal coordinate value, VerMin is the minimum vertical coordinate value, VerMax is the maximum vertical coordinate value, a Clip3 function is a clipping function, and the Clip3 function is defined as follows:

C

⁢

l

⁢

i

⁢

p

⁢

3

⁢

(

x

,

y

,

z

)

=

{

x

;

z

<

x

y

;

z

>

y

z

;

otherwise

.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 7, 2022
From: CHEN, HUANBANG; ZHAO, YIN; YANG, HAITAO; CHEN, JIANLE
To: HUAWEI TECHNOLOGIES CO., LTD.
Reel/Frame 060119/0811 →
Priority Claims (1)
CN 201810564560.8 · Jun 4, 2018 · national
Continuity (2)
Continuation PCTCN2019090031 · Jun 4, 2019
Related Publication 20210092433A1 · Mar 25, 2021