| US 7,489,341 B2 | ||
| Method to stabilize digital video motion | ||
| Shih-Hsuan Yang, Taipei (Taiwan); and Fu-Ming Jheng, Taipei (Taiwan) | ||
| Assigned to Primax Electronics Ltd., Taipei (Taiwan) | ||
| Filed on Jan. 18, 2005, as Appl. No. 10/905,699. | ||
| Prior Publication US 2006/0158524 A1, Jul. 20, 2006 | ||
| Int. Cl. H04N 5/228 (2006.01) | ||
| U.S. Cl. 348—208.99 [348/208.4; 348/208.6] | 14 Claims |

| 1. A method for stabilizing digital video motion comprising:
selecting a current video frame and a previous video frame from a video stream;
dividing the current video frame into a plurality of macroblocks;
selecting a subset of macroblocks from the current video frame;
comparing the subset of macroblocks to the previous video frame within a two-dimensional comparison range to generate a set
of motion vectors;
calculating a frame motion vector for the current video frame; estimating a steady motion vector for the current video frame
by a first-order autoregression, wherein the first-order autoregression comprises:
multiplying the frame motion vector of the current frame by a first constant;
multiplying the steady motion vector of the previous video frame by a second constant, wherein the first constant is a floating-point
value in a range of 0-1 inclusive, the second constant is calculated by subtracting the first constant from 1, and the first
constant is chosen to be a lesser of a third constant and a correlation value;
computing an estimated hand motion vector of the current video frame by subtracting the steady motion vector of the previous
video frame from the frame motion vector of the current video frame; and
calculating the correlation value between the estimated hand motion vector and the steady motion vector by taking an absolute
value of an inner product of the estimated hand motion vector of the current video frame and steady motion vector of the previous
video frame, and dividing the absolute value by a product of a square root of an inner product of the estimated hand motion
vector of the current video frame and the estimated hand motion vector of the current video frame and a square root of an
inner product of the steady motion vector of the previous video frame and the steady motion vector of the previous video frame;
calculating a hand motion vector for the current video frame by taking a difference between the steady motion vector and the
frame motion vector of the current video frame;
cropping a selected video frame from the current video frame, wherein a center of the selected video frame is offset from
a center of the current video frame by the hand motion vector; and
recording the selected video frame to a storage device.
|