IP Library Granted Patent US 11,070,796
Granted Patent B2
US 11,070,796 · App. 16/584,225 · Granted Jul 20, 2021

Ultimate motion vector expression based pruning for video coding

Inventors: Chao-Hsiung Hung (San Diego, CA); Chun-Chi Chen (San Diego, CA); Wei-Jung Chien (San Diego, CA); Marta Karczewicz (San Diego, CA)
Assignee: Qualcomm Incorporated
H04N19/105H04N19/132H04N19/139H04N19/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 11,070,796
App. No.
16/584,225
Granted
Jul 20, 2021
Kind
B2
Abstract

A video encoder and video decoder are configured to perform an ultimate motion vector expression (UMVE)-based pruning method which is used to prune motion vectors in a motion vector candidate list. The video encoder and video decoder may add one or more motion vector candidates to a candidate list for motion vector prediction for a current block of the video data, determine whether to add a next motion vector candidate to the candidate list based on a UMVE candidate of a respective candidate of the one or more candidates, and encode/decode the current block of the video data using the candidate list.

Claims (76)

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

a memory configured to store video data; and

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

add one or more motion vector candidates to a merge candidate list for motion vector prediction for a current block of the video data;

determine whether to add a next motion vector candidate to the merge candidate list based on an ultimate motion vector expression (UMVE) candidate of a respective candidate of the one or more candidates;

perform pruning of the next motion vector candidate, where the next motion vector candidate is a history-based motion vector prediction (HMVP) candidate, from a history table, using the one or more candidates in the merge candidate list;

terminate the pruning if the HMVP candidate matches the UMVE candidate of the respective candidate of the one or more candidates;

discard the HMVP candidate; and

decode the current block of the video data using the merge candidate list.

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

a memory configured to store video data; and

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

add one or more motion vector candidates to a merge candidate list for motion vector prediction for a current block of the video data;

determine whether to add a next motion vector candidate to the merge candidate list based on an ultimate motion vector expression (UMVE) candidate of a respective candidate of the one or more candidates, wherein the next motion vector candidate is a history-based motion vector prediction (HMVP) candidate from a history table, and wherein the one or more motion vector candidates of the merge candidate list includes a first subsampling HMVP candidate, wherein the first subsampling HMVP candidate is a first candidate selected from the history table, and wherein the next motion vector candidate is a second subsampling HMVP candidate that is selected from the history table after the first subsampling HMVP candidate; and

decode the current block of the video data using the merge candidate list.

3. The apparatus of claim 2 , wherein to determine whether to add the second subsampling HMVP candidate to the merge candidate list based on the ultimate motion vector expression of the respective candidate of the one or more candidates, the one or more processors are further configured to:

perform pruning of the second subsampling HMVP candidate using the first subsampling HMVP candidate; and

discard the second subsampling HMVP candidate if the second subsampling HMVP candidate matches the UMVE candidate of the first subsampling HMVP candidate.

4. The apparatus of claim 3 , wherein to perform pruning of the second subsampling HMVP candidate using the first subsampling HMVP candidate, the one or more processors are further configured to:

perform pruning of the second subsampling HMVP candidate using only the first subsampling HMVP candidate.

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

a memory configured to store video data; and

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

add one or more motion vector candidates to a merge candidate list for motion vector prediction for a current block of the video data;

determine whether to add a next motion vector candidate to the merge candidate list based on an ultimate motion vector expression (UMVE) candidate of a respective candidate of the one or more candidates, and wherein the merge candidate list is a history table for history-based motion vector predictor (HMVP) candidates, wherein the next motion vector candidate is a current HMVP candidate;

prune the current HMVP candidate relative to the UMVE candidate of a last HMVP candidate; and

decode the current block of the video data using the merge candidate list.

6. The apparatus of claim 1 , further comprising:

a display configured to display a picture that includes the decoded current block of the video data.

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

adding one or more motion vector candidates to a merge candidate list for motion vector prediction for a current block of video data;

determining whether to add a next motion vector candidate to the merge candidate list based on an ultimate motion vector expression (UMVE) candidate of a respective candidate of the one or more candidates;

pruning of the next motion vector candidate, where the next motion vector candidate is a history-based motion vector prediction (HMVP) candidate, from a history table, using the one or more candidates in the merge candidate list;

terminating the pruning if the HMVP candidate matches the UMVE candidate of the respective candidate of the one or more candidates; and

discarding the HMVP candidate; and

decoding the current block of video data using the merge candidate list.

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

adding one or more motion vector candidates to a merge candidate list for motion vector prediction for a current block of video data;

determining whether to add a next motion vector candidate to the merge candidate list based on an ultimate motion vector expression (UMVE) candidate of a respective candidate of the one or more candidates, wherein the next motion vector candidate is a history-based motion vector prediction (HMVP) candidate from a history table, and wherein the one or more candidates of the merge candidate list includes a first subsampling HMVP candidate, wherein the first subsampling HMVP candidate is a first candidate selected from the history table, and wherein the next motion vector candidate is a second subsampling HMVP candidate that is selected from the history table after the first subsampling HMVP candidate.

