IP Library Granted Patent US 10,951,913
Granted Patent B2
US 10,951,913 · App. 16/677,417 · Granted Mar 16, 2021

Merge candidates for motion vector prediction for video coding

Inventors: Sungwon Lee (Huntington Beach, CA); Wei-Jung Chien (San Diego, CA); Li Zhang (San Diego, CA); Marta Karczewicz (San Diego, CA)
Assignee: Qualcomm Incorporated
H04N19/56H04N19/122H04N19/51H04N19/52H04N19/176
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 10,951,913
App. No.
16/677,417
Granted
Mar 16, 2021
Kind
B2
Abstract

A method of decoding and encoding video data includes constructing a motion vector candidate list for the current block of video data based on the motion information from the neighboring blocks relative to the current block determined to include motion information, and adaptively ordering the constructed motion vector candidate list for the current block of video data based on at least one weight among a plurality of weights associated with motion information included in each neighboring block determined to include motion information.

Claims (60)

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

receiving a current block of video data encoded with an inter prediction mode;

analyzing a plurality of neighboring blocks relative to the current block to determine whether any neighboring blocks among the plurality of neighboring blocks include motion information, wherein a number of the neighboring blocks analyzed among the plurality of neighboring blocks is greater than 5;

determining a plurality of weights, wherein each weight among the plurality of weights respectively corresponds to motion information included within a set of neighboring blocks, among the plurality of neighboring blocks, that include motion information;

constructing a motion vector candidate list for the current block of video data based on the motion information from the set of neighboring blocks relative to the current block;

adaptively ordering motion vector candidates within the constructed motion vector candidate list for the current block of video data based on the plurality of weights;

determining a current motion vector from the motion vector candidates within the motion vector candidate list; and

decoding the current block of video data using the current motion vector.

2. The method of claim 1 , wherein determining the plurality of weights comprises determining at least one weight of the plurality of weights based on a number pixels belonging to the neighboring block that includes the corresponding motion information.

3. The method of claim 1 , wherein at least one weight of the plurality of weights is proportional to a size the neighboring block that includes the corresponding motion information.

4. The method of claim 1 , wherein adaptively ordering the motion vector candidates within the constructed motion vector candidate list comprises:

updating at least one weight of the plurality of weights; and

sorting an order of the motion vector candidates within the constructed motion vector candidate list based on the updated at least one weight of the plurality of weights.

5. The method of claim 4 , wherein sorting the order of the motion vector candidates within the constructed motion vector candidate list comprises placing a first motion information corresponding to a higher value of weight before a second motion information corresponding to a lower value of weight in the constructed motion vector candidate list.

6. The method of claim 1 , wherein determining the plurality of weights comprises determining each of the plurality of weights based on a number of pixels adjacent to the current block.

7. The method of claim 1 , wherein the inter prediction mode corresponds to a merge mode.

8. An apparatus configured to decode video data, the apparatus comprising:

a memory configured to store a current block of video data; and

one or more processors configured to:

receive a current block of video data encoded with an inter prediction mode;

analyze a plurality of neighboring blocks relative to the current block to determine whether any neighboring blocks among the plurality of neighboring blocks include motion information, wherein a number of the neighboring blocks analyzed among the plurality of neighboring blocks is greater than 5;

determine a plurality of weights, wherein each weight among the plurality of weights respectively corresponds to motion information included within a set of neighboring blocks, among the plurality of neighboring blocks, that include motion information;

construct a motion vector candidate list for the current block of video data based on the motion information from the set of neighboring blocks relative to the current block;

adaptively order motion vector candidates within the constructed motion vector candidate list for the current block of video data based on the plurality of weights;

determine a current motion vector from the motion vector candidates within the motion vector candidate list; and

decode the current block of video data using the current motion vector.

9. The apparatus of claim 8 , wherein the one or more processors are further configured to determine at least one weight of the plurality of weights based on a number pixels belonging to the neighboring block that includes the corresponding motion information.

10. The apparatus of claim 8 , wherein at least one weight of the plurality of weights is proportional to a size the neighboring block that includes the corresponding motion information.

