Affine motion compensation in video coding
AssigneeQUALCOMM Incorporated
InventorsKai Zhang, Wei-Jung Chien, Li Zhang, Marta Karczewicz
Life of this patent
Estimating the term…
Abstract
A device for video decoding a current block of video data, the device including one or more processors configured to compute a horizontal component of a motion vector and to compute a vertical component of a motion vector in an affine model. The affine model may be a four-parameter affine model which includes two control point motion vectors, or a six-parameter affine model which includes three control point motion vectors. The horizontal and vertical components may include differences between control point motion vectors based on first-bit shift operations and second bit-shift operations.
Claims11
A device for video decoding a current block of video data, the device comprising:
- one or more processors are configured to:
- compute a horizontal component of a motion vector of the affine-model by adding a first bit-shift operation result to a zeroth control point motion vector horizontal component, wherein the first bit-shift operation result is determined based on a first bit-shift operation on a first difference product and a second difference product, wherein the first difference product includes a first difference multiplied by a horizontal pixel location within the current block of video data, and wherein the first difference is based on a difference between horizontal components of the zeroth control point motion vector and a first control point motion vector;
- and
- compute a vertical component of a motion vector of the affine-model by adding a second bit-shift operation result to a zeroth control point motion vector vertical component, wherein the second bit-shift operation result is determined based on a second bit shift operation on a third difference product, and wherein the third difference product includes a third difference multiplied by a horizontal pixel location within the current block of video data, and wherein the third difference is based on a difference between vertical components of the zeroth control point motion vector and a first control point motion vector, wherein the affine model is a six-parameter affine model with a division by a number that is not a power of 2, and the second difference product includes a second difference multiplied by a vertical pixel location within the current block of video data, and the second difference is based on a difference between vertical components of the zeroth control point motion vector and the second control point motion vector, and the fourth difference product includes a fourth difference multiplied by a vertical pixel location within the current block of video data, and the fourth difference is based on a difference between vertical components of the zeroth control point motion vector and the second control point motion vector;
- and
- a memory configured to reconstruct the current block of video data.
A method for video decoding a current block of video data, the method comprising:
- computing a horizontal component of a motion vector of the affine-model by adding a first bit-shift operation result to a zeroth control point motion vector horizontal component, wherein the first bit-shift operation result is determined based on a first bit-shift operation on a first difference product and a second difference product, wherein the first difference product includes a first difference multiplied by a horizontal pixel location within the current block of video data, and wherein the first difference is based on a difference between horizontal components of the zeroth control point motion vector and a first control point motion vector;
- and
- computing a vertical component of a motion vector of the affine-model by adding a second bit-shift operation result to a zeroth control point motion vector vertical component, wherein the second bit-shift operation result is determined based on a second bit shift operation on a third difference product, and wherein the third difference product includes a third difference multiplied by a horizontal pixel location within the current block of video data, and wherein the third difference is based on a difference between vertical components of the zeroth control point motion vector and a first control point motion vector, wherein the affine model is a six-parameter affine model with a division by a number that is not a power of 2, and the computing the horizontal component is part of the six-parameter affine model, and wherein the and the second difference product includes a second difference multiplied by a vertical pixel location within the current block of video data, and the second difference is based on a difference between vertical components of the zeroth control point motion vector and the second control point motion vector, and compute the vertical component of the affine model when the affine model is a six-parameter affine model, and the fourth difference product includes a fourth difference multiplied by a vertical pixel location within the current block of video data, and the fourth difference is based on a difference between vertical components of the zeroth control point motion vector and the second control point motion vector;
- and
- reconstructing the current block of video data.
A device for video encoding a current block of video data, the device comprising:
- one or more processors configured to:
- compute a horizontal component of a motion vector of the affine-model by adding a first bit-shift operation result to a zeroth control point motion vector horizontal component, wherein the first bit-shift operation result is determined based on a first bit-shift operation on a first difference product and a second difference product, wherein the first difference product includes a first difference multiplied by a horizontal pixel location within the current block of video data, and wherein the first difference is based on a difference between horizontal components of the zeroth control point motion vector and a first control point motion vector;
- and
- compute a vertical component of a motion vector of the affine-model by adding a second bit-shift operation result to a zeroth control point motion vector vertical component, wherein the second bit-shift operation result is determined based on a second bit shift operation on a third difference product, and wherein the third difference product includes a third difference multiplied by a horizontal pixel location within the current block of video data, and wherein the third difference is based on a difference between vertical components of the zeroth control point motion vector and a first control point motion vector, wherein the affine model is a six-parameter affine model with a division by a number that is not a power of 2, and the second difference product includes a second difference multiplied by a vertical pixel location within the current block of video data, and the second difference is based on a difference between vertical components of the zeroth control point motion vector and the second control point motion vector, and the fourth difference product includes a fourth difference multiplied by a vertical pixel location within the current block of video data, and the fourth difference is based on a difference between vertical components of the zeroth control point motion vector and the second control point motion vector;
- and
- a memory configured to store a bitstream representing the horizontal component and vertical component of the motion vector of the affine model.
Dependencies are inferred from the claim text.