IP Library Granted Patent US 10,200,711
Granted Patent B2
US 10,200,711 · App. 15/080,478 · Granted Feb 5, 2019

Motion vector derivation in video coding

Inventors: Xiang Li (San Diego, CA); Ying Chen (San Diego, CA); Li Zhang (San Diego, CA); Hongbin Liu (Beijing, CN); Jianle Chen (San Diego, CA); Marta Karczewicz (San Diego, CA)
Assignee: QUALCOMM Incorporated
H04N19/513H04N19/109H04N19/119H04N19/139H04N19/176H04N19/44H04N19/46H04N19/52H04N19/56H04N19/57H04N19/70H04N19/96
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,200,711
App. No.
15/080,478
Granted
Feb 5, 2019
Kind
B2
Abstract

In an example, a method of processing video data includes determining a candidate motion vector for deriving motion information of a current block of video data, where the motion information indicates motion of the current block relative to reference video data. The method also includes determining a derived motion vector for the current block based on the determined candidate motion vector, where determining the derived motion vector comprises performing a motion search for a first set of reference data that corresponds to a second set of reference data outside of the current block.

Claims (75)

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

determining a candidate motion vector for deriving motion information of a current block of video data, wherein the motion information indicates motion of the current block relative to reference video data;

performing a motion search, using a decoder-side motion vector derivation process, in a reference picture pointed to by the candidate motion vector, wherein the candidate motion vector indicates a starting point in the reference picture for the decoder-side motion vector derivation process;

determining a derived motion vector for the current block based on the motion search using the decoder-side motion vector derivation process; and

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

2. The method of claim 1 , wherein determining the candidate motion vector comprises selecting the candidate motion vector from a candidate list comprising a plurality of entries.

3. The method of claim 2 , further comprising generating the candidate list, wherein each entry of the candidate list comprises a motion vector and its associated reference index.

4. The method of claim 3 , wherein generating the candidate list comprises identifying one or more motion vectors from a spatial neighbor of the current block, a temporal neighbor of the current block, or deriving a motion vector using a motion vector derivation technique.

5. The method of claim 3 , wherein generating the candidate list comprises generating the candidate list and a merge mode motion vector candidate list in the same manner.

6. The method of claim 3 , wherein generating the candidate list comprises extrapolating or interpolating a motion field of the picture containing the current block and determining one or more candidate motion vectors from the extrapolated or interpolated motion field.

7. The method of claim 3 , wherein generating the candidate list comprises pruning duplicate candidate motion vectors from the candidate list.

8. The method of claim 3 , further comprising scaling the candidate motion vector using a fixed reference picture of a reference picture list for the current block, wherein the fixed reference picture is an initial picture in the reference picture list for the current block.

9. The method of claim 2 , wherein selecting the candidate motion vector comprises selecting the candidate motion vector that indicates a best match between the first set of reference data and the second set of reference data.

10. The method of claim 2 , wherein selecting the candidate motion vector comprises selecting the candidate motion vector based on a motion vector cost associated with the candidate motion vector, wherein the motion vector cost comprises a difference between the candidate motion vector and a center of a search area of the reference picture being searched to determine the derived motion vector.

11. The method of claim 2 , further comprising:

obtaining a motion vector pair for each candidate motion vector from the candidate list;

performing a bilateral matching process for respective motion vector pairs; and

wherein selecting the one or more candidate motion vectors comprises selecting one or more motion vectors from the bilateral matching process.

12. The method of claim 11 , wherein obtaining the motion vector pair for each candidate motion vector comprises determining a first motion vector of the pair from the respective candidate motion vector and determining a second motion vector of the pair based on a particular reference picture of a reference picture list for the current block.

13. The method of claim 1 , further comprising refining the determined candidate motion vector, wherein refining the determined candidate motion vector comprises:

determining a search window in the reference picture based on the candidate motion vector;

searching for best match reference data using the decoder-side motion vector derivation process within the determined search window; and

determining the derived motion vector for the current block based on the best match reference data.

14. The method of claim 13 , wherein searching for the best match comprises performing one or more of a full search, a three step search, a diamond search, a block-based gradient descent search, or an unrestricted center-biased diamond search.

15. The method of claim 13 , wherein searching for best match reference data comprises determining a motion vector cost for a motion vector associated with the best match reference data.

16. The method of claim 1 , wherein decoding the current block comprises:

determining a reference block in a reference picture based on the derived motion vector;

decoding residual data from an encoded bitstream; and

combining the decoded residual and the determined reference block to reconstruct the current block.

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

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

one or more processors configured to:

determine a candidate motion vector for deriving motion information of a current block of video data, wherein the motion information indicates motion of the current block relative to reference video data;

perform a motion search, using a decoder-side motion vector derivation process, in a reference picture pointed to by the candidate motion vector, wherein the candidate motion vector indicates a starting point in the reference picture for the decoder-side motion vector derivation process;

determine a derived motion vector for the current block based on the motion search using the decoder-side motion vector derivation process; and

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

18. The device of claim 17 , wherein to determine the candidate motion vector, the one or more processors are configured to select the candidate motion vector from a candidate list comprising a plurality of entries.

