IP Library › Granted Patent US 10,602,180
Granted Patent B2
US 10,602,180 · App. 16/003,269 · Granted Mar 24, 2020

Motion vector prediction

Inventors: Yi-Wen Chen (San Diego, CA); Marta Karczewicz (San Diego, CA); Wei-Jung Chien (San Diego, CA); Yu-Chen Sun (Bellevue, WA); Li Zhang (San Diego, CA); Sungwon Lee (San Diego, CA); Xiang Li (San Diego, CA); Hsiao-Chiang Chuang (San Diego, CA); Jianle Chen (San Diego, CA); Vadim Seregin (San Diego, CA)
Assignee: Qualcomm Incorporated
H04N19/52H04N19/176H04N19/44H04N19/70
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,602,180
App. No.
16/003,269
Granted
Mar 24, 2020
Kind
B2
Abstract

A video coder may determine a motion vector of a non-adjacent block of a current picture of the video data. The non-adjacent block is non-adjacent to a current block of the current picture. Furthermore, the video coder determines, based on the motion vector of the non-adjacent block, a motion vector predictor (MVP) for the current block. The video coder may determine a motion vector of the current block. The video coder may also determine a predictive block based on the motion vector of the current block.

Claims (198)

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

storing, by a video decoder, a plurality of non-adjacent motion vector predictor (MVP) candidates in a first-in, first-out (FIFO) buffer;

determining, by the video decoder, a motion vector of a non-adjacent block of a current picture of the video data, the non-adjacent block being non-adjacent to a current block of the current picture, wherein the plurality of non-adjacent MVP candidates include a non-adjacent MVP candidate specifying the motion vector of the non-adjacent block;

determining, by the video decoder, based on the motion vector of the non-adjacent block, a MVP for the current block;

determining, by the video decoder, based on the MVP for the current block, a motion vector of the current block;

determining, by the video decoder, a predictive block based on the motion vector of the current block;

reconstructing, by the video decoder, based on the predictive block, sample values of the current picture; and

updating, by the video decoder, the FIFO buffer to remove an earlier-added, non-adjacent MVP candidate from the FIFO buffer and to add a new MVP candidate to the FIFO buffer.

2. The method of claim 1 , wherein determining the MVP for the current block comprises:

generating, by the video decoder, based in part on the motion vector of the non-adjacent block, a list of MVP candidates, wherein the list of MVP candidates includes an MVP candidate that specifies the motion vector of the non-adjacent block; and

determining, by the video decoder, from among the MVP candidates in the list of MVP candidates, the MVP for the current block.

3. The method of claim 2 , wherein the non-adjacent block is a first non-adjacent block, the method further comprising:

ordering, by the video decoder, a plurality of non-adjacent spatial MVP (NA-SMVP) candidates in the list,

wherein, for each respective NA-SMVP candidate of the plurality of NA-SMVP candidates, the respective NA-SMVP candidate corresponds to a respective non-adjacent block of a plurality of non-adjacent blocks, the respective NA-SMVP specifying a motion vector of the respective non-adjacent block,

wherein the plurality of non-adjacent blocks includes the first non-adjacent block, and

wherein the plurality of NA-SMVP candidates are ordered in the list according to distance of corresponding non-adjacent blocks from the current block.

4. The method of claim 2 , wherein the non-adjacent block is a first non-adjacent block, the method further comprising:

determining, by the video decoder, a first plurality of non-adjacent spatial MVP (NA-SMVP) candidates,

wherein, for each respective NA-SMVP candidate of the first plurality of NA-SMVP candidates, the respective NA-SMVP candidate corresponds to a respective non-adjacent block of a plurality of non-adjacent blocks, the respective NA-SMVP specifying the motion vector of the respective non-adjacent block,

wherein the first plurality of non-adjacent blocks includes the first non-adjacent block; and

ordering, by the video decoder, a second plurality of non-adjacent spatial MVP (NA-SMVP) candidates in the list, the second plurality of NA-SMVP candidates comprising non-duplicative NA-SMVP candidates in the first plurality of NA-SMVP candidates,

