An apparatus for increasing a digital camera image capture rate comprises an imaging device for capturing raw image data, a frame buffer for receiving the image data, a first RAM spooler for transferring the raw image data to a RAM disk, a first flash spooler for transferring the raw image data from the raw disk to a flash memory, an image processor for processing and compressing the raw data, a second RAM spooler for storing the compressed image data into the RAM disk, and a second flash spooler for transferring the compressed image data from the RAM disk to the flash memory.
|
11. A computer readable medium comprising program instructions for:
capturing an image upon detecting an image capture request;
storing the image in a memory device;
repeating the capturing and storing steps if another image capture request is detected;
performing image processing and compression on the image;
halting the image processing and compression step and returning to the capturing step if another image capture request is detected; and
resuming the image processing and compression step after the capturing, storing and repeating steps have been performed.
1. A method for increasing a digital camera image capture rate, comprising the steps of:
capturing an image upon detecting an image capture request;
storing the image in a memory device;
repeating the capturing and storing steps if another image capture request is detected;
performing image processing and compression on the image;
halting the image processing/compression step and returning to the capturing step if another image capture request is detected; and
resuming the image processing/compression step after the capturing, storing and repeating steps have been performed.
0. 28. An apparatus for increasing image capture rate comprising:
a raw-image input coupled to a raw-image storage, the raw-image input for capturing a raw image and storing it in the raw image storage;
a processor that
compresses a raw image only when either
the raw-image input is no longer capturing and storing raw images, or processor time becomes available; and
pauses the compression of raw images if the raw image input begins to capture new raw images, and resumes compressing raw images when either
the raw-image input is no longer capturing and storing raw images, or processor time becomes available.
0. 36. An apparatus for increasing image capture rate, comprising:
an imaging device for generating raw image data responsive to an image capture request;
a digital memory buffer for receiving and storing the raw image data; and
a central processing unit coupled to the imaging device and the digital memory buffer, for transferring the raw image data to a second memory, processing the raw image data without the assistance of a second processor and storing the processed image data according to a predetermined set of priorities, wherein transferring the raw image data has a higher priority than processing the raw image data.
0. 27. A method for increasing a digital camera capture rate comprising the steps of:
transferring raw image data out of a digital frame buffer and into a second independent memory;
processing and compressing raw image data from the second independent memory if either
the transferring raw image data step is complete or
processor time is available during the transferring raw image data step; and
transferring compressed image data from the second independent memory to flash memory if either
the processing and compressing step is complete or
processor time is available during the processing and compressing step.
6. An apparatus for increasing a digital camera image capture rate, comprising:
means for capturing an image upon detecting an image capture request;
means for storing the image in a memory device;
means for repeating the capturing and storing if another image capture request is detected;
means for performing image processing and compression on the image;
means for halting the image processing and compression means and returning to the capturing means if another image capture request is detected; and
means for resuming the image processing and compression means after the capturing, storing and repeating means have been performed.
0. 24. An apparatus for increasing a digital camera capture rate comprising:
a first spooler routine which moves raw image data out of a digital frame buffer and into a second memory that is external to any processor, the first spooler routine having a highest priority;
a processing/compression routine which compresses raw image data from the second memory, the processing/compression routine having a middle priority;
a second spooler routine which moves compressed image data into flash memory, the second spooler routine having a lowest priority; and
a processor for executing the routines according to their priority and according to available processor time.
0. 19. An apparatus for increasing image capture rate, comprising:
an imaging device for generating raw image data responsive to an image capture request;
a digital memory buffer for storing the raw image data; and
a central processing unit coupled to the imaging device and the digital memory buffer, for transferring the raw image data to a second memory that is external to any processing chip, transferring the raw image data from the second memory to a processor for processing the raw image data and storing the processed image data according to a predetermined set of priorities, wherein transferring the raw image data to the second memory has a higher priority than transferring the raw image data to a processor.
0. 35. An apparatus for increasing image capture rate, comprising:
an imaging device for generating raw image data responsive to an image capture request;
a digital memory buffer for initially storing the raw image data;
first routines for conveying the initially stored raw image data to a second memory to provide space for storing additional, subsequently captured images in the digital memory buffer, wherein the second memory has the capacity to store complete raw image data for multiple raw images;
second routines for compressing said raw image data, wherein the second routines are not conducted until there are no pending image capture requests and the first routines have conveyed all initially stored raw image data away from the digital memory buffer.
16. An apparatus for increasing a digital camera image capture rate, comprising:
an imaging device for generating raw image data responsive to an image capture request;
a digital memory buffer for initially storing the raw image data;
first routines for conveying the initially stored raw image data away from the frame digital memory buffer to a second memory location to provide space for storing additional, subsequently captured images, wherein the raw image data is stored in uncompressed form in the second memory location and wherein the second memory has the capacity to store complete raw image data for multiple raw images;
second routines for conveying said raw image data from the second memory to a processor for processing said raw image data and for storing said processed image data; and
a central processing unit coupled to the imaging device and to the digital memory buffer, for executing according to a predetermined set of priorities the first and second routines;
wherein the first routines are assigned priority over the second routines to thereby facilitate the rapid conveyance of raw image data away from the frame digital memory buffer.
2. The method of
deleting the image before the storing step if an image deletion request is detected; and
deleting the image before the image processing/compression step if the image deletion request is detected.
3. The method of
the image is a raw image;
the capturing step further comprises the step of placing the raw image in a frame buffer;
the memory device is comprised of a first memory device and a second memory device, and
the storing step further comprises the steps of:
(a) skipping to step (e), if the first memory device does not have room for another raw image;
(b) copying the raw image from the frame buffer to the first memory device;
(c) deleting the raw image from the frame buffer;
(d) returning to said capturing step if another raw image capture request is detected;
(e) skipping to the image processing and compression step if the second memory device does not have room for another raw image;
(f) copying the raw image from the first memory device to the second memory device;
(g) halting step (f) and returning to step (a) if the image capture request is detected;
(h) deleting the raw image from the first memory device; and
(i) returning to step (b) if another raw image can be moved from the frame buffer to the first memory device.
4. The method of
processing the raw image from the frame buffer if the raw image is located in the frame buffer;
processing the raw image from the first memory device if the raw image is located in the first memory device;
processing the raw image from the second memory device if the raw image is located in the second memory device;
halting the image processing and compression step and returning to said capturing step if the image capture request is detected;
halting the image processing and compression step and returning to step (b) if at least one more raw image can be copied from the frame buffer to the first memory device;
halting the image processing and compression step and returning to step (f) if at least one more raw image can be copied from the first memory device to the second memory device; and
storing a compressed image in a memory device.
5. The method of
7. The apparatus of
means for deleting the image before the storing means if an image deletion request is detected; and
means for deleting the image before the image processing and compression means if the image deletion request is detected.
8. The apparatus of
the image is a raw image;
the means for capturing further comprises means for placing the raw image in a frame buffer;
the memory device is comprised of a first memory device and a second memory device, and
the storing means further comprises:
(a) means for skipping to means (e) if the first memory device does not have room for another raw image;
(b) means for copying the raw image from the frame buffer to the first memory device;
(c) means for deleting the raw image from the frame buffer;
(d) means for returning to means for capturing if another raw image capture request is detected;
(e) means for skipping to the image processing and compression means if the second memory device does not have room for another raw image;
(f) means for copying the raw image from the first memory device to the second memory device;
(g) means for halting means (f) and returning to means (a) if the image capture request is detected;
(h) means for deleting the raw image from the first memory device; and
(i) means for returning to means (b) if another raw image can be moved from the frame buffer to the first memory device.
9. The apparatus of
means for processing the raw image from the frame buffer if the raw image is located in the frame buffer;
means for processing the raw image from the first memory device if the raw image is located in the first memory device;
means for processing the raw image from the second memory device if the raw image is located in the second memory device;
means for halting the image processing and compression means and returning to the means for capturing if the image capture request is detected;
means for halting the image processing and compression means and returning to means (b) if at least one more raw image can be copied from the frame buffer to the first memory device;
means for halting the image processing and compression means and returning to means (f) if at least one more raw image can be copied from the first memory device to the second memory device; and
means for storing a compressed image in a memory device.
10. The apparatus of
12. The medium of
deleting the image before the storing step if an image deletion request is detected; and
deleting the image before the image processing and compression step if the image deletion request is detected.
13. The medium of
the image is a raw image;
the capturing step further comprises the step of placing the raw image in a frame buffer;
the memory device is comprised of a first memory device and a second memory device, and
the storing step further comprises the steps of:
(a) skipping to step (e) if the first memory device does not have room for another raw image;
(b) copying the raw image from the frame buffer to the first memory device;
(c) deleting the raw image from the frame buffer;
(d) returning to said capturing step if another raw image capture request is detected;
(e) skipping to the image processing and compression step if the second memory device does not have room for another raw image;
(f) copying the raw image from the first memory device to the second memory device;
(g) halting step (f) and returning to said capturing step if the image capture request is detected;
(h) deleting the raw image from the first memory device; and
(i) returning to step (b) if another raw image can be moved from the frame buffer to the first memory device.
14. The medium of
processing the raw image from the frame buffer if the raw image is located in the frame buffer;
processing the raw image from the first memory device if the raw image is located in the first memory device;
processing the raw image from the second memory device if the raw image is located in the second memory device;
halting the image processing and compression step and returning to said capturing step if the image capture request is detected;
halting the image processing and compression step and returning to step (b) if at least one more raw image can be copied from the frame buffer to the first memory device;
halting the image processing and compression step and returning to step (f) if at least one more raw image can be copied from the first memory device to the second memory device; and
storing a compressed image in a memory device.
15. The medium of
17. The apparatus of
18. The apparatus of
a routine for transferring raw image data from the RAM disk to a flash memory;
a routine for compressing raw image data;
a routine for storing the compressed image data in the RAM disk; and
a routine for transferring the compressed image data from the RAM disk to the flash memory;
wherein the routine for transferring raw image data from the RAM disk to a flash memory has priority over the routine for compressing raw image data, the routine for compressing raw image data has priority over the routine for storing the compressed image data in the RAM disk, and the routine for storing the compressed image data in the RAM disk has priority over the routine for transferring the compressed image data from the RAM disk to the flash memory.
0. 20. The method of
0. 21. The method of
0. 22. The apparatus of
0. 23. The apparatus of
0. 25. The apparatus of
a third spooler routine which moves raw image data out of the second memory, the third spooler routine having a priority between that of the first spooler routine and that of the processing/compression routine.
0. 26. The apparatus of
a third spooler routine which moves compressed image data back to the second memory, the third spooler routine having a priority between that of the processing/compression routine and that of the second spooler routine.
0. 29. The apparatus of
0. 30. The apparatus of
0. 31. The apparatus of
0. 32. The apparatus of
0. 33. The apparatus of
0. 34. The apparatus of
|
This application relates to co-pending U.S. patent application Ser. No. 08/355,031, entitled “A System and Method For Generating a Contrast Overlay as a Focus Assist for an Imaging Device,” filed on Dec. 13, 1994, and also relates to co-pending U.S. patent application Ser. No. 08/588,210, entitled “Apparatus and Method for Rotating the Display Orientation of a Captured Image,” filed on Jan. 19, 1996.
1. Field of the Invention
The present invention relates generally to a method and apparatus for managing digital image data. More particularly, the present invention is an apparatus and method for increasing the image capture rate of a digital camera by delaying image processing and compression.
2. Description of the Background Art
Still-cameras are often required to capture images at rates which vary depending on their selected photographic targets. For example, during a fast-moving sporting event, still-cameras may be required to capture a series of images during a relatively short time period. Thus, an important still-camera performance feature is the capture rate for successive sets of image data.
Another important still-camera performance feature is the number of captured images that can be stored in the camera's finite memory. To maximize the image-carrying capacity of digital still-cameras, it is desirable to compress the images prior to storage. Conventional digital cameras typically perform image processing on the raw image data and then use a high-quality image compression routine (such as JPEG) to compress the image data.
Photographers, however, may want to capture another image before the camera has completed the time-consuming image processing and compression of raw image data. Therefore, the above processing and compression technique can effectively lower the successive image capture rate.
One common approach for minimizing the image processing and compression time is through the use of custom-designed Application Specific Integrated Circuits (ASICs). Typically, up to three relatively expensive ASICs may be required to perform the image processing and compression operations. While such ASIC-based cameras perform the required image processing and compression operations very quickly, their increased cost may render such cameras less attractive to the mainstream consumer market.
To make the digital cameras more affordable, manufacturers have replaced many of the costly ASICs with functionally routines may be stored within standard ROM chips and they can also be readily updated by rewriting a portion of the software. Software-based cameras, however, typically require an inordinately long time to perform the image processing and compression operations. This results in slower successive image capture rates and limits the marketability of the software-based digital still-cameras.
Therefore, what is needed is an apparatus and method that enables a relatively low-cost, software-based digital camera to attain higher successive image capture rates.
The present invention is a method and apparatus for increasing the image capture rate of a digital camera by delaying image processing and compression of the captured image data. In the present invention, an imaging device captures an image in response to an image capture request and responsively produces corresponding raw image data which is temporarily stored into a frame buffer.
A first RAM spooler then typically transfers the raw image data to a RAM disk. A first flash spooler next transfers the raw image data from the RAM disk to a flash memory which preferably is a removable flash disk. An image processor processes and compresses the raw data and may directly store the compressed data to the RAM disk, or alternately, a second RAM spooler may store the compressed image data into the RAM disk. A second flash spooler then transfers the compressed image data from the RAM disk to the flash memory.
The present invention uses a set of priorities designed to maintain the frame buffer in a condition to receive new image data from the imaging device. Therefore, spooling raw data from the frame buffer to the RAM disk has the highest priority, spooling raw data from the RAM disk to the flash memory has the second highest priority, processing and compressing the raw data from the flash memory has the third highest priority, spooling the compressed data into the RAM disk has the fourth highest priority, and spooling the compressed data from the RAM disk to the flash memory has the lowest priority.
PREFERRED EMBODIMENT The present invention comprises an apparatus and method for increasing the successive image capture rate of a digital camera and features a series of priority levels, the highest of which maintains the apparatus in a ready state for capturing multiple sets of raw image data. Recently captured raw images are temporarily diverted to a memory device and the time-intensive software-based image processing and compression operations are postponed until after the apparatus has stopped capturing additional sets of image data or until processor time becomes available. During a time when the apparatus is no longer capturing additional sets of image data, the present invention advantageously performs the image processing and compression operations. As a result, the time delay between successive image captures is greatly reduced.
Referring now to
Referring now to
U.S. patent application Ser. No. 08/355,031, entitled “A System and Method For Generating a Contrast Overlay as a Focus Assist for an Imaging Device,” filed on Dec. 13, 1994 is incorporated herein by reference and provides a detailed discussion of the preferred elements of imaging device 14. Briefly, imaging device 14 captures an image of object 12 via reflected light impacting image sensor 24 along optical path 34. Image sensor 24 responsively generates a set of raw image data representing the captured image 12. The raw image data is then routed through ASP 28, A/D converter 30 and DSP 40. DSP 40 has outputs coupled to lines 35, 38 and 42 for controlling ASP 28, motors 32 and timing generator 26. From DSP 40, the raw image data passes over external bus 16 to computer 18.
Referring now to
Bus interface 52 is preferably a bi-directional first-in, first-out interface for receiving the raw image data and imaging device 14 control signals passed between computer 18 and DSP 40. Interface 52 has data lines coupled to both external bus 16 and internal bus 66. Processing unit 54 executes programming instructions stored in ROM 56 and RAM 60 to perform various operations. ROM 56 stores a set of computer readable program instructions which control how processing unit 54 accesses, transforms and outputs the image data. While ROM 56 is employed as a conventional non-volatile memory device for practicing the present invention, those skilled in the art will recognize that in alternate embodiments ROM 56, could be replaced with a functionally equivalent computer useable medium such as a compact disk and drive, a floppy disk and drive, or a flash memory.
Input device 58 preferably comprises a series of control buttons which generate signals translated by processing unit 54 into an image capture request, an operating mode selection request, and various control signals for imaging device 14. In an alternate embodiment in which computer 18 is a discrete computer system, input device 58 also includes a keyboard and mouse-type controller.
I/O Interface 62 is coupled to internal bus 66 and has an external port connector for coupling computer 18 with a host computer (not shown) for downloading image data stored in RAM 60 and/or flash memory 64. At the user's choice or when apparatus 10 is completely filled with image data, I/O Interface 62 enables the image data to be down-loaded, thus freeing up storage space for future sets of image data. Flash memory 64 serves as an additional image data storage area and is preferably a non-volatile device, readily removable and replaceable by a user. Thus, a user who possesses several flash memories 64 may replace a full flash memory 64 with an empty flash memory 64 to effectively expands the picture taking capacity of apparatus 10. In the preferred embodiment of the present invention, flash memory 64 is a flash disk. Non-volatile memory 68 stores an image counter whose current value becomes an identifier for each new set of image data captured by apparatus 10. The counter is preferably incremented each time a new image is captured. In the preferred embodiment, non-volatile memory 68 is either an EEPROM or a battery-backed SRAM.
Referring now to
RAM disk 74 is a memory area within RAM 60 organized in a “sectored” format similar to that of conventional hard disk drives. The RAM disk 74 function is to store image data. RAM disk 74, in conjunction with flash memory 64, sets the maximum image holding capacity of apparatus 10. Once both flash memory 64 and RAM disk 74 have been filled with compressed image data, the insertion of a new flash memory 64 or down-loading the image data via I/O interface 62 will enable apparatus 10 to continue capturing new images.
Working memory 72 is comprised of data cells 76, input queues 78, storage status 80 and temporary buffer 81, each coupled via internal bus 66. Data cells 76 are data structures and each data cell 76 is uniquely associated with particular captured image data. A data cell is comprised of a plurality of data fields including an image data identifier, a current location and processing requests. The image data identifier is of the preferred form “IMXXXXXX.YYY,” where “XXXXXX” is the image number retrieved from non-volatile memory 68 and “YYY” is the image data file type. In the preferred embodiment, the image number “XXXXXX” is not reset, so when images are down-loaded to a host computer, image file identifiers will not conflict with image files previously down-loaded to the host computer. However, in an alternate embodiment the image number “XXXXXX” could be reset each time image data is down-loaded from apparatus 10. Also the “IM” in the image identifier may be replaced with “IO.” The image data file type, “YYY,” is preferably either CFA, JPG or PCT. CFA refers to a set of raw image data and both JPG and PCT refer to a sets of compressed image data.
The image data's current location data field stores either a “Raw Image Data In Frame Buffer” flag, a “Raw Image Data In RAM Disk” flag, a “Compressed Image Data In RAM Disk” flag, a “Raw Image Data In Flash memory” flag, a “Compressed Image Data In Flash memory” flag, or a “Compressed Image Data In Temporary Buffer” flag. The image data's processing request data field stores either a “Request Deletion Of Image Data” flag and/or a “Stop Processing Of Image Data” flag. Input queues 78 are data structures comprised of a plurality of data cell “pointers” each corresponding to data cells 76. In the preferred embodiment, input queues operate on a first-in/first-out basis.
Storage status 80 is a data structure describing the remaining available memory in both RAM disk 74 and flash memory 64. Storage status 80 contains the following four conditional variables: “RAM Disk Raw File Space,” “RAM Disk Compressed File Space,” “Flash Memory Raw File Space” and “Flash Memory Compressed File Space.” Each of the four conditional variables is set to one of three values: FULL, ALMOST FULL or OK. If the variable is set to “OK,” then space is available for that particular file type (i.e., a raw file or a compressed file) on that particular storage resource (i.e., RAM disk 74 or flash memory 64). If the variable is set to “ALMOST FULL” then space is not currently available for that particular file type on that particular storage resource, but there will be space in the future. If the variable is set to “FULL” then, absent an increase in available space on storage resources (due, for example, to downloading data or replacing storage units), no space is available for that particular file type on that particular storage resource, nor will space be available in the future. Temporary buffer 81 of working memory 72 is provided for temporarily storing data and/or program code.
Referring now to
A “spooler” is herein defined as a routine for transferring data from one process or device to a second process or device. RAM spooler 1 (84) transfers raw image data into RAM disk 74, and flash memory spooler 1 (86) transfers raw image data into flash memory 64. RAM spooler 2 (90) transfers compressed image data into RAM disk 74 or to I/O interface 62, and flash memory spooler 2 (92) transfers compressed image data into flash memory 64.
Control application 82 preferably comprises program instructions for controlling the operation of apparatus 10 which are executed using processing unit 54. For example, control application 82 creates and maintains data cells 76. Image processing/compression 88 compresses the raw image data to maximize the image-carrying capacity of apparatus 10, and also processes the raw image data to permit readily displaying the captured image data on a host computer. In the preferred embodiment, processes 82 through 96 are comprised of a series of software steps implemented on top of a multithreaded operating system and may therefore run in parallel operation.
Process 95 rotates the captured image if necessary and then transfers control of the raw image data to RAM spooler 1 (84) using line 102. Alternately, if RAM disk 74 is full, rotate process 95 may transfer control of the raw image data directly to image processing/compression (IPC) 88 using line 118. If RAM spooler 1 (84) receives control of the raw image data, it then stores the raw image data into RAM disk 74 using line 104.
Flash spooler 1 (86) may then access the raw image data from RAM disk 74 via line 106 and store it into flash memory 64 using line 108. Alternately, if flash memory 64 is full, RAM disk 74 may provided the raw image data directly to IPC 88 using line 114. If flash spooler 1 (86) stores the raw image data into flash memory 64, then IPC 88 typically accesses the stored raw image data using line 110 and processes the raw data to responsively obtain compressed image data.
IPC 88 may bypass RAM spooler 2 (90) and store the compressed data directly to RAM disk 74 via line 115, or alternately, if RAM disk 74 is temporarily full, IPC 88 may write the compressed data to temporary RAM buffer 81 via line 85. RAM spooler 2 (90) may then access the compressed image data via line 87 and write the accessed data into RAM disk 74 via line 104. RAM spooler 2 (90) may also download the compressed image data to I/O interface 62 using line 116. Once the compressed data is in RAM disk 74, flash spooler 2 (92) then accesses the data via line 106 and writes the compressed data into flash memory 64.
The present invention may thus process and store a sequence of captured images received from imaging device 14. Although the above example traces the typical data path for a single captured image, the present invention may readily operate on a plurality of captured images progressing through various stages of apparatus 10. Therefore, multiple sets of image data may exist simultaneously within computer 18. The current processing stage for a specific set of image data is preferably indicated by flags located in the image data's unique data cell 76.
Control application 82 transfers raw image data from imaging device 14 to frame buffer 70 and may supersede any of background processes 84 through 92. The background process with the highest priority is RAM spoolerl (84) which moves raw image data out of frame buffer 70 to RAM disk 74. The second highest priority is flash memory spooler 1 (86) which moves raw image data out of RAM disk 74 to flash memory 64. The third highest priority is Image Processing/Compression 88 which accesses raw image data and responsively processes and compresses the image data before storing it as compressed image data into RAM disk 74, or if RAM disk 74 is full, into temporary RAM buffer 81 of working memory 72. The fourth highest priority is RAM spooler 2 (90) which, if necessary, may move compressed image data out of working memory 72 into RAM disk 74. The lowest priority is flash memory spooler 2 (92) which moves the compressed image data out of RAM disk 74 into flash memory 64. Those skilled in the art will recognize that either a greater or a lesser number of priority levels than the preferred five may be used in the present invention. Also, alternate embodiments may establish different criteria for routing the captured image data, depending upon memory resources available and/or the maximum image capture rate desired. File manager process 94 and operating system process 96 are not assigned specific priority levels since they either operate in the background or under interrupt conditions.
Processes 82 through 92 preferably each has a respective input queue 78(a) through 78(f) which operates on a first-in/first-out basis. If one of processes 82 through 92 has a data cell 76 pointer in its input queue, then only that process can access and perform operations on the image data associated with that particular data cell 76. The data cell pointers are passed between processes 82 through 92 in a specific order until the original raw image data has been fully processed, compressed and stored in a memory resource.
The priority level scheme introduced above may “block” one or more processes 84 through 92 even though a data cell 76 pointer is in its input queue 78. For example, since moving raw image data out of frame buffer 70 has the highest priority, if a user repeatedly captures images in rapid succession, RAM spooler 1 (84) will continue to operate until RAM disk 74 becomes filled with raw image data. While RAM spooler 1 (84) is operating, all of the other lower priority processes 86 through 92 will be “blocked” (i.e., idled), even though some of the lower priority processes 86 through 92 may still have data cell 76 pointers in their input queues 78. This blocking of lower priority processes applies to all priority levels. For example, operation of flash memory spoolerl (86) will block image processing/compression 88, RAM spooler 2 (90) and flash memory spooler 2 (92), and operation of image processing/compression 88 will block RAM spooler 2 (90) and flash memory spooler 2 (92), and so on, until the image data has been fully processed, compressed and stored in memory. Furthermore, if a lower priority ROM process is currently operating and a higher priority ROM process requires processing unit 54, then the lower priority TOM process is immediately blocked until the higher priority ROM process has completed its operations.
If RAM disk 74 or flash memory 64 are available, step 212 determines whether the raw image data is stored in RAM disk 74. If the data is already stored in RAM disk 74, step 226 sends the raw image data to flash spooler 1 (86) and returns the
In step 224, the image is rotated if necessary, and RAM spooler 1 (84) writes the raw image data to the created file and releases frame buffer 70 to accept new incoming raw image data from imaging device 14. Step 226 transfers control to flash spooler 1 (86) and returns the
If the request is not present, step 308 determines whether the raw image data is stored in flash memory 64. If the data is already stored in flash memory 64, step 324 sends the raw image data to IPC 88 and returns the
If the raw image data is stored in RAM disk 74, step 318 determines whether flash memory 64 has (or will have) space. If flash memory 64 has no space, step 324 sends data cell 76 to image processing/compression and then the FIG. 9 process returns to step 302. If flash memory 64 has (or will have) space, step 320 waits for a “space available now” signal before flash spooler 1 (86), in step 322, copies the raw image data from RAM disk 74 to flash memory 64 and then deletes the file on RAM disk 74. Step 324 transfers control to IPC 88 and returns the
If the data is not compressed, step 410 determines whether a “delete image” request is present. If the request is present, step 412 deletes the disk file or releases frame buffer 70 to accept incoming raw image data from imaging device 14. Step 406 then sends data cell 76 to control application 82 and returns the
In step 420, IPC 88 processes and compresses the raw image data and writes it to the appropriate destination (RAM disk 74, flash memory 64 or the RAM 60 buffer created in step 426) and then deletes the source file or releases frame buffer 70 to accept new incoming raw image data from imaging device 14. Step 422 transfers control to RAM spooler 2 (90) and returns the
If the “stop processing” request is not present, step 510 determines whether a “delete image” request is present. If the request is present, step 512 releases the RAM 60 buffer. If the “delete image” request is not present, step 514 determines whether there is (or will be) space on RAM disk 74. If there is (or will be) space, step 516 waits for a “space available now” signal before step 518 creates the file to write on RAM disk 74. If step 514 determines that RAM disk 74 has no space, then step 524 determines whether flash memory 64 has (or will have) space. If flash memory 64 has no space, step 526 signals an error, returns data cell 76 to control application 82 and returns the
In step 520, RAM spooler 2 (90) writes the compressed image data to the created file and releases the RAM 60 buffer. Step 522 transfers control to flash spooler 2 (92) and returns the
If the request is not present, step 610 determines whether the compressed image data is stored in flash memory 64. If the data is stored in flash memory 64, step 612 returns data cell 76 to control application 82 and returns the
The present invention has been described above with reference to certain preferred embodiments, however, those skilled in the art will recognize that various modifications may be provided. Furthermore, while the present invention has been discussed above as applied to digital cameras, those skilled in the art will also recognize that the current apparatus and method may also be applied to other devices such as optical scanners and fax machines. These and other variations upon and modifications to the preferred embodiment are provided for by the present invention which is limited only be the following claims.
Anderson, Eric C., Masukawa, Mike M.
Patent | Priority | Assignee | Title |
11089247, | May 31 2012 | Apple Inc. | Systems and method for reducing fixed pattern noise in image data |
11689826, | May 31 2012 | Apple Inc. | Systems and method for reducing fixed pattern noise in image data |
12177586, | May 31 2012 | Apple Inc. | Systems and methods for reducing fixed pattern noise in image data |
7852518, | Dec 25 2003 | Oki Data Corporation | Image inputting apparatus |
7880935, | Oct 08 2004 | Konica Minolta Holdings, INC; KONICA MINOLTA, INC | Stored information processing device for external storages, and stored information processing method |
8102457, | Jul 09 1997 | FlashPoint Technology, Inc. | Method and apparatus for correcting aspect ratio in a camera graphical user interface |
8127232, | Dec 31 1998 | FlashPoint Technology, Inc. | Method and apparatus for editing heterogeneous media objects in a digital imaging device |
8259198, | Oct 20 2009 | Apple Inc. | System and method for detecting and correcting defective pixels in an image sensor |
8294781, | Oct 20 2009 | Apple Inc. | System and method for sharpening image data |
8330772, | Oct 20 2009 | Apple Inc. | Image signal processor front-end image data processing system and method |
8358319, | Oct 20 2009 | Apple Inc. | System and method for processing image data using an image processing pipeline of an image signal processor |
8471932, | Sep 30 2010 | Apple Inc.; Apple Inc | Spatial filtering for image signal processing |
8472712, | Oct 20 2009 | Apple Inc. | System and method for applying lens shading correction during image processing |
8488055, | Sep 30 2010 | Apple Inc | Flash synchronization using image sensor interface timing signal |
8493482, | Aug 18 2010 | Apple Inc. | Dual image sensor image processing system and method |
8508612, | Sep 30 2010 | Apple Inc | Image signal processor line buffer configuration for processing ram image data |
8508621, | Sep 30 2010 | Apple Inc | Image sensor data formats and memory addressing techniques for image signal processing |
8525895, | Jul 29 2010 | Apple Inc. | Binning compensation filtering techniques for image signal processing |
8531542, | Sep 01 2010 | Apple Inc. | Techniques for acquiring and processing statistics data in an image signal processor |
8593483, | Oct 20 2009 | Apple Inc. | Temporal filtering techniques for image signal processing |
8605167, | Sep 01 2010 | Apple Inc. | Flexible color space selection for auto-white balance processing |
8629913, | Sep 30 2010 | Apple Inc | Overflow control techniques for image signal processing |
8638342, | Oct 20 2009 | Apple Inc. | System and method for demosaicing image data using weighted gradients |
8643770, | Sep 30 2010 | Apple Inc. | Flash synchronization using image sensor interface timing signal |
8736700, | Sep 30 2010 | Apple Inc | Techniques for synchronizing audio and video data in an image signal processing system |
8786625, | Sep 30 2010 | Apple Inc | System and method for processing image data using an image signal processor having back-end processing logic |
8817120, | May 31 2012 | Apple Inc. | Systems and methods for collecting fixed pattern noise statistics of image data |
8872946, | May 31 2012 | Apple Inc. | Systems and methods for raw image processing |
8917336, | May 31 2012 | Apple Inc. | Image signal processing involving geometric distortion correction |
8922704, | Sep 01 2010 | Apple Inc. | Techniques for collection of auto-focus statistics |
8953882, | May 31 2012 | Apple Inc. | Systems and methods for determining noise statistics of image data |
8970761, | Jul 09 1997 | FlashPoint Technology, Inc. | Method and apparatus for correcting aspect ratio in a camera graphical user interface |
8972867, | Dec 31 1998 | FlashPoint Technology, Inc. | Method and apparatus for editing heterogeneous media objects in a digital imaging device |
9014504, | May 31 2012 | Apple Inc. | Systems and methods for highlight recovery in an image signal processor |
9025867, | May 31 2012 | Apple Inc. | Systems and methods for YCC image processing |
9031319, | May 31 2012 | Apple Inc. | Systems and methods for luma sharpening |
9077943, | May 31 2012 | Apple Inc. | Local image statistics collection |
9105078, | May 31 2012 | Apple Inc | Systems and methods for local tone mapping |
9131196, | May 31 2012 | Apple Inc. | Systems and methods for defective pixel correction with neighboring pixels |
9142012, | May 31 2012 | Apple Inc. | Systems and methods for chroma noise reduction |
9224145, | Aug 30 2006 | QURIO Holdings, Inc.; Qurio Holdings, Inc | Venue based digital rights using capture device with digital watermarking capability |
9317930, | May 31 2012 | Apple Inc. | Systems and methods for statistics collection using pixel mask |
9332239, | May 31 2012 | Apple Inc. | Systems and methods for RGB image processing |
9342858, | May 31 2012 | Apple Inc.; Apple Inc | Systems and methods for statistics collection using clipped pixel tracking |
9344613, | Sep 30 2010 | Apple Inc. | Flash synchronization using image sensor interface timing signal |
9398205, | Sep 01 2010 | Apple Inc. | Auto-focus control using image statistics data with coarse and fine auto-focus scores |
9710896, | May 31 2012 | Apple Inc. | Systems and methods for chroma noise reduction |
9741099, | May 31 2012 | Apple Inc. | Systems and methods for local tone mapping |
9743057, | May 31 2012 | Apple Inc. | Systems and methods for lens shading correction |
Patent | Priority | Assignee | Title |
4888812, | Dec 18 1987 | INTERNATIONAL BUSINESS MACHINES CORPORATION, A CORP OF NY | Document image processing system |
5016107, | May 09 1989 | Eastman Kodak Company | Electronic still camera utilizing image compression and digital storage |
5164831, | Mar 15 1990 | Eastman Kodak Company | Electronic still camera providing multi-format storage of full and reduced resolution images |
5220420, | Sep 27 1990 | ACTIVEVIDEO NETWORKS, INC | Interactive home information system for distributing compressed television programming |
5355165, | Aug 06 1992 | Princeton Scientific Instruments, Inc.; New Jersey Institute of Technology | Very high frame rate CCD imager |
5475428, | Sep 09 1993 | Eastman Kodak Company | Method for processing color image records subject to misregistration |
5475441, | Dec 10 1992 | Eastman Kodak Company | Electronic camera with memory card interface to a computer |
5477264, | Mar 29 1994 | Intellectual Ventures Fund 83 LLC | Electronic imaging system using a removable software-enhanced storage device |
5493332, | Feb 28 1994 | ROPER SCIENTIFIC, INC | Modular electronic imaging system which accepts replacement solid state images |
5493335, | Jun 30 1993 | Apple Inc | Single sensor color camera with user selectable image record size |
5568192, | Aug 30 1995 | Intel Corporation | Method and apparatus for processing digital video camera signals |
5581311, | Jul 22 1994 | Nikon Corporation | Image storage system for a digital still camera |
5585845, | Jun 25 1993 | Nikon Corporation | Electronic still camera having data storage device and method for recording image data within said data storage device |
5606365, | Mar 28 1995 | Intellectual Ventures Fund 83 LLC | Interactive camera for network processing of captured images |
5625412, | Jul 13 1995 | Vision Research | High-frame rate image acquisition and motion analysis system |
5631701, | Feb 14 1995 | FUJIFILM Corporation | Image data transfer system operable with an electronic still camera |
5633678, | Dec 20 1995 | Eastman Kodak Company | Electronic still camera for capturing and categorizing images |
5633976, | Dec 06 1991 | Canon Kabushiki Kaisha | Image recording apparatus and electronic still camera |
6628325, | Jun 26 1998 | Scenera Technologies, LLC | Camera network communication device |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Feb 02 2001 | Apple Computer, Inc. | (assignment on the face of the patent) | / | |||
Jan 09 2007 | Apple Computer, Inc | Apple Inc | CHANGE OF NAME SEE DOCUMENT FOR DETAILS | 020638 | /0127 |
Date | Maintenance Fee Events |
Jul 31 2006 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Jul 01 2010 | M1553: Payment of Maintenance Fee, 12th Year, Large Entity. |
Date | Maintenance Schedule |
Aug 01 2009 | 4 years fee payment window open |
Feb 01 2010 | 6 months grace period start (w surcharge) |
Aug 01 2010 | patent expiry (for year 4) |
Aug 01 2012 | 2 years to revive unintentionally abandoned end. (for year 4) |
Aug 01 2013 | 8 years fee payment window open |
Feb 01 2014 | 6 months grace period start (w surcharge) |
Aug 01 2014 | patent expiry (for year 8) |
Aug 01 2016 | 2 years to revive unintentionally abandoned end. (for year 8) |
Aug 01 2017 | 12 years fee payment window open |
Feb 01 2018 | 6 months grace period start (w surcharge) |
Aug 01 2018 | patent expiry (for year 12) |
Aug 01 2020 | 2 years to revive unintentionally abandoned end. (for year 12) |