9. The method of claim 8 , wherein determining whether to add the second subsampling HMVP candidate to the merge candidate list based on the ultimate motion vector expression of the respective candidate of the one or more candidates comprises:

performing pruning of the second subsampling HMVP candidate using the first subsampling HMVP candidate; and

discarding the second subsampling HMVP candidate if the second subsampling HMVP candidate matches the UMVE candidate of the first subsampling HMVP candidate.

10. The method of claim 9 , wherein performing pruning of the second subsampling HMVP candidate using the first subsampling HMVP candidate comprises:

performing pruning of the second subsampling HMVP candidate using only the first subsampling HMVP candidate.

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

adding one or more motion vector candidates to a merge candidate list for motion vector prediction for a current block of video data;

determining whether to add a next motion vector candidate to the merge candidate list based on an ultimate motion vector expression (UMVE) candidate of a respective candidate of the one or more candidates, and wherein the merge candidate list is a history table for history-based motion vector predictor (HMVP) candidates; and

pruning the current HMVP candidate relative to the UMVE candidate of a last HMVP candidate.

12. The method of claim 7 , further comprising:

displaying a picture that includes the decoded current block of the video data.

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

a memory configured to store video data; and

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

add one or more motion vector candidates to a merge candidate list for motion vector prediction for a current block of the video data;

determine whether to add a next motion vector candidate to the merge candidate list based on an ultimate motion vector expression (UMVE) candidate of a respective candidate of the one or more candidates;

determine if a current motion vector candidate in the merge candidate list can be expressed by a previous motion vector candidate with a UMVE candidate; and

skip a calculation of the UMVE candidate for the current motion vector candidate based on the determination that the current motion vector candidate can be expressed by the previous motion vector candidate with the UMVE candidate; and

encode the current block of the video data using the merge candidate list.

14. The apparatus of claim 13 , wherein the next motion vector candidate is a history-based motion vector prediction (HMVP) candidate from a history table.

15. The apparatus of claim 14 , wherein to determine whether to add the HMVP candidate to the merge candidate list based on the ultimate motion vector expression of the respective candidate of the one or more candidates, the one or more processors are further configured to:

perform pruning of the HMVP candidate using the one or more candidates in the merge candidate list;

terminate the pruning if the HMVP candidate matches the UMVE candidate of the respective candidate of the one or more candidates; and

discard the HMVP candidate.

16. The apparatus of claim 14 , wherein the one or more candidates of the merge candidate list includes a first subsampling HMVP candidate, wherein the first subsampling HMVP candidate is a first candidate selected from the history table, and wherein the next motion vector candidate is a second subsampling HMVP candidate that is selected from the history table after the first subsampling HMVP candidate.

17. The apparatus of claim 16 , wherein to determine whether to add the second subsampling HMVP candidate to the merge candidate list based on the ultimate motion vector expression of the respective candidate of the one or more candidates, the one or more processors are further configured to:

perform pruning of the second subsampling HMVP candidate using the first subsampling HMVP candidate; and

discard the second subsampling HMVP candidate if the second subsampling HMVP candidate matches the UMVE candidate of the first subsampling HMVP candidate.

18. The apparatus of claim 17 , wherein to perform pruning of the second subsampling HMVP candidate using the first subsampling HMVP candidate, the one or more processors are further configured to:

perform pruning of the second subsampling HMVP candidate using only the first subsampling HMVP candidate.

19. The apparatus of claim 13 , wherein the candidate list is a history table for history-based motion vector predictor (HMVP) candidates, wherein the next motion vector candidate is a current HMVP candidate, and wherein to determine whether to add the next motion vector candidate to the candidate list, the one or more processors are further configured to:

prune the current HMVP candidate relative to the UMVE candidate of a last HMVP candidate.

20. The apparatus of claim 13 , wherein to encode the current block of the video data using the candidate list, the one or more processors are further configured to:

determine if a current motion vector candidate in the candidate list can be expressed by a previous motion vector candidate with a UMVE candidate; and

skip a calculation of the UMVE candidate for the current motion vector candidate based on the determination.

21. The apparatus of claim 13 , further comprising:

a camera configured to capture a picture that includes the current block of the video data.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE RECEIVING PARTY STATE/COUNTRY PREVIOUSLY RECORDED AT REEL: 51055 FRAME: 693. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jan 7, 2020
From: HUNG, CHAO-HSIUNG; CHEN, CHUN-CHI; CHIEN, WEI-JUNG; KARCZEWICZ, MARTA
To: QUALCOMM INCORPORATED
Reel/Frame 051492/0922 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 19, 2019
From: HUNG, CHAO-HSIUNG; CHEN, CHUN-CHI; CHIEN, WEI-JUNG; KARCZEWICZ, MARTA
To: QUALCOMM INCORPORATED
Reel/Frame 051055/0693 →
Continuity (2)
Provisional Application 62738771 · Sep 28, 2018
Related Publication 20200107017A1 · Apr 2, 2020
Cited By (1)
US 12,713,055