IP Library Granted Patent US 9,131,239
Granted Patent B2
US 9,131,239 · App. 13/487,914 · Granted Sep 8, 2015

Unified merge mode and adaptive motion vector prediction mode candidates selection

Inventors: Yunfei Zheng (Cupertino, CA); Xianglin Wang (San Diego, CA); Marta Karczewicz (San Diego, CA)
Assignee: QUALCOMM Incorporated
H04N19/40H04N19/52H04N19/00472H04N19/00696
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 9,131,239
App. No.
13/487,914
Granted
Sep 8, 2015
Kind
B2
Abstract

A unified candidate block set for both adaptive motion vector prediction (AMVP) mode and merge mode for use in inter-prediction is proposed. In general, the same candidate block set is used regardless of which motion vector prediction mode (e.g., merge mode or AMVP mode) is used. In other examples of this disclosure, one candidate block in a set of candidate blocks is designated as an additional candidate block. The additional candidate block is used if one of the other candidate blocks is unavailable. Also, the disclosure proposes a checking pattern where the left candidate block is checked before the below left candidate block. Also, the above candidate block is checked before the right above candidate block.

Claims (100)

1. A method of encoding a motion vector in a video encoding process comprising:

determining one of a plurality of modes for a motion vector prediction process for a current block of video data to be encoded, wherein the plurality of modes includes a merge mode and an adaptive motion vector prediction mode; and

performing the motion vector prediction process for the current block of video data using the determined mode and a set of candidate blocks, wherein the set of candidate blocks is the same for each of the plurality of modes, and

wherein the set of candidate blocks includes a left above candidate block, an above candidate block, a right above candidate block, a left candidate block, a below left candidate block, and a temporal candidate block.

2. The method of claim 1 , wherein the determined mode is the merge mode and wherein the method further comprises:

determining a candidate motion vector from the set of candidate blocks that satisfies a rate-distortion threshold; and

signaling an index identifying the candidate motion vector.

3. The method of claim 1 , wherein the determined mode is the adaptive motion vector prediction mode and wherein the method further comprises:

determining a candidate motion vector for each candidate block in the set of candidate blocks;

calculating a motion vector difference between a motion vector for the current block and the candidate motion vector for each of the candidate blocks according to a checking pattern;

selecting one of the candidate motion vectors based on the calculated motion vector differences; and

signaling an index identifying the selected one of the candidate motion vectors, the motion vector difference calculated with respect to the selected one of the candidate motion vectors, the reference frame, and the prediction direction.

4. The method of claim 3 ,

wherein the checking pattern proceeds in an order starting from the left candidate block.

5. The method of claim 3 ,

wherein the checking pattern proceeds in the following order: left candidate block proceeds below left candidate block, above candidate block proceeds right above candidate block.

6. The method of claim 3 ,

wherein the checking pattern proceeds in the following order: left candidate block, below left candidate block, above candidate block, right above candidate block, left above candidate block, temporal candidate block.

7. An apparatus configured to encode a motion vector in a video encoding process comprising:

a memory configured to store video data; and

a video encoder in communication with the memory, the video encoder configured to:

determine one of a plurality of modes for a motion vector prediction process for a current block of the video data to be encoded, wherein the plurality of modes includes a merge mode and an adaptive motion vector prediction mode; and

perform the motion vector prediction process for the current block of the video data using the determined mode and a set of candidate blocks, wherein the set of candidate blocks is the same for each of the plurality of modes, and

wherein the set of candidate blocks includes a left above candidate block, an above candidate block, a right above candidate block, a left candidate block, a below left candidate block, and a temporal candidate block.

8. The apparatus of claim 7 , wherein the determined mode is the merge mode and wherein the video encoder is further configured to:

determine a candidate motion vector from the set of candidate blocks that satisfies a rate-distortion threshold; and

signal an index identifying the candidate motion vector.

9. The apparatus of claim 7 , wherein the determined mode is the adaptive motion vector prediction mode and wherein the video encoder is further configured to:

determine a candidate motion vector for each candidate block in the set of candidate blocks;

calculate a motion vector difference between a motion vector for the current block and the candidate motion vector for each of the candidate blocks according to a checking pattern;

select one of the candidate motion vectors based on the calculated motion vector differences; and

signal an index identifying the selected one of the candidate motion vectors, the motion vector difference calculated with respect to the selected one of the candidate motion vectors, the reference frame, and the prediction direction.

10. The apparatus of claim 9 ,

wherein the checking pattern proceeds in an order starting from the left candidate block.

11. The apparatus of claim 9 ,

wherein the checking pattern proceeds in the following order: left candidate block proceeds below left candidate block, above candidate block proceeds right above candidate block.

12. The apparatus of claim 9 ,

wherein the checking pattern proceeds in the following order: left candidate block, below left candidate block, above candidate block, right above candidate block, left above candidate block, temporal candidate block.

13. An apparatus configured to encode a motion vector in a video encoding process comprising:

means for determining one of a plurality of modes for a motion vector prediction process for a current block of video data to be encoded, wherein the plurality of modes includes a merge mode and an adaptive motion vector prediction mode; and

means for performing the motion vector prediction process for the current block of video data using the determined mode and a set of candidate blocks, wherein the set of candidate blocks is the same for each of the plurality of modes, and

wherein the set of candidate blocks includes a left above candidate block, an above candidate block, a right above candidate block, a left candidate block, a below left candidate block, and a temporal candidate block.

14. A non-transitory computer-readable storage medium having stored thereon instructions that, when executed, cause one or more processors of a device for encoding video data to:

determine one of a plurality of modes for a motion vector prediction process for a current block of video data to be encoded, wherein the plurality of modes includes a merge mode and an adaptive motion vector prediction mode; and

perform the motion vector prediction process for the current block of video data using the determined mode and a set of candidate blocks, wherein the set of candidate blocks is the same for each of the plurality of modes, and

wherein the set of candidate blocks includes a left above candidate block, an above candidate block, a right above candidate block, a left candidate block, a below left candidate block, and a temporal candidate block.

15. A method of decoding a motion vector in a video decoding process comprising:

determining one of a plurality of modes for a motion vector prediction process for a current block of video data, wherein the plurality of modes includes a merge mode and an adaptive motion vector prediction mode; and

determining a candidate block from a set of candidate blocks, wherein the set of candidate blocks is the same for each of the plurality of modes, and wherein information associated with the candidate block is used to decode a motion vector for the current block, and

wherein the set of candidate blocks includes a left above candidate block, an above candidate block, a right above candidate block, a left candidate block, a below left candidate block, and a temporal candidate block.

16. The method of claim 15 , further comprising:

receiving a syntax element indicating the motion vector prediction process, wherein the received syntax element indicates the motion vector prediction process is the merge mode;

receiving an index indicating the candidate block;

retrieving a motion vector, a reference frame, and a prediction direction associated with the candidate block having the received index; and

performing an inter-prediction process on the current block using the retrieved motion vector, reference frame, and prediction direction.

17. The method of claim 15 , the method further comprising:

receiving a syntax element indicating the motion vector prediction process, wherein the received syntax element indicates the motion vector prediction process is the adaptive motion vector prediction mode;

receiving an index indicating the candidate block;

receiving a reference frame index, a motion vector difference, and a syntax element indicating a prediction direction;

retrieving a candidate motion vector associated with the candidate block having the received index;

calculating a motion vector for the current block using the candidate motion vector and the motion vector difference; and

performing an inter-prediction process using the calculated motion vector, the received reference frame index, and the received prediction direction.

18. The method of claim 17 ,

wherein the checking pattern proceeds in an order starting from the left candidate block.

19. The method of claim 17 ,

wherein the checking pattern proceeds in the following order: left candidate block proceeds below left candidate block, above candidate block proceeds right above candidate block.

20. The method of claim 17 ,

