Video image stabilization with enforced stabilization constraints
First Claim
1. A non-transitory program storage device comprising instructions stored thereon to cause one or more processors to:
- obtain a first time-sequenced set of images, wherein;
each image in the first time-sequenced set of images has a capture time and motion data;
one image in the first time-sequenced set of images is designated as a current image;
a first one or more images within the first time-sequenced set of images having capture times before the current image are designated past images; and
a second one or more images within the first time-sequenced set of images having capture times after the current image are designated future images;
select a first image from the first time-sequenced set of images to meet a first stabilization constraint;
identify a weighting value for each image in the first time-sequenced set of images based, at least in part, on the proximity of the respective image'"'"'s capture time to the capture time of the current image;
adjust the identified weighting value for the selected first image according to a first weighting adjustment value;
identify a first stabilization motion value for the current image in the first time-sequenced set of images based, at least in part, on the identified weighting values and the adjusted weighting value for the selected first image;
apply the first stabilization motion value to the current image to stabilize the current image; and
store the stabilized current image in a memory.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques to improve a digital image capture device'"'"'s ability to stabilize a video stream—while enforcing desired stabilization constraints on particular images in the video stream—are presented that utilize an overscan region and a look-ahead technique enabled by buffering a number of video input frames before generating a first stabilized video output frame. More particularly, techniques are disclosed for buffering an initial number of input frames so that a “current” frame can use motion data from both “past” and “future” frames to adjust the value of a stabilization strength parameter and/or the weighted contribution of particular frames from the buffer in the determination of stabilization motion values for the current frame. Such techniques keep the current frame within its overscan and ensure that the stabilization constraints are enforced, while maintaining desired smoothness in the video stream. In some embodiments, the stabilization constraint may comprise a maximum allowed frame displacement.
-
Citations
20 Claims
-
1. A non-transitory program storage device comprising instructions stored thereon to cause one or more processors to:
-
obtain a first time-sequenced set of images, wherein; each image in the first time-sequenced set of images has a capture time and motion data; one image in the first time-sequenced set of images is designated as a current image; a first one or more images within the first time-sequenced set of images having capture times before the current image are designated past images; and a second one or more images within the first time-sequenced set of images having capture times after the current image are designated future images; select a first image from the first time-sequenced set of images to meet a first stabilization constraint; identify a weighting value for each image in the first time-sequenced set of images based, at least in part, on the proximity of the respective image'"'"'s capture time to the capture time of the current image; adjust the identified weighting value for the selected first image according to a first weighting adjustment value; identify a first stabilization motion value for the current image in the first time-sequenced set of images based, at least in part, on the identified weighting values and the adjusted weighting value for the selected first image; apply the first stabilization motion value to the current image to stabilize the current image; and store the stabilized current image in a memory. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A video image stabilization method, comprising:
-
obtaining a first time-sequenced set of images, wherein; each image in the first time-sequenced set of images has a capture time and motion data; one image in the first time-sequenced set of images is designated as a current image; a first one or more images within the first time-sequenced set of images having capture times before the current image are designated past images; and a second one or more images within the first time-sequenced set of images having capture times after the current image are designated future images; selecting a first image from the first time-sequenced set of images to meet a first stabilization constraint; identifying a weighting value for each image in the first time-sequenced set of images based, at least in part, on the proximity of the respective image'"'"'s capture time to the capture time of the current image; adjusting the identified weighting value for the selected first image according to a first weighting adjustment value; identifying a first stabilization motion value for the current image in the first time-sequenced set of images based, at least in part, on the identified weighting values and the adjusted weighting value for the selected first image; applying the first stabilization motion value to the current image to stabilize the current image; and storing the stabilized current image in a memory. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
14. A video image capture device, comprising:
-
an image sensor; memory communicatively coupled to the image sensor; one or more motion sensors; one or more processors operatively coupled to the image sensor, the memory and the one or more motion sensors configured to execute instructions causing the one or more processors to; obtain a first time-sequenced set of images, wherein; each image in the first time-sequenced set of images has a capture time and motion data; one image in the first time-sequenced set of images is designated as a current image; a first one or more images within the first time-sequenced set of images having capture times before the current image are designated past images; and a second one or more images within the first time-sequenced set of images having capture times after the current image are designated future images; select a first image from the first time-sequenced set of images to meet a first stabilization constraint; identify a weighting value for each image in the first time-sequenced set of images based, at least in part, on the proximity of the respective image'"'"'s capture time to the capture time of the current image; adjust the identified weighting value for the selected first image according to a first weighting adjustment value; identify a first stabilization motion value for the current image in the first time-sequenced set of images based, at least in part, on the identified weighting values and the adjusted weighting value for the selected first image; apply the first stabilization motion value to the current image to stabilize the current image; and store the stabilized current image in a memory. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
Specification