IP Library › Granted Patent US 11,218,723
Granted Patent B2
US 11,218,723 · App. 16/819,955 · Granted Jan 4, 2022

Motion vector prediction

Inventors: Yi-Wen Chen (San Diego, CA); Wei-Jung Chien (San Diego, CA); Yu-Chen Sun (Bellevue, WA); Li Zhang (San Diego, CA); Sungwon Lee (Huntington Beach, CA); Xiang Li (Saratoga, CA); Hsiao-Chiang Chuang (San Diego, CA); Jianle Chen (San Diego, CA); Vadim Seregin (San Diego, CA); Marta Karczewicz (San Diego, CA)
Assignee: Qualcomm Incorporated
H04N19/52H04N19/176H04N19/44H04N19/54H04N19/70H04N19/593
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,218,723
App. No.
16/819,955
Granted
Jan 4, 2022
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 (104)

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

deriving, by a video decoder, a plurality of non-adjacent spatial motion vector predictors (NA-SMVPs) from motion information of spatially non-adjacent blocks located within a same current picture as a current block of the current picture,

wherein, for each respective NA-SMVP of the plurality of NA-SMVPs, the respective NA-SMVP corresponds to a respective non-adjacent block in a fixed pattern of non-adjacent blocks of the current picture, the respective NA-SMVP specifying a motion vector of the respective non-adjacent block;

determining, by the video decoder, a motion vector predictor (MVP) for the current block based on a NA-SMVP in the plurality of NA-SMVPs, wherein determining the MVP for the current block comprises:

generating, by the video decoder, a list of MVP candidates, wherein the list of MVP candidates includes the plurality of NA-SMVPs;

ordering, by the video decoder, the plurality of NA-SMVPs in the list of MVP candidates according to distances of corresponding non-adjacent blocks of the NA-SMVPs from the current block; and

determining, by the video decoder, from among the MVP candidates in the list of MVP candidates, the 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; and

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

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

3. 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 the MVP for the current block.

4. 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 the MVP for the current block plus a motion vector difference (MVD).

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

deriving, by a video encoder, a plurality of non-adjacent spatial motion vector predictors (NA-SMVPs) from motion information of spatially non-adjacent blocks located within a same current picture as a current block of the current picture,

wherein, for each respective NA-SMVP of the plurality of NA-SMVPs, the respective NA-SMVP corresponds to a respective non-adjacent block in a fixed pattern of non-adjacent blocks of the current picture, the respective NA-SMVP specifying a motion vector of the respective non-adjacent block;

determining, by the video encoder, a motion vector predictor (MVP) for the current block based on a NA-SMVP in the plurality of NA-SMVPs, wherein determining the MVP for the current block comprises:

generating, by the video encoder, a list of MVP candidates, wherein the list of MVP candidates includes the plurality of NA-SMVPs;

ordering, by the video encoder, the plurality of NA-SMVPs in the list of MVP candidates according to distances of corresponding non-adjacent blocks of the NA-SMVPs from the current block; and

determining, by the video encoder, from among the MVP candidates in the list of MVP candidates, the 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; and

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

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

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

one or more storage media configured to store video data; and

one or more processors implemented in circuitry, the one or more processors configured to:

derive a plurality of non-adjacent spatial motion vector predictors (NA-SMVPs) from motion information of spatially non-adjacent blocks located within a same current picture as a current block of the current picture,

wherein, for each respective NA-SMVP of the plurality of NA-SMVPs, the respective NA-SMVP corresponds to a respective non-adjacent block in a fixed pattern of non-adjacent blocks of the current picture, the respective NA-SMVP specifying a motion vector of the respective non-adjacent block;

determine a motion vector predictor (MVP) for the current block based on a NA-SMVP in the plurality of NA-SMVPs, 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 a list of MVP candidates, wherein the list of MVP candidates includes the plurality of NA-SMVPs;

order the plurality of NA-SMVPs in the list of MVP candidates according to distances of corresponding non-adjacent blocks of the NA-SMVPs from the current block; and

determine, from among the MVP candidates in the list of MVP candidates, the 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; and

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

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

9. The apparatus of claim 7 , 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 the MVP candidate for the current block.

10. The apparatus of claim 7 , 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 the MVP for the current block plus a motion vector difference (MVD).

11. The apparatus of claim 7 , wherein the apparatus comprises:

an integrated circuit,

a microprocessor, or

a wireless communication device.

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

one or more storage media configured to store video data; and

one or more processors implemented in circuitry, the one or more processors configured to:

derive a plurality of non-adjacent spatial motion vector predictors (NA-SMVPs) from motion information of spatially non-adjacent blocks located within a same current picture as a current block of the current picture,

wherein, for each respective NA-SMVP of the plurality of NA-SMVPs, the respective NA-SMVP corresponds to a respective non-adjacent block in a fixed pattern of non-adjacent blocks of the current picture, the respective NA-SMVP specifying a motion vector of the respective non-adjacent block;

