PATENT DOCUMENT

Publication Number: US-10063778-B2
Application Number: US-201615357406-A
Country: US
Kind Code: B2

Title: Image capturing device having continuous image capture

Abstract:
Methods, devices, and systems for continuous image capturing are described herein. In one embodiment, a method includes continuously capturing a sequence of images with an image capturing device. The method may further include storing a predetermined number of the sequence of images in a buffer. The method may further include receiving a user request to capture an image. In response to the user request, the method may further include automatically selecting one of the buffered images based on an exposure time of one of the buffered images. The sequence of images is captured prior to or concurrently with receiving the user request.

Claims:
What is claimed is: 
     
       1. A non-transitory machine readable medium containing executable computer program instructions which when executed by a data processing system cause said system to perform a method, the method comprising:
 continuously capturing a sequence of images with an image capturing device; 
 storing a predetermined number of the sequence of images in a buffer; 
 receiving a user request to capture an image; and 
 in response to the user request, presenting for selection one of the buffered images when an exposure time of one of the buffered images meets a predetermined criteria. 
 
     
     
       2. The medium of  claim 1 , the method further comprising:
 selecting, based on a user input, one of the buffered images when the exposure time of one of the buffered images fails to meet the predetermined criteria. 
 
     
     
       3. The medium of  claim 1 , wherein presenting for selection one of the sequence of images further comprises:
 determining the exposure time for one of the sequence of images; and 
 selecting a recently captured image, which was captured just prior to or concurrently with receiving the user request, if the exposure time meets the predetermined criteria based on a predetermined threshold exposure time. 
 
     
     
       4. The medium of  claim 3 , the method further comprising:
 determining a focus score for each captured image; and 
 selecting a buffered image based on the focus score. 
 
     
     
       5. The medium of  claim 1 , wherein presenting for selection one of the sequence of images further comprises:
 generating motion information for each image of the sequence of images; and 
 selecting an image captured during a time with no or minimal camera shake based on the motion information. 
 
     
     
       6. A data processing system, comprising:
 a storage device to store a plurality of captured images; 
 a lens coupled to the storage device, the lens to receive light associated with the captured images; 
 a processing system coupled to the storage device, the processing system is configured to continuously capture a sequence of images, to store the sequence of images in a buffer, to receive a user request to capture an image, and to present for selection one of the buffered images when an exposure time of one of the buffered images meets a predetermined criteria. 
 
     
     
       7. The data processing system of  claim 6 , wherein the processing system while presenting for selection one of the buffered images is further configured to:
 determine an exposure time of one of the buffered images; 
 determine whether the exposure time meets the predetermined criteria based on a predetermined threshold exposure time; and 
 select a recent image if the exposure time meets the predetermined criteria and wherein the processing system is configured to initiate the continuously capturing and the storing after the data processing system enters an image capture mode. 
 
     
     
       8. The data processing system of  claim 6 , wherein the processing system while presenting for selection one of the buffered images is further configured to:
 receive a selection, based on a user input, of one of the buffered images when the exposure time of one of the buffered images fails to meet the predetermined criteria. 
 
     
     
       9. The data processing system of  claim 6 , wherein the processing system while presenting for selection one of the buffered images is further configured to:
 generate motion information for each image of the sequence of images; and 
 to select an image captured during a time with no or minimal camera shake based on the motion information.

