IP Library Granted Patent US 9,083,983
Granted Patent B2
US 9,083,983 · App. 13/532,392 · Granted Jul 14, 2015

Motion vector predictor candidate clipping removal for video coding

Inventors: Muhammed Zeyd Coban (Carlsbad, CA); Marta Karczewicz (San Diego, CA)
Assignee: QUALCOMM Incorporated
H04N19/55H04N19/51H04N19/52H04N19/563
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,083,983
App. No.
13/532,392
Granted
Jul 14, 2015
Kind
B2
Abstract

This disclosure describes techniques for coding a video block based on an unclipped version of a motion vector predictor candidate. The techniques include determining a motion vector predictor candidate list including motion vector predictor candidates from neighboring video blocks without clipping the motion vector predictor candidates. More specifically, if one of the motion vector predictor candidates points to a prediction block located outside of a reference picture boundary relative to the current video block, the techniques allow an unclipped version of the motion vector predictor candidate to be included in the candidate list. The current video block is then coded based on a determined unclipped motion vector predictor candidate of the candidate list. Elimination of the motion vector predictor candidate clipping process reduces complexity at both the video encoder and the video decoder.

Claims (68)

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

determining a motion vector predictor candidate list that includes motion vector predictor candidates specifying motion vectors from neighboring video blocks of a current video block of the video data, wherein the motion vector predictor candidates are not clipped and the candidate list includes at least one motion vector predictor candidate that, relative to the current video block, identifies a prediction block located outside a boundary of a reference picture;

decoding, from a bitstream, a motion vector predictor index that identifies a determined unclipped motion vector predictor candidate in the motion vector predictor candidate list;

decoding, from the bitstream, a motion vector difference between the determined unclipped motion vector predictor candidate and a motion vector for the current video block, wherein the motion vector for the current video block identifies a same or different prediction block located outside the boundary of the reference picture;

determining the motion vector for the current video block based on the motion vector difference and the determined unclipped motion vector predictor candidate in the motion vector predictor candidate list;

clipping the motion vector for the current video block such that the prediction block identified by the clipped motion vector is relocated within a padding region around the reference picture; and

decoding the current video block with respect to the relocated prediction block, wherein the relocated prediction block includes padding region values.

2. The method of claim 1 , wherein the padding region values of the relocated prediction block comprise replicated pixel values from an edge of the reference picture.

3. The method of claim 1 , wherein the neighboring video blocks comprise one or more of spatial neighboring video blocks of the current video block and temporal neighboring video blocks of a collocated block of the current video block.

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

means for determining a motion vector predictor candidate list that includes motion vector predictor candidates specifying motion vectors from neighboring video blocks of a current video block of the video data, wherein the motion vector predictor candidates are not clipped and the motion vector predictor candidate list includes at least one motion vector predictor candidate that, relative to the current video block, identifies a prediction block located outside a boundary of a reference picture;

means for decoding, from a bitstream, a motion vector predictor index that identifies a determined unclipped motion vector predictor candidate in the motion vector predictor candidate list;

means for decoding, from the bitstream, a motion vector difference between the determined unclipped motion vector predictor candidate and a motion vector for the current video block, wherein the motion vector for the current video block identifies a same or different prediction block located outside the boundary of the reference picture;

means for determining the motion vector for the current video block based on the motion vector difference and the determined unclipped motion vector predictor candidate in the motion vector predictor candidate list;

means for clipping the motion vector for the current video block such that the prediction block identified by the clipped motion vector is relocated within a padding region around the reference picture; and

means for decoding the current video block with respect to the relocated prediction block, wherein the relocated prediction block includes padding region values.

5. The apparatus of claim 4 , wherein the padding region values of the relocated prediction block comprise replicated pixel values from an edge of the reference picture.

6. The apparatus of claim 4 , wherein the neighboring video blocks comprise one or more of spatial neighboring video blocks of the current video block and temporal neighboring video blocks of a collocated block of the current video block.

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