determine a motion vector predictor (MVP) for the current block based on a NA-SMVP in the plurality of NA-SMVPs, 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 a list of MVP candidates, wherein the list of MVP candidates includes the plurality of NA-SMVPs;

order the plurality of NA-SMVPs in the list of MVP candidates according to distances of corresponding non-adjacent blocks of the NA-SMVPs from the current block; and

determine, from among the MVP candidates in the list of MVP candidates, the 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; and

generate, based on the predictive block, residual sample values.

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

14. The apparatus of claim 12 , wherein the apparatus comprises:

an integrated circuit,

a microprocessor, or

a wireless communication device.

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

means for deriving a plurality of non-adjacent spatial motion vector predictors (NA-SMVPs) from motion information of spatially non-adjacent blocks located within a same current picture as a current block of the current picture,

wherein, for each respective NA-SMVP of the plurality of NA-SMVPs, the respective NA-SMVP corresponds to a respective non-adjacent block in a fixed pattern of non-adjacent blocks of the current picture, the respective NA-SMVP specifying a motion vector of the respective non-adjacent block;

means for determining a motion vector predictor (MVP) for the current block based on a NA-SMVP in the plurality of NA-SMVPs, wherein the means for determining the MVP for the current block comprises:

means for generating a list of MVP candidates, wherein the list of MVP candidates includes the plurality of NA-SMVPs;

means for ordering the plurality of NA-SMVPs in the list of MVP candidates according to distances of corresponding non-adjacent blocks of the NA-SMVPs from the current block; and

means for determining, from among the MVP candidates in the list of MVP candidates, the MVP for the current 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; and

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

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

means for deriving a plurality of non-adjacent spatial motion vector predictors (NA-SMVPs) from motion information of spatially non-adjacent blocks located within a same current picture as a current block of the current picture,

wherein, for each respective NA-SMVP of the plurality of NA-SMVPs, the respective NA-SMVP corresponds to a respective non-adjacent block in a fixed pattern of non-adjacent blocks of the current picture, the respective NA-SMVP specifying a motion vector of the respective non-adjacent block;

means for determining a motion vector predictor (MVP) for the current block based on a NA-SMVP in the plurality of NA-SMVPs, wherein the means for determining the MVP for the current block comprises:

means for generating a list of MVP candidates, wherein the list of MVP candidates includes the plurality of NA-SMVPs;

means for ordering the plurality of NA-SMVPs in the list of MVP candidates according to distances of corresponding non-adjacent blocks of the NA-SMVPs from the current block; and

means for determining, from among the MVP candidates in the list of MVP candidates, the 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; and

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

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

derive a plurality of non-adjacent spatial motion vector predictors (NA-SMVPs) from motion information of spatially non-adjacent blocks located within a same current picture as a current block of the current picture,

wherein, for each respective NA-SMVP of the plurality of NA-SMVPs, the respective NA-SMVP corresponds to a respective non-adjacent block in a fixed pattern of non-adjacent blocks of the current picture, the respective NA-SMVP specifying a motion vector of the respective non-adjacent block;

determine a motion vector predictor (MVP) for the current block based on a NA-SMVP in the plurality of NA-SMVPs, wherein the instructions that cause the one or more processors to determine the MVP for the current block comprise instructions that, when executed, cause the one or more processors to:

generate a list of MVP candidates, wherein the list of MVP candidates includes the plurality of NA-SMVPs;

order the plurality of NA-SMVPs in the list of MVP candidates according to distances of corresponding non-adjacent blocks of the NA-SMVPs from the current block; and

determine, from among the MVP candidates in the list of MVP candidates, the 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; and

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

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

derive a plurality of non-adjacent spatial motion vector predictors (NA-SMVPs) from motion information of spatially non-adjacent blocks located within a same current picture as a current block of the current picture,

wherein, for each respective NA-SMVP of the plurality of NA-SMVPs, the respective NA-SMVP corresponds to a respective non-adjacent block in a fixed pattern of non-adjacent blocks of the current picture, the respective NA-SMVP specifying a motion vector of the respective non-adjacent block;

determine a motion vector predictor (MVP) for the current block based on a NA-SMVP in the plurality of NA-SMVPs, wherein the instructions that cause the one or more processors to determine the MVP for the current block comprise instructions that, when executed, cause the one or more processors to:

generate a list of MVP candidates, wherein the list of MVP candidates includes the plurality of NA-SMVPs;

order the plurality of NA-SMVPs in the list of MVP candidates according to distances of corresponding non-adjacent blocks of the NA-SMVPs from the current block; and

determine, from among the MVP candidates in the list of MVP candidates, the 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; and

generate, based on the predictive block, residual sample values.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 16, 2020
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 052178/0511 →
Continuity (3)
Continuation 16003269 · Jun 8, 2018
Provisional Application 62519007 · Jun 13, 2017
Related Publication 20200221116A1 · Jul 9, 2020
Cited By (1)
US 12,647,601