IP Library Granted Patent US 12707078
Granted Patent B1
US 12707078 · App. 18/745,556 · Granted Aug 11, 2026

Video frame affine motion compensation

Inventors: Christopher Andrew Segall (Camas, WA); Kiran Mukesh Misra (Camas, WA); Byeongdoo Choi (Irvine, CA)
Assignee: Amazon Technologies, Inc.
H04N19/517H04N19/176H04N19/587
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 12707078
App. No.
18/745,556
Granted
Aug 11, 2026
Kind
B1
Abstract

Frames may be encoded at different resolutions. A scaling factor may be used to scale video frames used for translational or affine motion compensation. Various improvements to motion compensation processes for different resolution video frames are described.

Claims (32)

1 . A method, comprising:

obtaining video content and two or more control point motion vectors between a block of samples in a prediction frame of the video content and a previous frame of the video content that has been encoded and decoded;

determining a first ratio of the previous frame to the prediction frame in a first dimension and second ratio of the previous frame to the predicted frame in a second dimension, wherein either the first ratio, the second ratio, or both are greater than 1;

identifying a block of samples in the previous frame using a location of the block of samples in the prediction frame, the control point motion vectors, the ratio in the first dimension, and the ratio in the second dimension; and

coding the block of samples in the prediction frame based on the block of samples in the previous frame using an affine motion compensation process, wherein non-adjacent samples of the block of samples in the previous frame are used to determine motion compensated pixel values for the block of samples in the prediction frame, wherein the non-adjacent samples are selected based on the first ratio and the second ratio, wherein the affine motion compensation process comprises generating an intermediate block based on the second block, the first ratio, and the second ratio, wherein the intermediate block is not included in a coded bitstream.

2 . The method of claim 1 , wherein block of samples in the prediction frame is coded based on non-adjacent samples of the block of samples in the previous frame based on the first ratio, the second ratio, or both.

3 . The method of claim 1 , wherein the intermediate block is generated by a decimation operation where a subset of samples of the second block are selected to form the intermediate block, wherein the subset of samples is selected based on the first ratio, the second ratio, or both.

4 . A method, comprising:

obtaining video content; and

coding a first block of a first frame of the video content based on a second block of a second frame of the video content using an affine motion compensation process, wherein a ratio of the resolution of the second frame to the resolution of the first frame is greater than 1, wherein the affine motion compensation process comprises generating an intermediate block based on the second block and the ratio, wherein the intermediate block is not included in a coded bitstream.

5 . The method of claim 4 , wherein coding the first block of the first frame comprises encoding the first block of the first frame.

6 . The method of claim 4 , wherein determining the ratio comprises determining a fraction of the resolution of the second frame divided by the resolution of the first frame, wherein the fraction is rounded to 1.5, 2, 3, 4, or 6.

7 . The method of claim 4 , wherein the first block is coded based on non-adjacent samples of the second block based on the ratio.

8 . The method of claim 4 , further comprising obtaining two or more control point vectors associated with the first block, wherein the affine motion compensation process comprises generating motion vectors for the first block based on the two or more control point vectors.

9 . The method of claim 8 , further comprising identifying the second block based on the motion vectors and the ratio.

10 . The method of claim 4 , wherein the intermediate block is generated by a decimation operation where a subset of samples of the second block are selected to form the intermediate block, wherein the subset of samples is selected based on the ratio.

11 . The method of claim 4 , wherein the affine motion compensation process further comprises coding the first block based on the intermediate block and a set of motion vectors, wherein individual motion vectors of the set of motion vectors are associated with different locations of the first block.

12 . The method of claim 4 , wherein the affine motion compensation process comprises:

generating the intermediate block based on the second block and a first set of motion vectors, wherein individual motion vectors of the first set of motion vectors are associated with different locations of the first block; and

generating motion compensated pixel values for the first block based on the intermediate block and a second set of motion vectors, wherein individual motion vectors of the set of motion vectors are associated with different locations of the first block.

13 . A system, comprising one or more processors and one or more memories, the one or more memories storing computer-executable instructions that, when executed by the one or more processors, causes the one or more processors to perform operations including:

obtaining a bitstream representing encoded video content; and

decoding a first block of a first frame of the video content based on a second block of a second frame of the video content using an affine motion compensation process, wherein a ratio of the resolution of the second frame to the resolution of the first frame is greater than 1, wherein the affine motion compensation process comprises generating an intermediate block based on the second block and the ratio, wherein the intermediate block is not included in a coded bitstream.

14 . The system of claim 13 , wherein determining the ratio comprises determining a fraction of the resolution of the second frame divided by the resolution of the first frame, wherein the fraction is rounded to 1.5, 2, 3, 4, or 6.

15 . The system of claim 13 , wherein the first block is decoded based on non-adjacent samples of the second block based on the ratio.

16 . The system of claim 13 , wherein the one or more memories store additional computer-executable instructions for obtaining two or more control point vectors associated with the first block, wherein the affine motion compensation process comprises generating motion vectors for the first block based on the two or more control point vectors.

17 . The system of claim 16 , wherein the one or more memories store additional computer-executable instructions for identifying the second block based on the motion vectors and the ratio.

18 . The system of claim 13 , wherein the intermediate block is generated by a decimation operation where a subset of samples of the second block are selected to form the intermediate block, wherein the subset of samples is selected based on the ratio.

19 . The system of claim 13 , wherein the affine motion compensation process further comprises decoding the first block based on the intermediate block and a set of motion vectors, wherein individual motion vectors of the set of motion vectors are associated with different locations of the first block.

20 . The system of claim 13 , wherein the affine motion compensation process comprises:

generating the intermediate block based on the second block and a first set of motion vectors, wherein individual motion vectors of the first set of motion vectors are associated with different locations of the first block; and

generating motion compensated pixel values for the first block based on the intermediate block and a second set of motion vectors, wherein individual motion vectors of the set of motion vectors are associated with different locations of the first block.