Efficient motion vector coding for video compression
1 Assignment
0 Petitions
Accused Products
Abstract
Video coding efficiency is improved by jointly coding the x and y components of motion vectors with a single variable length code. The motion vector components for a block of pixels are predicted based on motion vectors of neighboring blocks of pixels. The predicted x and y components are then jointly coded by assigning a single variable length code corresponding to the pair of components, rather than a separate code for each component. If the x and y components do not have a corresponding entry in the coding table, they are coded with an escape code followed by fixed length codes.
197 Citations
57 Claims
-
1-19. -19. (Canceled)
-
20. A method comprising:
-
selecting a variable length code table from among plural available variable length code tables, wherein each of the plural available variable length code tables has a different set of plural variable length codes used for encoding and decoding motion vector differential information;
computing a motion vector predictor for a motion vector, wherein the motion vector predictor includes a horizontal motion vector predictor component and a vertical motion vector predictor component, and wherein the motion vector includes a horizontal motion vector component and a vertical motion vector component;
computing a horizontal motion vector differential component based at least in part upon difference between the horizontal motion vector component and the horizontal motion vector predictor component;
computing a vertical motion vector differential component based at least in part upon difference between the vertical motion vector component and the vertical motion vector predictor component; and
using the selected variable length code table, producing a first variable length code from the set of plural variable length codes of the selected variable length code table, wherein the first variable length code jointly represents information used for decoding the horizontal motion vector differential component and for decoding the vertical motion vector differential component. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27, 28, 29)
-
-
30. A method comprising:
-
for each macroblock of plural macroblocks of a video picture, receiving a variable length code that jointly represents information used for reconstructing a horizontal motion vector differential component for a motion vector of the macroblock and a vertical motion vector differential component for the motion vector of the macroblock; and
reconstructing the horizontal motion vector differential component and the vertical motion vector differential component based at least in part on the variable length code, including looking up the variable length code in one of plural variable length code tables for motion vector differential information, wherein each of the plural variable length code tables has a different set of plural variable length codes. - View Dependent Claims (31, 32, 33, 34, 35, 36, 37, 38, 39, 40)
-
-
41. A method comprising:
for each block of plural blocks of a video picture, receiving a variable length code that jointly represents information used for reconstructing a horizontal motion vector differential component for a motion vector for the block and a vertical motion vector differential component for the motion vector for the block; and
reconstructing the horizontal motion vector differential component and the vertical motion vector differential component based at least in part on the variable length code, including looking up the variable length code in one of plural variable length code tables for motion vector differential information, wherein each of the plural variable length code tables has a different set of plural variable length codes. - View Dependent Claims (42, 43, 44, 45, 46, 47)
-
48. A method comprising:
-
receiving a variable length code that jointly represents information used for reconstructing a horizontal motion vector differential component for a motion vector and for reconstructing a vertical motion vector differential component for the motion vector;
decoding the variable length code with one of plural alternative variable length code tables for motion vector differential information, wherein each of the plural alternative variable length code tables uses a different set of plural variable length codes;
receiving first additional information;
reconstructing the horizontal motion vector differential component based at least in part on the first additional information;
receiving second additional information; and
reconstructing the vertical motion vector differential component based at least in part on the second additional information. - View Dependent Claims (49, 50, 51, 52, 53, 54, 55, 56, 57)
-
Specification