IP Library Granted Patent US 11,277,628
Granted Patent B2
US 11,277,628 · App. 16/577,991 · Granted Mar 15, 2022

Restrictions for the worst-case bandwidth reduction in video coding

Inventors: Luong Pham Van (San Diego, CA); Wei-Jung Chien (San Diego, CA); Vadim Seregin (San Diego, CA); Han Huang (San Diego, CA); Marta Karczewicz (San Diego, CA)
Assignee: Qualcomm Incorporated
H04N19/423H04N19/105H04N19/132H04N19/137H04N19/176H04N19/513
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,277,628
App. No.
16/577,991
Granted
Mar 15, 2022
Kind
B2
Abstract

An example method includes obtaining values of control point motion vectors (CPMVs) for a current block of video data selected for coding using affine mode; determining whether a memory bandwidth needed for accessing samples of a plurality of reference blocks derived based on the values of the CPMVs satisfies a bandwidth threshold; selectively modifying, based on whether the determined memory bandwidth satisfies the bandwidth threshold, a motion compensation method used to predict samples of the current block of video data; and predicting, using the selectively modified motion compensation method, the samples of the current block of video data from the samples of the plurality of reference blocks.

Claims (86)

1. A method for decoding video data, the method comprising:

obtaining, by a video decoder, values of control point motion vectors (CPMVs) for a current block of video data selected for coding using affine mode, each respective CPMV of the CPMVs identifying a respective reference block of a plurality of reference blocks;

determining, by the video decoder, a memory bandwidth needed for accessing samples of a plurality of reference blocks, the memory bandwidth needed for accessing the samples of the plurality of reference blocks being derived based on differences between the values of the CPMVs, wherein the differences between the values of the CPMVs indicate distances between reference blocks of the plurality of reference blocks;

determining, by the video decoder, whether the determined memory bandwidth satisfies a bandwidth threshold;

selectively modifying, by the video decoder and based on whether the determined memory bandwidth satisfies the bandwidth threshold, a motion compensation method used to predict samples of the current block of video data; and

predicting, by the video decoder and using the selectively modified motion compensation method, the samples of the current block of video data from the samples of the plurality of reference blocks.

2. The method of claim 1 , wherein selectively modifying the motion compensation method comprises not modifying the motion compensation method in response to determining that the memory bandwidth satisfies the bandwidth threshold.

3. The method of claim 2 , wherein selectively modifying the motion compensation method comprises modifying the motion compensation method in response to determining that the memory bandwidth does not satisfy the bandwidth threshold.

4. The method of claim 3 , further comprising:

determining that the memory bandwidth satisfies the bandwidth threshold in response to determining that the memory bandwidth is less than or equal to the bandwidth threshold.

5. The method of claim 1 , wherein determining whether the memory bandwidth needed for accessing the samples of the reference blocks satisfies the bandwidth threshold comprises:

determining, based on differences between the values of the CPMVs, whether the memory bandwidth needed for accessing the samples of the reference blocks satisfies the bandwidth threshold.

6. The method of claim 1 , wherein:

the current block of video data is a current coding unit (CU) of video data that includes a plurality of sub-blocks of video data;

determining whether the memory bandwidth needed for accessing samples of the plurality of reference blocks satisfies the bandwidth threshold comprises determining whether a memory bandwidth needed for accessing samples of a plurality of reference blocks for a particular sub-block of the plurality of sub-blocks satisfies the bandwidth threshold;

the motion compensation method used to predict the samples of the current block of video data is a motion compensation method used to predict samples of the particular sub-block; and

selectively modifying the motion compensation method comprises selectively modifying, based on whether the memory bandwidth needed for accessing samples of the plurality of reference blocks for the particular sub-block satisfies the bandwidth threshold, the motion compensation method used to predict samples of the particular sub-block.

7. The method of claim 6 , further comprising:

responsive to modifying the motion compensation method used to predict samples of the particular sub-block, determining to modify motion compensation methods used to predict samples of other sub-blocks of the plurality of sub-blocks.

8. The method of claim 7 , wherein determining to modify the motion compensation methods used to predict samples of the other sub-blocks of the plurality of sub-blocks comprises determining to modify the motion compensation methods used to predict samples of the other sub-blocks of the plurality of sub-blocks without determining whether respective memory bandwidths needed for accessing samples of the other sub-blocks satisfy the bandwidth threshold.

9. The method of claim 6 , wherein the particular sub-block is a top-left sub-block.

10. The method of claim 1 , wherein:

the current block of video data is a current coding unit (CU) of video data that includes a plurality of sub-blocks of video data;

determining whether the memory bandwidth satisfies the bandwidth threshold comprises determining, for each respective sub-block of the plurality of sub-blocks, whether a respective memory bandwidth needed for accessing samples of a respective plurality of reference blocks for the respective sub-block satisfies the bandwidth threshold;

