IP Library › Granted Patent US 11,184,633
Granted Patent B2
US 11,184,633 · App. 16/696,008 · Granted Nov 23, 2021

Simplification of history-based motion vector prediction

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/105H04N19/139H04N19/176H04N19/43H04N19/436H04N19/56H04N19/58H04N19/583
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,184,633
App. No.
16/696,008
Granted
Nov 23, 2021
Kind
B2
Abstract

A method of coding video data, including constructing a history-based motion vector prediction (HMVP) candidate history table that includes motion vector information of previously coded blocks that extend beyond adjacent neighboring blocks of a current block, constructing a motion vector predictor list, and adding one or more HMVP candidates from the HMVP candidate history table to the motion vector predictor list. Adding the one or more HMVP candidates from the HMVP candidate history table comprises comparing a first HMVP candidate in the HMVP candidate history table to two entries in the motion vector predictor list and no other entries, and adding the first HMVP candidate to the motion vector predictor list when the first HMVP candidate is different than both of the two entries in the motion vector predictor list. The method also includes coding the current block of video data using the motion vector predictor list.

Claims (71)

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

constructing a history-based motion vector prediction (HMVP) candidate history table that includes motion vector information of previously coded blocks that extend beyond adjacent neighboring blocks of a current block of the video data;

constructing a motion vector predictor list;

adding a first subset of one or more HMVP candidates from the HMVP candidate history table to the motion vector predictor list, wherein adding the first subset of one or more HMVP candidates from the HMVP candidate history table comprises:

comparing a first HMVP candidate from the first subset in the HMVP candidate history table to two entries in the motion vector predictor list and no other entries in the motion vector predictor list, wherein the two entries in the motion vector predictor list comprise an entry for a left neighboring block of the current block and an entry for an above neighboring block of the current block; and

adding the first HMVP candidate to the motion vector predictor list when the first HMVP candidate is different than both of the two entries in the motion vector predictor list;

adding one or more HMVP candidates from a second subset of one or more HMVP candidates that follow the first subset of one or more HMVP candidates in the HMVP candidate history table to the motion vector predictor list without comparing the one or more HMVP candidates from the second subset with entries in the motion vector predictor list; and

coding the current block of video data using the motion vector predictor list.

2. The method of claim 1 , wherein adding the first subset of one or more HMVP candidates further comprises:

comparing a second HMVP candidate from the first subset in the HMVP candidate history table to the two entries in the motion vector predictor list and no other entries in the motion vector predictor list; and

adding the second HMVP candidate to the motion vector predictor list when the second HMVP candidate is different than both of the two entries in the motion vector predictor list.

3. The method of claim 1 , wherein the adding the first subset of the one or more HMVP candidates comprises adding the first subset of the one or more HMVP candidates for the current block that is coded in one of a merge mode, an advanced motion vector prediction (AMVP) mode, or an intra block copy (IBC) merge mode.

4. The method of claim 1 , wherein constructing the motion vector predictor list comprises constructing the motion vector predictor list with motion information of one or more spatially neighboring blocks or collocated blocks.

5. The method of claim 1 , wherein coding the current block comprises decoding the current block, and wherein decoding the current block comprises:

retrieving motion vector information from an entry of the motion vector predictor list;

determining a motion vector for the current block based on the retrieved motion vector information;

determining a prediction block based on the motion vector; and

adding the prediction block to received residual information indicative of a difference between the prediction block and the current block to reconstruct the current block.

6. The method of claim 1 , wherein coding the current block comprises encoding the current block, and wherein encoding the current block comprises:

determining a motion vector for the current block used for identifying a prediction block;

signaling information indicative of an entry into the motion vector predictor list based on the determined motion vector for the current block; and

signaling residual information indicative of a difference between the prediction block and the current block.

7. A device for coding video data, the device comprising:

memory configured to store:

a history-based motion vector prediction (HMVP) candidate history table that includes motion vector information of previously coded blocks that extend beyond adjacent neighboring blocks of a current block of the video data, and

a motion vector predictor list; and

processing circuitry configured to:

construct the HMVP candidate history table for storage in the memory;

construct the motion vector predictor list for storage in the memory;

add a first subset of one or more HMVP candidates from the HMVP candidate history table to the motion vector predictor list, wherein to add the first subset of one or more HMVP candidates from the HMVP candidate history table, the processing circuitry is configured to:

compare a first HMVP candidate from the first subset in the HMVP candidate history table to two entries in the motion vector predictor list and no other entries in the motion vector predictor list, wherein the two entries in the motion vector predictor list comprise an entry for a left neighboring block of the current block and an entry for an above neighboring block of the current block; and

add the first HMVP candidate to the motion vector predictor list when the first HMVP candidate is different than both of the two entries in the motion vector predictor list;

add one or more HMVP candidates from a second subset of one or more HMVP candidates that follow the first subset of one or more HMVP candidates in the HMVP candidate history table to the motion vector predictor list without comparing the one or more HMVP candidates from the second subset with entries in the motion vector predictor list; and

code the current block of video data using the motion vector predictor list stored in the memory.

8. The device of claim 7 , wherein to add the first subset of one or more HMVP candidates, the processing circuitry is configured to:

