1. A method of improving a motion estimation iterative search programmed in a memory of a computing device, the method comprising: a. iteratively searching for a smallest distance position comprising: i. computing a sub-region distance value of a sub-region; ii. determining a minimum distance value of the sub-region; iii. comparing the minimum distance value with a threshold; iv. ending prematurely, if the minimum distance value is less than the threshold; and v. repeating i-iv until a count is zero, if the minimum distance value is greater than or equal to the threshold; b. determining a center point of a next search area comprising: i. determining a position of a search area with a smallest distance value; ii. determining an offset for a center point of a next search area based on the position with the smallest distance value; and iii. selecting the center point of the next search area based on the offset; and c. avoiding a local minimum comprising: i. determining a previous position; ii. determining a new position; iii. comparing the previous position and new position; and iv. based on the previous position and the new position comparison, selecting a new search center, wherein the new search center is based on the previous position if the new position is in an opposite direction from the previous position and the new search center is based on the new position if the new position is not in the opposite direction from the previous position.