the motion compensation method used to predict the samples of the current block of video data is a motion compensation method used to predict samples of the respective sub-block; and

selectively modifying the motion compensation method comprises selectively modifying, based on whether the respective memory bandwidth for the particular sub-block satisfies the bandwidth threshold, the motion compensation method used to predict samples of the respective sub-block.

11. The method of claim 1 , wherein selectively modifying the motion compensation method used to predict samples of the current block of video data comprises reducing the memory bandwidth needed to predict the samples of the current block.

12. The method of claim 1 , wherein:

obtaining the values of the CPMVs for the current block comprises:

obtaining values of CPMVs for a first prediction direction; and

obtaining values of CPMVs for a second prediction direction;

determining whether the memory bandwidth needed for accessing samples of the plurality of reference blocks derived based on the values of the CPMVs satisfies the bandwidth threshold comprises:

determining whether a first memory bandwidth needed for accessing samples of a plurality of reference blocks derived based on the values of the CPMVs for the first prediction direction satisfies the bandwidth threshold; and

determining whether a second memory bandwidth needed for accessing samples of a plurality of reference blocks derived based on the values of the CPMVs for the second prediction direction satisfies the bandwidth threshold;

selectively modifying the motion compensation method comprises:

selectively modifying, based on whether the first memory bandwidth for the first prediction direction satisfies the bandwidth threshold, a motion compensation method used to predict samples of the current block of video data in the first prediction direction; and

selectively modifying, based on whether the second memory bandwidth for the second prediction direction satisfies the bandwidth threshold, a motion compensation method used to predict samples of the current block of video data in the second prediction direction.

13. A device for decoding video data; the device comprising:

a memory configured to store the video data; and

one or more processors implemented in circuitry and configured to:

obtain values of control point motion vectors (CPMVs) for a current block of video data selected for coding using affine mode, each respective CPMV of the CPMVs identifying a respective reference block of a plurality of reference blocks;

determine a memory bandwidth needed for accessing samples of a plurality of reference blocks, the memory bandwidth needed for accessing the samples of the plurality of reference blocks being derived based on differences between the values of the CPMVs, wherein the differences between the values of the CPMVs indicate distances between reference blocks of the plurality of reference blocks;

determine whether the determined memory bandwidth satisfies a bandwidth threshold;

selectively modify, based on whether the determined memory bandwidth satisfies the bandwidth threshold, a motion compensation method used to predict samples of the current block of video data; and

predict, using the selectively modified motion compensation method, the samples of the current block of video data from the samples of the plurality of reference blocks.

14. The device of claim 13 , wherein, to selectively modify the motion compensation method, the one or more processors are configured to not modify the motion compensation method in response to determining that the memory bandwidth satisfies the bandwidth threshold.

15. The device of claim 14 , wherein, to selectively modify the motion compensation method, the one or more processors are configured to modify the motion compensation method in response to determining that the memory bandwidth does not satisfy the bandwidth threshold.

16. The device of claim 15 , wherein the one or more processors are configured to determine that the memory bandwidth satisfies the bandwidth threshold in response to determining that the memory bandwidth is less than or equal to the bandwidth threshold.

17. The device of claim 13 , wherein, to determine whether the memory bandwidth needed for accessing the samples of the reference blocks satisfies the bandwidth threshold, the one or more processors are configured to:

determine, based on differences between the values of the CPMVs, whether the memory bandwidth needed for accessing the samples of the reference blocks satisfies the bandwidth threshold.

18. The device of claim 13 , wherein:

the current block of video data is a current coding unit (CU) of video data that includes a plurality of sub-blocks of video data;

to determine whether the memory bandwidth needed for accessing samples of the plurality of reference blocks satisfies the bandwidth threshold, the one or more processors are configured to determine whether a memory bandwidth needed for accessing samples of a plurality of reference blocks for a particular sub-block of the plurality of sub-blocks satisfies the bandwidth threshold;

the motion compensation method used to predict the samples of the current block of video data is a motion compensation method used to predict samples of the particular sub-block; and

to selectively modify the motion compensation method, the one or more processors are configured to selectively modify, based on whether the memory bandwidth needed for accessing samples of the plurality of reference blocks for the particular sub-block satisfies the bandwidth threshold, the motion compensation method used to predict samples of the particular sub-block.

19. The device of claim 18 , wherein the one or more processors are further configured to:

determine, responsive to modifying the motion compensation method used to predict samples of the particular sub-block, to modify motion compensation methods used to predict samples of other sub-blocks of the plurality of sub-blocks.