a memory configured to store the video data; and

one or more processors configured to:

determine a motion vector predictor candidate list that includes motion vector predictor candidates specifying motion vectors from neighboring video blocks of a current video block of the video data, wherein the motion vector predictor candidates are not clipped and the motion vector predictor candidate list includes at least one motion vector predictor candidate that, relative to the current video block, identifies a prediction block located outside a boundary of a reference picture;

decode, from a bitstream, a motion vector predictor index that identifies a determined unclipped motion vector predictor candidate in the motion vector predictor candidate list;

decode, from the bitstream, a motion vector difference between the determined unclipped motion vector predictor candidate and a motion vector for the current video block, wherein the motion vector for the current video block identifies a same or different prediction block located outside the boundary of the reference picture;

determine the motion vector for the current video block based on the motion vector difference and the determined unclipped motion vector predictor candidate in the motion vector predictor candidate list;

clip the motion vector for the current video block such that the prediction block identified by the clipped motion vector is relocated within a padding region around the reference picture; and

decode the current video block with respect to the relocated prediction block, wherein the relocated prediction block includes padding region values.

8. The apparatus of claim 7 , wherein the padding region values of the relocated prediction block comprise replicated pixel values from an edge of the reference picture.

9. The apparatus of claim 7 , wherein the neighboring video blocks comprise one or more of spatial neighboring video blocks of the current video block and temporal neighboring video blocks of a collocated block of the current video block.

10. A non-transitory computer-readable medium having instructions stored thereon that, when executed, cause a processor configured to decode video data to:

determine a motion vector predictor candidate list that includes motion vector predictor candidates specifying motion vectors from neighboring video blocks of a current video block of the video data, wherein the motion vector predictor candidates are not clipped and the motion vector predictor candidate list includes at least one motion vector predictor candidate that, relative to the current video block, identifies a prediction block located outside a boundary of a reference picture;

decode, from a bitstream, a motion vector predictor index that identifies a determined unclipped motion vector predictor candidate in the motion vector predictor candidate list;

decode, from the bitstream, a motion vector difference between the determined unclipped motion vector predictor candidate and a motion vector for the current video block, wherein the motion vector for the current video block identifies a same or different prediction block located outside the boundary of the reference picture;

determine the motion vector for the current video block based on the motion vector difference and the determined unclipped motion vector predictor candidate in the motion vector predictor candidate list;

clip the motion vector for the current video block such that the prediction block identified by the clipped motion vector is relocated within a padding region around the reference picture; and

decode the current video block with respect to the relocated prediction block, wherein the relocated prediction block includes padding region values.

11. The non-transitory computer-readable medium of claim 10 , wherein the padding region values of the relocated prediction block comprise replicated pixel values from an edge of the reference picture.

12. The non-transitory computer-readable medium of claim 10 , wherein the neighboring video blocks comprise one or more of spatial neighboring video blocks of the current video block and temporal neighboring video blocks of a collocated block of the current video block.

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

determining a motion vector predictor candidate list that includes motion vector predictor candidates specifying motion vectors from neighboring video blocks of a current video block of the video data, wherein the motion vector predictor candidates are not clipped and the motion vector predictor candidate list includes at least one motion vector predictor candidate that, relative to the current video block, identifies a prediction block located outside a boundary of a reference picture;

signaling, in a bitstream, a motion vector predictor index that identifies a determined unclipped motion vector predictor candidate in the motion vector predictor candidate list;

signaling, in the bitstream, a motion vector difference between the determined unclipped motion vector predictor candidate and a motion vector for the current video block, wherein the motion vector for the current video block identifies a same or different prediction block located outside the boundary of the reference picture;

clipping the motion vector for the current video block such that the prediction block identified by the clipped motion vector is relocated within a padding region around the reference picture; and

encoding the current video block with respect to the relocated prediction block, wherein the relocated prediction block includes padding region values.

