IP Library › Granted Patent US 7,620,106
Granted Patent B2
US 7,620,106 · App. 10/933,881 · Granted Nov 17, 2009

Joint coding and decoding of a reference field selection and differential motion vector information

Assignee: Microsoft Corporation
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 7,620,106
App. No.
10/933,881
Granted
Nov 17, 2009
Kind
B2
Abstract

Techniques and tools for joint coding and decoding of reference field selection information and differential motion vector information are described. For example, a video decoder decodes a variable length code that jointly represents differential motion vector information and a motion vector predictor selection for a motion vector. The decoder then reconstructs the motion vector based at least in part on the differential motion vector information and the motion vector predictor selection. A video encoder performs corresponding processing.

Claims (62)

1. A computer-implemented method for transforming encoded video information using a computing device that implements a video decoder, the computing device comprising a processing unit and memory, the method comprising:

with the computing device that implements the video decoder:

receiving encoded video information in a bitstream; and

reconstructing a picture using the encoded video information, including:

decoding, from the encoded video information in the bitstream, a dominant/non-dominant predictor selection jointly coded with differential motion vector information for a motion vector, wherein the decoding comprises:

decoding a variable length code;

determining a length of a code for a horizontal differential motion vector based at least in part on the variable length code;

determining a length of a code for a vertical differential motion vector based at least in part on the variable length code; and

determining the dominant/non-dominant predictor selection based at least in part on the variable length code; and

reconstructing the motion vector based at least in part on the differential motion vector information and the dominant/non-dominant predictor selection.

2. The method of claim 1 wherein the decoding the variable length code results in a variable length code index, and wherein the determining the length of the code for the horizontal differential motion vector comprises:

determining a code length index from the variable length code index, wherein the code length index at least in part indicates the length of the code for the horizontal differential motion vector.

3. The method of claim 1 wherein the decoding the variable length code results in a variable length code index, and wherein the determining the length of the code for the vertical differential motion vector comprises:

determining a code length index from the variable length code index; and

determining the length of the code for the vertical differential motion vector from a size table based at least in part on the code length index.

4. The method of claim 1 further comprising, for a second motion vector having a dominant/non-dominant predictor selection and differential motion vector information:

decoding a variable length code that jointly represents at least a zero-value vertical differential motion vector for the second motion vector and the dominant/non-dominant predictor selection for the second motion vector.

5. A computer-implemented method for transforming encoded video information using a computing device that implements a video decoder, the computing device comprising a processing unit and memory, the method comprising:

with the computing device that implements the video decoder:

receiving encoded video information in a bitstream; and

reconstructing a picture using the encoded video information, including:

decoding, from the encoded video information in the bitstream, a dominant/non-dominant predictor selection jointly coded with differential motion vector information for a motion vector, wherein the decoding comprises:

decoding a variable length code, resulting in an escape index;

decoding a first escape code that represents a horizontal differential motion vector value; and

decoding a second escape code that jointly represents the dominant/non-dominant predictor selection and a vertical differential motion vector value; and

reconstructing the motion vector based at least in part on the differential motion vector information and the dominant/non-dominant predictor selection.

6. A computer-implemented method for transforming encoded video information using a computing device that implements a video decoder, the computing device comprising a processing unit and memory, the method comprising:

with the computing device that implements the video decoder:

receiving encoded video information in a bitstream; and

reconstructing a picture using the encoded video information, including:

decoding, from the encoded video information in the bitstream, a variable length code that jointly represents differential motion vector information and a motion vector predictor selection for a motion vector, wherein the variable length code jointly represents a first code length index for a horizontal differential motion vector, a second code length index for a vertical differential motion vector, and the motion vector predictor selection; and

reconstructing the motion vector based at least in part on the differential motion vector information and the motion vector predictor selection.

7. The method of claim 6 further comprising, for a second motion vector having a motion vector predictor selection and differential motion vector information, decoding a variable length code that jointly represents a zero-value vertical differential motion vector for the second motion vector and the motion vector predictor selection for the second motion vector.

8. The method of claim 7 wherein the variable length code for the second motion vector further jointly represents a zero-value horizontal differential motion vector for the second motion vector.

9. A computer-implemented method for transforming video information using a computing device that implements a video encoder, the computing device comprising a processing unit and memory, the method comprising:

with the computing device that implements the video encoder:

determining a dominant/non-dominant predictor selection for a motion vector;

determining differential motion vector information for the motion vector;

jointly coding the dominant/non-dominant predictor selection with the differential motion vector information, wherein the coding comprises:

determining a first code length index for a horizontal differential motion vector;

determining a second code length index for a vertical differential motion vector; and

determining a variable length code that jointly represents the first code length index, the second code length index, and the dominant/non-dominant predictor selection; and

signaling the jointly coded information in an output bitstream.

10. The method of claim 9 further comprising, for a second motion vector having a dominant/non-dominant predictor selection and differential motion vector information, determining a variable length code that jointly represents a zero-value vertical differential motion vector for the second motion vector and the dominant/non-dominant predictor selection for the second motion vector.

11. The method of claim 10 wherein the variable length code for the second motion vector also represents a zero-value horizontal differential motion vector for the second motion vector.

12. The method of claim 10 further comprising determining a first code length for a horizontal differential motion vector for the second motion vector, wherein the variable length code for the second motion vector also represents the first code length for the horizontal differential motion vector for the second motion vector.

13. A computer-implemented method for transforming video information using a computing device that implements a video encoder, the computing device comprising a processing unit and memory, the method comprising:

with the computing device that implements the video encoder:

determining a dominant/non-dominant predictor selection for a motion vector;

determining differential motion vector information for the motion vector;

jointly coding the dominant/non-dominant predictor selection with the differential motion vector information, wherein the coding comprises:

determining a variable length code that represents an escape index;

coding a first escape code that represents a horizontal differential motion vector value; and

coding a second escape code that jointly represents the dominant/non-dominant predictor selection and a vertical differential motion vector value; and

signaling the jointly coded information in an output bitstream.

14. A computer-implemented method for transforming video information using a computing device that implements a video encoder, the computing device comprising a processing unit and memory, the method comprising:

with the computing device that implements the video encoder:

determining a motion vector predictor selection for a motion vector;

determining differential motion vector information for the motion vector;

coding a variable length code that jointly represents the motion vector predictor selection and the differential motion vector information for the motion vector, wherein the variable length code jointly represents a first code length index for a horizontal differential motion vector, a second code length index for a vertical differential motion vector, and the motion vector predictor selection; and

signaling the jointly coded information in an output bitstream.

15. The method of claim 14 further comprising, for a second motion vector having a motion vector predictor selection and differential motion vector information, coding a variable length code that jointly represents a zero-value vertical differential motion vector for the second motion vector and the motion vector predictor selection for the second motion vector.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034541/0477 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 2, 2004
From: HOLCOMB, THOMAS W.; SRINIVASAN, SRIDHAR
To: MICROSOFT CORPORATION
Reel/Frame 015768/0071 →
Continuity (3)
Continuation In Part 1085747300 · May 27, 2004
Provisional Application 6050108100 · Sep 7, 2003
Related Publication 20050053141A1 · Mar 10, 2005