wherein the second plurality of NA-SMVP candidates are ordered in the list according to a frequency with which motion vectors specified by the NA-SMVP candidates in the second plurality of NA-SMVP candidates are specified by NA-SMVP candidates in the first plurality of NA-SMVP candidates.

5. The method of claim 2 , further comprising applying, by the video decoder, a pruning process to the list, wherein the pruning process is adaptive to a block size of the current block.

6. The method of claim 1 , wherein the MVP for the current block is in affine mode.

7. The method of claim 1 , wherein determining the motion vector of the current block comprises:

determining, by the video decoder, the motion vector of the current block such that the motion vector of the current block specifies a motion vector of the MVP for the current block.

8. The method of claim 1 , wherein determining the motion vector of the current block comprises:

determining, by the video decoder, the motion vector of the current block such that the motion vector of the current block is equal to a motion vector of motion information of the MVP for the current block plus a motion vector difference (MVD).

9. The method of claim 1 , wherein the non-adjacent block is a block in a template that defines a fixed pattern of blocks relative to a position of the current block.

10. The method of claim 1 , further comprising:

determining, by the video decoder, a set of coding unit (CU)-level frame-rate up conversion (FRUC) motion vector candidates;

selecting, by the video decoder, a CU-level FRUC motion vector candidate from the set of CU-level FRUC motion vector candidates;

determining, by the video decoder, a CU-level motion vector at least in part by performing a local search starting from a selected CU-level FRUC motion vector candidate; and

refining, by the video decoder, the CU-level motion vector at a sub-CU level with a set of FRUC sub-CU level motion vector candidates,

wherein at least one of the set of CU-level FRUC motion vector candidates and the set of FRUC sub-CU level motion vector candidates includes a non-adjacent spatial motion vector predictor (NA-SMVP) that specifies the motion vector of the non-adjacent block.

11. The method of claim 1 , further comprising:

prior to determining the motion vector of the non-adjacent block and based on a distance between the non-adjacent block and the current block being greater than a threshold distance, modifying a position of the non-adjacent block.

12. The method of claim 11 , wherein modifying the position of the non-adjacent block comprises rounding a position of the non-adjacent block to a position on a first grid of blocks in the current picture coarser than a second grid of blocks in the current picture.

13. The method of claim 11 , wherein modifying the position of the non-adjacent block comprises clipping a position of the non-adjacent block to the distance threshold.

14. The method of claim 1 , further comprising:

prior to determining the motion vector of the non-adjacent block and based on a distance between the non-adjacent block and a current coding tree block being greater than a threshold distance, modifying a position of the non-adjacent block, the current coding tree block containing the current block.

15. A method of encoding video data, the method comprising:

storing, by a video encoder, a plurality of non-adjacent motion vector predictor (MVP) candidates in a first-in, first-out (FIFO) buffer;

determining, by the video encoder, a motion vector of a non-adjacent block of a current picture of the video data, the non-adjacent block being non-adjacent to a current block of the current picture, wherein the plurality of non-adjacent MVP candidates include a non-adjacent MVP candidate specifying the motion vector of the non-adjacent block;

determining, by the video encoder, based on the motion vector of the non-adjacent block, a MVP for the current block;

determining, by the video encoder, a motion vector of the current block, wherein the motion vector is equal to a motion vector of the MVP for the current block or is equal to the motion vector of the MVP for the current block plus a motion vector difference (MVD) signaled in a bitstream;

determining, by the video encoder, a predictive block based on the motion vector of the current block;

generating, by the video encoder, based on the predictive block, residual sample values; and

updating, by the video encoder, the FIFO buffer to remove an earlier-added, non-adjacent MVP candidate from the FIFO buffer and to add a new MVP candidate to the FIFO buffer.

16. The method of claim 15 , wherein determining the MVP for the current block comprises:

