Patent ID: 8462850

Claim:
A video processor, comprising: a motion estimator configured to estimate a motion vector for a macroblock in a current frame by searching for a matching macroblock in a previous frame according to instructions, the motion estimator configured to perform a plurality of searches including an exhaustive search and one or more limited searches, with the limited searches comprising: a first search and a second search, the first search comprising iteratively executing a loop instruction, where a portion of the loop instruction has a first step value, the first search analyzing a first set of pixels in the previous frame and the second search analyzing a second set of pixels, the second search comprising iteratively executing the loop instruction, where the portion of the loop instruction has a second step value, the second search using one of the pixels in the first set of pixels as an anchor point for the second search of the previous frame, wherein the first step value indicates a first spacing between pixels in the first search, the second step value indicates a second spacing between pixels in the second search, and the first spacing is greater than the second spacing; and a controller comprising a processor separate from the motion estimator and configured to determine the instructions to program the motion estimator to perform one or more of the plurality of searches, the instructions comprising a plurality of operation instructions and parameters, each operation instruction identifying a function to be performed by the motion estimator, at least one operation instruction identifying a first function to be performed by the motion estimator using one or more parameters, wherein the operation instructions comprise a first instruction causing the motion estimator to search macroblocks along a horizontal, vertical, or diagonal line of the previous frame, a second instruction causing the motion estimator to select coordinates from a previous search as the anchor point for a next first instruction, a third instruction causing the motion estimator to terminate the one or more searches, and a fourth instruction causing the motion estimator to repeat one or more previously executed instructions with a second anchor point.