1. A method of estimating motion in a video programmed in a memory in a device comprising: a. performing contrast pre-processing on the video to generate pre-processed data; and b. performing phase correlation on the video using the pre-processed data; wherein performing contrast pre-processing further comprises: a. computing minimum pixel values in an N×N input window; b. computing maximum pixel values in the N×N input window; and c. re-scaling the pixels in the window to produce an N×N re-scaled output window; wherein the re-scaled output window has a first dynamic range of pixels equal to a second dynamic range of input to a Fast Fourier Transform component.