Generic platform video image stabilization
First Claim
1. One or more computer-readable media storing computer-executable instructions for causing a computing device programmed thereby to perform a method of digital video stabilization, the one or more computer-readable media including non-volatile memory or a storage device, the method comprising:
- evaluating the computing device to determine availability of any of various multimedia digital signal processing (“
DSP”
) components on the computing device;
determining from the results of said evaluating which available multimedia DSP component to utilize for at least one part of digital video stabilization according to a hierarchical structure for ordering multimedia DSP components by criteria comprising at least performance of the digital video stabilization, the digital video stabilization comprising at least local motion vector estimation to produce estimated local motion vectors, processing the estimated local motion vectors for estimation of a global motion transform representing jittery video motion, and image warping based on the global motion transform to compensate the jittery video motion; and
performing digital video stabilization of a video segment on the computing device utilizing the determined available multimedia DSP component for said at least one part of the digital video stabilization, wherein the performing the digital video stabilization includes warping at least one frame of the video segment based on the global motion transform that applies for the at least one frame of the video segment.
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.
-
Citations
25 Claims
-
1. One or more computer-readable media storing computer-executable instructions for causing a computing device programmed thereby to perform a method of digital video stabilization, the one or more computer-readable media including non-volatile memory or a storage device, the method comprising:
-
evaluating the computing device to determine availability of any of various multimedia digital signal processing (“
DSP”
) components on the computing device;determining from the results of said evaluating which available multimedia DSP component to utilize for at least one part of digital video stabilization according to a hierarchical structure for ordering multimedia DSP components by criteria comprising at least performance of the digital video stabilization, the digital video stabilization comprising at least local motion vector estimation to produce estimated local motion vectors, processing the estimated local motion vectors for estimation of a global motion transform representing jittery video motion, and image warping based on the global motion transform to compensate the jittery video motion; and performing digital video stabilization of a video segment on the computing device utilizing the determined available multimedia DSP component for said at least one part of the digital video stabilization, wherein the performing the digital video stabilization includes warping at least one frame of the video segment based on the global motion transform that applies for the at least one frame of the video segment. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method of digital video stabilization, the method comprising performing steps on a computing device of:
-
performing local motion vector estimation for a frame of a plurality of frames of a scene of a video segment, wherein the local motion vector estimation comprises for said frame; downsampling said frame and a reference frame associated with said frame by one or more times to form a plurality of versions of said frame at a plurality of resolutions, wherein a lowest resolution version of said frame has a plurality of blocks associated as a pyramid structure to a successively larger number of blocks at corresponding locations in each higher resolution version of said frame; for the lowest resolution version of said frame, estimating motion vectors of the blocks of said lowest resolution version frame using an initial motion vector estimation processing of the associated lowest resolution version reference frame; for each successively higher resolution version of said frame, estimating motion vectors of the blocks of said successively higher resolution version frame using a refinement search starting from the motion vector estimated for the associated block of the preceding lower resolution version frame according to the pyramid structure; and producing estimated local motion vectors for the blocks of the original resolution version of said frame; processing the estimated local motion vectors of said frame for estimation of a global motion transform representing jittery video motion, including selecting a set of motion vectors to use for estimation of the global motion transform out of the produced estimated local motion vectors of said frame, wherein said selecting the set of motion vectors comprises one or more of; excluding motion vectors on picture boundaries, excluding motion vectors having a high motion compensation residual, and excluding motion vectors for blocks with low image content variation; and performing image warping on said frame based on the global motion transform estimated for said frame to compensate for the jittery video motion. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A digital video processing device for processing video to apply digital video stabilization to the video, the digital video processing device comprising:
-
a memory storing a generic platform video stabilization library program; at least one digital signal processing component; a processing unit operating to execute the video stabilization library program from the memory, wherein said execution of the video stabilization library program comprises; evaluating the at least one digital signal processing component of the digital video processing device; determining which of the at least one digital signal processing component to utilize for at least one part of digital video stabilization according to a hierarchical structure for ordering digital signal processing components by criteria comprising at least performance of the digital video stabilization; and performing digital video stabilization on the video in part by processing a frame of the video to estimate local motion vectors of the frame, processing the estimated local motion vectors for estimation of a global motion transform representing jittery video motion, and warping the frame based on the global motion transform to compensate for the jittery video motion, wherein said performing the digital video stabilization executes programming functions in the generic platform video stabilization library program to utilize the determined digital signal processing component for the at least one part of the digital video stabilization. - View Dependent Claims (20, 21, 22, 23, 24, 25)
-
Specification