IP Library Granted Patent US 11,582,458
Granted Patent B2
US 11,582,458 · App. 17/269,937 · Granted Feb 14, 2023

Adaptive motion vector precision for affine motion model based video coding

Inventors: Yuwen He (San Diego, CA); Xiaoyu Xiu (San Diego, CA); Yan Ye (San Diego, CA); Jiancong Luo (Skillman, NJ)
Assignee: Vid Scale, Inc.
H04N19/137H04N19/159H04N19/176H04N19/192
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,582,458
App. No.
17/269,937
Granted
Feb 14, 2023
Kind
B2
Abstract

Systems and methods are described for video coding using affine motion models with adaptive precision. In an example, a block of video is encoded in a bitstream using an affine motion model, where the affine motion model is characterized by at least two motion vectors. A precision is selected for each of the motion vectors, and the selected precisions are signaled in the bitstream. In some embodiments, the precisions are signaled by including in the bitstream information that identifies one of a plurality of elements in a selected predetermined precision set. The identified element indicates the precision of each of the motion vectors that characterize the affine motion model. In some embodiments, the precision set to be used is signaled expressly in the bitstream; in other embodiments, the precision set may be inferred, e.g., from the block size, block shape or temporal layer.

Claims (54)

1. A video decoding method comprising:

obtaining information identifying at least a first motion vector predictor and a second motion vector predictor for an affine-coded block in a video;

obtaining a first motion vector difference and a second motion vector difference;

obtaining information identifying a precision of the first and second motion vector differences from among a first set of available precisions, wherein the first set of available precisions is different from a second set of precisions available for non-affine inter coding;

generating (i) a first control point motion vector from the first motion vector predictor and the first motion vector difference and (ii) a second control point motion vector from the second motion vector predictor and the second motion vector difference; and

generating a prediction of the block using an affine motion model, the affine motion model being characterized by at least the first control point motion vector and the second control point motion vector.

2. The method of claim 1 , wherein the plurality of precisions in the first set of available precisions include 1/4-pel, 1/16-pel, and 1-pel precisions.

3. The method of claim 1 , wherein the affine motion model is a six-parameter motion model, the method further comprising:

obtaining information identifying a third motion vector predictor;

obtaining a third motion vector difference having the identified precision; and

generating a third control point motion vector from the third motion vector predictor and the third motion vector difference;

wherein the affine motion model is characterized by the first control point motion vector, the second control point motion vector, and the third control point motion vector.

4. The method of claim 1 , wherein the information identifying one of the plurality of precisions is read from a bitstream on a block-by-block basis.

5. The method of claim 1 , further comprising rounding at least one of the motion vector predictors to the identified precision.

6. The method of claim 1 , wherein each of the control point motion vectors is generated by adding the corresponding motion vector difference to the respective motion vector predictor.

7. The method of claim 1 , wherein generating a prediction of the block comprises:

determining a respective sub-block motion vector for each of a plurality of sub-blocks of the block using the affine motion model; and

generating an inter prediction of each of the sub-blocks using the respective sub-block motion vector.

8. The method of claim 1 , further comprising:

reading from a bitstream a residual for the block; and

reconstructing the block by adding the residual to the prediction of the block.

9. A video decoding apparatus comprising a processor configured to perform at least:

obtaining information identifying at least a first motion vector predictor and a second motion vector predictor for an affine-coded block in a video;

obtaining at least a first motion vector difference and a second motion vector difference;

obtaining information identifying a precision of the first and second motion vector differences from among a first set of available precisions, wherein the first set of available precisions is different from a second set of precisions available for non-affine inter coding;

generating (i) a first control point motion vector from the first motion vector predictor and the first motion vector difference and (ii) a second control point motion vector from the second motion vector predictor and the second motion vector difference; and

generating a prediction of the block using an affine motion model, the affine motion model being characterized by at least the first control point motion vector and the second control point motion vector.

10. The apparatus of claim 9 , wherein the plurality of precisions in the first set of available precisions include 1/4-pel, 1/16-pel, and 1-pel precisions.

11. The apparatus of claim 9 , wherein the apparatus is further configured to read the information identifying one of the plurality of precisions from a bitstream on a block-by-block basis.

12. The apparatus of claim 9 , wherein the processor is further configured to round at least one of the motion vector predictors to the identified precision.

13. The apparatus of claim 9 , wherein each of the control point motion vectors is generated by adding the corresponding motion vector difference to the respective motion vector predictor.

14. The apparatus of claim 9 , wherein generating a prediction of the block comprises:

determining a respective sub-block motion vector for each of a plurality of sub-blocks of the block using the affine motion model; and

generating an inter prediction of each of the sub-blocks using the respective sub-block motion vector.

15. A video encoding method comprising:

obtaining information identifying at least a first motion vector predictor and a second motion vector predictor for an affine-coded block in a video;

obtaining a first motion vector difference and a second motion vector difference;

obtaining information identifying a precision of the first and second motion vector differences from among a first set of available precisions, wherein the first set of available precisions is different from a second set of precisions available for non-affine inter coding;

generating (i) a first control point motion vector from the first motion vector predictor and the first motion vector difference and (ii) a second control point motion vector from the second motion vector predictor and the second motion vector difference; and

generating a prediction of the block using an affine motion model, the affine motion model being characterized by at least the first control point motion vector and the second control point motion vector.

16. The method of claim 15 , further comprising signaling the information identifying one of the plurality of precisions in a bitstream on a block-by-block basis.

17. The method of claim 15 , further comprising:

obtaining a residual by subtracting the prediction of the block from an input video block; and

encoding the residual in a bitstream.

18. A video encoding apparatus comprising a processor configured to perform at least:

obtaining information identifying at least a first motion vector predictor and a second motion vector predictor for an affine-coded block in a video;

obtaining a first motion vector difference and a second motion vector difference;

obtaining information identifying a precision of the first and second motion vector differences from among a first set of available precisions, wherein the first set of available precisions is different from a second set of precisions available for non-affine inter coding;

generating (i) a first control point motion vector from the first motion vector predictor and the first motion vector difference and (ii) a second control point motion vector from the second motion vector predictor and the second motion vector difference; and

generating a prediction of the block using an affine motion model, the affine motion model being characterized by at least the first control point motion vector and the second control point motion vector.

19. The apparatus of claim 18 , wherein the processor is further configured to signal the information identifying one of the plurality of precisions in a bitstream on a block-by-block basis.

20. The apparatus of claim 18 , wherein the processor is further configured to perform:

obtaining a residual by subtracting the prediction of the block from an input video block; and

encoding the residual in a bitstream.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 11, 2024
From: VID SCALE, INC.
To: INTERDIGITAL VC HOLDINGS, INC.
Reel/Frame 068284/0031 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 28, 2022
From: HE, YUWEN; XIU, XIAOYU; YE, YAN; LUO, JIANCONG
To: VID SCALE, INC.
Reel/Frame 061242/0013 →
Continuity (4)
Provisional Application 62786768 · Dec 31, 2018
Provisional Application 62773069 · Nov 29, 2018
Provisional Application 62724500 · Aug 29, 2018
Related Publication 20210203947A1 · Jul 1, 2021