IP Library › Granted Patent US 11,019,357
Granted Patent B2
US 11,019,357 · App. 16/530,181 · Granted May 25, 2021

Motion vector predictor list generation

Inventors: Yu Han (San Diego, CA); Wei-Jung Chien (San Diego, CA); Han Huang (San Diego, CA); Marta Karczewicz (San Diego, CA)
Assignee: Qualcomm Incorporated
H04N19/52H04N19/176H04N19/61
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,019,357
App. No.
16/530,181
Granted
May 25, 2021
Kind
B2
Abstract

A video coder is configured to perform motion vector prediction to predict a motion vector for a block of video data. The motion vector prediction may use a motion vector predictor list that includes both adjacent and non-adjacent candidates relative to the current block. The video coder may divide spatial motion vector prediction candidates for a current block of video data into groups, add the spatial motion vector prediction candidates to a motion vector predictor list based on the groups, and decode a motion vector for the current block of video data based on the motion vector predictor list.

Claims (65)

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

dividing spatial motion vector prediction candidates for a current block of video data into groups, wherein the spatial motion vector prediction candidates include adjacent motion vector prediction candidates and non-adjacent motion vector prediction candidates, wherein the non-adjacent motion vector prediction candidates include candidates from blocks that are not immediately neighboring the current block of video data;

adding first motion vector prediction candidates from a first group of the groups into a motion vector predictor list, wherein the first group includes the adjacent motion vector prediction candidates;

adding second motion vector prediction candidates from a second group of the groups into the motion vector predictor list, wherein the second group includes one or more of the non-adjacent motion vector prediction candidates located at least a first threshold distance from the current block of video data, and wherein the first group and the second group are different from one another;

adding third motion vector prediction candidates from a third group of the groups into the motion vector predictor list, wherein the third group includes one or more of the non-adjacent motion vector prediction candidates located at a second threshold distance from the current block of video data;

pruning spatial motion vector prediction candidates from the second group based on motion vector prediction candidates from the first group and a closest motion vector prediction candidate in the second group;

pruning spatial motion vector prediction candidates from the third group based on motion vector prediction candidates from the first group and a closest motion vector prediction candidate in the third group; and

decoding a motion vector for the current block of video data based on the motion vector predictor list.

2. The method of claim 1 , wherein pruning the spatial motion vector prediction candidates from the second group based on the spatial motion vector prediction candidates from the first group and the closest motion vector prediction candidate in the second group comprises:

determining whether a motion vector for a candidate in the second group is the same as a motion vector of either of a first two candidates of the first group or the same as a motion vector of a closest motion vector prediction candidate in the second group;

based on the determination that the motion vector for the candidate in the second group is not the same as the motion vector of the first two candidates of the first group and not the same as the motion vector of the closest motion vector prediction candidate in the second group, adding the motion vector for the candidate in the second group in the motion vector predictor list; or

based on the determination that the motion vector for the candidate in the second group is the same as the motion vector of either of the first two candidates of the first group or the same as the motion vector of the closest motion vector prediction candidate in the second group, not adding the motion vector for the candidate in the second group in the motion vector predictor list.

3. The method of claim 1 , wherein pruning the spatial motion vector prediction candidates from the third group based on the spatial motion vector prediction candidates from the first group and the closest motion vector prediction candidate in the third group comprises:

determining whether a motion vector for a candidate in the third group is the same as a motion vector of either of a first two candidates of the first group or the same as a motion vector of a closest motion vector prediction candidate in the third group;

based on the determination that the motion vector for the candidate in the third group is not the same as the motion vector of the first two candidates of the first group and not the same as the motion vector of the closest motion vector prediction candidate in the third group, adding the motion vector for the candidate in the third group in the motion vector predictor list; or

based on the determination that the motion vector for the candidate in the third group is the same as the motion vector of either of the first two candidates of the first group or the same as the motion vector of the closest motion vector prediction candidate in the third group, not adding the motion vector for the candidate in the third group in the motion vector predictor list.

4. The method of claim 1 , further comprising:

generating a spatial-temporal motion vector predictor (STMVP) and adding the STMVP to the motion vector predictor list.

5. The method of claim 4 , wherein generating the STMVP comprises:

averaging one or more of the spatial motion vector prediction candidates with a temporal motion vector predictor.

6. The method of claim 1 , wherein dividing spatial motion vector prediction candidates for the current block of video data into groups comprises dividing spatial motion vector prediction candidates for the current block of video data into groups based on a vertical and horizontal distance to the current block of video data.

7. The method of claim 1 , further comprising:

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

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

a memory configured to store video data; and

one or more processors in communication with the memory, the one or more processors configured to:

divide spatial motion vector prediction candidates for a current block of video data into groups, wherein the spatial motion vector prediction candidates include adjacent motion vector prediction candidates and non-adjacent motion vector prediction candidates, wherein the non-adjacent motion vector prediction candidates include candidates from blocks that are not immediately neighboring the current block of video data;

add first motion vector prediction candidates from a first group of the groups into a motion vector predictor list, wherein the first group includes the adjacent motion vector prediction candidates;

add second motion vector prediction candidates from a second group of the groups into the motion vector predictor list, wherein the second group includes one or more of the non-adjacent motion vector prediction candidates located at least a first threshold distance from the current block of video data, and wherein the first group and the second group are different from one another;

add third motion vector prediction candidates from a third group of the groups into the motion vector predictor list, wherein the third group includes one or more of the non-adjacent motion vector prediction candidates located at a second threshold distance from the current block of video data;

prune spatial motion vector prediction candidates from the second group based on motion vector prediction candidates from the first group and a closest motion vector prediction candidate in the second group;

