METHOD TO STABILIZE DIGITAL VIDEO MOTION
First Claim
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;
calculating a hand motion vector for the current video frame by taking the 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.
1 Assignment
0 Petitions
Accused Products
Abstract
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.
-
Citations
53 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;
calculating a hand motion vector for the current video frame by taking the 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. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. 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, such that the macroblock size is suitable for either autonomously encoded or predictively encoded pictures;
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 by selecting a median vertical component and a median horizontal component from the set of motion vectors and the frame motion vector for the previous video frame;
estimating a steady motion vector for the current video frame by a first-order autoregression;
calculating a hand motion vector for the current video frame by taking the 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. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. A method for calculating an estimated hand motion vector of a plurality of images, 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; and
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. - View Dependent Claims (23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53)
-
Specification