Method to stabilize digital video motion
First Claim
1. 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 generated by a video camera;
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 a difference between the steady motion vector and the frame motion vector of the current video frame;
estimating the steady motion vector for the current video frame by summing a product of a first variable and the steady motion vector for the previous video frame with a product of a second variable and the frame motion vector of the current video frame, wherein the sum of the first variable and the second variable equals a first constant, wherein the second variable is set to be a minimum of a smoothing value or a correlation value; and
calculating an estimated hand motion vector by subtracting the steady motion vector of the previous video frame from the frame motion vector of the current video frame;
wherein the correlation value is calculated by;
taking a first 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;
taking a second 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 dividend value by multiplying the first square root by the second square root;
calculating a divisor value of an inner product of the estimated hand motion vector of the current video frame and the steady motion vector of the previous video frame; and
calculating the correlation value by taking an absolute value of the divisor value divided by the dividend value.
1 Assignment
0 Petitions
Accused Products
Abstract
A method for calculating an estimated hand motion vector of a plurality of images includes 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.
9 Citations
24 Claims
-
1. 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 generated by a video camera; 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 a difference between the steady motion vector and the frame motion vector of the current video frame; estimating the steady motion vector for the current video frame by summing a product of a first variable and the steady motion vector for the previous video frame with a product of a second variable and the frame motion vector of the current video frame, wherein the sum of the first variable and the second variable equals a first constant, wherein the second variable is set to be a minimum of a smoothing value or a correlation value; and calculating an estimated hand motion vector by subtracting the steady motion vector of the previous video frame from the frame motion vector of the current video frame; wherein the correlation value is calculated by; taking a first 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; taking a second 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 dividend value by multiplying the first square root by the second square root; calculating a divisor value of an inner product of the estimated hand motion vector of the current video frame and the steady motion vector of the previous video frame; and calculating the correlation value by taking an absolute value of the divisor value divided by the dividend value. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. 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 generated by a video camera; 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 steady motion vector for the current video frame is estimated by; setting the horizontal component of the steady motion vector by summing a product of a first variable and a horizontal component of the steady motion vector for the previous video frame with a product of a second variable and a horizontal component of the frame motion vector of the current video frame, wherein the sum of the first variable and the second variable equals a first constant, wherein the second variable is set to a minimum of a horizontal smoothing value or a horizontal correlation value; and setting the vertical component of the steady motion vector by summing a product of a third variable and a vertical component of the steady motion vector for the previous video frame with a product of a fourth variable and a vertical component of the frame motion vector of the current video frame, wherein the sum of the third variable and the fourth variable equals a second constant; 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; and calculating an estimated hand motion vector by subtracting the steady motion vector of the previous video frame from the frame motion vector of the current video frame; wherein the horizontal correlation is calculated by; taking a first 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; taking a second 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 dividend value by multiplying the first square root by the second square root; calculating a divisor value of an inner product of the estimated hand motion vector of the current video frame and the steady motion vector of the previous video frame; and calculating the horizontal correlation value by taking an absolute value of the divisor value divided by the dividend value. - View Dependent Claims (16, 17, 18)
-
-
19. 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 generated by a video camera; 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 steady motion vector for the current video frame is estimated by; setting the horizontal component of the steady motion vector by summing a product of a first variable and a horizontal component of the steady motion vector for the previous video frame with a product of a second variable and a horizontal component of the frame motion vector of the current video frame, wherein the sum of the first variable and the second variable equals a first constant; and setting the vertical component of the steady motion vector by summing a product of a third variable and a vertical component of the steady motion vector for the previous video frame with a product of a fourth variable and a vertical component of the frame motion vector of the current video frame, wherein the sum of the third variable and the fourth variable equals a second constant, wherein the fourth variable is set to a minimum of a vertical smoothing value or a vertical correlation value; 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; and calculating an estimated hand motion vector by subtracting the steady motion vector of the previous video frame from the frame motion vector of the current video frame; wherein the vertical correlation value is calculated by; taking a first 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; taking a second 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 dividend value by multiplying the first square root by the second square root; calculating a divisor value of an inner product of the estimated hand motion vector of the current video frame and the steady motion vector of the previous video frame; and calculating the vertical correlation value by taking an absolute value of the divisor value divided by the dividend value. - View Dependent Claims (20, 21, 22, 23, 24)
-
Specification