generating, by the video encoder, based in part on the motion vector of the non-adjacent block, a list of MVP candidates, wherein the list of MVP candidates includes an MVP candidate that specifies the motion vector of the non-adjacent block; and

determining, by the video encoder, from among the MVP candidates in the list of MVP candidates, the MVP for the current block.

17. The method of claim 16 , wherein the non-adjacent block is a first non-adjacent block, the method further comprising:

ordering, by the video encoder, a plurality of non-adjacent spatial MVP (NA-SMVP) candidates in the list,

wherein, for each respective NA-SMVP candidate of the plurality of NA-SMVP candidates, the respective NA-SMVP candidate corresponds to a respective non-adjacent block of a plurality of non-adjacent blocks, the respective NA-SMVP specifying a motion vector of the respective non-adjacent block,

wherein the plurality of non-adjacent blocks includes the first non-adjacent block, and

wherein the plurality of NA-SMVP candidates are ordered in the list according to distance of corresponding non-adjacent blocks from the current block.

18. The method of claim 16 , wherein the non-adjacent block is a first non-adjacent block, the method further comprising:

determining, by the video encoder, a first plurality of non-adjacent spatial MVP (NA-SMVP) candidates,

wherein, for each respective NA-SMVP candidate of the first plurality of NA-SMVP candidates, the respective NA-SMVP candidate corresponds to a respective non-adjacent block of a plurality of non-adjacent blocks, the respective NA-SMVP specifying a motion vector of the respective non-adjacent block,

wherein the first plurality of non-adjacent blocks includes the first non-adjacent block; and

including, by the video encoder, a second plurality of non-adjacent spatial MVP (NA-SMVP) candidates in the list, the second plurality of NA-SMVP candidates comprising non-duplicative NA-SMVP candidates in the first plurality of NA-SMVP candidates,

wherein the second plurality of NA-SMVP candidates are ordered in the list according to a frequency with which motion vectors specified by the NA-SMVP candidates in the second plurality of NA-SMVP candidates are specified by NA-SMVP candidates in the first plurality of NA-SMVP candidates.

19. The method of claim 16 , further comprising applying, by the video encoder, a pruning process to the list, wherein the pruning process is adaptive to a block size of the current block.

20. The method of claim 15 , wherein the MVP for the current block is in affine mode.

21. The method of claim 15 , wherein the non-adjacent block is a block in a template that defines a fixed pattern of blocks relative to a position of the current block.

22. The method of claim 15 , further comprising:

determining, by the video encoder, a set of coding unit (CU)-level frame-rate up conversion (FRUC) motion vector candidates;

selecting, by the video encoder, a CU-level FRUC motion vector candidate from the set of CU-level FRUC motion vector candidates;

determining, by the video encoder, a CU-level motion vector at least in part by performing a local search starting from a selected CU-level FRUC motion vector candidate; and

refining, by the video encoder, the CU-level motion vector at a sub-CU level with a set of FRUC sub-CU level motion vector candidates,

wherein at least one of the set of CU-level FRUC motion vector candidates and the set of FRUC sub-CU level motion vector candidates includes a non-adjacent spatial motion vector predictor (NA-SMVP) that specifies the motion vector of the non-adjacent block.

23. The method of claim 15 , further comprising:

prior to determining the motion vector of the non-adjacent block and based on a distance between the non-adjacent block and the current block being greater than a threshold distance, modifying a position of the non-adjacent block.

24. The method of claim 23 , wherein modifying the position of the non-adjacent block comprises rounding a position of the non-adjacent block to a position on a first grid of blocks in the current picture coarser than a second grid of blocks in the current picture.

25. The method of claim 23 , wherein modifying the position of the non-adjacent block comprises clipping a position of the non-adjacent block to the distance threshold.

26. The method of claim 15 , further comprising:

prior to determining the motion vector of the non-adjacent block and based on a distance between the non-adjacent block and a current coding tree block being greater than a threshold distance, modifying a position of the non-adjacent block, the current coding tree block containing the current block.

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

