IP Library Granted Patent US 11,057,636
Granted Patent B2
US 11,057,636 · App. 16/572,387 · Granted Jul 6, 2021

Affine motion prediction

Inventors: Han Huang (San Diego, CA); Wei-Jung Chien (San Diego, CA); Marta Karczewicz (San Diego, CA)
Assignee: QUALCOMM Incorporated
H04N19/52G06T3/0075H04N19/15H04N19/176H04N19/1883H04N19/46H04N19/96
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,057,636
App. No.
16/572,387
Granted
Jul 6, 2021
Kind
B2
Abstract

Systems and techniques for improving costs and efficiency in affine motion prediction of a current block includes storing motion information of previously coded block in a line buffer or one or more local buffers of a coding unit such as coding tree unit (CTU). The line buffer can store motion information of a line of coding blocks located at a boundary of the CTU, while the local buffers can be utilized for storing motion information of coding blocks located anywhere in the CTU. The utilization of the line buffer can be improved by limiting the number of motion vectors of a neighboring block stored in the line buffer and obtaining remaining motion vectors from an additional block when available. The utilization of local buffers can be improved by restricting a size of neighboring blocks whose motion information is stored in the local buffers.

Claims (71)

1. A method of processing video data, the method comprising:

obtaining video data for a current block of a current coding unit;

determining that a size of a neighboring block of the current block in the current coding unit is greater than a minimum block size for affine motion prediction, the minimum block size including a first minimum width and a first minimum height;

determining the size of the neighboring block is less than a minimum size threshold for using one or more affine motion vectors of the neighboring block as one or more affine motion vectors for the current block, the minimum size threshold including a second minimum width and a second minimum height, wherein at least one of the second minimum width is larger than the first minimum width and the second minimum height is larger than the first minimum height;

excluding, from a buffer, an affine motion vector of the neighboring block when the size of the neighboring block is less than the minimum size threshold, the buffer including at least one candidate affine motion vector for affine motion prediction of the current block;

storing, in the buffer, the affine motion vector of the neighboring block as a candidate affine motion vector for affine motion prediction of the current block when the size of the neighboring block is greater than or equal to the minimum size threshold; and

processing the current block using affine motion prediction.

2. The method of claim 1 , wherein the method is performed by a decoder, and wherein the video data is obtained from an encoded video bitstream provided by an encoder.

3. The method of claim 2 , wherein the minimum size threshold is obtained from signaling provided by the encoder.

4. The method of claim 3 , wherein the signaling comprises a logarithmic representation of the minimum size threshold.

5. The method of claim 1 , further comprising:

obtaining the affine motion vector of the neighboring block from the buffer, the buffer including a local buffer of the current coding unit.

6. The method of claim 5 , wherein one or more local buffers of the current coding unit include the buffer, the one or more local buffers comprising a first set of one or more local buffers and a second set of one or more local buffers, wherein:

the first set of one or more local buffers comprises one or more affine motion vectors of one or more neighboring blocks of the current block; and

the second set of one or more local buffers comprises one or more motion vectors of one or more neighboring blocks of the current block.

7. The method of claim 6 , wherein:

the first set of one or more local buffers comprises one or more row buffers; and

the second set of one or more local buffers comprises one or more column buffers.

8. The method of claim 6 , wherein:

the first set of one or more local buffers comprises a first subset of the one or more affine motion vectors and the one or more motion vectors; and

the second set of one or more local buffers comprises a second subset of the one or more affine motion vectors.

9. The method of claim 8 , wherein the one or more affine motion vectors of the one or more neighboring blocks comprise one or more control point motion vectors, wherein:

the first subset of the one or more affine motion vectors comprises top-right control point motion vectors for a top-right portion of the one or more neighboring blocks and bottom-left control point motion vectors for a bottom-left portion of the one or more neighboring blocks; and

the second subset of the one or more affine motion vectors comprises top-left control point motion vectors for a top-left portion of the one or more neighboring blocks.

10. The method of claim 1 , wherein the affine motion vector of the neighboring block comprises one or more scaling variables and one or more position variables.

11. The method of claim 1 , wherein the method is performed by an encoder.

12. The method of claim 1 , wherein the current coding unit comprises a current coding tree unit (CTU).

13. An apparatus for processing video data, the apparatus comprising:

a memory; and

a processor implemented in circuitry and configured to:

obtain video data for a current block of a current coding unit;

determine that a size of a neighboring block of the current block in the current coding unit is greater than a minimum block size for affine motion prediction, the minimum block size including a first minimum width and a first minimum height;

determine the size of the neighboring block is less than a minimum size threshold for using one or more affine motion vectors of the neighboring block as one or more affine motion vectors for the current block, the minimum size threshold including a second minimum width and a second minimum height, wherein at least one of the second minimum width is larger than the first minimum width and the second minimum height is larger than the first minimum height;

exclude, from a buffer, an affine motion vector of the neighboring block when the size of the neighboring block is less than the minimum size threshold, the buffer including at least one candidate affine motion vector for affine motion prediction of the current block;