prune spatial motion vector prediction candidates from the third group based on motion vector prediction candidates from the first group and a closest motion vector prediction candidate in the third group; and

decode a motion vector for the current block of video data based on the motion vector predictor list.

9. The apparatus of claim 8 , wherein to prune the spatial motion vector prediction candidates from the second group based on the spatial motion vector prediction candidates from the first group and the closest motion vector prediction candidate in the second group, the one or more processors are further configured to:

determine whether a motion vector for a candidate in the second group is the same as a motion vector of either of a first two candidates of the first group or the same as a motion vector of a closest motion vector prediction candidate in the second group;

based on the determination that the motion vector for the candidate in the second group is not the same as the motion vector of the first two candidates of the first group and not the same as the motion vector of the closest motion vector prediction candidate in the second group, add the motion vector for the candidate in the second group in the motion vector predictor list; or

based on the determination that the motion vector for the candidate in the second group is the same as the motion vector of either of the first two candidates of the first group or the same as the motion vector of the closest motion vector prediction candidate in the second group, not add the motion vector for the candidate in the second group in the motion vector predictor list.

10. The apparatus of claim 8 , wherein to prune the spatial motion vector prediction candidates from the third group based on the spatial motion vector prediction candidates from the first group and the closest motion vector prediction candidate in the third group, the one or more processors are further configured to:

determine whether a motion vector for a candidate in the third group is the same as a motion vector of either of a first two candidates of the first group or the same as a motion vector of a closest motion vector prediction candidate in the third group;

based on the determination that the motion vector for the candidate in the third group is not the same as the motion vector of the first two candidates of the first group and not the same as the motion vector of the closest motion vector prediction candidate in the third group, add the motion vector for the candidate in the third group in the motion vector predictor list; or

based on the determination that the motion vector for the candidate in the third group is the same as the motion vector of either of the first two candidates of the first group or the same as the motion vector of the closest motion vector prediction candidate in the third group, not add the motion vector for the candidate in the third group in the motion vector predictor list.

11. The apparatus of claim 8 , wherein the one or more processors are further configured to:

generate a spatial-temporal motion vector predictor (STMVP) and adding the STMVP to the motion vector predictor list.

12. The apparatus of claim 11 , wherein to generate the STMVP, the one or more processors are further configured to:

average one or more of the spatial motion vector prediction candidates with a temporal motion vector predictor.

13. The apparatus of claim 8 , wherein to divide spatial motion vector prediction candidates for the current block of video data into groups, the one or more processors are further configured to:

divide spatial motion vector prediction candidates for the current block of video data into groups based on a vertical and horizontal distance to the current block of video data.

14. The apparatus of claim 8 , wherein the one or more processors are further configured to:

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

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

means for dividing spatial motion vector prediction candidates for a current block of video data into groups, wherein the spatial motion vector prediction candidates include adjacent motion vector prediction candidates and non-adjacent motion vector prediction candidates, wherein the non-adjacent motion vector prediction candidates include candidates from blocks that are not immediately neighboring the current block of video data;

means for adding first motion vector prediction candidates from a first group of the groups into a motion vector predictor list, wherein the first group includes the adjacent motion vector prediction candidates;

means for adding second motion vector prediction candidates from a second group of the groups into the motion vector predictor list, wherein the second group includes one or more of the non-adjacent motion vector prediction candidates located at least a first threshold distance from the current block of video data, and wherein the first group and the second group are different from one another;

means for adding third motion vector prediction candidates from a third group of the groups into the motion vector predictor list, wherein the third group includes one or more of the non-adjacent motion vector prediction candidates located at a second threshold distance from the current block of video data;

means for pruning spatial motion vector prediction candidates from the second group based on motion vector prediction candidates from the first group and a closest motion vector prediction candidate in the second group;

means for pruning spatial motion vector prediction candidates from the third group based on motion vector prediction candidates from the first group and a closest motion vector prediction candidate in the third group; and

means for decoding a motion vector for the current block of video data based on the motion vector predictor list.

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

divide spatial motion vector prediction candidates for a current block of video data into groups, wherein the spatial motion vector prediction candidates include adjacent motion vector prediction candidates and non-adjacent motion vector prediction candidates, wherein the non-adjacent motion vector prediction candidates include candidates from blocks that are not immediately neighboring the current block of video data;

add first motion vector prediction candidates from a first group of the groups into a motion vector predictor list, wherein the first group includes the adjacent motion vector prediction candidates;

add second motion vector prediction candidates from a second group of the groups into the motion vector predictor list, wherein the second group includes one or more of the non-adjacent motion vector prediction candidates located at least a first threshold distance from the current block of video data, and wherein the first group and the second group are different from one another;

add third motion vector prediction candidates from a third group of the groups into the motion vector predictor list, wherein the third group includes one or more of the non-adjacent motion vector prediction candidates located at a second threshold distance from the current block of video data;

prune spatial motion vector prediction candidates from the second group based on motion vector prediction candidates from the first group and a closest motion vector prediction candidate in the second group;

prune spatial motion vector prediction candidates from the third group based on motion vector prediction candidates from the first group and a closest motion vector prediction candidate in the third group; and

decode a motion vector for the current block of video data based on the motion vector predictor list.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 24, 2019
From: HAN, YU; CHIEN, WEI-JUNG; HUANG, HAN; KARCZEWICZ, MARTA
To: QUALCOMM INCORPORATED
Reel/Frame 050477/0022 →
Continuity (3)
Provisional Application 62715703 · Aug 7, 2018
Provisional Application 62725189 · Aug 30, 2018
Related Publication 20200053379A1 · Feb 13, 2020