wherein the checking pattern proceeds in the following order: left candidate block, below left candidate block, above candidate block, right above candidate block, left above candidate block, temporal candidate block.

21. An apparatus configured to decode a motion vector in a video decoding process comprising:

a memory configured to store video data; and

a video decoder in communication with the memory, the video decoder configured to:

determine one of a plurality of modes for a motion vector prediction process for a current block of the video data, wherein the plurality of modes includes a merge mode and an adaptive motion vector prediction mode; and

determine a candidate block from a set of candidate blocks, wherein the set of candidate blocks is the same for each of the plurality of modes, and wherein information associated with the candidate block is used to decode a motion vector for the current block, and

wherein the set of candidate blocks includes a left above candidate block, an above candidate block, a right above candidate block, a left candidate block, a below left candidate block, and a temporal candidate block.

22. The apparatus of claim 21 , wherein the video decoder is further configured to:

receive a syntax element indicating the motion vector prediction process, wherein the received syntax element indicates the motion vector prediction process is the merge mode;

receive an index indicating the candidate block;

retrieve a motion vector, a reference frame, and a prediction direction associated with the candidate block having the received index; and

perform an inter-prediction process on the current block using the retrieved motion vector, reference frame, and prediction direction.

23. The apparatus of claim 21 , wherein the video decoder is further configured to:

receive a syntax element indicating the motion vector prediction process, wherein the received syntax element indicates the motion vector prediction process is the adaptive motion vector prediction mode;

receive an index indicating the candidate block;

receive a reference frame index, a motion vector difference, and a syntax element indicating a prediction direction;

retrieve a candidate motion vector associated with the candidate block having the received index;

calculate a motion vector for the current block using the candidate motion vector and the motion vector difference; and

perform an inter-prediction process using the calculated motion vector, the received reference frame index, and the received prediction direction.

24. The apparatus of claim 23 ,

wherein the checking pattern proceeds in an order starting from the left candidate block.

25. The apparatus of claim 23 ,

wherein the checking pattern proceeds in the following order: left candidate block proceeds below left candidate block, above candidate block proceeds right above candidate block.

26. The apparatus of claim 23 ,

wherein the checking pattern proceeds in the following order: left candidate block, below left candidate block, above candidate block, right above candidate block, left above candidate block, temporal candidate block.

27. An apparatus configured to decode a motion vector in a video decoding process comprising:

means for determining one of a plurality of modes for a motion vector prediction process for a current block of video data, wherein the plurality of modes includes a merge mode and an adaptive motion vector prediction mode; and

means for determining a candidate block from a set of candidate blocks, wherein the set of candidate blocks is the same for each of the plurality of modes, and wherein information associated with the candidate block is used to decode a motion vector for the current block, and

wherein the set of candidate blocks includes a left above candidate block, an above candidate block, a right above candidate block, a left candidate block, a below left candidate block, and a temporal candidate block.

28. A non-transitory computer-readable storage medium having stored thereon instructions that, when executed, cause one or more processors of a device for decoding video data to:

determine one of a plurality of modes for a motion vector prediction process for a current block of video data, wherein the plurality of modes includes a merge mode and an adaptive motion vector prediction mode; and

determine a candidate block from a set of candidate blocks, wherein the set of candidate blocks is the same for each of the plurality of modes, and wherein information associated with the candidate block is used to decode a motion vector for the current block, and

wherein the set of candidate blocks includes a left above candidate block, an above candidate block, a right above candidate block, a left candidate block, a below left candidate block, and a temporal candidate block.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 4, 2012
From: ZHENG, YUNFEI; WANG, XIANGLIN; KARCZEWICZ, MARTA
To: QUALCOMM INCORPORATED
Reel/Frame 028312/0912 →
Continuity (4)
Provisional Application 61499114 · Jun 20, 2011
Provisional Application 61506558 · Jul 11, 2011
Provisional Application 61509007 · Jul 18, 2011
Related Publication 20120320968A1 · Dec 20, 2012