Patent ID: 8451897

Claim:
A pipelined motion estimation system comprising: a current frame input storage means for storing contents of a current frame; a previous frame input storage means for storing contents of one or more previous frames; a motion command memory module configured to store a programmable search algorithm, the search algorithm specifying a pixel-based search pattern; a sum-of-absolute differences calculation module; a shuffle block coupled to the previous frame input storage means, the shuffle block configured to generate intermediate data; a first plurality of registers coupled to the shuffle block, the first plurality of registers configured to store the intermediate data; a subtraction block coupled to the first plurality of registers and also coupled to the current frame input storage means, the subtraction block configured to calculate differences between two sets of content to generate difference data; and a second plurality of registers coupled to the subtraction block, the second plurality of registers configured to store the difference data; a shift left and divide stage comprising a shift and divide block and a third plurality of registers; wherein the intermediate data comprises pixel data; wherein the shift and divide block is coupled between the first plurality of registers and the third plurality of registers, the shift and divide block configured to: align the pixel data by shifting out any unnecessary pixel data from the intermediate data; divide the intermediate data to produce divided intermediate data; and store the divided intermediate data into the third plurality of registers; and wherein the third plurality of registers is coupled between the shift and divide block and the subtraction block; wherein the first of the two sets of content is the divided intermediate data; and wherein the second of the two sets of content is the contents of the current frame; wherein the pipelined motion estimation system is configured to: search, as specified by the search algorithm, a previous frame for determining a best fit motion vector, for a particular area of the previous frame, from a plurality of potential motion vectors within the search pattern; calculate, using the difference data, a sum-of-absolute difference residual value for each of the plurality of potential motion vectors within the search pattern, each of the sum-of-absolute difference residual values calculated concurrently with other sum-of-absolute difference residual values for the plurality of potential motion vectors; and determine the best fit motion vector within the search pattern based on the sum-of absolute difference residual value calculated for each of the plurality of potential motion vectors.