Patent ID: 6192148
Filing Date: 2001-02-20
Classification: H04N

Abstract:
A method for encoding video pictures, each encoded picture being divided into non overlapping macroblocks, each macroblock comprising one or more luminance blocks and one or more chrominance blocks, each block comprising an n.times.m array of pixel data, said method comprising the steps of:(a) obtaining a sequence of video pictures,(b) designating certain ones of the pictures of the sequence for predictive encoding and designating one or more of the pictures of the sequence as reference pictures for each picture designated for predictive encoding,(c) dividing a picture designated for predictive encoding into macroblocks,(d) iterating the following steps (e)-(n) once for each i.sup.th macroblock:(e) motion estimating the i.sup.th macroblock, using only the luminance blocks of the i.sup.th macroblock, to obtain a motion vector, indicating the temporal and spatial offset from the i.sup.th macroblock to a prediction macroblock in a designated reference picture, and the mean absolute difference of the luminance blocks of the i.sup.th macroblock and the luminance pixels of the prediction macroblock, the mean absolute difference being computed by evaluating: ##EQU5##where P.sup.Y.sub.i is the luminance pixel data of the prediction macroblock for the i.sup.th macroblock, MBY.sub.i is the luminance pixel data of the i.sup.th macroblock and j and k are the number of rows and columns of luminance pixel data in a macroblock, respectively,(f) if the motion vector is zero and the mean absolute difference is below a first threshold then performing steps (g) and (h) for the i.sup.th macroblock, otherwise, performing, steps (j), (k), (l), (m) and (n),(g) generating the chrominance mean absolute difference between the chrominance blocks of the i.sup.th macroblock and the prediction macroblock, by evaluating: ##EQU6##where P.sup.Cr.sub.i is the red chrominance pixel data of the prediction macroblock for the i.sup.th macroblock, MB.sup.Cr.sub.i is the red chrominance pixel data of the i.sup.th macroblock, P.sup.Cb.sub.i is the blue chrominance pixel data of the prediction macroblock for the i.sup.th macroblock, MB.sup.Cb.sub.i is the blue chrominance pixel data of the i.sup.th macroblock and a and b are the number of rows and columns of red and blue chrominance pixel data in a macroblock, respectively,(h) if the chrominance mean absolute difference is less than a second threshold, then performing step (i), otherwise performing steps (i), (j), (k), (l), (m) and (n),(i) inserting an indication into the bitstream indicating that the i.sup.th macroblock is skipped, and refraining from performing steps (j), (k), (l), (m) and (n) for the i.sup.th macroblock,(j) subtracting the luminance and chrominance blocks of the i.sup.th macroblock from the prediction macroblock to form the prediction error macroblock for the i.sup.th macroblock,(k) orthogonally transforming each block of the prediction error macroblock for the i.sup.th macroblock,(l) quantizing each transformed block of the prediction error macroblock for the i.sup.th macroblock,(m) entropy encoding each quantized block of the prediction error macroblock for the i.sup.th macroblock and the motion vector, and(n) inserting the entropy encoded blocks of the prediction error macroblock and motion vector for the i.sup.th macroblock into the encoded bitstreamwherein steps (j), (k), (l), (m) and (n) are not performed for the i.sup.th macroblock if step (i) is performed for the i.sup.th macroblock.