MOTION VECTOR PREDICTION FOR AFFINE MOTION MODELS IN VIDEO CODING
First Claim
1. A method of decoding video data, the method comprising:
- selecting a source affine block, the source affine block being an affine-coded block that spatially neighbors a current block;
extrapolating motion vectors of control points of the source affine block to determine motion vector predictors for control points of the current block;
inserting, into an affine motion vector predictor (MVP) set candidate list, an affine MVP set that includes the motion vector predictors for the control points of the current block;
determining, based on an index signaled in a bitstream, a selected affine MVP set in the affine MVP set candidate list;
obtaining, from the bitstream, motion vector differences (MVDs) that indicate differences between motion vectors of the control points of the current block and motion vector predictors in the selected affine MVP set; and
determining, based on the motion vector predictors included in the selected affine MVP set and the MVDs, motion vectors of the control points of the current block;
generating, based on the motion vectors of the control points of the current block, a predictive block; and
reconstructing the current block based on residual data and the predictive block.
1 Assignment
0 Petitions
Accused Products
Abstract
A video decoder selects a source affine block. The source affine block is an affine-coded block that spatially neighbors a current block. Additionally, the video decoder extrapolates motion vectors of control points of the source affine block to determine motion vector predictors for control points of the current block. The video decoder inserts, into an affine motion vector predictor (MVP) set candidate list, an affine MVP set that includes the motion vector predictors for the control points of the current block. The video decoder also determines, based on an index signaled in a bitstream, a selected affine MVP set in the affine MVP set candidate list. The video decoder obtains, from the bitstream, motion vector differences (MVDs) that indicate differences between motion vectors of the control points of the current block and motion vector predictors in the selected affine MVP set.
185 Citations
36 Claims
-
1. A method of decoding video data, the method comprising:
-
selecting a source affine block, the source affine block being an affine-coded block that spatially neighbors a current block; extrapolating motion vectors of control points of the source affine block to determine motion vector predictors for control points of the current block; inserting, into an affine motion vector predictor (MVP) set candidate list, an affine MVP set that includes the motion vector predictors for the control points of the current block; determining, based on an index signaled in a bitstream, a selected affine MVP set in the affine MVP set candidate list; obtaining, from the bitstream, motion vector differences (MVDs) that indicate differences between motion vectors of the control points of the current block and motion vector predictors in the selected affine MVP set; and determining, based on the motion vector predictors included in the selected affine MVP set and the MVDs, motion vectors of the control points of the current block; generating, based on the motion vectors of the control points of the current block, a predictive block; and reconstructing the current block based on residual data and the predictive block. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method of encoding video data, the method comprising:
-
selecting a source affine block, the source affine block being an affine-coded block that spatially neighbors a current block; extrapolating motion vectors of control points of the source affine block to determine motion vector predictors for control points of the current block; inserting, into an affine motion vector predictor (MVP) set candidate list, an affine MVP set that includes the motion vector predictors for the control points of the current block; selecting an affine MVP set in the affine MVP set candidate list; signaling, in a bitstream, motion vector differences (MVDs) that indicate differences between motion vectors of the control points of the current block and motion vector predictors in the selected affine MVP set; and signaling, in the bitstream, an index indicating a position in the affine MVP set candidate list of the selected affine MVP set. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A device for decoding video data, the device comprising:
-
a memory configured to store the video data; and one or more processing circuits configured to; select a source affine block, the source affine block being an affine-coded block that spatially neighbors a current block; extrapolate motion vectors of control points of the source affine block to determine motion vector predictors for control points of the current block; insert, into an affine motion vector predictor (MVP) set candidate list, an affine MVP set that includes the motion vector predictors for the control points of the current block; determine, based on an index signaled in a bitstream, a selected affine MVP set in the affine MVP set candidate list; obtain, from the bitstream, motion vector differences (MVDs) that indicate differences between motion vectors of the control points of the current block and motion vector predictors in the selected affine MVP set; and determine, based on the motion vector predictors included in the selected affine MVP set and the MVDs, motion vectors of the control points of the current block; generate, based on the motion vectors of the control points of the current block, a predictive block; and reconstruct the current block based on residual data and the predictive block. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24)
-
-
25. A device for encoding video data, the device comprising:
-
a memory configured to store the video data; and one or more processing circuits configured to; select a source affine block, the source affine block being an affine-coded block that spatially neighbors a current block; extrapolate motion vectors of control points of the source affine block to determine motion vector predictors for control points of the current block; insert, into an affine motion vector predictor (MVP) set candidate list, an affine MVP set that includes the motion vector predictors for the control points of the current block; select an affine MVP set in the affine MVP set candidate list; signal, in a bitstream, motion vector differences (MVDs) that indicate differences between motion vectors of the control points of the current block and motion vector predictors in the selected affine MVP set; and signal, in the bitstream, an index indicating a position in the affine MVP set candidate list of the selected affine MVP set. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32)
-
-
33. A device for decoding video data, the device comprising:
-
means for selecting a source affine block, the source affine block being an affine-coded block that spatially neighbors a current block; means for extrapolating motion vectors of control points of the source affine block to determine motion vector predictors for control points of the current block; means for inserting, into an affine motion vector predictor (MVP) set candidate list, an affine MVP set that includes the motion vector predictors for the control points of the current block; means for determining, based on an index signaled in a bitstream, a selected affine MVP set in the affine MVP set candidate list; means for obtaining, from the bitstream, motion vector differences (MVDs) that indicate differences between motion vectors of the control points of the current block and motion vector predictors in the selected affine MVP set; means for determining, based on the motion vector predictors included in the selected affine MVP set and the MVDs, motion vectors of the control points of the current block; means for generating, based on the motion vectors of the control points of the current block, a predictive block; and means for reconstructing the current block based on residual data and the predictive block.
-
-
34. A device for encoding video data, the device comprising:
-
means for selecting a source affine block, the source affine block being an affine-coded block that spatially neighbors a current block; means for extrapolating motion vectors of control points of the source affine block to determine motion vector predictors for control points of the current block; means for inserting, into an affine motion vector predictor (MVP) set candidate list, an affine MVP set that includes the motion vector predictors for the control points of the current block; means for selecting an affine MVP set in the affine MVP set candidate list; means for signaling, in a bitstream, motion vector differences (MVDs) that indicate differences between motion vectors of the control points of the current block and motion vector predictors in the selected affine MVP set; and means for signaling, in the bitstream, an index indicating a position in the affine MVP set candidate list of the selected affine MVP set.
-
-
35. A computer-readable storage medium storing instructions that, when executed, cause one or more processing circuits of a device for video decoding to:
-
select a source affine block, the source affine block being an affine-coded block that spatially neighbors a current block; extrapolate motion vectors of control points of the source affine block to determine motion vector predictors for control points of the current block; insert, into an affine motion vector predictor (MVP) set candidate list, an affine MVP set that includes the motion vector predictors for the control points of the current block; determine, based on an index signaled in a bitstream, a selected affine MVP set in the affine MVP set candidate list; obtain, from the bitstream, motion vector differences (MVDs) that indicate differences between motion vectors of the control points of the current block and motion vector predictors in the selected affine MVP set; determine, based on the motion vector predictors included in the selected affine MVP set and the MVDs, motion vectors of the control points of the current block; generate, based on the motion vectors of the control points of the current block, a predictive block; and reconstruct the current block based on residual data and the predictive block.
-
-
36. A computer-readable storage medium storing instructions that, when executed, cause one or more processing circuits of a device for encoding video data to:
-
select a source affine block, the source affine block being an affine-coded block that spatially neighbors a current block; extrapolate motion vectors of control points of the source affine block to determine motion vector predictors for control points of the current block; insert, into an affine motion vector predictor (MVP) set candidate list, an affine MVP set that includes the motion vector predictors for the control points of the current block; select an affine MVP set in the affine MVP set candidate list; signal, in a bitstream, motion vector differences (MVDs) that indicate differences between motion vectors of the control points of the current block and motion vector predictors in the selected affine MVP set; and signal, in the bitstream, an index indicating a position in the affine MVP set candidate list of the selected affine MVP set.
-
Specification