14. The method of claim 13 , wherein the padding region values of the relocated prediction block comprise replicated pixel values from an edge of the reference picture.

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

means for determining a motion vector predictor candidate list that includes motion vector predictor candidates specifying motion vectors from neighboring video blocks of a current video block of the video data, wherein the motion vector predictor candidates are not clipped and the motion vector predictor candidate list includes at least one motion vector predictor candidate that, relative to the current video block, identifies a prediction block located outside a boundary of a reference picture;

means for signaling, in a bitstream, a motion vector predictor index that identifies a determined unclipped motion vector predictor candidate in the motion vector predictor candidate list;

means for signaling, in the bitstream, a motion vector difference between the determined unclipped motion vector predictor candidate and a motion vector for the current video block, wherein the motion vector for the current video block identifies a same or different prediction block located outside the boundary of the reference picture;

means for clipping the motion vector for the current video block such that the prediction block identified by the clipped motion vector is relocated within a padding region around the reference picture; and

means for encoding the current video block with respect to the relocated prediction block, wherein the relocated prediction block includes padding region values.

16. The apparatus of claim 15 , wherein the padding region values of the relocated prediction block comprise replicated pixel values from an edge of the reference picture.

17. An apparatus configured to encode video data comprising:

a memory configured to store the video data; and

one or more processors configured to:

determine a motion vector predictor candidate list that includes motion vector predictor candidates specifying motion vectors from neighboring video blocks of a current video block of the video data, wherein the motion vector predictor candidates are not clipped and the motion vector predictor candidate list includes at least one motion vector predictor candidate that, relative to the current video block, identifies a prediction block located outside a boundary of a reference picture;

signal, in a bitstream, a motion vector predictor index that identifies a determined unclipped motion vector predictor candidate in the motion vector predictor candidate list;

signal, in the bitstream, a motion vector difference between the determined unclipped motion vector predictor candidate and a motion vector for the current video block, wherein the motion vector for the current video block identifies a same or different prediction block located outside the boundary of the reference picture;

clip the motion vector for the current video block such that the prediction block identified by the clipped motion vector is relocated within a padding region around the reference picture; and

encode the current video block with respect to the relocated prediction block, wherein the relocated prediction block includes padding region values.

18. The apparatus of claim 17 , wherein the padding region values of the relocated prediction block comprise replicated pixel values from an edge of the reference picture.

19. A non-transitory computer-readable medium having instructions stored thereon that, when executed, cause a processor configured to encode video data to:

determine a motion vector predictor candidate list that includes motion vector predictor candidates specifying motion vectors from neighboring video blocks of a current video block of the video data, wherein the motion vector predictor candidates are not clipped and the motion vector predictor candidate list includes at least one motion vector predictor candidate that, relative to the current video block, identifies a prediction block located outside a boundary of a reference picture;

signal, in a bitstream, a motion vector predictor index that identifies a determined unclipped motion vector predictor candidate in the motion vector predictor candidate list;

signal, in the bitstream, a motion vector difference between the determined unclipped motion vector predictor candidate and a motion vector for the current video block, wherein the motion vector for the current video block identifies a same or different prediction block located outside the boundary of the reference picture;

clip the motion vector for the current video block such that the prediction block identified by the clipped motion vector is relocated within a padding region around the reference picture; and

encode the current video block with respect to the relocated prediction block, wherein the relocated prediction block includes padding region values.

20. The non-transitory computer-readable medium of claim 19 , wherein the padding region values of the relocated prediction block comprise replicated pixel values from an edge of the reference picture.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 25, 2012
From: COBAN, MUHAMMED ZEYD; KARCZEWICZ, MARTA
To: QUALCOMM INCORPORATED
Reel/Frame 028438/0608 →
Continuity (3)
Provisional Application 61543181 · Oct 4, 2011
Provisional Application 61553053 · Oct 28, 2011
Related Publication 20130083853A1 · Apr 4, 2013