IP Library › Granted Patent US 11,425,415
Granted Patent B2
US 11,425,415 · App. 17/195,527 · Granted Aug 23, 2022

Affine motion prediction

Inventors: Han Huang (San Diego, CA); Wei-Jung Chien (San Diego, CA); Marta Karczewicz (San Diego, CA)
Assignee: QUALCOMM Incorporated
H04N19/52H04N19/176H04N19/46H04N19/55
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,425,415
App. No.
17/195,527
Granted
Aug 23, 2022
Kind
B2
Abstract

A video encoder and video decoder are configured to encode and decode blocks of video data using affine motion prediction. Affine motion prediction may include predicting control point motion vectors using an affine advanced motion vector prediction (AMVP) motion vector predictor list. The video encoder and video decoder may be configured to construct the affine AMVP motion vector predictor list of candidate control point motion vectors for the block of video data, wherein the affine AMVP motion vector predictor list includes one or more affine motion vector predictors that have all control point motion vectors equal to a designated motion vector.

Claims (80)

1. A method of decoding video data, the method comprising:

receiving a block of video data encoded using affine advanced motion vector prediction (AMVP) mode;

constructing an affine AMVP motion vector predictor list of candidate control point motion vectors for the block of video data, wherein the affine AMVP motion vector predictor list includes at least one or more inherited affine motion vector predictors or one or more constructed affine motion vector predictors, wherein the affine AMVP motion vector predictor list further includes one or more affine motion vector predictors that have all control point motion vectors equal to a designated motion vector, and wherein constructing the affine AMVP motion vector predictor list of candidate control point motion vectors for the block of video data comprises:

inserting the one or more inherited affine motion vector predictors into the affine AMVP motion vector predictor list, if available,

inserting, if a number of the one or more inherited affine motion vector predictors is less than a predefined maximum number for the affine AMVP motion vector predictor list, the one or more constructed affine motion vector predictors into the affine AMVP motion vector predictor list, if available, and

inserting, if a number of the one or more inherited affine motion vector predictors and the one or more constructed affine motion vector predictors is less than the predefined maximum number for the affine AMVP motion vector predictor list, the one or more affine motion vector predictors that have all control point motion vectors equal to the designated motion vector into the affine AMVP motion vector predictor list;

determining control point motion vectors for the block of video data from the affine AMVP motion vector predictor list; and

decoding the block of video data using the determined control point motion vectors.

2. The method of claim 1 , further comprising:

determining the designated motion vector from a designated motion vector candidate list.

3. The method of claim 2 , wherein determining the designated motion vector comprises determining the designated motion vector from a designated motion vector candidate list in the following order:

1) a bottom-left control point motion vector in a constructed affine motion vector predictor,

2) a top-right control point motion vector in the constructed affine motion vector predictor,

3) a top-left control point motion vector in the constructed affine motion vector predictor,

4) a temporal motion vector predictor, and

5) a zero motion vector.

4. The method of claim 1 , wherein constructing the affine AMVP motion vector predictor list of candidate control point motion vectors for the block of video data comprises:

constructing the affine AMVP motion vector predictor list of candidate control point motion vectors for the block of video data without performing a pruning process.

5. The method of claim 1 , further comprising:

deriving the one or more inherited affine motion vector predictors from control point motion vectors of a neighboring block encoded using affine motion prediction.

6. The method of claim 1 , further comprising:

deriving the one or more constructed affine motion vector predictors from motion vectors of neighboring blocks coded using inter prediction.

7. The method of claim 1 , wherein the block of video data is decoded using a 6-parameter affine motion model, the method further comprising:

deriving the one or more constructed affine motion vector predictors from motion vectors of neighboring blocks coded using inter prediction only if all control point motion vectors for the 6-parameter affine motion model are available.

8. The method of claim 1 , wherein determining the control point motion vectors for the block comprises:

receiving an index to the affine AMVP motion vector predictor list;

receiving a motion vector difference for each of the control point motion vectors for the block;

retrieving the candidate control point motion vectors associated with the index; and

adding the motion vector difference for each of the control point motion vectors for the block to the candidate control point motion vectors to determine the control point motion vectors for the block.

9. The method of claim 1 , further comprising:

outputting for display a picture that includes the decoded block of video data.

10. An apparatus configured to decode video data, the apparatus comprising:

a memory configured to store a block of video data encoded using affine advanced motion vector prediction (AMVP) mode; and

one or more processors in communication with the memory, the one or more processors configured to:

receive the block of video data encoded using affine advanced motion vector prediction (AMVP) mode;

construct an affine AMVP motion vector predictor list of candidate control point motion vectors for the block of video data, wherein the affine AMVP motion vector predictor list includes at least one or more inherited affine motion vector predictors or one or more constructed affine motion vector predictors, wherein the affine AMVP motion vector predictor list further includes one or more affine motion vector predictors that have all control point motion vectors equal to a designated motion vector, and wherein to construct the affine AMVP motion vector predictor list of candidate control point motion vectors for the block of video data, the one or more processors are further configured to:

insert the one or more inherited affine motion vector predictors into the affine AMVP motion vector predictor list, if available;

insert, if a number of the one or more inherited affine motion vector predictors is less than a predefined maximum number for the affine AMVP motion vector predictor list, the one or more constructed affine motion vector predictors into the affine AMVP motion vector predictor list, if available, and

insert, if a number of the one or more inherited affine motion vector predictors and the one or more constructed affine motion vector predictors is less than the predefined maximum number for the affine AMVP motion vector predictor list, the one or more affine motion vector predictors that have all control point motion vectors equal to the designated motion vector into the affine AMVP motion vector predictor list;