20. The device of claim 19 , wherein, to determine to modify the motion compensation methods used to predict samples of the other sub-blocks of the plurality of sub-blocks, the one or more processors are configured to determine to modify the motion compensation methods used to predict samples of the other sub-blocks of the plurality of sub-blocks without determining whether respective memory bandwidths needed for accessing samples of the other sub-blocks satisfy the bandwidth threshold.

21. The device of claim 18 , wherein the particular sub-block is a top-left sub-block.

22. The device of claim 13 , wherein:

the current block of video data is a current coding unit (CU) of video data that includes a plurality of sub-blocks of video data;

to determine whether the memory bandwidth needed for accessing samples of the plurality of reference blocks satisfies the bandwidth threshold, the one or more processors are configured to determine, for each respective sub-block of the plurality of sub-blocks, whether a respective memory bandwidth needed for accessing samples of a respective plurality of reference blocks for the respective sub-block satisfies the bandwidth threshold; and

to selectively modify the motion compensation method, the one or more processors are configured to selectively modify, based on whether the respective memory bandwidth for the particular sub-block satisfies the bandwidth threshold, a motion compensation method used to predict samples of the respective sub-block.

23. The device of claim 13 , wherein, to selectively modify the motion compensation method used to predict samples of the current block of video data, the one or more processors are configured to reduce the memory bandwidth needed to predict the samples of the current block.

24. The device of claim 13 , wherein:

to obtain the values of the CPMVs for the current block, the one or more processors are configured to:

obtain values of CPMVs for a first prediction direction; and

obtain values of CPMVs for a second prediction direction;

to determine whether the memory bandwidth needed for accessing samples of the plurality of reference blocks derived based on the values of the CPMVs satisfies the bandwidth threshold, the one or more processors are configured to:

determine whether a first memory bandwidth needed for accessing samples of a plurality of reference blocks derived based on the values of the CPMVs for the first prediction direction satisfies the bandwidth threshold; and

determine whether a second memory bandwidth needed for accessing samples of a plurality of reference blocks derived based on the values of the CPMVs for the second prediction direction satisfies the bandwidth threshold;

to selectively modify the motion compensation method, the one or more processors are configured to:

selectively modify, based on whether the first memory bandwidth for the first prediction direction satisfies the bandwidth threshold, a motion compensation method used to predict samples of the current block of video data in the first prediction direction; and

selectively modify, based on whether the second memory bandwidth for the second prediction direction satisfies the bandwidth threshold, a motion compensation method used to predict samples of the current block of video data in the second prediction direction.

25. A non-transitory computer-readable storage medium having stored thereon instructions that, when executed, cause one or more processors of a video decoder to:

obtain values of control point motion vectors (CPMVs) for a current block of video data selected for coding using affine mode, each respective CPMV of the CPMVs identifying a respective reference block of a plurality of reference blocks;

determine a memory bandwidth needed for accessing samples of a plurality of reference blocks, the memory bandwidth needed for accessing the samples of the plurality of reference blocks being derived based on differences between the values of the CPMVs, wherein the differences between the values of the CPMVs indicate distances between reference blocks of the plurality of reference blocks;

determine whether the determined memory bandwidth satisfies a bandwidth threshold;

selectively modify, based on whether the determined memory bandwidth satisfies the bandwidth threshold, a motion compensation method used to predict samples of the current block of video data; and

predict, using the selectively modified motion compensation method, the samples of the current block of video data from the samples of the plurality of reference blocks.

26. A device for decoding video data, the device comprising:

means for obtaining values of control point motion vectors (CPMVs) for a current block of video data selected for coding using affine mode, each respective CPMV of the CPMVs identifying a respective reference block of a plurality of reference blocks;

means for determining a memory bandwidth needed for accessing samples of a plurality of reference blocks, the memory bandwidth needed for accessing the samples of the plurality of reference blocks being derived based on differences between the values of the CPMVs, wherein the differences between the values of the CPMVs indicate distances between reference blocks of the plurality of reference blocks;

means for determining whether the determined memory bandwidth satisfies a bandwidth threshold;

means for selectively modifying, based on whether the determined memory bandwidth satisfies the bandwidth threshold, a motion compensation method used to predict samples of the current block of video data; and

means for predicting, using the selectively modified motion compensation method, the samples of the current block of video data from the samples of the plurality of reference blocks.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 19, 2019
From: PHAM VAN, LUONG; CHIEN, WEI-JUNG; SEREGIN, VADIM; HUANG, HAN; KARCZEWICZ, MARTA
To: QUALCOMM INCORPORATED
Reel/Frame 051059/0447 →
Continuity (3)
Provisional Application 62737604 · Sep 27, 2018
Provisional Application 62735723 · Sep 24, 2018
Related Publication 20200099945A1 · Mar 26, 2020