Description:
CROSS-REFERENCED APPLICATION 
     This application is a divisional of co-pending U.S. application Ser. No. 14/322,215 filed on Jul. 2, 2014, which is a continuation of U.S. application Ser. No. 13/648,834, filed on Oct. 10, 2012, now issued as U.S. Pat. No. 8,803,981, which is a divisional of U.S. application Ser. No. 12/479,756, filed on Jun. 5, 2009, now issued as U.S. Pat. No. 8,289,400, which is related to the following commonly-owned, concurrently filed application: application publication no. US2010/0309334, filed Jun. 5, 2009, entitled “Camera Image Selection Based on Detected Device Movement” and is incorporated by reference in entirety herein. 
    
    
     TECHNOLOGY FIELD 
     At least some embodiments of the present invention relate to image capturing devices having continuous image capture. 
     BACKGROUND 
     Image capturing devices include cameras, portable handheld electronic devices, and electronic devices. These image capturing devices typically use a preview resolution for capturing a preview image of a scene. Subsequently, a user provides an input to take a photograph. The device switches from preview resolution to full resolution prior to capturing an image. Switching from preview to full resolution causes a time lag, which may lead to user frustration. Also, camera shake during the time when a user presses a button or touches a touchscreen can degrade image quality. 
     SUMMARY 
     Methods, devices, and systems for continuous image capturing are described herein. In one embodiment, a method can include continuously capturing images with an image capturing device. The method can include storing a predetermined number of the sequence of images in a buffer. The device can receive a user request to capture an image. The method can automatically select one of the buffered images based on one or more parameters. For example, the selection may be based on an exposure time of one of the buffered images and optionally an image quality parameter (e.g., image contrast). Alternatively, the selection may be based only on the image quality parameter. The sequence of images can be captured just prior to or concurrently with receiving the user request. The method can include automatically displaying the selected image on the display of the image capturing device. These operations can be initiated after the device enters an image capturing mode or other mode. For example, the device may have many functions and capabilities (e.g., the device may be a smart phone or personal digital assistant (PDA) which can send and receive emails, allow surfing of the internet, create documents, and also act as a camera), and a user can place the device into camera mode in order to cause it to begin these continuous operations. In an embodiment, the device is not continuously performing these operations when it is not in camera mode. 
     In an embodiment, the continuously captured images can be captured in full resolution. The sequence of images can be advantageously captured just prior to the device receiving the user request for the photograph to avoid camera shake associated with the user request (e.g., pressing a shutter button, touching a touchscreen). One of the sequence of images can be automatically selected and displayed in full resolution in response to receiving the user request. 
     The present invention can include systems and devices that perform these methods, including data processing systems which perform these methods, and machine readable media which when executed on data processing systems cause the systems to perform these methods. 
     Other features of the present invention will be apparent from the accompanying drawings and from the detailed description which follows. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The present invention is illustrated by way of example and not limitation in the figures of the accompanying drawings in which like references indicate similar elements. 
         FIG. 1  shows a portable handheld device having a built-in digital camera and a touch sensitive screen in accordance with one embodiment of the present invention. 
         FIG. 2  illustrates a flow diagram of a continuous image capture mode for an image capturing device in accordance with embodiments of the present invention. 
         FIG. 3  illustrates a detailed flow diagram of a continuous image capture mode for an image capturing device in accordance with embodiments of the present invention. 
         FIG. 4  illustrates an exemplary buffer for storing a predetermined number of the sequence of images in accordance with one embodiment of the present invention. 
         FIG. 5  shows an image capturing device  2950  in accordance with one embodiment of the present invention. 
         FIG. 6  shows an embodiment of a wireless image capturing device in accordance with one embodiment of the present invention. 
         FIG. 7  shows a data processing system according to an embodiment of the present invention. 
     
    
    
     DETAILED DESCRIPTION 
     The following description and drawings are illustrative of the invention and are not to be construed as limiting the invention. Numerous specific details are described to provide a thorough understanding of the present invention. However, in certain instances, well known or conventional details are not described in order to avoid obscuring the description of the present invention. References to one or an embodiment in the present disclosure are not necessarily references to the same embodiment; and, such references mean at least one. 
     Methods, devices, and systems for continuous image capturing are described herein. In one embodiment, a method includes continuously capturing, after entry into an image capturing mode, a sequence of images with an image capturing device. The method stores a predetermined number of the sequence of images in a buffer. The device receives a user request to capture an image. The method automatically selects one of the buffered images based on one or more parameters. For example, the selection may be based on an exposure time and optionally an image quality parameter (e.g., image contrast). The sequence of images are captured just prior to or concurrently with receiving the user request. The method automatically displays the selected image in full resolution on the display of the image capturing device. 
     Advantageously, an image captured prior to a user requesting the capture of an image has an image quality that is not degraded by camera shake associated with the user request. 
       FIG. 1  shows a portable image capturing device  100  having a built-in digital camera in accordance with one embodiment. In this example, the portable device  100  is shown while it is held in the user&#39;s hand  107 . The device  100  may be an IPHONE device by Apple Inc., of Cupertino, Calif. Alternatively, it could be any other electronic device that has a built-in digital camera. The built-in digital camera includes a lens  103  located in this example on the back face of the device  100 . The lens may be a fixed optical lens system or it may have focus and optical zoom capability. Although not depicted in  FIG. 1 , inside the device  100  are an electronic image sensor and associated hardware circuitry and running software that can capture a digital image of a scene  102  that is before the lens  103 . 
     The digital camera functionality of the device  100  optionally includes an electronic or digital viewfinder for an image capturing mode. In  FIG. 1 , the scene  102  is displayed on the screen. Upon initiation of the image capture mode, images  97  are continuously captured and displayed on the screen. 
     The viewfinder displays live, captured video (e.g., series of images) or images in full resolution of the scene  102  that is before the camera, on a portion of the touch sensitive screen  104  as shown. In this case, the digital camera also includes a soft or virtual shutter button whose icon  105  is displayed by the screen  104 , directly below the viewfinder image area. As an alternative or in addition, a physical shutter or non-virtual button may be implemented in the device  100 . The device  100  includes all of the heeded circuitry and/or software for implementing the digital camera functions of the electronic viewfinder, shutter release, continuous image capturing, storing of a predetermined number of the sequence of images, and automatic selection of an image based on one or more parameters (e.g., exposure, image quality parameter) as described below. 
       FIG. 2  illustrates a flow diagram of a continuous image capture mode for an image capturing device in accordance with embodiments of the present invention. The image capturing device is initialized at block  202 . Initialization includes powering the image capturing device and selecting an image capture mode. In one embodiment, processing logic executes the operations of the image capture mode. The processing logic may include hardware (circuitry, dedicated logic, etc.), software (such as is run on a general purpose computer system or a dedicated machine or a device), or a combination of both. The processing logic can continuously capture images with the image capturing device at block  204 . The processing logic can store a predetermined number (e.g.,  2 ,  3 ,  4 ,  5 ) of the sequence of images in a buffer at block  206 . In an embodiment, a new image is captured and stored in the buffer at a certain rate (e.g., 1/15 of a second). The processing logic can continuously purge or replace other images in the buffer that were previously captured prior to the sequence of images at block  208 . 
       FIG. 4  illustrates an exemplary buffer for storing a predetermined number of the sequence of images in accordance with one embodiment of the present invention. The buffer  400  includes available memory spaces  402 - 420  for the storing the captured images. A predetermined number (e.g.,  3 ) of the sequence of images are stored in the buffer  400 . These images are captured just prior to receiving the user request to take a photograph. Memory resources can be conserved in that only the sequence of images are stored with previously captured images being purged. 
     Returning to  FIG. 2 , the processing logic can display on a display of the image capturing device the continuously captured images at block  210 . In an embodiment, the continuously captured images are displayed prior to receiving a user request to capture an image at block  212 . The processing logic can automatically select one of the sequence of images based on an exposure time and optionally an image quality parameter (e.g., image contrast) at block  214 . Alternatively, the selection can be based only on the image quality parameter. More details regarding the automatic selection of an image will be described below in conjunction with the description of  FIG. 3 . 
     In one embodiment, the sequence of images includes only images captured just prior to receiving the user request. In one embodiment, the sequence of images does not include images captured after receiving the user request. In an alternative embodiment, the sequence of images may include images captured before receiving the user request and at approximately the time of receiving the user request. In another alternative embodiment, the sequence of images may include images captured before, during, and/or after receiving the user request. 
     In one embodiment, the sequence of images is captured just prior to receiving the user request. The processing logic can automatically store the selected image in memory and display the selected image on the display of the image capturing device at block  216 . The memory may be used to store photos or video in the form of a user-initiated photo or video library. 
     In an embodiment, the continuously captured images and the selected image are captured and displayed in full resolution. A user can quickly capture an image with minimal time lag between sending a request to take a photograph and the capture of the image. The sequence of images are advantageously captured just prior to the processing logic receiving the user request for the photograph to avoid camera shake associated with the user request (e.g., pressing a shutter button, touching a touchscreen). 
       FIG. 3  illustrates a detailed flow diagram of an automatic selection of one of the sequence of images in image capture mode for an image capturing device in accordance with embodiments of the present invention. In some embodiments, automatically selecting one of the sequence of images includes determining an exposure time for one of the buffered images (e.g., most recently captured image) at block  316 . The processing logic can determine whether the exposure time meets predetermined criteria that is based on a predetermined threshold exposure time (e.g., 1/100 of a second) at block  318 . For example, the processing logic can determine whether the exposure time is less than, approximately equal to, or greater than the predetermined threshold exposure time. In an embodiment, the processing logic determines whether the exposure time meets predetermined criteria (e.g., is exposure time less than the predetermined threshold exposure time). At block  320 , the processing logic can automatically select the most recently captured image, which was captured just prior to receiving the user request, if the exposure time meets the predetermined criteria. Using the most recently captured image, which is received just prior to receiving the user request, avoids degrading the image if camera shake occurs with the user request. 
     If the exposure time fails to meet the predetermined criteria (e.g., the exposure time is approximately equal to or greater than the predetermined threshold exposure time), then camera shake (and thus a blurry image) might be a problem. There is a higher chance that the camera moves a noticeable amount if the exposure time is longer. Thus, the processing logic can determine a focus score for each captured image stored in buffer  400  at block  322  if the exposure time fails to meet the predetermined criteria. Alternatively, a user can select one of the buffered images if the exposure time fails to meet the predetermined criteria. 
     The focus score may be determined based on image quality parameters (e.g., image contrast, image resolution, dynamic range, color rendering properties) using an automatic focus mechanism that can perform an automatic focus scan. This scan positions a lens of the image capturing device in various positions. The automatic focus mechanism can obtain focus scores with each focus score being associated with a respective lens position of the automatic focus scan. In an embodiment, a focus score is a scene-dependent measure of contrast. The automatic focus mechanism can determine whether the obtained focus scores for a scene are acceptable. In an embodiment, a focus area can be automatically determined based on a user selection of a portion of the screen (e.g., touchscreen) of the image capturing device. Then, the automatic focus scan may be initiated for the focus area. The focus scores for the focus area may be obtained prior to the operations of  FIG. 3 . An image sensing unit may send frames of metadata (e.g., focal-number, exposure time, white balance, focus score) to the processing logic. Focus scores are obtained from the metadata. 
     In one embodiment, the image sensing unit, for each pixel associated with a previously determined focus area, can compute the absolute difference (in RGB values) horizontally and vertically between adjacent pixels. Then, the horizontal and vertical difference values are combined into a single number for each pixel by either forming the sum or a maximum of those two. Then, for each scan line of an image sensor, these pixel values get combined, by either forming the sum or a maximum. Then the resulting value from each scan line is combined over the entire focus area by adding these values to generate a focus score for the captured image. A higher focus score indicates a sharper image quality. 
     In an embodiment, the processing logic can apply weighted factors to each of the buffered images at block  324 . For example, a most recently captured image T 1  may have a weighted factor W 1  of 1.0, a next most recently captured image T 2  may have a weighted factor W 2  of 0.9, and a next most recently captured image T 3  may have a weighted factor W 3  of 0.83. In this case, the weighted factors are biased towards the image T 1 . Alternatively, the weighted factors can be biased evenly or away from T 1  the most recently captured image just prior to receiving the user request to take a photograph. 
     Next, the processing logic can determine a product of the focus score and the weighted factor for each of the respective the sequence of images at block  328 . For example, the products may include S 1 *W 1 , S 2 *W 2 , and S 3 *W 3  with S 1 -S 3  being focus scores for the respective the sequence of images. The processing logic can select a most recently captured image having a highest weighted focus score product at block  328  if the exposure time is approximately greater than or equal to the predetermined threshold exposure time. In one embodiment, the images T 2  or T 3  may be selected over T 1  only if a user perceived benefit is achieved. For example, the weighted focus score product for T 2  or T 3  may need to exceed the product for T 1  by a predetermined threshold (e.g., 20%) in order to select T 2  or T 3  rather than T 1 , which is the most recently captured image. The processing logic can automatically display the selected image on the display of the image capturing device at block  330 . 
     In an alternative embodiment, the processing logic automatically chronologically displays the sequence of images after receiving a user input to take a photograph. The user can then select which of the sequence of images is most desired by the user (e.g., highest image quality, correct subject, etc.). Alternatively, the processing logic can display the sequence of images in a prioritized order based on image quality, focus score, etc. 
     The operations of the present disclosure can be performed rearranged, deleted, or include additional operations. For example, in an embodiment, the exposure time of one of the buffered images is used to automatically select one of the buffered images. In this case, no focus scores or weighted factors are needed for selecting one of the buffered images. The blocks  322 - 328  may be replaced with a new operation that allows a user to select one of the buffered images if the predetermined criteria is not met at block  318 . Alternatively, the blocks  322 - 328  may be replaced or supplemented with motion criteria to automatically select one of the buffered images. For example, a motion sensor integrated with the image capturing device may generate motion information for each captured image. This can be used to select an image captured during a time with no or minimal camera shake. 
     Alternatively, the blocks  316 ,  318 , and  320  may be optionally removed, and the automatic selection is based on focus scores for each buffered image. These focus scores may be previously calculated during an automatic focus scan. In another embodiment, the motion information is used to filter focus scores. 
     Many of the methods in embodiments of the present invention may be performed with a digital processing system, such as a conventional, general-purpose computer system. Special purpose computers, which are designed or programmed to perform only one function, may also be used. 
     In some embodiments, the methods, systems, and apparatuses of the present disclosure can be implemented in various devices including electronic devices, consumer devices, data processing systems, desktop computers, portable computers, wireless devices, cellular devices, tablet devices, handheld devices, multi touch devices, multi touch data processing systems, any combination of these devices, or other like devices.  FIGS. 5-7  illustrate examples of a few of these devices. 
       FIG. 5  shows an image capturing device  2950  in accordance with one embodiment of the present invention. The device  2950  may include a housing  2952 , a display/input device  2954 , a speaker  2956 , a microphone  295  and an optional antenna  2960  (which may be visible on the exterior of the housing or may be concealed within the housing). The device  2950  also may include a proximity sensor  2962  and a motion sensor  2964  (e.g., a gyroscrope, a motion detector, a tilt sensor such as mercury switch, a compass, or any combination thereof) that generates motion information. The device  2950  may be a cellular telephone or a device which is an integrated PDA and a cellular telephone or a device which is an integrated media player and a cellular telephone or a device which is both an entertainment system (e.g. for playing games) and a cellular telephone, or the device  2950  may be other types of devices described herein. In one particular embodiment, the device  2950  may include a cellular telephone and a media player and a PDA, all contained within the housing  2952 . The device  2950  may have a form factor which is small enough that it fits within the hand of a normal adult and is light enough that it can be carried in one hand by an adult. It will be appreciated that the term “portable” means the device can be easily held in an adult user&#39;s hands (one or both); for example, a laptop computer, an iPhone, and an iPod are portable devices. 
     In certain embodiments of the present disclosure, the device  2950  can be used to it at least some of the methods discussed in the present disclosure. 
       FIG. 6  shows an embodiment of a wireless image capturing device which includes the capability for wireless communication and for capturing images. Wireless device  3100  may include an antenna system  3101 . Wireless device  3100  may also include a digital and/or analog radio frequency (RF) transceiver  3102 , coupled to the antenna system  3101 , to transmit and/or receive voice, digital data and/or media signals through antenna system  3101 . 
     Wireless device  3100  may also include a digital processing system  3103  to control the digital RE transceiver and to manage the voice, digital data and/or media signals. Digital processing system  3103  may be a general purpose processing system, such as a microprocessor or controller for example. Digital processing system  3103  may also be a special purpose processing system, such as an ASIC (application specific integrated circuit), FPGA (field-programmable gate array) or DSP (digital signal processor). Digital processing system  3103  may also include other devices, as are known in the art, to interface with other components of wireless device  3100 . For example, digital processing system  3103  may include analog-to-digital and digital-to-analog converters to interface with other components of wireless device  3100 . Digital processing system  3103  may include a media processing system  3109 , which may also include a general purpose or special purpose processing system to manage media, such as files of audio data. 
     Wireless device  3100  may also include a storage device  3104 , coupled to the digital processing system, to store data and/or operating programs and capture images for the Wireless device  3100 . Storage device  3104  may be, for example, any type of solid-state or magnetic memory device. Storage device  3104  may be or include a machine-readable medium. 
     A machine-readable medium includes any mechanism for storing or transmitting information in a form readable by a machine (e.g., a computer). For example, machines store and communicate (internally and with other devices over a network) code and data using machine-readable media, such as machine storage media (e.g., magnetic disks; optical disks; random access memory; read only memory; flash memory devices; phase-change memory). 
     Wireless device  3100  may also include one or more input devices  3105 , coupled to the digital processing system  3103 , to accept user inputs (e.g., telephone numbers, names, addresses, media selections, etc.) input device  3105  may be, for example, one or more of a keypad, a touchpad, a touch screen, a pointing device in combination with a display device or similar input device. 
     Wireless device  3100  may also include at least one display device  3106 , coupled to the digital processing system  3103 , to display information such as messages, telephone call information, contact information, pictures, images, movies and/or titles or other indicators of media being selected via the input device  3105 . Display device  3106  may be, for example, an LCD display device. In one embodiment, display device  3106  and input device  3105  may be integrated together in the same device (e.g., a touch screen LCD such as a multi-touch input panel which is integrated with a display device, such as an LCD display device). The display device  3106  may include a backlight  3106 A to Illuminate the display device  3106  under certain circumstances. It will be appreciated that the wireless device  3100  may include multiple displays. 
     Wireless device  3100  may also include a battery  3107  to supply operating power to components of the system including digital RF transceiver  3102 , digital processing system  3103 , storage device  3104 , input device  3105 , microphone  3105 A, audio transducer  3108 , media processing system  3109 , sensor(s)  3110 , and display device  3106 , and an image sensor  3159  (e.g., CCD (Charge Coupled Device), CMOS based device). The image sensor may be integrated with an image processing unit  3160 . The display device  3106  may include a Liquid Crystal Display (LCD) which may be used to display images which are captured or recorded by the wireless image capturing device  3100 . The LCD serves as a viewfinder of a camera and there may optionally be other types of image display devices on device  3100  which can serve as a viewfinder. 
     The device  3100  also includes an imaging lens  3163  which can be disposed over image sensor  3159 . The processing system  3103  controls the operation of the device  3100 ; and, it may do so by executing a software program stored in ROM  3157 , or in the processing system  3103 , or in both ROM  3157  and the processing system  3103 . 
     The processing system  3103  controls the image processing operation; and, it controls the storage of a captured image in storage device  3104 . The processing system  3103  also controls the exporting of image data (which may or may not be color corrected) to an external general purpose computer or special purpose computer. 
     The processing system  3103  also responds to user commands (e.g., a command to “take” a picture or capture video by capturing image(s) on the image sensor and storing the image(s) in memory or a command to select an option for contrast enhancement and color balance adjustment). 
     The ROM  3157  may store software instructions for execution by the processing system  3103  to enter an image capture mode, continuously capture and display images, continuously store the sequence of images in a buffer, automatically select one of the buffered images, and automatically display the selected image. The storage device  3104  is used to store captured/recorded images which are received from the image sensor  3159 . It will be appreciated that other alternative architectures of a camera can be used with the various embodiments of the invention. 
     Battery  3107  may be, for example, a rechargeable or non-rechargeable lithium or nickel metal hydride battery. Wireless device  3100  may also include audio transducers  3108 , which may include one or more speakers, and at least one microphone  3105 A, an accelerometer  2846 , and a motion sensor  340  (e.g., an accelerometer, a gyroscrope, a motion detector, a tilt sensor such as mercury switch a compass, or any combination thereof) to determine motion information for the device. The processing system is configured to determine whether the device is moving based on the motion information. More details regarding motion sensors and use of the motion information for image capturing devices can be found in application Ser. No. 12/479,470, filed Jun. 5, 2009, entitled “Camera Image Selection Based on Detected Device Movement” which is incorporated by reference in entirety herein. 
     In some embodiments, the image capturing device  3100  includes the storage device  3104  to store captured images, the lens  3163  to receive incident light associated with an image to be captured, and the processing system  3103  coupled to the storage device  3104  and the lens  3163 . The device also includes a display device  3106  coupled to the storage device  3104 . The display device can display the captured images. 
     The processing system  3103  can be configured, after entry into a mode, to continuously capture images, to store a predetermined number of the sequence of images in a buffer, to receive a user request to capture an image, and in response to the user request, automatically selecting one of the buffered images based on an image contrast parameter that compares pixel values within each buffered image. In an embodiment, the buffer may be located in the system  3100  or in the unit  3160 . The sequence of images may be captured just prior to receiving the user request. The processing system  3103  while automatically selecting one of the buffered images based on the image contrast parameter is further configured to determine a focus score for a focus area of each buffered image. 
     The processing system  3103  also can be configured to automatically select one of the buffered images which were all captured prior to receiving the user request. In an embodiment, the sequence of images can include only images captured just prior to receiving the user request to take a photograph. In one embodiment, the sequence of images stored in the storage device can include the three images captured by the image capturing device just prior to receiving the user request. 
     In some embodiments of the present disclosure, the wireless device  3100  can be used to implement at least some of the methods discussed in the present disclosure. 
       FIG. 7  shows an example of a data processing system according to an embodiment of the present invention. This data processing system  3200  may include a processing system  3202 , and a memory  3204 , which are coupled to each other through a bus  3206 . The data processing system  3200  may optionally include a cache  3208  which is coupled to the processing system  3202 . The data processing system may optionally include a storage device  3240  which may be, for example, any type of solid-state or magnetic memory data processing system. Storage device  3240  may be or include a machine-readable medium. 
     This data processing system may also optionally include a display controller and display device  3210  which is coupled to the other components through the bus  3206 . One or more input/output controllers  3212  are also coupled to the bus  3206  to provide an interface for input/output device  3214  and to provide an interface for one or more sensors  3216  which are for sensing user activity. The bus  3206  may include one or more buses connected to each other through various bridges, controllers, and/or adapters as is well known in the art. The input/output devices  3214  may include a keypad or keyboard or a cursor control data processing system such as a touch input panel. Furthermore, the input/output devices  3214  may include a network interface which is either for a wired network or a wireless network (e.g. an RF transceiver). The sensors  3216  may be any one of the sensors described herein including, for example, a proximity sensor or an ambient light sensor. In at least certain implementations of the data processing system  3200 , the processing system  3202  may receive data from one or more sensors  3216  or from image sensor  3259  or from accelerometer  3246  and may perform the analysis of that data in the manner described herein. Image sensor  3259  captures an image via light focused by lens  3263 . 
     In certain embodiments of the present disclosure, the data processing system  3200  can be used to implement at least some of the methods discussed in the present disclosure. 
     In some embodiments, the data processing system  3200  includes a storage device  3240  to store a plurality of captured images and a lens coupled to the storage device. The lens receives light associated with the captured images and focuses the light onto an image sensor  3259 . The system  3200  also includes a display device  3210  that displays images captured by the sensor  3259 . 
     In some embodiments, the processing system is configured to continuously capture a sequence of images; to store a predetermined number of the sequence of images in a buffer, to receive a user request to capture an image; and to automatically select one of the buffered images based on an exposure time of one of the buffered images. The sequence of images may be captured prior to or concurrently with receiving the user request. In embodiments, the buffer may be located in the system  3202  or the cache  3208  or memory  3204  or integrated with the image sensor  3259  and associated processing circuitry. 
     The processing system while automatically selecting one of the buffered images is further configured to determine an exposure time of one of the buffered images, determine whether the exposure time meets predetermined criteria based on a predetermined threshold exposure time, and select the most recent image if the exposure time meets the predetermined criteria. The processing system is also configured to initiate the continuously capturing and the storing after the data processing system enters an image capture mode. 
     The processing system while automatically selecting one of the buffered images is further configured to determine a focus score for each buffered image and to select a buffered image based on the focus score if the exposure time fails to meet the predetermined criteria. The processing system while selecting a buffered image based on the focus score is further configured to determine a product of the focus score and the weighted factor for each of the buffered images and select a buffered image having a highest product if the exposure time fans to meet the predetermined criteria. 
     The methods of the present invention can be implemented using dedicated hardware (e.g., using Field Programmable Gate Arrays, or Application Specific Integrated Circuit, which many be integrated with image sensors (e.g., CCD or CMOS) or shared circuitry (e.g., microprocessors or microcontrollers under control of program instructions stored in a machine readable medium, such as memory chips) for an imaging device. The methods of the present invention can also be implemented as computer instructions for execution on a data processing system. 
     In the foregoing specification, the invention has been described with reference to specific exemplary embodiments thereof. It will be evident that various modifications may be made thereto without departing from the broader spirit and scope of the invention as set forth in the following claims. The specification and drawings are, accordingly, to be regarded in an illustrative sense rather than a restrictive sense.

Metadata:
Filing Date: 20161121
Publication Date: 20180828
Grant Date: 20180828
Priority Date: 20090605
Inventors: BRUNNER, RALPH
BHOGAL, NIKHIL
BATSON, JAMES DAVID
Assignee: APPLE INC
CPC Classifications: [{"code": "H04N23/74", "inventive": false, "first": false, "tree": "[]"}, {"code": "H04N23/675", "inventive": true, "first": false, "tree": "[]"}, {"code": "H04N23/675", "inventive": true, "first": false, "tree": "[]"}, {"code": "H04N5/144", "inventive": true, "first": true, "tree": "[]"}, {"code": "H04N23/673", "inventive": true, "first": false, "tree": "[]"}, {"code": "H04N23/632", "inventive": true, "first": false, "tree": "[]"}, {"code": "H04N23/632", "inventive": true, "first": false, "tree": "[]"}, {"code": "H04N23/673", "inventive": true, "first": false, "tree": "[]"}, {"code": "H04N23/6811", "inventive": true, "first": true, "tree": "[]"}, {"code": "H04N23/683", "inventive": true, "first": false, "tree": "[]"}, {"code": "H04N23/62", "inventive": true, "first": false, "tree": "[]"}, {"code": "H04N23/74", "inventive": false, "first": false, "tree": "[]"}, {"code": "H04N7/181", "inventive": false, "first": false, "tree": "[]"}, {"code": "H04N1/2137", "inventive": true, "first": false, "tree": "[]"}, {"code": "H04N7/181", "inventive": false, "first": false, "tree": "[]"}, {"code": "H04N5/781", "inventive": true, "first": false, "tree": "[]"}, {"code": "H04N5/265", "inventive": true, "first": false, "tree": "[]"}, {"code": "H04N5/144", "inventive": true, "first": false, "tree": "[]"}, {"code": "H04N5/781", "inventive": true, "first": false, "tree": "[]"}, {"code": "H04N1/2137", "inventive": true, "first": false, "tree": "[]"}, {"code": "H04N5/232", "inventive": true, "first": false, "tree": "[]"}, {"code": "H04N5/23293", "inventive": true, "first": false, "tree": "[]"}, {"code": "H04N7/181", "inventive": false, "first": false, "tree": "[]"}, {"code": "H04N5/781", "inventive": true, "first": false, "tree": "[]"}, {"code": "H04N5/2354", "inventive": false, "first": false, "tree": "[]"}, {"code": "H04N5/144", "inventive": true, "first": false, "tree": "[]"}, {"code": "H04N5/265", "inventive": true, "first": false, "tree": "[]"}, {"code": "H04N5/23254", "inventive": true, "first": true, "tree": "[]"}, {"code": "H04N1/2137", "inventive": true, "first": false, "tree": "[]"}, {"code": "H04M1/72544", "inventive": false, "first": false, "tree": "[]"}, {"code": "H04N5/23216", "inventive": true, "first": false, "tree": "[]"}, {"code": "H04N5/23267", "inventive": true, "first": false, "tree": "[]"}, {"code": "H04M1/72427", "inventive": false, "first": false, "tree": "[]"}, {"code": "H04M1/72427", "inventive": false, "first": false, "tree": "[]"}]
Family ID: 43300475