-Motion estimation is the most compute intensive part of video processing. It is the process of determining motion vectors that describe the transformation from one image to another in a video sequences. Therefore, it is sensible to perform motion estimation only where motion is present. Image data in an image sequence remains mostly the same between frames along motion. To exploit the image data redundancy in image sequences, there is a need to estimate motion. Motion estimation is applicable for video compression enhancement, stereo correspondence, object tracking and determination of optical flow. Many specific methods have been proposed in the context of one or more of these applications. Most motion estimation algorithms either operate directly in the image domain or finding the matching metric that measures how similar two pixels or two patches of pixels. In this paper, a review of various motion estimation techniques are presented.