one or more storage media configured to store video data and a plurality of non-adjacent motion vector predictor (MVP) candidates in a first-in, first-out (FIFO) buffer; and

one or more processors configured to:

determine a motion vector of a non-adjacent block of a current picture of the video data, the non-adjacent block being non-adjacent to a current block of the current picture, wherein the plurality of non-adjacent MVP candidates include a non-adjacent MVP candidate specifying the motion vector of the non-adjacent block;

determine, based on the motion vector of the non-adjacent block, a MVP for the current block;

determine, based on the MVP for the current block, a motion vector of the current block;

determine a predictive block based on the motion vector of the current block;

reconstruct, based on the predictive block, sample values of the current picture; and

update the FIFO buffer to remove an earlier-added, non-adjacent MVP candidate from the FIFO buffer and to add a new MVP candidate to the FIFO buffer.

28. The apparatus of claim 27 , wherein the one or more processors are configured such that, as part of determining the MVP for the current block, the one or more processors:

generate, based in part on the motion vector of the non-adjacent block, a list of MVP candidates, wherein the list of MVP candidates includes an MVP candidate that specifies the motion vector of the non-adjacent block; and

determine, from among the MVP candidates in the list of MVP candidates, the MVP for the current block.

29. The apparatus of claim 28 , wherein the non-adjacent block is a first non-adjacent block, the one or more processors are further configured to:

order a plurality of non-adjacent spatial MVP (NA-SMVP) candidates in the list,

wherein, for each respective NA-SMVP candidate of the plurality of NA-SMVP candidates, the respective NA-SMVP candidate corresponds to a respective non-adjacent block of a plurality of non-adjacent blocks, the respective NA-SMVP specifying a motion vector of the respective non-adjacent block,

wherein the plurality of non-adjacent blocks includes the first non-adjacent block, and

wherein the plurality of NA-SMVP candidates are ordered in the list according to distance of corresponding non-adjacent blocks from the current block.

30. The apparatus of claim 28 , wherein the non-adjacent block is a first non-adjacent block, the one or more processors are further configured to:

determine a first plurality of non-adjacent spatial MVP (NA-SMVP) candidates,

wherein, for each respective NA-SMVP candidate of the first plurality of NA-SMVP candidates, the respective NA-SMVP candidate corresponds to a respective non-adjacent block of a plurality of non-adjacent blocks, the respective NA-SMVP specifying the motion vector of the respective non-adjacent block,

wherein the first plurality of non-adjacent blocks includes the first non-adjacent block; and

order a second plurality of non-adjacent spatial MVP (NA-SMVP) candidates in the list, the second plurality of NA-SMVP candidates comprising non-duplicative NA-SMVP candidates in the first plurality of NA-SMVP candidates,

wherein the second plurality of NA-SMVP candidates are ordered in the list according to a frequency with which motion vector specified by the NA-SMVP candidates in the second plurality of NA-SMVP candidates are specified by NA-SMVP candidates in the first plurality of NA-SMVP candidates.

31. The apparatus of claim 28 , wherein the one or more processors are further configured to apply a pruning process to the list, wherein the pruning process is adaptive to a block size of the current block.

32. The apparatus of claim 27 , wherein the MVP for the current block is in affine mode.

33. The apparatus of claim 27 , wherein the one or more processors are configured such that, as part of determining the motion vector of the current block, the one or more processors:

determine the motion vector of the current block such that the motion vector of the current block specifies a motion vector of the MVP candidate for the current block.

34. The apparatus of claim 27 , wherein the one or more processors are configured such that, as part of determining the motion vector of the current block, the one or more processors:

determine the motion vector of the current block such that the motion vector of the current block is equal to a motion vector of motion information of the MVP for the current block.

35. The apparatus of claim 27 , wherein the non-adjacent block is a block in a template that defines a fixed pattern of blocks relative to a position of the current block.

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

determine a set of coding unit (CU)-level frame-rate up conversion (FRUC) motion vector candidates;

