Method and apparatus for capturing images
A first set of image data is acquired based on a first frame of light entering the camera before receiving an instruction to capture an image from a user. The first set of image data is then used to test the performance of at least one hardware component in the camera.
Latest Microsoft Patents:
The present application is a Continuation of U.S. patent application Ser. No. 09/505,223, filed on Feb. 16, 2000, which claims priority benefit from U.S. Provisional Application 60/136,517, filed on May 28, 1999 and entitled “EARLY IMAGE ACQUISITION”.
BACKGROUND OF THE INVENTIONThe present application relates to digital cameras. In particular, the present invention relates to image control and processing in digital cameras.
Digital cameras capture images by converting light into electrical signals and processing the electrical signals to produce a set of image data. The image data is then stored in a long-term memory for later retrieval.
The processing of captured images is compute-intensive, often making the user wait for the final picture after the shutter button is pressed. For users who want to take a series of photographs in rapid succession, this delay is undesirable.
SUMMARY OF THE INVENTIONA first set of image data is acquired based on a first frame of light entering the camera before receiving an instruction to capture an image from a user. The first set of image data is then used to test the performance of at least one hardware component in the camera.
BRIEF DESCRIPTION OF THE DRAWINGS
Photo array 206 is constructed of an array of specialized transistors known as Charge Coupled Devices (CCDs). For black-and-white images, each CCD represents a separate pixel in the captured image. For color images, a set of CCD pixels with overlaid color filters are combined to represent a single pixel, with each CCD providing information on a different color of light.
Based on the output of the CCDs, photo array 206 transmits an analog signal to an analog-to-digital (A/D) converter 210. A/D converter 210 converts the analog signal into a series of digital values, with each value representing the brightness or intensity of a pixel's color. The digital values produced by A/D converter 210 are stored in a register 212 that receives read and write control signals from an image processor 214. By controlling when A/D converter 210 can write to register 212, image processor 214 is able to capture and store values representing a single frame of light.
Image processor 214 and auto-focus controller 208 are able to access and use the image data in register 212. Auto-focus controller 208 uses the data to adjust lens assembly 204. Image processor 214 uses the image data for a number of processing functions described further below.
In most embodiments, image processor 214 processes the image data in register 212 using software components stored in code storage 216. Intermediate results of this processing are stored in a second register 218, and the final image data resulting from the processing is stored in long-term storage 220.
In most embodiments, image processor 214 receives input from a capture. button 222 that is depressed by the user to indicate when the user wants to capture an image. In some embodiments, the user is able to press capture button 222 half-way down to indicate that they want the camera to prepare to capture an image by, for example, activating the auto-focus feature of the camera.
Image processor 214 is also able to set parameters for a flash 224, which is controlled by a flash controller 226. The flash parameters are stored in register 228 by image processor 214 and include parameters such as a red-eye reduction flash parameter, a duration parameter, and a brightness parameter.
Under the present invention, image processor 214 performs some processing functions before the user indicates that they wish to capture an image. Thus, before capture button 222 is fully depressed, image processor 214 performs one or more functions such as white balance, contrast adjustment, and red-eye reduction. After the user fully depress capture button 222, image processor 214 performs additional post-capture processing functions. The results of the pre-capture and post-capture processing functions are then combined to produce a final set of image data. By performing some of the image processing functions before the user tries to capture an image, the present invention reduces the post-capture processing time.
The method of
Under one embodiment, pre-capture process control 402 invokes one or more separate image processing components such as white balance component 404, red-eye reduction component 406, contrast adjustment component 408, flesh tone correction component 410, and edge enhancement component 412 of
In some embodiments, pre-capture process control 402 also invokes processing functions to test the performance of some hardware components of the camera. For example, under one embodiment, pre-capture process control 402 invokes a defective pixel detection component 428, which determines if one or more of the CCD transistors is malfunctioning. In other embodiments, pre-capture process control 402 invokes a memory availability component 430, which determines if long term image storage 220 of
Returning to the method of
If the capture button has been pressed at step 306, system control component 400 captures image data for a second frame of light at step 308. System control component 400 then invokes a post-capture process control component 418 that invokes one or more image processing components at step 310. Some of the image processing components, such as compression component 420 of
At step 312, the final set of image data is stored in long-term image storage 220 of
At step 488, system control 400 invokes pre-capture process control 402, which invokes one or more processing components as described above.
In addition to using some or all of the processing components described above, some embodiments that utilize the method of
When the pre-capture processing is complete, the method of
After pre-capture process control 402 has finished executing, system control 400 waits for the user to fully depress the capture button at step 528. When the user fully depresses the capture button, system control 400 retrieves a new set of image data based on a second frame of light that entered the camera just after the capture button was depressed. This is shown in step 530 of
Under some embodiments of the invention, post-capture process control 418 invokes a verify pre-capture results component 432 to verify the results from one or more of the pre-capture components before utilizing those results. Such verification is helpful because the lighting conditions may have changed between the time when the image data for the first frame of light was collected and the time when the image data for the second frame of light was collected.
The method of
Although the present invention has been described with reference to particular embodiments, workers skilled in the art will recognize that changes may be made in form and detail without departing from the spirit and scope of the invention.
Claims
1. A method in a camera, the method comprising:
- acquiring a first set of image data based on a first frame of light entering the camera before receiving an instruction to capture an image from a user; and
- testing the performance of at least one hardware component in the camera using the first set of image data.
2. The method of claim 1 wherein testing the performance of at least one hardware component comprises determining if the camera has enough available memory to store the first set of image data.
3. The method of claim 2 further comprising determining that the camera does not have enough available memory to store the first set of image data and indicating to the user that there is insufficient memory before acquiring a second set of image data.
4. The method of claim 2 further comprising determining that the camera does not have enough available memory to store the first set of image data and reallocating memory before acquiring the second set of image data.
5. The method of claim 4 wherein reallocating memory comprises terminating a software component.
6. The method of claim 4 wherein reallocating memory comprises minimizing a software component.
7. The method of claim 4 wherein reallocating memory comprises remapping virtual address space.
8. The method of claim 1 wherein testing the performance of at least one hardware component comprises determining if a light sensor is working.
9. The method of claim 8 wherein testing the performance of at least one hardware component comprises determining if each light sensor in an array of light sensors is working.
10. The method of claim 9 further comprising providing an indication of which light sensors are not working before acquiring a second set of image data.
11. The method of claim 1 further comprising receiving a pre-capture event before acquiring the first set of image data.
12. The method of claim 11 wherein the pre-capture event is an indication that a user has pressed a capture button half-way down.
13. The method of claim 11 wherein the pre-capture event is produced by a software routine.
14. A camera having processor-executable components for capturing images, the components comprising:
- an image acquisition component capable of acquiring image data representing a first frame of light; and
- a hardware testing component capable of testing a hardware component in the camera based on image data acquired by the image acquisition component for the first frame of light.
15. The camera of claim 14 wherein the hardware testing component comprises a memory availability component capable of performing a memory resource function to determine if there is sufficient available memory to store the image data.
16. The camera of claim 15 further comprising a user notification component capable of notifying the user when there is insufficient memory to store the image data before the image acquisition component acquires image data for a second frame of light.
17. The camera of claim 15 further comprising a memory management component that is capable of reallocating memory resources before the image acquisition component acquires image data for a second frame of light.
18. The camera of claim 17 wherein the memory management component reallocates memory resources by terminating components.
19. The camera of claim 17 wherein the memory management component reallocates memory by remapping a virtual address space.
20. The camera of claim 14 wherein the hardware testing component comprises a defective pixel detection component that is capable of identifying defective light sensors in the camera based on image data acquired for the first frame of light.
Type: Application
Filed: Sep 22, 2005
Publication Date: Jan 19, 2006
Applicant: Microsoft Corporation (Redmond, WA)
Inventors: Jonathan Kagle (Redmond, WA), Gilad Odinak (Bellevue, WA)
Application Number: 11/233,349
International Classification: H04N 5/225 (20060101);