determine control point motion vectors for the block of video data from the affine AMVP motion vector predictor list; and

decode the block of video data using the determined control point motion vectors.

11. The apparatus of claim 10 , wherein the one or more processors are further configured to:

determine the designated motion vector from a designated motion vector candidate list.

12. The apparatus of claim 11 , wherein to determine the designated motion vector, the one or more processors are further configured to determine the designated motion vector from a designated motion vector candidate list in the following order:

1) a bottom-left control point motion vector in a constructed affine motion vector predictor,

2) a top-right control point motion vector in the constructed affine motion vector predictor,

3) a top-left control point motion vector in the constructed affine motion vector predictor,

4) a temporal motion vector predictor, and

5) a zero motion vector.

13. The apparatus of claim 10 , wherein to construct the affine AMVP motion vector predictor list of candidate control point motion vectors for the block of video data, the one or more processors are further configured to:

construct the affine AMVP motion vector predictor list of candidate control point motion vectors for the block of video data without performing a pruning process.

14. The apparatus of claim 10 , wherein the one or more processors are further configured to:

derive the one or more inherited affine motion vector predictors from control point motion vectors of a neighboring block encoded using affine motion prediction.

15. The apparatus of claim 10 , wherein the one or more processors are further configured to:

derive the one or more constructed affine motion vector predictors from motion vectors of neighboring blocks coded using inter prediction.

16. The apparatus of claim 10 , wherein the block of video data is decoded using a 6-parameter affine motion model, and wherein the one or more processors are further configured to:

derive the one or more constructed affine motion vector predictors from motion vectors of neighboring blocks coded using inter prediction only if all control point motion vectors for the 6-parameter affine motion model are available.

17. The apparatus of claim 10 , wherein to determine the control point motion vectors for the block, the one or more processors are further configured to:

receive an index to the affine AMVP motion vector predictor list;

receive a motion vector difference for each of the control point motion vectors for the block;

retrieve the candidate control point motion vectors associated with the index; and

add the motion vector difference for each of the control point motion vectors for the block to the candidate control point motion vectors to determine the control point motion vectors for the block.

18. The apparatus of claim 10 , further comprising:

a display configured to display a picture that includes the decoded block of video data.

19. An apparatus configured to decode video data, the apparatus comprising:

means for receiving a block of video data encoded using affine advanced motion vector prediction (AMVP) mode;

means for constructing an affine AMVP motion vector predictor list of candidate control point motion vectors for the block of video data, wherein the affine AMVP motion vector predictor list includes at least one or more inherited affine motion vector predictors or one or more constructed affine motion vector predictors, wherein the affine AMVP motion vector predictor list further includes one or more affine motion vector predictors that have all control point motion vectors equal to a designated motion vector, and wherein the means for constructing the affine AMVP motion vector predictor list of candidate control point motion vectors for the block of video data comprises:

means for inserting the one or more inherited affine motion vector predictors into the affine AMVP motion vector predictor list, if available;

means for inserting, if a number of the one or more inherited affine motion vector predictors is less than a predefined maximum number for the affine AMVP motion vector predictor list, the one or more constructed affine motion vector predictors into the affine AMVP motion vector predictor list, if available, and

means for inserting, if a number of the one or more inherited affine motion vector predictors and the one or more constructed affine motion vector predictors is less than the predefined maximum number for the affine AMVP motion vector predictor list, the one or more affine motion vector predictors that have all control point motion vectors equal to the designated motion vector into the affine AMVP motion vector predictor list;

means for determining control point motion vectors for the block of video data from the affine AMVP motion vector predictor list; and

means for decoding the block of video data using the determined control point motion vectors.

20. A non-transitory computer-readable storage medium storing instruction that, when executed, cause one or more processors configured to decode video data to:

receive a block of video data encoded using affine advanced motion vector prediction (AMVP) mode;

construct an affine AMVP motion vector predictor list of candidate control point motion vectors for the block of video data, wherein the affine AMVP motion vector predictor list includes at least one or more inherited affine motion vector predictors or one or more constructed affine motion vector predictors, wherein the affine AMVP motion vector predictor list further includes one or more affine motion vector predictors that have all control point motion vectors equal to a designated motion vector, and wherein to construct the affine AMVP motion vector predictor list of candidate control point motion vectors for the block of video data, the instructions further cause the one or more processors to:

insert the one or more inherited affine motion vector predictors into the affine AMVP motion vector predictor list, if available;

insert, if a number of the one or more inherited affine motion vector predictors is less than a predefined maximum number for the affine AMVP motion vector predictor list, the one or more constructed affine motion vector predictors into the affine AMVP motion vector predictor list, if available, and

insert, if a number of the one or more inherited affine motion vector predictors and the one or more constructed affine motion vector predictors is less than the predefined maximum number for the affine AMVP motion vector predictor list, the one or more affine motion vector predictors that have all control point motion vectors equal to the designated motion vector into the affine AMVP motion vector predictor list;

determine control point motion vectors for the block of video data from the affine AMVP motion vector predictor list; and

decode the block of video data using the determined control point motion vectors.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 26, 2021
From: HUANG, HAN; CHIEN, WEI-JUNG; KARCZEWICZ, MARTA
To: QUALCOMM INCORPORATED
Reel/Frame 056361/0046 →
Continuity (5)
Division 16550910 · Aug 26, 2019
Provisional Application 62730814 · Sep 13, 2018
Provisional Application 62728489 · Sep 7, 2018
Provisional Application 62723919 · Aug 28, 2018
Related Publication 20210195230A1 · Jun 24, 2021
Cited By (1)
US 12,256,094