select a CU-level FRUC motion vector candidate from the set of CU-level FRUC motion vector candidates;

determine a CU-level motion vector at least in part by performing a local search starting from a selected CU-level FRUC motion vector candidate; and

refine the CU-level motion vector at a sub-CU level with a set of FRUC sub-CU level motion vector candidates,

wherein at least one of the set of CU-level FRUC motion vector candidates and the set of FRUC sub-CU level motion vector candidates includes a non-adjacent spatial motion vector predictor (NA-SMVP) that specifies the motion vector of the non-adjacent block.

37. The apparatus of claim 27 , wherein the one or more processors are configured to:

prior to determining the motion vector of the non-adjacent block and based on a distance between the non-adjacent block and the current block being greater than a threshold distance, modify a position of the non-adjacent block.

38. The apparatus of claim 37 , wherein the one or more processors are configured such that, as part of modifying the position of the non-adjacent block, the one or more processors round a position of the non-adjacent block to a position on a first grid of blocks in the current picture coarser than a second grid of blocks in the current picture.

39. The apparatus of claim 37 , wherein the one or more processors are configured such that, as part of modifying the position of the non-adjacent block, the one or more processors clip a position of the non-adjacent block to the distance threshold.

40. The apparatus of claim 27 , wherein the one or more processors are configured to:

prior to determining the motion vector of the non-adjacent block and based on a distance between the non-adjacent block and a current coding tree block being greater than a threshold distance, modify a position of the non-adjacent block, the current coding tree block containing the current block.

41. The apparatus of claim 27 , wherein the apparatus comprises:

an integrated circuit,

a microprocessor, or

a wireless communication device.

42. An apparatus for encoding video data, the apparatus comprising:

one or more storage media configured to store video data and a plurality of non-adjacent motion vector predictor (MVP) candidates in a first-in, first-out (FIFO) buffer; and

one or more processors configured to:

determine a motion vector of a non-adjacent block of a current picture of the video data, the non-adjacent block being non-adjacent to a current block of the current picture, wherein the plurality of non-adjacent MVP candidates include a non-adjacent MVP candidate specifying the motion vector of the non-adjacent block;

determine, based on the motion vector of the non-adjacent block, a MVP for the current block;

determine a motion vector of the current block, wherein the motion vector is equal to a motion vector of the MVP for the current block or is equal to the motion vector of the MVP for the current block plus a motion vector difference (MVD) signaled in a bitstream;

determine a predictive block based on the motion vector of the current block;

generate, based on the predictive block, residual sample values; and

update the FIFO buffer to remove an earlier-added, non-adjacent MVP candidate from the FIFO buffer and to add a new MVP candidate to the FIFO buffer.

43. The apparatus of claim 42 , wherein the one or more processors are configured such that, as part of determining the MVP for the current block, the one or more processors:

generate, based in part on the motion vector of the non-adjacent block, a list of MVP candidates, wherein the list of MVP candidates includes an MVP candidate that specifies the motion vector of the non-adjacent block; and

determine, from among the MVP candidates in the list of MVP candidates, the MVP for the current block.

44. The apparatus of claim 43 , wherein the non-adjacent block is a first non-adjacent block, the one or more processors are further configured to:

order a plurality of non-adjacent spatial MVP (NA-SMVP) candidates in the list,

wherein, for each respective NA-SMVP candidate of the plurality of NA-SMVP candidates, the respective NA-SMVP candidate corresponds to a respective non-adjacent block of a plurality of non-adjacent blocks, the respective NA-SMVP specifying a motion vector of the respective non-adjacent block,

wherein the plurality of non-adjacent blocks includes the first non-adjacent block, and

wherein the plurality of NA-SMVP candidates are ordered in the list according to distance of corresponding non-adjacent blocks from the current block.

45. The apparatus of claim 44 , wherein the non-adjacent block is a first non-adjacent block, the one or more processors are further configured to:

determine a first plurality of non-adjacent spatial MVP (NA-SMVP) candidates,

