We propose an efficient algorithm to eliminate the nonpleasing effect caused by involuntary hand movement of camera holders. In our approach, 1-bit gray-coded bit-plane block matching, instead of 8-bit gray-level block matching, is used to greatly simplify the computation of motion estimation. This computation saving makes possible a finer division of image frame and thus facilitates the employment of a much more robust procedure for motion decision. To deal with various interfering factors in motion estimation, the temporal information of each local motion vector is also used to efficiently distinguish random-like movement from temporally correlated movement. To compensate for camera rotation, an affine model is used in the motion compensation unit without adding too much computation load. Having considered both programming flexibility and hardware efficiency, the motion decision unit and the motion compensation unit are coded in a microprocessor that interconnects with the stabilization hardware, which consists of the motion estimation unit and the digital zooming unit. A slightly simplified version of the proposed stabilizer is implemented on a field programmable gate array (FPGA) board.