Method and apparatus for video motion compensation, reduction and color formatting
AssigneeIntel Corporation
InventorsMorris E. Jones, Jr., Ying Cui, Chairong Li, Everitt Kwocktong Chock, Zudan Shi
Life of this patent
Estimating the term…
Abstract
A method and apparatus for video motion compensation, power of two reduction and color format conversion is disclosed. The motion compensation engine performs the MPEG-2 functions of half pel compensation, inverse discrete cosine transform and merge. Dual prime, field-based and frame-based macroblocks are supported. Data reduction may be performed in the vertical direction, the horizontal direction, or both.
Claims35
An integrated circuit, comprising:
- a motion compensator for creating motion compensated data from video blocks and difference data;
- a reducer coupled to said motion compensator for reducing said motion compensated data to create reduced data;
- a color format converter coupled to said reducer for converting the color format of said reduced data to create reformatted data;
- an interface to a first memory;
- a second memory adapted to receive a plurality of a video blocks from said interface, said second memory coupled to said motion compensator;
- a third memory adapted to store difference data corresponding to said video blocks, said third memory coupled to said motion compensator;
- and
- a fourth memory coupled to said color format converter, said reducer and said motion compensator.
A computer system, comprising:
- a bus;
- and
- a video processor coupled to said bus, said video processor comprising:
- an interface to a first memory;
- a second memory adapted to receive a plurality of a video blocks from said interface;
- a third memory adapted to store difference data corresponding to said video blocks;
- a motion compensator coupled to said second memory and said third memory for creating motion compensated data from said video blocks and said difference data;
- a video data reducer coupled to said motion compensator for reducing data to create reduced data, said reducer employing power of two reduction;
- a color format converter coupled to said reducer for converting the color format of said reduced data in YUV 4:2:0 format to create reformatted data in YUV 4:2:2 format;
- and
- a fourth memory coupled to said color format converter, said reducer and said motion compensator for receiving said reformatted data.
A method for manipulating video data, comprising:
- receiving video data;
- formatting said video data into a first block, comprising:
- changing the color format from YUV 4:2:0 to YUV 4:2:2;
- and
- interleaving luminance data and chrominance data;
- performing motion compensation on said first block to create a second block, comprising:
- determining whether said first block is from an “I” frame;
- determining whether said first block is from a “B” frame when said first block is not from an “I” frame;
- performing bidirectional prediction when said first block is from a “B” frame;
- performing half pel compensation when said first block is not from an “I” frame or a “B” frame;
- and
- adding difference data to the result of said half pel compensation;
- performing power of two data reduction on said second block to create a third block;
- reformatting said third block to create a fourth block;
- and storing said fourth block to a memory.
A program storage device readable by a machine, tangibly embodying a program of instructions executable by the machine to manipulate video data, comprising:
- a first module comprising code for causing a machine to read video data;
- a second module comprising code for causing a machine to format said video data into a macroblock;
- a third module comprising code for causing a machine to perform motion compensation on said macroblock to create a compensated block, said motion compensation comprising:
- determining whether said macroblock is from an “I” frame;
- determining whether said macroblock is from a “B” frame when the macroblock is not from an “I” frame;
- performing bidirectional prediction when said macroblock is from a “B” frame;
- and
- performing half pel compensation when said macroblock is not from an “I” frame or a “B” frame;
- and
- adding difference data to the result of said half pel compensation;
- a fourth module comprising code for causing a machine to perform power of two data reduction on said compensated block to create a reduced block;
- and
- a fifth module comprising code for causing a machine to reformat said reduced block to create a reformatted block and store said reformatted block to a memory, said reformatting comprising:
- changing the color format from YUV 4:2:0 to YUV 4:2:2;
- and
- interleaving luminance data and chrominance data.
An apparatus for manipulating video data, comprising:
- means for receiving video data;
- means for formatting said video data into a first block, comprising:
- means for changing the color format from YUV 4:2:0 to YUV 4:2:2;
- and
- means for interleaving luminance data and chrominance data;
- means for performing motion compensation on said first block to create a second block, comprising:
- means for determining whether said first block is from an “I” frame;
- means for determining whether said first block is from a “B” frame when said first block is not from an “I” frame;
- means for performing bidirectional prediction when said first block is from a “B” frame;
- means for performing half pel compensation when said first block is not from an “I” frame or a “B” frame;
- and
- means for adding difference data to the result of said half pel compensation;
- means for performing power of two data reduction on said second block to create a third block;
- means for reformatting said third block to create a fourth block;
- and
- means for storing said fourth block to a memory.
An apparatus for manipulating video data, comprising:
- means for receiving video data;
- means for formatting said video data into a first block, comprising:
- changing the color format from YUV 4:2:0 to YUV 4:2:2 and
- interleaving luminance data and chrominance data;
- means for performing motion compensation on said first block to create a second block, comprising:
- means for determining whether said first block is from an “I” frame;
- means for determining whether said first block is from a “B” frame when said first block is not from an “I” frame;
- means for performing bidirectional prediction when said first block is from a “B” frame;
- means for performing half pel compensation when said first block is not from an “I” frame or a “B” frame;
- and
- means for adding difference data to the result of said half pel compensation;
- means for performing power of two data reduction on said second block to create a third block;
- means for reformatting said third block to create a fourth block;
- and
- means for storing said fourth block to a memory.
Dependencies are inferred from the claim text.