Patent ID: 7209591

Claim:
A method of motion compensation for a video sequence having an original frame and a plurality of predicted frames comprising the steps of: a. selecting a predicted frame from the plurality of predicted frames; b. calculating the prediction error for the predicted frame; c. placing the error data in an error data array; d. converting the error data array into a digital format; e. splitting the error data array into four by four element blocks; f. determining the value of each four by four element block in the error data array; g. placing the value of each four by four element block from the error data array into a compact error data array; h. splitting the compact error data array into four by four element blocks; i. determining the bit mask number for each four by four element block in the compact error data array; j. placing the bit mask number into a bit mask number array; k. determining the value of each four by four element block in the compact error data array; l. placing the value of each four by four block from the compact data array into a new compact data array; m. removing all of the outermost rows and columns of the new compact data array that contain only zero elements; n. selecting geometric figures from group of geometric figures having pre-defined values; o. constructing the geometric figures around the largest possible areas in the new compact error data array that contain only zero elements; p. determining the smallest combination of geometric figures to use for the new compact error data array; q. recording the figure value, the center coordinates of the figure, and the figure dimensions into a figure data array; r. removing all zero elements that are covered by a geometrical figure from the new compact data array s. separating the new compact data array into a B array, which is a bit array that reflects the allocation of non zero elements in the new compact data array, and an El array that contains the values of non zero elements in the new compact data array; t. separating the El array into an Abs array that contains the absolute value of the elements in the El array and an S array, which is a bit array that contains the sign of the elements in the El array; u. encoding the B array, the Abs array, and the S array using run-length-encoding techniques; v. decoding the arrays; and w. compensating for the predicted error while the arrays are decoded by adding the stored prediction error values to the predicted frame.