A digital video image stabilization method features scene change
detection, adaptive stabilization in two dimensions, prevention of
accumulated-compensation saturation, multi-resolution motion estimation,
and compatibility with MPEG video encoding standards. The method uses
block-based motion estimation on a selected set of macroblocks, which
generates and validates a set of motion vectors, to determine how a
digital camcorder or other video recording device is moving; accumulates
motion data to estimate and preserve overall motion due to panning while
eliminating small variations due to shaking; and resets its accumulated
motion data when it detects a scene change. The method uses this
information to select a sub-image from a larger image for the selected
video frame. When one or more edges of the sub-image approach the edges
of the larger image, the method reduces its correction factor to
transition smoothly to a faster pan and prevent saturation.