Patent ID: 8098733
Filing Date: 2012-01-17
Classification: G06T,H04N

Abstract:
1. A parallel motion-estimation search engine comprising: a plurality of parallel processors, each parallel processor searching a search path for a best path difference value by calculating a sequence of current difference values, each current difference value being a composite difference of pixel values between a current block of pixels in a current frame and a reference block of pixels in a reference frame, the current frame and the reference frame being frames in a sequence of frames in a video stream, wherein the current block and the reference block differ in relative location within a superimposed frame by a motion vector; a parallel-processor dedicated memory, coupled to the plurality of parallel processors, storing a plurality of rows, each row for storing search data for a parallel processor in the plurality of parallel processors, wherein each row stores a current difference value and a best path difference value and a threshold for a parallel processor; wherein each parallel processor in the plurality of parallel processors compares the current difference value to the best path difference value and over-writes the best path difference value with the current difference value when the current difference value represents a better match of the current block to the reference block than the best path difference value; a motion vector table storing a plurality of search paths, for a plurality of search-levels, each search path being a sequence of coordinates, the plurality of search paths stored in the motion vector table identifying a search strategy; a control processor that activates the plurality of parallel processors to execute a parallel search of the plurality of search paths for one search-level, the plurality of parallel processors generating a plurality of best path difference values stored in the parallel-processor dedicated memory for the plurality of search paths for a current search-level in the motion vector table; and a level terminator, coupled to the parallel-processor dedicated memory, that compares the best path difference value to the threshold in each row of the parallel-processor dedicated memory and generating a threshold count of a number of rows having best path difference values meeting the threshold; the control processor terminating the parallel search of the current search-level in response to the threshold count exceeding a target count, the control processor locating a best coordinate in the motion vector table that corresponds to a net best path difference value that is a best difference value among all best path difference values in the parallel-processor dedicated memory; the control processor shifting a search center to the best coordinate and activating the plurality of parallel processors to execute another parallel search of the plurality of search paths for a following search-level stored in the motion vector table; the control processor generating a final motion vector by combining the best coordinate generated from multiple search-levels, whereby the final motion vector is generated by the plurality of parallel processors searching search paths in parallel that are defined by the motion vector table.