BLOCK-BASED IMAGE STABILIZATION
First Claim
1. A method for processing digital image data comprising:
- partitioning a first image of a scene of interest into a plurality of blocks of pixels;
computing, for each of the plurality of blocks, a motion vector that represents the offset between the block of the first image and a corresponding block of pixels within a second image of the scene of interest;
averaging pixel values for each of the pixels of the blocks of the first image with pixel values of corresponding pixels of the second image based on the motion vector of the respective block to which the pixels belong; and
storing the averaged pixel values.
1 Assignment
0 Petitions
Accused Products
Abstract
This disclosure describes image stabilization techniques for devices with image capture capabilities. An image capture device may capture two or more images and combine the image using the techniques described in this disclosure. In particular, the image capture device may compute motion vectors for a plurality of blocks of pixels of one of the images. In cases, the image capture device may also interpolate or extrapolate motion vectors for individual pixels or sub-blocks of pixels using the block motion vectors. The image capture device may then average the first and second images by averaging each of the pixels of the first image with pixels of the second image that correspond to a location indicated by the plurality of motion vectors. The techniques may be particularly effective in reducing blur in image information resulting from certain movements during image capture or use of certain image capture technologies.
56 Citations
25 Claims
-
1. A method for processing digital image data comprising:
-
partitioning a first image of a scene of interest into a plurality of blocks of pixels; computing, for each of the plurality of blocks, a motion vector that represents the offset between the block of the first image and a corresponding block of pixels within a second image of the scene of interest; averaging pixel values for each of the pixels of the blocks of the first image with pixel values of corresponding pixels of the second image based on the motion vector of the respective block to which the pixels belong; and storing the averaged pixel values. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A computer-program product for processing digital image data comprising a computer readable medium having instructions thereon, the instructions comprising:
-
code for partitioning a first image of a scene of interest into a plurality of blocks of pixels; code for computing, for each of the plurality of blocks, a motion vector that represents the offset between the block of the first image and a corresponding block of pixels within a second image of the scene of interest; code for averaging pixel values for each of the pixels of the blocks of the first image with pixel values of corresponding pixels of the second image based on the motion vector of the respective block to which the pixels belong; and code for storing the averaged pixel values. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. An apparatus for processing digital image data comprising:
-
an image processor to process the image data, the image processor including; a block partitioner to partition a first image of a scene of interest into a plurality of blocks of pixels; a motion vector module that computes, for each of the plurality of blocks, a motion vector that represents the offset between the block of the first image and a corresponding block of pixels within a second image of the scene of interest; and pixel averaging module that averages pixel values for each of the pixels of the blocks of the first image with pixel values of corresponding pixels of the second image based on the motion vector of the respective block to which the pixels belong; and a memory to store the averaged pixel values. - View Dependent Claims (16, 17, 18, 19, 20, 21)
-
-
22. An apparatus for processing digital image data, the device comprising:
-
means for partitioning a first image of a scene of interest into a plurality of blocks of pixels; means for computing, for each of the plurality of blocks, a motion vector that represents the offset between the block of the first image and a corresponding block of pixels within a second image of the scene of interest; means for averaging pixel values for each of the pixels of the blocks of the first image with pixel values of corresponding pixels of the second image based on the motion vector of the respective block to which the pixels belong; and means for storing the averaged pixel values. - View Dependent Claims (23, 24, 25)
-
Specification