Motion vector block pattern coding and decoding
First Claim
1. 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 first variable length code that represents first information for a macroblock with plural luminance motion vectors, wherein the first information includes one motion vector data presence indicator per luminance motion vector of the macroblock, wherein each of the motion vector data presence indicators is represented by a corresponding bit in a bit field, wherein a bit value of zero indicates that no motion vector data is signaled for a corresponding one of the plural luminance motion vectors and a bit value of one indicates that motion vector data is signaled for the corresponding one of the plural luminance motion vectors;
signaling, in a bitstream, the first variable length code;
determining a second variable length code that represents second information for the macroblock, wherein the second information includes plural transform coefficient data presence indicators for plural blocks of the macroblock; and
signaling, in the bitstream, the second variable length code.
2 Assignments
0 Petitions
Accused Products
Abstract
Techniques and tools for using motion vector block patterns in video encoding and decoding are described. In general, a motion vector block pattern signals the presence or absence of motion vector data for a macroblock with multiple motion vectors. For example, a video decoder decodes variable length codes that represent motion vector block patterns. Each motion vector block pattern has one bit per corresponding luminance motion vector of a macroblock with multiple luminance motion vectors, where the one bit indicates whether or not motion vector data for the corresponding luminance motion vector is signaled. A video encoder performs corresponding encoding.
390 Citations
34 Claims
-
1. 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 first variable length code that represents first information for a macroblock with plural luminance motion vectors, wherein the first information includes one motion vector data presence indicator per luminance motion vector of the macroblock, wherein each of the motion vector data presence indicators is represented by a corresponding bit in a bit field, wherein a bit value of zero indicates that no motion vector data is signaled for a corresponding one of the plural luminance motion vectors and a bit value of one indicates that motion vector data is signaled for the corresponding one of the plural luminance motion vectors; signaling, in a bitstream, the first variable length code; determining a second variable length code that represents second information for the macroblock, wherein the second information includes plural transform coefficient data presence indicators for plural blocks of the macroblock; and signaling, in the bitstream, the second variable length code. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
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; for a macroblock with a first number of luminance motion vectors, wherein the first number is greater than one, determining a motion vector block pattern that consists of a second number of bits, wherein the second number is equal to the first number, and wherein each of the bits of the motion vector block pattern indicates whether or not a corresponding one of the luminance motion vectors has associated motion vector data signaled in a bitstream, wherein a bit value of zero indicates that no motion vector data is signaled for the corresponding one of the luminance motion vectors and a bit value of one indicates that motion vector data is signaled for the corresponding one of the luminance motion vectors; signaling, in the bitstream, the motion vector block pattern, wherein the motion vector block pattern is signaled with a variable length code; and signaling, in the bitstream, associated motion vector data for each of the luminance motion vectors for which the associated motion vector data is indicated to be signaled in the bitstream. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
17. A video decoder comprising:
-
means for decoding plural variable length codes that represent plural motion vector block patterns, wherein each of the plural motion vector block patterns has one bit per corresponding luminance motion vector of a macroblock with multiple luminance motion vectors, the one bit indicating whether or not motion vector data for the corresponding luminance motion vector is signaled, wherein a bit value of zero indicates that no motion vector data is signaled for the corresponding luminance motion vector and a bit value of one indicates that motion vector data is signaled for the corresponding luminance motion vector; and means for decoding motion vector data. - View Dependent Claims (18)
-
-
19. 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, in a bitstream, a first variable length code; decoding the first variable length code, wherein the first variable length code represents first information for a macroblock with plural luminance motion vectors, wherein the first information includes one motion vector data presence indicator per luminance motion vector of the macroblock, wherein each of the motion vector data presence indicators is represented by a corresponding bit in a bit field, wherein a bit value of zero indicates that no motion vector data is signaled for a corresponding one of the plural luminance motion vectors and a bit value of one indicates that motion vector data is signaled for the corresponding one of the plural luminance motion vectors; receiving, in the bitstream, a second variable length code; and decoding the second variable length code, wherein the second variable length code represents second information for the macroblock, wherein the second information includes plural transform coefficient data presence indicators for plural blocks of the macroblock. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26)
-
27. 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; for a macroblock with a first number of luminance motion vectors, wherein the first number is greater than one, receiving, in a bitstream, a motion vector block pattern that consists of a second number of bits, wherein the second number is equal to the first number, and wherein each of the bits of the motion vector block pattern indicates whether or not a corresponding one of the luminance motion vectors has associated motion vector data signaled in the bitstream, wherein a bit value of zero indicates that no motion vector data is signaled for the corresponding one of the luminance motion vectors and a bit value of one indicates that motion vector data is signaled for the corresponding one of the luminance motion vectors, and wherein the motion vector block pattern is received as a variable length code; and receiving, in the bitstream, associated motion vector data for each of the luminance motion vectors for which the associated motion vector data is indicated to be signaled in the bitstream. - View Dependent Claims (28, 29, 30, 31, 32, 33, 34)
Specification