19. The device of claim 18 , wherein the one or more processors are further configured to generate the candidate list, wherein each entry of the candidate list comprises a motion vector and its associated reference index.

20. The device of claim 19 , wherein to generate the candidate list, the one or more processors are configured to identify one or more motion vectors from a spatial neighbor of the current block, a temporal neighbor of the current block, or deriving a motion vector using a motion vector derivation technique.

21. The device of claim 19 , wherein to generate the candidate list, the one or more processors are configured to generate the candidate list and a merge mode motion vector candidate list in the same manner.

22. The device of claim 19 , wherein to generate the candidate list, the one or more processors are configured to extrapolate or interpolate a motion field of the picture containing the current block and determining one or more candidate motion vectors from the extrapolated or interpolated motion field.

23. The device of claim 19 , wherein to generate the candidate list, the one or more processors are configured to prune duplicate candidate motion vectors from the candidate list.

24. The device of claim 19 , wherein the one or more processors are further configured to scale the candidate motion vector using a fixed reference picture of a reference picture list for the current block, wherein the fixed reference picture is an initial picture in the reference picture list for the current block.

25. The device of claim 18 , wherein to select the candidate motion vector, the one or more processors are configured to select the candidate motion vector that indicates a best match between the first set of reference data and the second set of reference data.

26. The device of claim 18 , wherein to select the candidate motion vector, the one or more processors are configured to select the candidate motion vector based on a motion vector cost associated with the candidate motion vector, wherein the motion vector cost comprises a difference between the candidate motion vector and a center of a search area of the reference picture being searched to determine the derived motion vector.

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

obtain a motion vector pair for each candidate motion vector from the candidate list;

perform a bilateral matching process for respective motion vector pairs; and

wherein to select the one or more candidate motion vectors, the one or more processors are configured to select one or more motion vectors from the bilateral matching process.

28. The device of claim 27 , wherein to obtain the motion vector pair for each candidate motion vector, the one or more processors are configured to determine a first motion vector of the pair from the respective candidate motion vector and determine a second motion vector of the pair based on a particular reference picture of a reference picture list for the current block.

29. The device of claim 17 , wherein the one or more processors are further configured to refine the determined candidate motion vector, wherein to refine the determined candidate motion vector comprises, the one or more processors are configured to:

determine a search window in the reference picture based on the candidate motion vector;

search for best match reference data using the decoder-side motion vector derivation process within the determined search window; and

determine the derived motion vector for the current block based on the best match reference data.

30. The device of claim 29 , wherein to search for the best match, the one or more processors are configured to perform one or more of a full search, a three step search, a diamond search, a block-based gradient descent search, or an unrestricted center-biased diamond search.

31. The device of claim 29 , wherein to search for best match reference data, the one or more processors are configured to determining a motion vector cost for a motion vector associated with the best match reference data.

32. The device of claim 17 , wherein to decode the current block, the one or more processors are configured to:

determine a reference block in a reference picture based on the derived motion vector;

decode residual data from an encoded bitstream; and

combine the decoded residual and the determined reference block to reconstruct the current block.

33. The device of claim 32 , further comprising a display configured to display the decoded block.

34. The device of claim 17 , wherein the device comprises at least one of:

an integrated circuit;

a microprocessor; or

a wireless communication device.

35. An apparatus for decoding video data, the apparatus comprising:

means for determining a candidate motion vector for deriving motion information of a current block of video data, wherein the motion information indicates motion of the current block relative to reference video data;

means for performing a motion search, using a decoder-side motion vector derivation process, in a reference picture pointed to by the candidate motion vector, wherein the candidate motion vector indicates a starting point in the reference picture for the decoder-side motion vector derivation process;

means for determining a derived motion vector for the current block based on the motion search using the decoder-side motion vector derivation process; and

means for decoding the current block of video data using the derived motion vector.

36. A non-transitory computer-readable medium having instructions stored thereon that, when executed, cause one or more processors to:

determine a candidate motion vector for deriving motion information of a current block of video data, wherein the motion information indicates motion of the current block relative to reference video data;

perform a motion search, using a decoder-side motion vector derivation process, in a reference picture pointed to by the candidate motion vector, wherein the candidate motion vector indicates a starting point in the reference picture for the decoder-side motion vector derivation process;

determine a derived motion vector for the current block based on the motion search using the decoder-side motion vector derivation process; and

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

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 15, 2016
From: LI, XIANG; CHEN, YING; ZHANG, LI; LIU, HONGBIN; CHEN, JIANLE; KARCZEWICZ, MARTA
To: QUALCOMM INCORPORATED
Reel/Frame 038294/0783 →
Continuity (3)
Provisional Application 62139572 · Mar 27, 2015
Provisional Application 62182367 · Jun 19, 2015
Related Publication 20160286229A1 · Sep 29, 2016
Cited By (10)
US 12,200,221 US 12,200,246 US 12,348,762 US 12,368,880 US 12,401,820 US 12,549,756 US 12,556,738 US 12,604,029 US 12,641,216 US 12,720,068