wherein, for each respective NA-SMVP candidate of the first plurality of NA-SMVP candidates, the respective NA-SMVP candidate corresponds to a respective non-adjacent block of a plurality of non-adjacent blocks, the respective NA-SMVP specifying a motion vector of the respective non-adjacent block,

wherein the first plurality of non-adjacent blocks includes the first non-adjacent block; and

include a second plurality of non-adjacent spatial MVP (NA-SMVP) candidates in the list, the second plurality of NA-SMVP candidates comprising non-duplicative NA-SMVP candidates in the first plurality of NA-SMVP candidates,

wherein the second plurality of NA-SMVP candidates are ordered in the list according to a frequency with which motion vectors specified by the NA-SMVP candidates in the second plurality of NA-SMVP candidates are specified by NA-SMVP candidates in the first plurality of NA-SMVP candidates.

46. The apparatus of claim 43 , wherein the one or more processors are further configured to apply a pruning process to the list, wherein the pruning process is adaptive to a block size of the current block.

47. The apparatus of claim 42 , wherein the MVP for the current block is in affine mode.

48. The apparatus of claim 42 , wherein the non-adjacent block is a block in a template that defines a fixed pattern of blocks relative to a position of the current block.

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

determine a set of coding unit (CU)-level frame-rate up conversion (FRUC) motion vector candidates;

select a CU-level FRUC motion vector candidate from the set of CU-level FRUC motion vector candidates;

determine a CU-level motion vector at least in part by performing a local search starting from a selected CU-level FRUC motion vector candidate; and

refine the CU-level motion vector at a sub-CU level with a set of FRUC sub-CU level motion vector candidates,

wherein at least one of the set of CU-level FRUC motion vector candidates and the set of FRUC sub-CU level motion vector candidates includes a non-adjacent spatial motion vector predictor (NA-SMVP) that specifies the motion vector of the non-adjacent block.

50. The apparatus of claim 42 , wherein the one or more processors are configured to:

prior to determining the motion vector of the non-adjacent block and based on a distance between the non-adjacent block and the current block being greater than a threshold distance, modify a position of the non-adjacent block.

51. The apparatus of claim 50 , wherein the one or more processors are configured such that, as part of modifying the position of the non-adjacent block, the one or more processors round a position of the non-adjacent block to a position on a first grid of blocks in the current picture coarser than a second grid of blocks in the current picture.

52. The apparatus of claim 50 , wherein the one or more processors are configured such that, as part of modifying the position of the non-adjacent block, the one or more processors clip a position of the non-adjacent block to the distance threshold.

53. The apparatus of claim 42 , wherein the one or more processors are configured to:

prior to determining the motion vector of the non-adjacent block and based on a distance between the non-adjacent block and a current coding tree block being greater than a threshold distance, modify a position of the non-adjacent block, the current coding tree block containing the current block.

54. The apparatus of claim 42 , wherein the apparatus comprises:

an integrated circuit,

a microprocessor, or

a wireless communication device.

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

means for storing a plurality of non-adjacent motion vector predictor (MVP) candidates in a first-in, first-out (FIFO) buffer;

means for determining a motion vector of a non-adjacent block of a current picture of the video data, the non-adjacent block being non-adjacent to a current block of the current picture;

means for determining, based on the motion vector of the non-adjacent block, a MVP for the current block, wherein the plurality of non-adjacent MVP candidates include a non-adjacent MVP candidate specifying the motion vector of the non-adjacent block;

means for determining, based on the MVP for the current block, a motion vector of the current block;

means for determining a predictive block based on the motion vector of the current block;

means for reconstructing, based on the predictive block, sample values of the current picture; and

means for updating the FIFO buffer to remove an earlier-added, non-adjacent MVP candidate from the FIFO buffer and to add a new MVP candidate to the FIFO buffer.

56. An apparatus for encoding video data, the apparatus comprising:

