Affine motion prediction
AssigneeQUALCOMM Incorporated
InventorsHan Huang, Wei-Jung Chien, Marta Karczewicz
Life of this patent
Estimating the term…
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.
Claims44
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, and 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;
- determining the designated motion vector from a designated motion vector candidate list in the following order, wherein the designated motion vector candidate list is different than the affine AMVP motion vector predictor list:
- 1) a bottom-left control point motion vector in a constructed affine motion vector predictor, wherein the constructed affine motion vector predictor is a translational motion vector used to predict a particular control point motion vector for the affine AMVP mode,
- 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;
- 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.
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;
- 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, and 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;
- determine the designated motion vector from a designated motion vector candidate list in the following order, wherein the designated motion vector candidate list is different than the affine AMVP motion vector predictor list:
- 1) a bottom-left control point motion vector in a constructed affine motion vector predictor, wherein the constructed affine motion vector predictor is a translational motion vector used to predict a particular control point motion vector for the affine AMVP mode,
- 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;
- 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.
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 further includes at least one or more inherited affine motion vector predictors or one or more constructed affine motion vector predictors, and 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;
- means for determining the designated motion vector from a designated motion vector candidate list in the following order, wherein the designated motion vector candidate list is different than the affine AMVP motion vector predictor list:
- 1) a bottom-left control point motion vector in a constructed affine motion vector predictor, wherein the constructed affine motion vector predictor is a translational motion vector used to predict a particular control point motion vector for the affine AMVP mode,
- 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;
- 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.
A non-transitory computer-readable storage medium storing instructions that, when executed, cause one or more processors 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 further includes at least one or more inherited affine motion vector predictors or one or more constructed affine motion vector predictors, and 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;
- determine the designated motion vector from a designated motion vector candidate list in the following order, wherein the designated motion vector candidate list is different than the affine AMVP motion vector predictor list:
- 1) a bottom-left control point motion vector in a constructed affine motion vector predictor, wherein the constructed affine motion vector predictor is a translational motion vector used to predict a particular control point motion vector for the affine AMVP mode,
- 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;
- 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.
A method of encoding video data, the method comprising:
- receiving a block of video data to be 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 further includes at least one or more inherited affine motion vector predictors or one or more constructed affine motion vector predictors, and 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;
- determining the designated motion vector from a designated motion vector candidate list in the following order, wherein the designated motion vector candidate list is different than the affine AMVP motion vector predictor list:
- 1) a bottom-left control point motion vector in a constructed affine motion vector predictor, wherein the constructed affine motion vector predictor is a translational motion vector used to predict a particular control point motion vector for the affine AMVP mode,
- 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;
- determining control point motion vectors for the block of video data from the affine AMVP motion vector predictor list;
- and
- encoding the block of video data using the determined control point motion vectors.
An apparatus configured to encode video data, the apparatus comprising:
- a memory configured to store a block of video data to be 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;
- 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 further includes at least one or more inherited affine motion vector predictors or one or more constructed affine motion vector predictors, and 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;
- determine the designated motion vector from a designated motion vector candidate list in the following order, wherein the designated motion vector candidate list is different than the affine AMVP motion vector predictor list:
- 1) a bottom-left control point motion vector in a constructed affine motion vector predictor, wherein the constructed affine motion vector predictor is a translational motion vector used to predict a particular control point motion vector for the affine AMVP mode,
- 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;
- determine control point motion vectors for the block of video data from the affine AMVP motion vector predictor list;
- and
- encode the block of video data using the determined control point motion vectors.
An apparatus configured to encode video data, the apparatus comprising:
- means for receiving a block of video data to be 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 further includes at least one or more inherited affine motion vector predictors or one or more constructed affine motion vector predictors, and 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;
- means for determining the designated motion vector from a designated motion vector candidate list in the following order, wherein the designated motion vector candidate list is different than the affine AMVP motion vector predictor list:
- 1) a bottom-left control point motion vector in a constructed affine motion vector predictor, wherein the constructed affine motion vector predictor is a translational motion vector used to predict a particular control point motion vector for the affine AMVP mode,
- 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;
- means for determining control point motion vectors for the block of video data from the affine AMVP motion vector predictor list;
- and
- means for encoding the block of video data using the determined control point motion vectors.
A non-transitory computer-readable storage medium storing instructions that, when executed, cause one or more processors to:
- receive a block of video data to be 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 further includes at least one or more inherited affine motion vector predictors or one or more constructed affine motion vector predictors, and 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;
- determine the designated motion vector from a designated motion vector candidate list in the following order, wherein the designated motion vector candidate list is different than the affine AMVP motion vector predictor list:
- 1) a bottom-left control point motion vector in a constructed affine motion vector predictor, wherein the constructed affine motion vector predictor is a translational motion vector used to predict a particular control point motion vector for the affine AMVP mode,
- 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;
- determine control point motion vectors for the block of video data from the affine AMVP motion vector predictor list;
- and
- encode the block of video data using the determined control point motion vectors.
Dependencies are inferred from the claim text.