Image blur is a problem in photography and has a variety of causes such as focusing errors and motion of the imaged object. Motion of the camera relative to the imaged object is another source of image blur. Camera motion is also referred to as camera shake, hand shake, or hand shudder. When a person is holding a camera during exposure, camera shake causes image blurring, particularly during long exposure times and for image enlargement (e.g., using a zoom or telephoto lens). Camera shake is typical because human muscles naturally tremor at frequencies approximately in the range of 4-12 Hz. Additionally, small cameras such as cell phone cameras are particularly prone to camera shake because they are constructed of lightweight materials and are sometimes awkward to hold during operation.
In efforts to reduce image blur, imaging devices such as hand-held cameras implement image stabilization. Image stabilization refers to reducing the effects of relative movement between an image sensor and an object being imaged. Some conventional image stabilization techniques for still camera systems, as compared to video camera systems, involve movement measurements and complementary mechanical displacement of a lens or image sensor. Such camera systems include gyroscopes (e.g., piezoelectric or microelectromechanical systems (MEMS) gyros) or other mechanical devices to measure the movement of the camera. Once the movement is measured, mechanical displacement systems physically move the image sensor in a manner to compensate for the movement of the camera. Other conventional systems physically move the camera lens to compensate for the detected camera movement. However these conventional mechanical systems are cost prohibitive and are often too large to be implemented in small camera systems such as cell phone cameras. Additionally, mechanical systems are subject to mechanical failures.
Another type of conventional image stabilization to compensate for hand shake motion experienced by a digital camera is implemented by combining pixel values for multiple frames into a fixed buffer over an image acquisition cycle. FIG. 1A depicts a schematic signal diagram 10 of pixel values for a pixel over an image acquisition cycle of multiple frames. In other words, a pixel value is obtained for each frame of the image. The pixel values are then combined, in some manner, to produce a final pixel value for the corresponding pixel of the image. This approach is applied to each pixel individually, although several pixels may be read out of an image sensor together in a pixel row (or column). The pixel value is represented by multiple bits (e.g., 8 bits) to provide a known granularity (e.g., 8 bits provides 256 values designated between 0 and 255).
Accumulation is one way to combine the pixel values obtained over several frames to produce a final pixel value for the corresponding pixel. FIG. 1B depicts a schematic signal diagram 20 of a cumulative buffer value from an exemplary conventional signal accumulation method. The final pixel value is represented by the cumulative buffer value. As shown in FIG. 1B, the pixel values of each frame are added together to produce the cumulative buffer value. However, if the buffer is the same size (i.e., has the same number of bits) as the individual pixel values (e.g., 8 bits), then the cumulative buffer value may result in an overflow condition, as depicted by the hashed area in FIG. 1B. To address this problem, conventional accumulation methods use a buffer that is large enough, or uses enough bits, to numerically avoid the overflow. For example, to accumulate 10 frames having 8 bits (256 possible values) per pixel, for a possible total value of 2,560 (i.e., 10×256), a numerically sufficient bit depth is 12 bits per pixel (bpp), which can accommodate over 4,000 possible values. However, using an increased bpp (e.g., 12 bpp instead of 8 bpp) for the buffer increases the memory size and bandwidth allocations. In the example described above, the buffer size and bandwidth are increased by 50% over the minimum possible bit depth of 8 bpp. For a high resolution image (e.g., 3 megapixels), the conventional accumulation method results in an unacceptably large increase in buffer size and bandwidth allocation.
Averaging is another conventional way to combine the pixel values obtained over several frames. FIG. 1C depicts a schematic signal diagram 30 of an average buffer value from an exemplary conventional signal averaging method. The final pixel buffer is represented by the average buffer value, instead of the cumulative buffer value, of the incoming pixel values. However, conventional averaging methods produce unacceptable results such as dark images when the imaged scene has low light levels.