1. A method of performing motion compensation using a processor executing code, comprising: receiving image data at a processor; dividing at least one frame of image data into blocks using the processor; performing phase plane correlation with the processor to determine a correlation surface for each block between a first frame and a second frame; the processor producing a weighted correlation surface by multiplying each correlation surface by a blending coefficient and accumulating the weighted correlation surface into a global correlation surface; selecting peaks in the global correlation surface using the processor; and performing sub-pixel motion vector calculations with the processor to produce global motion vectors using the peaks.