compare a second HMVP candidate from the first subset in the HMVP candidate history table to the two entries in the motion vector predictor list and no other entries in the motion vector predictor list; and

add the second HMVP candidate to the motion vector predictor list when the second HMVP candidate is different than both of the two entries in the motion vector predictor list.

9. The device of claim 7 , wherein to add the first subset of the one or more HMVP candidates, the processing circuitry is configured to add the first subset of the one or more HMVP candidates for the current block that is coded in one of a merge mode, an advanced motion vector prediction (AMVP) mode, or an intra block copy (IBC) merge mode.

10. The device of claim 7 , wherein to construct the motion vector predictor list, the processing circuitry is configured to construct the motion vector predictor list with motion information of one or more spatially neighboring blocks or collocated blocks.

11. The device of claim 7 , wherein to code the current block, the processing circuitry is configured to decode the current block, and wherein to decode the current block, the processing circuitry is configured to:

retrieve motion vector information from an entry of the motion vector predictor list;

determine a motion vector for the current block based on the retrieved motion vector information;

determine a prediction block based on the motion vector; and

add the prediction block to received residual information indicative of a difference between the prediction block and the current block to reconstruct the current block.

12. The device of claim 7 , wherein to code the current block, the processing circuitry is configured to encode the current block, and wherein to encode the current block, the processing circuitry is configured to:

determine a motion vector for the current block used for identifying a prediction block;

signal information indicative of an entry into the motion vector predictor list based on the determined motion vector for the current block; and

signal residual information indicative of a difference between the prediction block and the current block.

13. The device of claim 7 , wherein the device is a wireless communication device.

14. A non-transitory computer-readable storage medium storing instructions thereon that when executed cause one or more processors to:

construct a history-based motion vector prediction (HMVP) candidate history table that includes motion vector information of previously coded blocks that extend beyond adjacent neighboring blocks of a current block of the video data;

construct a motion vector predictor list;

add a first subset of one or more HMVP candidates from the HMVP candidate history table to the motion vector predictor list, wherein the instructions that cause the one or more processors to add the first subset of one or more HMVP candidates from the HMVP candidate history table comprise instructions that cause the one or more processors to:

compare a first HMVP candidate from the first subset in the HMVP candidate history table to two entries in the motion vector predictor list and no other entries in the motion vector predictor list, wherein the two entries in the motion vector predictor list comprise an entry for a left neighboring block of the current block and an entry for an above neighboring block of the current block; and

add the first HMVP candidate to the motion vector predictor list when the first HMVP candidate is different than both of the two entries in the motion vector predictor list;

add one or more HMVP candidates from a second subset of one or more HMVP candidates that follow the first subset of one or more HMVP candidates in the HMVP candidate history table to the motion vector predictor list without comparing the one or more HMVP candidates from the second subset with entries in the motion vector predictor list; and

code the current block of video data using the motion vector predictor list.

15. The computer-readable storage medium of claim 14 , wherein the instructions that cause the one or more processors to add the first subset of one or more HMVP candidates comprise instructions that cause the one or more processors to:

compare a second HMVP candidate from the first subset in the HMVP candidate history table to the two entries in the motion vector predictor list and no other entries in the motion vector predictor list; and

add the second HMVP candidate to the motion vector predictor list when the second HMVP candidate is different than both of the two entries in the motion vector predictor list.

16. The computer-readable storage medium of claim 14 , wherein the instructions that cause the one or more processors to add the first subset of the one or more HMVP candidates comprise instructions that cause the one or more processors to add the first subset of the one or more HMVP candidates for the current block that is coded in one of a merge mode, an advanced motion vector prediction (AMVP) mode, or an intra block copy (IBC) merge mode.

17. The computer-readable storage medium of claim 14 , wherein the instructions that cause the one or more processors to construct the motion vector predictor list comprise instructions that cause the one or more processors to construct the motion vector predictor list with motion information of one or more spatially neighboring blocks or collocated blocks.

18. The computer-readable storage medium of claim 14 , wherein the instructions that cause the one or more processors to code the current block comprise instructions that cause the one or more processors to decode the current block, and wherein the instructions that cause the one or more processors to decode the current block comprise instructions that cause the one or more processors to:

retrieve motion vector information from an entry of the motion vector predictor list;

determine a motion vector for the current block based on the retrieved motion vector information;

determine a prediction block based on the motion vector; and

add the prediction block to received residual information indicative of a difference between the prediction block and the current block to reconstruct the current block.

19. The computer-readable storage medium of claim 14 , wherein the instructions that cause the one or more processors to code the current block comprise instructions that cause the one or more processors to encode the current block, and wherein the instructions that cause the one or more processors to encode the current block comprise instructions that cause the one or more processors to:

determine a motion vector for the current block used for identifying a prediction block;

signal information indicative of an entry into the motion vector predictor list based on the determined motion vector for the current block; and

signal residual information indicative of a difference between the prediction block and the current block.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 24, 2020
From: HAN, YU; CHIEN, WEI-JUNG; HUANG, HAN; KARCZEWICZ, MARTA
To: QUALCOMM INCORPORATED
Reel/Frame 051906/0678 →
Continuity (2)
Provisional Application 62771981 · Nov 27, 2018
Related Publication 20200169745A1 · May 28, 2020