IP Library › Granted Patent US 12,581,089
Granted Patent B2
US 12,581,089 · App. 18/807,369 · Granted Mar 17, 2026

Motion vector prediction method and related apparatus

Inventors: Huanbang Chen (Shenzhen, CN); Haitao Yang (Shenzhen, CN); Jianle Chen (Shenzhen, CN); Jiali Fu (Shenzhen, CN)
Assignee: Huawei Technologies Co., Ltd.
H04N19/139H04N19/119H04N19/176H04N19/61
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 12,581,089
App. No.
18/807,369
Granted
Mar 17, 2026
Kind
B2
Abstract

A motion vector prediction method includes parsing a bitstream to obtain an index value of a candidate motion vector list and constructing the candidate motion vector list that includes. candidate motion vectors of K control points of a current block. The candidate motion vectors of K control points are obtained based on a 2N-parameter affine transform model used for a neighboring block of the current block, where N and K are integers greater than or equal to 2 and less than or equal to 4 with N not being equal to K. The method further includes determining, in the candidate motion vector list, target candidate motion vectors of the K control points based on the index value and obtaining a predicted motion vector of each subblock of the current block based on the target candidate motion vectors of the K control points.

Claims (615)

1 . A system for processing a bitstream, comprising: a server, a source device, one or more storage devices, and a destination device;

the source device is configured to obtain video source from the server;

the source device is further configured to encode the video source to obtain one or more bitstreams by:

when an affine model of a current block is a 2×K-parameter affine transform model, and an affine transform model of a neighboring block of the current block is a 2×N-parameter affine transform model, obtaining, according to the 2×N-parameter affine transform model for the neighboring block, candidate motion vector predictors of K control points of the current block, wherein the 2×N-parameter affine transform model is obtained based on motion vectors of N control points of the neighboring block, N is an integer equal to 2, K is an integer equal to 3, the neighboring block is an encoded image block spatially adjacent to the current block, and the current block comprises a plurality of subblocks;

constructing a control point motion vector predictor candidate list, wherein the control point motion vector predictor candidate list comprises the candidate motion vector predictors of the K control points of the current block;

determining, in the control point motion vector predictor candidate list, target candidate motion vector predictors of the K control points based on a rate-distortion cost;

obtaining motion vector differences (MVDs) of the K control points of the current block, according to the target candidate motion vector predictors of the K control points of the current block and motion vectors of the K control points of the current block; and

encoding an index value indicating a location of the target candidate motion vector predictors of the K control points in the control point motion vector predictor candidate list and the MVDs of the K control points of the current block into the bitstream;

the source device is configured to at least:

store the one or more bitstreams into the one or more storage devices; or

transmit the one or more bitstreams through communication interface to the destination device; and

the destination device is configured to decode the one or more bitstreams to obtain video data.

2 . A system for processing a bitstream, comprising: an encoding device, one or more storage devices, and a decoding device, wherein:

the encoding device is configured to obtain video data, and encode the video data to obtain one or more bitstreams by:

when an affine model of a current block is a 2×K-parameter affine transform model, and an affine transform model of a neighboring block of the current block is a 2×N-parameter affine transform model, obtaining, according to the 2×N-parameter affine transform model for the neighboring block, candidate motion vector predictors of K control points of the current block, wherein the 2×N-parameter affine transform model is obtained based on motion vectors of N control points of the neighboring block, N is an integer equal to 2, K is an integer equal to 3, the neighboring block is an encoded image block spatially adjacent to the current block, and the current block comprises a plurality of subblocks;

constructing a control point motion vector predictor candidate list, wherein the control point motion vector predictor candidate list comprises the candidate motion vector predictors of the K control points of the current block;

determining, in the control point motion vector predictor candidate list, target candidate motion vector predictors of the K control points based on a rate-distortion cost;

obtaining motion vector differences (MVDs) of the K control points of the current block, according to the target candidate motion vector predictors of the K control points of the current block and motion vectors of the K control points of the current block; and

encoding an index value indicating a location of the target candidate motion vector predictors of the K control points in the control point motion vector predictor candidate list and the MVDs of the K control points of the current block into the bitstream;

the one or more storage devices are configured to store the one or more bitstreams; and

the decoding device is configured to decode the one or more bitstreams.

3 . A system for processing a bitstream associated with video data, comprising: a server and one or more storage devices, wherein the one or more storage devices are configured to store at least one bitstream; and the at least one bitstream comprises an index value indicating a location of target candidate motion vector predictors of K control points in a control point motion vector predictor candidate list and motion vector differences (MVDs) of the K control points of a current block of the video data;

