The motion estimation (ME) is the most time consuming and power demanding module in a video encoder. In this paper, we provide the first detailed instruction-level simulation results on motion estimation. Firstly, we analyze various aspects of the selected seven typical motion estimation algorithms, such as search speed, instruction frequencies, branch behavior, and power distribution. Then, we propose suitable compiler techniques, hardware techniques and optimal instruction set architecture to speed up and reduce the power consumption of the motion estimation. SimpleScalar and SimplePower are used to simulate the effects of the optimizations on the motion estimation algorithms. Experimental results show that the execution time spent on motion vector search for one frame are averagely reduced by 39% and the power consumption is reduced by 62% by applying these techniques.