Generic platform video image stabilization
First Claim
1. A handheld computing device comprising:
- a central processing unit (CPU);
one or more memory units;
a camera;
a graphics processing unit (GPU) including a shader unit; and
the one or more memory units storing computer-executable instructions for causing the handheld computing device, when programmed thereby, to perform real-time digital video stabilization that includes;
for each of multiple frames of a video sequence captured by the camera;
estimating, using the CPU, a motion transform that represents jittery motion associated with shakiness of the handheld computing device; and
automatically warping, using the shader unit of the GPU, at least a portion of the frame based on the motion transform to compensate for the jittery motion; and
initiating uploading of the stabilized video, from the handheld computing device to a video sharing site or social networking site, over a connection to a network.
2 Assignments
0 Petitions
Accused Products
Abstract
Video image stabilization provides better performance on a generic platform for computing devices by evaluating available multimedia digital signal processing components, and selecting the available components to utilize according to a hierarchy structure for video stabilization performance for processing parts of the video stabilization. The video stabilization has improved motion vector estimation that employs refinement motion vector searching according to a pyramid block structure relationship starting from a downsampled resolution version of the video frames. The video stabilization also improves global motion transform estimation by performing a random sample consensus approach for processing the local motion vectors, and selection criteria for motion vector reliability. The video stabilization achieves the removal of hand shakiness smoothly by real-time one-pass or off-line two-pass temporal smoothing with error detection and correction.
64 Citations
20 Claims
-
1. A handheld computing device comprising:
-
a central processing unit (CPU); one or more memory units; a camera; a graphics processing unit (GPU) including a shader unit; and the one or more memory units storing computer-executable instructions for causing the handheld computing device, when programmed thereby, to perform real-time digital video stabilization that includes; for each of multiple frames of a video sequence captured by the camera; estimating, using the CPU, a motion transform that represents jittery motion associated with shakiness of the handheld computing device; and automatically warping, using the shader unit of the GPU, at least a portion of the frame based on the motion transform to compensate for the jittery motion; and initiating uploading of the stabilized video, from the handheld computing device to a video sharing site or social networking site, over a connection to a network. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computer-readable memory or storage device storing computer-executable instructions for causing a computing device that includes a graphics processing unit (GPU), when programmed thereby, to perform video sharing with real-time digital video stabilization, the video sharing with real-time digital video stabilization including:
-
for each of multiple frames of a video sequence captured by a camera of the computing device; estimating a motion transform that represents jittery motion associated with shakiness of the computing device; and automatically warping, using a vertex shader on the GPU, at least a portion of the frame based on the motion transform to compensate for the jittery motion; forming stabilized video around a display port, including, for each of at least some of the multiple frames of the video sequence, cropping boundaries of the frame, wherein the display port depends on the warping for the multiple frames, respectively; and initiating uploading of the stabilized video to a video sharing site or social networking site over a connection to a network. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. In a computing device that includes a graphics processing unit (GPU), a method of video sharing with real-time digital video stabilization, the method comprising:
-
for each of multiple frames of a video sequence captured by a camera of the computing device; estimating a motion transform that represents jittery motion associated with shakiness of the computing device; and automatically warping, using a vertex shader on the GPU, at least a portion of the frame based on the motion transform to compensate for the jittery motion; forming stabilized video around a display port, including, for each of at least some of the multiple frames of the video sequence, cropping boundaries of the frame, wherein the display port depends on the warping for the multiple frames, respectively; and initiating uploading of the stabilized video, from the computing device to a video sharing site or social networking site over a connection to a network. - View Dependent Claims (18, 19, 20)
-
Specification