wherein candidate motion vector predictors of the K control points of the current block is obtained according to a 2×N-parameter affine transform model for a neighboring block of the current block when an affine model of the current block is a 2×K-parameter affine transform model and an affine transform model of the neighboring block is the 2×N-parameter affine transform model, wherein the 2×N-parameter affine transform model is obtained based on motion vectors of N control points of the neighboring block, N is an integer equal to 2, K is an integer equal to 3; the target candidate motion vector predictors of the K control points is determined in a control point motion vector predictor candidate list comprising the candidate motion vector predictors of the K control points of the current block, based on a rate-distortion cost; and the MVDs of the K control points of the current block is obtained, according to the target candidate motion vector predictors of the K control points of the current block and motion vectors of the K control points of the current block; and

the server is configured to, in response to a request of a decoder, obtain the at least one bitstream from the one or more storage devices and send the at least one bitstream to the decoder.

4 . The system of claim 3 , wherein the at least one bitstream comprises a plurality of sub-bitstreams, and the server is configured to:

obtain a first sub-bitstream and a second sub-bitstream from the one or more storage devices in response to the request of the decoder;

merge the first sub-bitstream and the second sub-bitstream to obtain a merged bitstream; and

transmit the merged bitstream to the decoder.

5 . The system according to claim 3 , wherein candidate motion vector predictors of three control points of the current block are obtained based on a 4-parameter affine transform model for the neighboring block of the current block, wherein the N control points of the neighboring block are a top-left control point and a top-right control point of the neighboring block, and the K control points of the current block are a top-left control point, a bottom-left control point and a top-right control point of the current block.

6 . The system according to claim 5 , wherein the candidate motion vector predictors of the three control points of the current block comprise: a motion vector predictor at a top-left sample location of the current block, a motion vector predictor at a top-right sample location of the current block, and a motion vector predictor at a bottom-left sample location of the current block.

7 . The system according to claim 6 , wherein the candidate motion vector predictors of the three control points of the current block are calculated according to the following formulas:

{

vx

0

=

vx

4

+

(

vx

5

-

vx

4

)

x

5

-

x

4

×

(

x

0

-

x

4

)

-

(

vy

5

-

vy

4

)

x

5

-

x

4

×

(

y

0

-

y

4

)

vy

0

=

vx

4

+

(

vy

5

-

vy

4

)

x

5

-

x

4

×

(

x

0

-

x

4

)

-

(

vx

5

-

vx

4

)

x

5

-

x

4

×

(

y

0

-

y

4

)

{

vx

1

=

vx

4

+

(

vx

5

-

vx

4

)

x

5

-

x

4

×

(

x

1

-

x

4

)

-

(

vy

5

-

vy

4

)

x

5

-

x

4

×

(

y

1

-

y

4

)

vy

1

=

vx

4

+

(

vy

5

-

vy

4

)

x

5

-

x

4

×

(

x

1

-

x

4

)

-

(

vx

5

-

vx

4

)

x

5

-

x

4

×

(

y

1

-

y

4

)

{

vx

2

=

vx

4

+

(

vx

5

-

vx

4

)

x

5

-

x

4

×

(

x

2

-

x

4

)

-

(

vy

5

-

vy

4

)

x

5

-

x

4

×

(

y

2

-

y

4

)

vy

2

=

vx

4

+

(

vy

5

-

vy

4

)

x

5

-

x

4

×

(

x

2

-

x

4

)

-

(

vx

5

-

vx

4

)

x

5

-

x

4

×

(

y

2

-

y

4

)

wherein vx 0 is a horizontal component of the motion vector predictor corresponding to the top-left sample location of the current block, and vx 0 is a vertical component of the motion vector predictor corresponding to the top-left sample location of the current block; vx 1 is a horizontal component of the motion vector predictor corresponding to the top-right sample location of the current block, and vx 1 is a vertical component of the motion vector predictor corresponding to the top-right sample location of the current block; vx 2 is a horizontal component of the motion vector predictor corresponding to the bottom-left sample location of the current block, and vx 2 is a vertical component of the motion vector predictor corresponding to the bottom-left sample location of the current block; vx 4 is a horizontal component of a motion vector corresponding to a top-left sample location of the neighboring block, and vx 4 is a vertical component of the motion vector corresponding to the top-left sample location of the neighboring block; vx 5 is a horizontal component of a motion vector corresponding to a top-right sample location of the neighboring block, and vx 5 is a vertical component of the motion vector corresponding to the top-right sample location of the neighboring block; x 0 is a horizontal coordinate of the top-left sample location of the current block, and y 0 is a vertical coordinate of the top-left sample location of the current block; x 1 is a horizontal coordinate of the top-right sample location of the current block, and y 1 is a vertical coordinate of the top-right sample location of the current block; x 2 is a horizontal coordinate of the bottom-left sample location of the current block, and y 2 is a vertical coordinate of the bottom-left sample location of the current block; x 4 is a horizontal coordinate of the top-left sample location of the neighboring block, and y 4 is a vertical coordinate of the top-left sample location of the neighboring block; and x 5 is a horizontal coordinate of the top-right sample location of the neighboring block.

8 . The system according to claim 3 , wherein the control point motion vector predictor candidate list is a control point motion vector predictor candidate list corresponding to an affine motion vector prediction (AMVP) mode, or the index value of the target candidate motion vector predictors is an index value of the control point motion vector predictor candidate list corresponding to the AMVP mode.

9 . The system according to claim 3 , wherein the neighboring block is an encoded image block spatially adjacent to the current block, and the current block comprises a plurality of subblocks.

10 . A method for processing a bitstream, comprising:

storing, by one or more storage devices, at least one bitstream, wherein the at least one bitstream comprises an index value indicating a location of target candidate motion vector predictors of K control points in a control point motion vector predictor candidate list and motion vector differences (MVDs) of the K control points of a current block of video data; wherein candidate motion vector predictors of the K control points of the current block is obtained according to a 2×N-parameter affine transform model for a neighboring block of the current block when an affine model of the current block is a 2×K-parameter affine transform model and an affine transform model of the neighboring block is the 2×N-parameter affine transform model, wherein the 2×N-parameter affine transform model is obtained based on motion vectors of N control points of the neighboring block, N is an integer equal to 2, K is an integer equal to 3; the target candidate motion vector predictors of the K control points is determined in a control point motion vector predictor candidate list comprising the candidate motion vector predictors of the K control points of the current block, based on a rate-distortion cost; and the MVDs of the K control points of the current block is obtained, according to the target candidate motion vector predictors of the K control points of the current block and motion vectors of the K control points of the current block; and

in response to a request of a decoder obtaining, by a server, the at least one bitstream from the one or more storage devices; and

sending, by the server, the one or more bitstreams to the decoder.

11 . The method according to claim 10 , wherein the at least one bitstream comprises a plurality of sub-bitstreams, and the server is configured to obtain a first sub-bitstream and a second sub-bitstream from the one or more storage devices in response to the request of the decoder; and merge the first sub-bitstream and the second sub-bitstream to obtain a merged bitstream, and transmit the merged bitstream to the decoder.

12 . The method according to claim 10 , wherein candidate motion vector predictors of three control points of the current block are obtained based on a 4-parameter affine transform model for the neighboring block of the current block, wherein the N control points of the neighboring block are a top-left control point and a top-right control point of the neighboring block, and the K control points of the current block are a top-left control point, a bottom-left control point and a top-right control point of the current block.

13 . The method according to claim 12 , wherein the candidate motion vector predictors of the three control points of the current block comprise: a motion vector predictor at a top-left sample location of the current block, a motion vector predictor at a top-right sample location of the current block, and a motion vector predictor at a bottom-left sample location of the current block.

14 . The method according to claim 13 , wherein the candidate motion vector predictors of the three control points of the current block are calculated according to the following formulas:

{

vx

0

=

vx

4

+

(

vx

5

-

vx

4

)

x

5

-

x

4

×

(

x

0

-

x

4

)

-

(

vy

5

-

vy

4

)

x

5

-

x

4

×

(

y

0

-

y

4

)

vy

0

=

vx

4

+

(

vy

5

-

vy

4

)

x

5

-

x

4

×

(

x

0

-

x

4

)

-

(

vx

5

-

vx

4

)

x

5

-

x

4

×

(

y

0

-

y

4

)

{

vx

1

=

vx

4

+

(

vx

5

-

vx

4

)

x

5

-

x

4

×

(

x

1

-

x

4

)

-

(

vy

5

-

vy

4

)

x

5

-

x

4

×

(

y

1

-

y

4

)

vy

1

=

vx

4

+

(

vy

5

-

vy

4

)

x

5

-

x

4

×

(

x

1

-

x

4

)

-

(

vx

5

-

vx

4

)

x

5

-

x

4

×

(

y

1

-

y

4

)

{

vx

2

=

vx

4

+

(

vx

5

-

vx

4

)

x

5

-

x

4

×

(

x

2

-

x

4

)

-

(

vy

5

-

vy

4

)

x

5

-

x

4

×

(

y

2

-

y

4

)

vy

2

=

vx

4

+

(

vy

5

-

vy

4

)

x

5

-

x

4

×

(

x

2

-

x

4

)

-

(

vx

5

-

vx

4

)

x

5

-

x

4

×

(

y

2

-

y

4

)

wherein vx 0 is a horizontal component of the motion vector predictor corresponding to the top-left sample location of the current block, and vx 0 is a vertical component of the motion vector predictor corresponding to the top-left sample location of the current block; vx 1 is a horizontal component of the motion vector predictor corresponding to the top-right sample location of the current block, and vx 1 is a vertical component of the motion vector predictor corresponding to the top-right sample location of the current block; vx 2 is a horizontal component of the motion vector predictor corresponding to the bottom-left sample location of the current block, and vx 2 is a vertical component of the motion vector predictor corresponding to the bottom-left sample location of the current block; vx 4 is a horizontal component of a motion vector corresponding to a top-left sample location of the neighboring block, and vx 4 is a vertical component of the motion vector corresponding to the top-left sample location of the neighboring block; vx 5 is a horizontal component of a motion vector corresponding to a top-right sample location of the neighboring block, and vx 5 is a vertical component of the motion vector corresponding to the top-right sample location of the neighboring block; x 1 is a horizontal coordinate of the top-left sample location of the current block, and y 0 is a vertical coordinate of the top-left sample location of the current block; x 1 is a horizontal coordinate of the top-right sample location of the current block, and y 1 is a vertical coordinate of the top-right sample location of the current block; x 2 is a horizontal coordinate of the bottom-left sample location of the current block, and y 2 is a vertical coordinate of the bottom-left sample location of the current block; x 4 is a horizontal coordinate of the top-left sample location of the neighboring block, and y 4 is a vertical coordinate of the top-left sample location of the neighboring block; and x 5 is a horizontal coordinate of the top-right sample location of the neighboring block.

15 . The method according to claim 10 , wherein the control point motion vector predictor candidate list is a control point motion vector predictor candidate list corresponding to an affine motion vector prediction (AMVP) mode, or the index value of the target candidate motion vector predictors is an index value of the control point motion vector predictor candidate list corresponding to the AMVP mode.

16 . The method according to claim 10 , wherein the neighboring block is an encoded image block spatially adjacent to the current block, and the current block comprises a plurality of subblocks.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 16, 2024
From: CHEN, HUANBANG; YANG, HAITAO; CHEN, JIANLE; FU, JIALI
To: HUAWEI TECHNOLOGIES CO., LTD.
Reel/Frame 068314/0016 →
Continuity (7)
Continuation 18318731 · May 17, 2023
Continuation 17525944 · Nov 14, 2021
Continuation 17140041 · Jan 1, 2021
Continuation PCTCN2018116984 · Nov 22, 2018
Provisional Application 62699733 · Jul 18, 2018
Provisional Application 62693422 · Jul 2, 2018
Related Publication 20250056003A1 · Feb 13, 2025
References Cited (28)
US 10602180B2 · Chen et al. · 2020 [cited by applicant]
US 10880543B2 · Lv et al. · 2020 [cited by applicant]
US 20170332095A1 · Zou et al. · 2017 [cited by applicant]
US 20180098062A1 · Li et al. · 2018 [cited by applicant]
US 20180098063A1 · Chen · 2018 [cited by examiner]
US 20180220149A1 · Son et al. · 2018 [cited by applicant]
US 20180270500A1 · Li · 2018 [cited by examiner]
US 20190158870A1 · Xu · 2019 [cited by examiner]
US 20190222859A1 · Chuang · 2019 [cited by examiner]
US 20190342547A1 · Lee · 2019 [cited by applicant]
CN 102883163A · 2013 [cited by applicant]
CN 102934440A · 2013 [cited by applicant]
CN 103402045A · 2013 [cited by applicant]
CN 103561263A · 2014 [cited by applicant]
CN 104539966A · 2015 [cited by applicant]
CN 106303543A · 2017 [cited by applicant]
CN 106375770A · 2017 [cited by applicant]
CN 106454378A · 2017 [cited by applicant]
CN 106537915A · 2017 [cited by applicant]
CN 106878749A · 2017 [cited by applicant]
CN 108141582A · 2018 [cited by applicant]
WO 2017156705A1 · 2017 [cited by applicant]
WO 2018064492A1 · 2018 [cited by applicant]
WO 2018067823A1 · 2018 [cited by applicant]
Huawei Technologies Co., Ltd. Affine transform prediction for next generation video coding, ITU-T SG16 Meeting, Geneva,, No. T13-SG16-C-1016, Oct. 2015, 11 pages. [cited by applicant]
Li Li et al, An Efficient Four-Parameter Affine Motion Model for Video Coding, Arxiv.org, Cornell University Library, Feb. 2017, 14 pages. [cited by applicant]
Hsu, Chih-Wei et al., Description of SOR video coding technology proposal by MediaTek, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 10th Meeting: San Diego, US, Apr. 10-20, 2018, [JV… [cited by applicant]
Document: JVET-J0017-v1, Moon mo Koo et al, Description of SOR video coding technology proposal by LG Electronics, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 10th Meeting: San Die… [cited by applicant]