11. The apparatus of claim 8 , wherein, to adaptively order the motion vector candidates within the constructed motion vector candidate list, the one or more processors are further configured to:

update at least one weight of the plurality of weights; and

sort an order of the motion vector candidates within the constructed motion vector candidate list based on the updated at least one weight of the plurality of weights.

12. The apparatus of claim 11 , wherein, to sort the order of the motion vector candidates within the constructed motion vector candidate list, the one or more processors are further configured to place a first motion information corresponding to a higher value of weight before a second motion information corresponding to a lower value of weight in the constructed motion vector candidate list.

13. The apparatus of claim 8 , wherein the one or more processors are further configured to determine each of the plurality of weights based on a number of pixels adjacent to the current block.

14. The apparatus of claim 8 , wherein the inter prediction mode corresponds to a merge mode.

15. An apparatus configured to encode video data, the apparatus comprising:

a memory configured to store a current block of video data; and

one or more processors configured to:

receive a current block of video data encoded with an inter prediction mode;

analyze a plurality of neighboring blocks relative to the current block to determine whether any neighboring blocks among the plurality of neighboring blocks include motion information, wherein a number of the neighboring blocks analyzed among the plurality of neighboring blocks is greater than 5;

determine a plurality of weights, wherein each weight among the plurality of weights respectively corresponds to motion information included within a set of neighboring blocks, among the plurality of neighboring blocks, that include motion information;

construct a motion vector candidate list for the current block of video data based on the motion information from the set of neighboring blocks relative to the current block;

adaptively order motion vector candidates within the constructed motion vector candidate list for the current block of video data based on the plurality of weights;

determine a current motion vector from the motion vector candidates within the motion vector candidate list; and

encode the current block of video data using the current motion vector.

16. The apparatus of claim 15 , wherein the one or more processors are further configured to determine at least one weight of the plurality of weights based on a number pixels belonging to the neighboring block that includes the corresponding motion information.

17. The apparatus of claim 15 , wherein at least one weight of the plurality of weights is proportional to a size the neighboring block that includes the corresponding motion information.

18. The apparatus of claim 15 , wherein, to adaptively order the motion vector candidates within the constructed motion vector candidate list, the one or more processors are further configured to:

update at least one weight of the plurality of weights; and

sort an order of the motion vector candidates within the constructed motion vector candidate list based on the updated at least one weight of the plurality of weights.

19. The apparatus of claim 18 , wherein, to sort the order of the motion vector candidates within the constructed motion vector candidate list, the one or more processors are further configured to place a first motion information corresponding to a higher value of weight before a second motion information corresponding to a lower value of weight in the constructed motion vector candidate list.

20. The apparatus of claim 15 , wherein the one or more processors are further configured to determine each of the plurality of weights based on a number of pixels adjacent to the current block.

21. The apparatus of claim 15 , wherein the inter prediction mode corresponds to a merge mode.

22. A non-transitory computer-readable storage medium storing instructions that, when executed, causes one or more processors configured to decode video data to:

receive a current block of video data encoded with an inter prediction mode;

analyze a plurality of neighboring blocks relative to the current block to determine whether any neighboring blocks among the plurality of neighboring blocks include motion information, wherein a number of the neighboring blocks analyzed among the plurality of neighboring blocks is greater than 5;

determine a plurality of weights, wherein each weight among the plurality of weights respectively corresponds to motion information included within a set of neighboring blocks, among the plurality of neighboring blocks, that include motion information;

construct a motion vector candidate list for the current block of video data based on the motion information from the set of neighboring blocks relative to the current block;

adaptively order motion vector candidates within the constructed motion vector candidate list for the current block of video data based on the plurality of weights;

determine a current motion vector from the motion vector candidates within the motion vector candidate list; and

decode the current block of video data using the current motion vector.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 3, 2020
From: LEE, SUNGWON; CHIEN, WEI-JUNG; ZHANG, LI; KARCZEWICZ, MARTA
To: QUALCOMM INCORPORATED
Reel/Frame 051413/0827 →
Continuity (3)
Continuation 15591813 · May 10, 2017
Provisional Application 62336449 · May 13, 2016
Related Publication 20200077116A1 · Mar 5, 2020