store, in the buffer, the affine motion vector of the neighboring block as a candidate affine motion vector for affine motion prediction of the current block when the size of the neighboring block is greater than or equal to the minimum size threshold; and

process the current block using affine motion prediction.

14. The apparatus of claim 13 , wherein the apparatus comprises a decoder, and wherein the video data is obtained from an encoded video bitstream provided by an encoder.

15. The apparatus of claim 14 , wherein the minimum size threshold is obtained from signaling provided by the encoder.

16. The apparatus of claim 15 , wherein the signaling comprises a logarithmic representation of the minimum size threshold.

17. The apparatus of claim 13 , wherein the processor is further configured to:

obtain the affine motion vector of the neighboring block from the buffer, the buffer including a local buffer of the current coding unit.

18. The apparatus of claim 17 , wherein one or more local buffers of the current coding unit include the buffer, the one or more local buffers comprising a first set of one or more local buffers and a second set of one or more local buffers, wherein:

the first set of one or more local buffers comprises one or more affine motion vectors of one or more neighboring blocks of the current block; and

the second set of one or more local buffers comprises one or more motion vectors of one or more neighboring blocks of the current block.

19. The apparatus of claim 18 , wherein:

the first set of one or more local buffers comprises one or more row buffers; and

the second set of one or more local buffers comprises one or more column buffers.

20. The apparatus of claim 18 , wherein:

the first set of one or more local buffers comprises a first subset of the one or more affine motion vectors and the one or more motion vectors; and

the second set of one or more local buffers comprises a second subset of the one or more affine motion vectors.

21. The apparatus of claim 20 , wherein the one or more affine motion vectors of the one or more neighboring blocks comprise one or more control point motion vectors, wherein:

the first subset of the one or more affine motion vectors comprises top-right control point motion vectors for a top-right portion of the one or more neighboring blocks and bottom-left control point motion vectors for a bottom-left portion of the one or more neighboring blocks; and

the second subset of the one or more affine motion vectors comprises top-left control point motion vectors for a top-left portion of the one or more neighboring blocks.

22. The apparatus of claim 13 , wherein the affine motion vector of the neighboring block comprises one or more scaling variables and one or more position variables.

23. A non-transitory computer-readable medium having stored thereon instructions that, when executed by one or more processors, cause the one or more processors to:

obtain video data for a current block of a current coding unit;

determine that a size of a neighboring block of the current block in the current coding unit is greater than a minimum block size for affine motion prediction, the minimum block size including a first minimum width and a first minimum height;

determine the size of the neighboring block is less than a minimum size threshold for using one or more affine motion vectors of the neighboring block as one or more affine motion vectors for the current block, the minimum size threshold including a second minimum width and a second minimum height, wherein at least one of the second minimum width is larger than the first minimum width and the second minimum height is larger than the first minimum height;

exclude, from a buffer, an affine motion vector of the neighboring block when the size of the neighboring block is less than the minimum size threshold, the buffer including at least one candidate affine motion vector for affine motion prediction of the current block;

store, in the buffer, the affine motion vector of the neighboring block as a candidate affine motion vector for affine motion prediction of the current block when the size of the neighboring block is greater than or equal to the minimum size threshold; and

process the current block using affine motion prediction.

24. The apparatus of claim 13 , wherein the current coding unit comprises a current coding tree unit (CTU).

25. The apparatus of claim 13 , wherein the apparatus comprises an encoder.

26. The non-transitory computer-readable medium of claim 23 , wherein the video data is obtained from an encoded video bitstream provided by an encoder.

27. The non-transitory computer-readable medium of claim 26 , wherein the minimum size threshold is obtained from signaling provided by the encoder.

28. The non-transitory computer-readable medium of claim 27 , wherein the signaling comprises a logarithmic representation of the minimum size threshold.

29. The non-transitory computer-readable medium of claim 23 , further comprising instructions that, when executed by the one or more processors, cause the one or more processors to:

obtaining the affine motion vector of the neighboring block from the buffer, the buffer including a local buffer of the current coding unit.

30. The non-transitory computer-readable medium of claim 29 , wherein one or more local buffers of the current coding unit include the buffer, the one or more local buffers comprising a first set of one or more local buffers and a second set of one or more local buffers, wherein:

the first set of one or more local buffers comprises one or more affine motion vectors of one or more neighboring blocks of the current block; and

the second set of one or more local buffers comprises one or more motion vectors of one or more neighboring blocks of the current block.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 18, 2019
From: HUANG, HAN; CHIEN, WEI-JUNG; KARCZEWICZ, MARTA
To: QUALCOMM INCORPORATED
Reel/Frame 051047/0783 →
Continuity (4)
Provisional Application 62732555 · Sep 17, 2018
Provisional Application 62735051 · Sep 22, 2018
Provisional Application 62742435 · Oct 7, 2018
Related Publication 20200092577A1 · Mar 19, 2020
Cited By (4)
US 12,238,335 US 12,316,863 US 12,341,968 US 12,615,374