1. One or more processors to perform a method for coding video data using motion estimation, the method comprising: a) identifying a macroblock out of a plurality of macroblocks, the plurality of macroblocks representing a frame, wherein the identifying the macroblock is based on a predicted priority for the macroblock; b) performing a first pass on the macroblock, the first pass being configured to check one set of candidate motion vectors for the macroblock and to determine a new starting point for a next pass on the macroblock during processing of a same frame; repeating steps a) and b) until a best motion vector is identified for each macroblock within the frame or a computation limit associated with a device performing the passes has been reached; and determining the predicted priority for a next pass of each macroblock by multiplying a predetermined scaling factor by a sum of absolute differences determined in the first pass and dividing a product by a number of candidate motion vectors in the set for the next pass.