means for storing a plurality of non-adjacent motion vector predictor (MVP) candidates in a first-in, first-out (FIFO) buffer;

means for determining a motion vector of a non-adjacent block of a current picture of the video data, the non-adjacent block being non-adjacent to a current block of the current picture, wherein the plurality of non-adjacent MVP candidates include a non-adjacent MVP candidate specifying the motion vector of the non-adjacent block;

means for determining, based on the motion vector of the non-adjacent block, a MVP for the current block;

means for determining a motion vector of the current block, wherein the motion vector is equal to a motion vector of the MVP for the current block or is equal to the motion vector of the MVP for the current block plus a motion vector difference (MVD) signaled in a bitstream;

means for determining a predictive block based on the motion vector of the current block;

means for generating, based on the predictive block, residual sample values; and

means for updating, by the video decoder, the FIFO buffer to remove an earlier-added, non-adjacent MVP candidate from the FIFO buffer and to add a new MVP candidate to the FIFO buffer.

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

store a plurality of non-adjacent motion vector predictor (MVP) candidates in a first-in, first-out (FIFO) buffer;

determine a motion vector of a non-adjacent block of a current picture of the video data, the non-adjacent block being non-adjacent to a current block of the current picture, wherein the plurality of non-adjacent MVP candidates include a non-adjacent MVP candidate specifying the motion vector of the non-adjacent block;

determine, based on the motion vector of the non-adjacent block, a MVP for the current block;

determine, based on the MVP for the current block, a motion vector of the current block;

determine a predictive block based on the motion vector of the current block;

reconstruct, based on the predictive block, sample values of the current picture; and

update the FIFO buffer to remove an earliest-added non-adjacent MVP candidate from the FIFO buffer and add a new MVP candidate to the FIFO buffer.

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

store a plurality of non-adjacent motion vector predictor (MVP) candidates in a first-in, first-out (FIFO) buffer;

determine a motion vector of a non-adjacent block of a current picture of the video data, the non-adjacent block being non-adjacent to a current block of the current picture, wherein the plurality of non-adjacent MVP candidates include a non-adjacent MVP candidate specifying the motion vector of the non-adjacent block;

determine, based on the motion vector of the non-adjacent block, a MVP for the current block;

determine a motion vector of the current block, wherein the motion vector is equal to a motion vector of the MVP for the current block or is equal to the motion vector of the MVP for the current block plus a motion vector difference (MVD) signaled in a bitstream;

determine a predictive block based on the motion vector of the current block;

generate, based on the predictive block, residual sample values; and

update the FIFO buffer to remove an earlier-added, non-adjacent MVP candidate from the FIFO buffer and add a new MVP candidate to the FIFO buffer.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE CONVEYING PART NAME PREVIOUSLY RECORDED AT REEL: 048118 FRAME: 00484. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Mar 4, 2019
From: CHEN, YI-WEN; CHIEN, WEI-JUNG; SUN, YU-CHEN; ZHANG, LI; LEE, SUNGWON; LI, XIANG; CHUANG, HSIAO-CHIANG; CHEN, JIANLE; SEREGIN, VADIM; KARCZEWICZ, MARTA
To: QUALCOMM INCORPORATED
Reel/Frame 048501/0688 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 23, 2019
From: CHEN, WI-WEN; CHIEN, WEI-JUNG; SUN, YU-CHEN; ZHANG, LI; LEE, SUNGWON; LI, XIANG; CHUANG, HSIAO-CHIANG; CHEN, JIANLE; SEREGIN, VADIM; KARCZEWICZ, MARTA
To: QUALCOMM INCORPORATED
Reel/Frame 048118/0084 →
Continuity (2)
Provisional Application 62519007 · Jun 13, 2017
Related Publication 20180359483A1 · Dec 13, 2018
Cited By (11)
US 12,244,789 US 12,261,998 US 12,348,762 US 12,355,953 US 12,355,979 US 12,382,018 US 12,401,795 US 12,519,972 US 12,581,089 US 12,647,601 US 12,684,157