USRE42779E1 - Apparatus and method for handling digital image data - Google Patents

Apparatus and method for handling digital image data Download PDF

Info

Publication number
USRE42779E1
USRE42779E1 US11/349,499 US34949906A USRE42779E US RE42779 E1 USRE42779 E1 US RE42779E1 US 34949906 A US34949906 A US 34949906A US RE42779 E USRE42779 E US RE42779E
Authority
US
United States
Prior art keywords
image data
raw image
image
memory device
processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
US11/349,499
Inventor
Eric C. Anderson
Mike M. Masukawa
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Apple Inc filed Critical Apple Inc
Priority to US11/349,499 priority Critical patent/USRE42779E1/en
Assigned to APPLE INC. reassignment APPLE INC. CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: APPLE COMPUTER, INC.
Application granted granted Critical
Publication of USRE42779E1 publication Critical patent/USRE42779E1/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/21Intermediate information storage
    • H04N1/2104Intermediate information storage for one or a few pictures
    • H04N1/2112Intermediate information storage for one or a few pictures using still video cameras
    • H04N1/2137Intermediate information storage for one or a few pictures using still video cameras with temporary storage before final recording, e.g. in a frame buffer
    • H04N1/2141Intermediate information storage for one or a few pictures using still video cameras with temporary storage before final recording, e.g. in a frame buffer in a multi-frame buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/21Intermediate information storage
    • H04N1/2104Intermediate information storage for one or a few pictures
    • H04N1/2112Intermediate information storage for one or a few pictures using still video cameras
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/21Intermediate information storage
    • H04N1/2104Intermediate information storage for one or a few pictures
    • H04N1/2112Intermediate information storage for one or a few pictures using still video cameras
    • H04N1/215Recording a sequence of still pictures, e.g. burst mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2101/00Still video cameras

Definitions

  • 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.
  • 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.
  • JPEG high-quality image compression routine
  • Photographers 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.
  • ASICs Application Specific Integrated Circuits
  • the software-based 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 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.
  • 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.
  • 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.
  • FIG. 1 is a block diagram showing a preferred embodiment of an apparatus for increasing a digital camera image capture rate by delaying image processing
  • FIG. 2 is a block diagram showing a preferred embodiment of an imaging devices according to the present invention.
  • FIG. 3 is a block diagram showing a preferred embodiment of a computer of the present invention.
  • FIG. 4 is a block diagram showing a preferred embodiment of a Random Access Memory (RAM) of the FIG. 3 computer;
  • RAM Random Access Memory
  • FIG. 5 is a block diagram showing a preferred embodiment of a Read Only Memory (ROM) of the FIG. 3 computer;
  • ROM Read Only Memory
  • FIG. 6 is a block diagram showing a preferred embodiment of an apparatus for increasing a camera image capture rate according to the present invention.
  • FIG. 7 is a block diagram showing priority levels of preferred processes and corresponding image data paths
  • FIG. 8 is a flowchart of preferred method steps for implementing RAM Spooler 1 of the present invention.
  • FIG. 9 is a flowchart of preferred method steps for implementing the Flash Spooler 1 of the present invention.
  • FIG. 10 is a flowchart of preferred method steps for implementing the Image Processing/Compression of the present invention.
  • FIG. 11 is a flowchart of preferred method steps for implementing the RAM Spooler 2 of the present invention.
  • FIG. 12 is a flowchart of preferred method steps for implementing the Flash Spooler 2 of the present invention.
  • 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.
  • the present invention advantageously performs the image processing and compression operations. As a result, the time delay between. successive image captures is greatly reduced.
  • Apparatus 10 may be used to capture a set of image data representing an object 12 .
  • Apparatus 10 preferably comprises an imaging device 14 , an external bus 16 and a computer 18 .
  • Imaging device 14 is optically coupled to object 12 and electrically coupled via external bus 16 to computer 18 .
  • computer 18 commands imaging device 14 via external bus 16 to capture raw image data representing object 12 .
  • the captured raw image data is transferred over external bus 16 to computer 18 which performs various image processing functions on the image data before storing it in its internal memory.
  • External bus 16 also passes various status and control signals between imaging device 14 and computer 18 .
  • Imaging device 14 preferably comprises a lens 20 having an iris, a filter 22 , an image sensor 24 , a timing generator 26 , an analog signal processor (ASP) 28 , an analog-to-digital (A/D) converter 30 , a digital signal processor (DSP) 40 , and one or more motors 32 .
  • ASP analog signal processor
  • A/D analog-to-digital
  • DSP digital signal processor
  • 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 .
  • Computer 18 comprises a bus interface 52 , a processing unit 54 , a read-only memory (ROM) 56 , an input device 58 , a random access memory (RAM) 60 , an I/O interface 62 , a flash memory 64 and a non-volatile memory 68 coupled together via an internal bus 66 .
  • ROM read-only memory
  • RAM random access memory
  • I/O interface 62 I/O interface
  • flash memory 64 a non-volatile memory 68 coupled together via an internal bus 66 .
  • computer 18 is embedded as part of apparatus 10 using a conventional architecture.
  • computer 18 may be a discrete computer system.
  • 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 .
  • 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 .
  • 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 .
  • 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.
  • non-volatile memory 68 is either an EEPROM or a battery-backed SRAM.
  • RAM 60 is comprised of a frame buffer 70 , a working memory 72 and a RAM disk 74 .
  • Frame buffer 70 preferably comprises a dedicated space of contiguous memory suitable for storing the raw image data generated by image sensor 24 .
  • the function of frame buffer 70 is to store the most recently captured set of raw image data until computer 18 either stores the raw image data in RAM disk 74 or transfers it to an image processing unit.
  • 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 “XXXXX” is the image number retrieved from non-volatile memory 68 and “YYY” is the image data file type.
  • 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.
  • the image number “XXXXXX” could be reset each time image data is down-loaded from apparatus 10 .
  • 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
  • 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.
  • Temporary buffer 81 of working memory 72 is provided for temporarily storing data and/or program code.
  • ROM 56 preferably contains code for processes 82 through 96 , including a control application (CA) 82 , a RAM spooler 1 (RS 1 ) 84 , a flash memory spooler 1 (MS 1 ) 86 , image processing/compression (IPC) 88 , a RAM spooler 2 (RS 2 ) 90 , a flash memory spooler 2 (MS 2 ) 92 , a file manager 94 , and an operating system 96 , each coupled via internal bus 66 .
  • the FIG. 5 processes 82 through 96 may be stored in various computer memory types other than ROM 56 .
  • 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
  • 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
  • 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 .
  • 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.
  • 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.
  • FIG. 6 is a block diagram showing a preferred embodiment of apparatus 10 for increasing a camera image capture rate.
  • frame buffer 70 receives and stores raw image data previously captured by imaging device 14 .
  • Frame buffer 70 then provides the raw image data via line 100 to rotate process 95 which is described in detail in 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, which is hereby incorporated by reference.
  • 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 .
  • IPC image processing/compression
  • Flash spooler 1 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 provide 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 .
  • 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 .
  • 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 .
  • FIG. 7 is a block diagram showing priority levels for processes 84 through 92 of the preferred embodiment with corresponding image data routing paths.
  • Background processes 84 through 92 are preferably allotted processing unit 54 time depending on their priority level.
  • This priority level is related to the goal of rapidly emptying frame buffer 70 to enable rapid capture of successive sets of image data.
  • 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 spooler 1 ( 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 .
  • RAM spooler 2 90
  • flash memory spooler 2 92
  • 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 .
  • 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.
  • operation of flash memory spooler 1 ( 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.
  • operation of flash memory spooler 1 ( 86 ) will block image processing/compression 88 , 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.
  • a lower priority ROM process is currently operating and a higher priority ROM process requires processing unit 54 , then the lower priority ROM process is immediately blocked until the higher priority ROM process has completed its operations.
  • FIG. 8 is a flowchart of preferred method steps for implementing RAM spooler 1 ( 84 ) according to the present invention.
  • processing unit 54 initializes RAM spooler 1 ( 84 ).
  • RAM spooler 1 ( 84 ) waits 202 for a message or pointer on its input queue 78 .
  • RAM spooler 1 ( 84 ) determines 204 whether a “stop processing” request is present by checking a corresponding request bit in data cell 76 . If the “stop processing” request is present, step 206 returns data cell 76 to control application 82 and returns the FIG. 8 process back to step 202 . If the request is not present, step 208 determines whether RAM disk 74 or flash memory 64 are available. If not available, step 210 sends the raw image data directly to IPC 88 and returns the FIG. 8 process back to step 202 .
  • 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 FIG. 8 process to step 202 . If the data is not stored in RAM disk 74 , step 214 determines whether a “delete image” request is present by checking a corresponding request bit in data cell 76 . If the request is present, step 216 releases frame buffer 70 to accept incoming raw image data from imaging device 14 . Step 206 then returns data cell 76 to control application 82 and the FIG. 8 process returns to step 202 .
  • step 218 determines whether there is (or will be) space on RAM disk 74 by checking storage status 80 , as described above in conjunction with FIG. 4 . If there is (or will be) space, step 220 waits for a “space available now” signal before step 222 creates the file to write on RAM disk 74 . If step 218 determines that RAM disk 74 has no space, then step 228 determines whether flash memory 64 has (or will have) space by checking storage status 80 . If flash memory 64 has no space, an error condition exists. Step 230 therefore returns data cell 76 to control application 82 and returns the FIG. 8 process to step 202 . If flash memory 64 has (or will have) space, step 232 waits for a “space available now” signal before step 234 creates the file to write on flash memory 64 .
  • 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 FIG. 8 process to step 202 to wait for another message on its input queue 78 .
  • FIG. 9 is a flowchart of preferred method steps for implementing flash spooler 1 ( 86 ) according to the present invention.
  • processing unit 54 initializes flash spooler 1 ( 86 ).
  • flash spooler 1 ( 86 ) waits for a message on its input queue 78 before advancing to step 304 .
  • Flash spooler 1 ( 86 ) in step 304 , determines whether a “stop processing” request is present. If the request is present, step 306 returns data cell 76 to control application 82 and returns the FIG. 9 process back to step 302 .
  • 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 FIG. 9 process to step 302 . If the data is not stored in flash memory 64 , step 310 determines whether a “delete image” request is present. If the request is present, step 312 deletes the file in RAM disk 74 . Step 306 then sends data cell 76 to control application 82 and the FIG. 9 process returns to step 302 . If the “delete image” request is not present, step 314 determines whether the raw image data is stored in RAM disk 74 . If the data is not stored in RAM disk 74 , step 316 signals an error, returns data cell 76 to control application 82 and returns the FIG. 9 process back to step 302 .
  • 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 FIG. 9 process to step 302 to wait for another message on its input queue 78 .
  • FIG. 10 is a flowchart of preferred method steps for implementing the image processing/compression 88 of the present invention.
  • processing unit 54 initializes IPC 88 .
  • IPC 88 waits for a message on its input queue 78 before advancing to step 404 .
  • IPC 88 determines whether a “stop processing” request is present. If the request is present, step 406 returns data cell 76 to control application 82 and returns the FIG. 10 process back to step 402 . If the request is not present, step 408 determines whether the image data is already compressed. If already compressed, step 422 sends the compressed image data to RAM spooler 2 ( 90 ) and returns the FIG. 10 process to step 402 .
  • 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 FIG. 10 process to step 402 . If the “delete image” request is not present, step 414 determines whether there is (or will be) space on RAM disk 74 . If there is space, step 416 waits for a “space available now” signal before step 418 creates the file to write on RAM disk 74 . If step 414 determines that RAM disk 74 has no space, then step 424 determines whether flash memory 64 has (or will have) space.
  • step 426 creates a RAM 60 buffer to hold the image data. If flash memory 64 has (or will have) space, step 428 waits for a “space available now” signal before step 430 creates the file to write on flash memory 64 .
  • 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 FIG. 10 process to step 402 to wait for another message on its input queue 78 .
  • FIG. 11 is a flowchart of preferred method steps for implementing RAM Spooler 2 ( 90 ) of the present invention.
  • processing unit 54 initializes RAM spooler 2 ( 90 ).
  • RAM spooler 2 ( 90 ) waits for a message on its input queue 78 before advancing to step 504 .
  • RAM spooler 2 ( 90 ) determines whether the compressed image data is in the RAM 60 buffer created in step 426 ( FIG. 10 ). If not, step 522 sends the compressed data to flash spooler 2 ( 92 ) and returns the FIG. 11 process to step 502 . If so, step 506 determines whether a “stop processing” request is present. If the request is present, step 508 returns data cell 76 to control application 82 and returns the FIG. 11 process back to step 502 .
  • 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 FIG. 11 process to step 502 . If flash memory 64 has (or will have) space, step 528 waits for a “space available now” signal before step 530 creates the file to write on flash memory 64 .
  • 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 FIG. 11 process to step 502 to wait for another message on its input queue 78 .
  • FIG. 12 is a flowchart of preferred method steps for implementing the flash spooler 2 ( 92 ) of the present invention.
  • processing unit 54 initializes flash spooler 2 ( 92 ).
  • flash spooler 2 ( 90 ) waits for a message on its input queue 78 before advancing to step 604 .
  • Flash spooler 2 ( 92 ) in step 604 , determines whether flash memory 64 is available. If not available, step 606 returns data cell 76 to control application 82 and returns the FIG. 12 process to step 602 . If flash memory 64 is available, step 608 determines whether a “stop processing” request is present. If the request is present, step 606 returns data cell 76 to control application 82 and returns the FIG. 12 process back to step 602 .
  • 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 FIG. 12 process to step 602 . If the compressed data is not stored in flash memory 64 , step 614 determines whether a “delete image” request is present. If the request is present, step 616 deletes the file in RAM disk 74 . Step 606 then returns data cell 76 to control application 82 and returns the FIG. 12 process to step 602 . If the “delete image” request is not present, step 618 determines whether the compressed image data is stored in RAM disk 74 .
  • step 620 If the compressed data is not stored in RAM disk 74 , step 620 signals an error, returns data cell 76 to control application 82 and returns the FIG. 12 process to step 602 . If the compressed image data is stored in RAM disk 74 , step 622 determines whether flash memory 64 has (or will have) space. If flash memory 64 has no space, step 620 signals an error, returns data cell 76 to control application 82 and returns the FIG. 12 process to step 602 . If flash memory 64 has (or will have) space, step 624 waits for a “space available now” signal before flash spooler 2 ( 92 ), in step 626 , copies the compressed image data from RAM disk 74 to flash memory 64 and then deletes the file on RAM disk 74 . Step 612 then returns data cell 76 to control application 82 and returns the FIG. 12 process to step 602 to wait for another message on its input queue 78 .

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Television Signal Processing For Recording (AREA)
  • Studio Devices (AREA)

Abstract

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 RAM 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.

Description

CROSS-REFERENCE TO RELATED APPLICATIONS
Notice: More than one reissue application has been filed for the reissue of U.S. Pat. No. 5,867,214. This reissue application is a continuation of reissue application Ser. No. 09/775,720.
ThisThe present application is a continuation of U.S. patent application Ser. No. 09/775,720, filed on Feb. 2, 2001 and now U.S. Reissue Pat. No. RE39,213, which is a reissue application of U.S. patent application Ser. No. 08/631,173, filed on Apr. 11, 1996 and now U.S. Pat. No. 5,867,214. The present 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.
BACKGROUND OF THE INVENTION
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 equivalent software-based routines. The software-based 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.
SUMMARY OF THE INVENTION
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.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a block diagram showing a preferred embodiment of an apparatus for increasing a digital camera image capture rate by delaying image processing;
FIG. 2 is a block diagram showing a preferred embodiment of an imaging devices according to the present invention;
FIG. 3 is a block diagram showing a preferred embodiment of a computer of the present invention;
FIG. 4 is a block diagram showing a preferred embodiment of a Random Access Memory (RAM) of the FIG. 3 computer;
FIG. 5 is a block diagram showing a preferred embodiment of a Read Only Memory (ROM) of the FIG. 3 computer;
FIG. 6 is a block diagram showing a preferred embodiment of an apparatus for increasing a camera image capture rate according to the present invention;
FIG. 7 is a block diagram showing priority levels of preferred processes and corresponding image data paths;
FIG. 8 is a flowchart of preferred method steps for implementing RAM Spooler 1 of the present invention;
FIG. 9 is a flowchart of preferred method steps for implementing the Flash Spooler 1 of the present invention;
FIG. 10 is a flowchart of preferred method steps for implementing the Image Processing/Compression of the present invention;
FIG. 11 is a flowchart of preferred method steps for implementing the RAM Spooler 2 of the present invention; and
FIG. 12 is a flowchart of preferred method steps for implementing the Flash Spooler 2 of the present invention.
DETAILED DESCRIPTION OF THE 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 FIG. 1, a block diagram of a preferred embodiment of apparatus 10 for increasing an image capture rate is shown. Apparatus 10 may be used to capture a set of image data representing an object 12. Apparatus 10 preferably comprises an imaging device 14, an external bus 16 and a computer 18. Imaging device 14 is optically coupled to object 12 and electrically coupled via external bus 16 to computer 18. Once a photographer has focused imaging device 14 on object 12 and, using a capture button or some other means, instructed apparatus 10 to capture an image of object 12, computer 18 commands imaging device 14 via external bus 16 to capture raw image data representing object 12. The captured raw image data is transferred over external bus 16 to computer 18 which performs various image processing functions on the image data before storing it in its internal memory. External bus 16 also passes various status and control signals between imaging device 14 and computer 18.
Referring now to FIG. 2, a block diagram of a preferred embodiment of imaging device 14 is shown. Imaging device 14 preferably comprises a lens 20 having an iris, a filter 22, an image sensor 24, a timing generator 26, an analog signal processor (ASP) 28, an analog-to-digital (A/D) converter 30, a digital signal processor (DSP) 40, and one or more motors 32.
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 FIG. 3, a block diagram of a preferred embodiment of computer 18 is shown. Computer 18 comprises a bus interface 52, a processing unit 54, a read-only memory (ROM) 56, an input device 58, a random access memory (RAM) 60, an I/O interface 62, a flash memory 64 and a non-volatile memory 68 coupled together via an internal bus 66. In the preferred embodiment, computer 18 is embedded as part of apparatus 10 using a conventional architecture. However, those skilled in the art will recognize that in an alternate embodiment, computer 18 may be a discrete computer system.
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 FIG. 4, a block diagram of a preferred embodiment of RAM 60 is shown. RAM 60 is comprised of a frame buffer 70, a working memory 72 and a RAM disk 74. Frame buffer 70 preferably comprises a dedicated space of contiguous memory suitable for storing the raw image data generated by image sensor 24. The function of frame buffer 70 is to store the most recently captured set of raw image data until computer 18 either stores the raw image data in RAM disk 74 or transfers it to an image processing unit.
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 FIG. 5, a block diagram of a preferred embodiment of ROM 56 is shown. ROM 56 preferably contains code for processes 82 through 96, including a control application (CA) 82, a RAM spooler 1 (RS1) 84, a flash memory spooler 1 (MS1) 86, image processing/compression (IPC) 88, a RAM spooler 2 (RS2) 90, a flash memory spooler 2 (MS2) 92, a file manager 94, and an operating system 96, each coupled via internal bus 66. In alternate embodiments, the FIG. 5 processes 82 through 96 may be stored in various computer memory types other than ROM 56.
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.
FIG. 6 is a block diagram showing a preferred embodiment of apparatus 10 for increasing a camera image capture rate. In FIG. 6, frame buffer 70 receives and stores raw image data previously captured by imaging device 14. Frame buffer 70 then provides the raw image data via line 100 to rotate process 95 which is described in detail in 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, which is hereby incorporated by reference.
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 provide 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.
FIG. 7 is a block diagram showing priority levels for processes 84 through 92 of the preferred embodiment with corresponding image data routing paths. Background processes 84 through 92 are preferably allotted processing unit 54 time depending on their priority level. This priority level is related to the goal of rapidly emptying frame buffer 70 to enable rapid capture of successive sets of image data.
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 spooler1 (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 spooler1 (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 ROM process is immediately blocked until the higher priority ROM process has completed its operations.
FIG. 8 is a flowchart of preferred method steps for implementing RAM spooler 1 (84) according to the present invention. In step 200, processing unit 54 initializes RAM spooler 1 (84). RAM spooler 1 (84) waits 202 for a message or pointer on its input queue 78. Once a message is received, RAM spooler 1 (84), determines 204 whether a “stop processing” request is present by checking a corresponding request bit in data cell 76. If the “stop processing” request is present, step 206 returns data cell 76 to control application 82 and returns the FIG. 8 process back to step 202. If the request is not present, step 208 determines whether RAM disk 74 or flash memory 64 are available. If not available, step 210 sends the raw image data directly to IPC 88 and returns the FIG. 8 process back to step 202.
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 FIG. 8 process to step 202. If the data is not stored in RAM disk 74, step 214 determines whether a “delete image” request is present by checking a corresponding request bit in data cell 76. If the request is present, step 216 releases frame buffer 70 to accept incoming raw image data from imaging device 14. Step 206 then returns data cell 76 to control application 82 and the FIG. 8 process returns to step 202. If the “delete image” request is not present, step 218 determines whether there is (or will be) space on RAM disk 74 by checking storage status 80, as described above in conjunction with FIG. 4. If there is (or will be) space, step 220 waits for a “space available now” signal before step 222 creates the file to write on RAM disk 74. If step 218 determines that RAM disk 74 has no space, then step 228 determines whether flash memory 64 has (or will have) space by checking storage status 80. If flash memory 64 has no space, an error condition exists. Step 230 therefore returns data cell 76 to control application 82 and returns the FIG. 8 process to step 202. If flash memory 64 has (or will have) space, step 232 waits for a “space available now” signal before step 234 creates the file to write on flash memory 64.
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 FIG. 8 process to step 202 to wait for another message on its input queue 78.
FIG. 9 is a flowchart of preferred method steps for implementing flash spooler 1 (86) according to the present invention. In step 300, processing unit 54 initializes flash spooler 1 (86). In step 302, flash spooler 1 (86) waits for a message on its input queue 78 before advancing to step 304. Flash spooler 1 (86), in step 304, determines whether a “stop processing” request is present. If the request is present, step 306 returns data cell 76 to control application 82 and returns the FIG. 9 process back to step 302.
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 FIG. 9 process to step 302. If the data is not stored in flash memory 64, step 310 determines whether a “delete image” request is present. If the request is present, step 312 deletes the file in RAM disk 74. Step 306 then sends data cell 76 to control application 82 and the FIG. 9 process returns to step 302. If the “delete image” request is not present, step 314 determines whether the raw image data is stored in RAM disk 74. If the data is not stored in RAM disk 74, step 316 signals an error, returns data cell 76 to control application 82 and returns the FIG. 9 process back to step 302.
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 FIG. 9 process to step 302 to wait for another message on its input queue 78.
FIG. 10 is a flowchart of preferred method steps for implementing the image processing/compression 88 of the present invention. In step 400, processing unit 54 initializes IPC 88. In step 402, IPC 88 waits for a message on its input queue 78 before advancing to step 404. IPC 88, in step 404, determines whether a “stop processing” request is present. If the request is present, step 406 returns data cell 76 to control application 82 and returns the FIG. 10 process back to step 402. If the request is not present, step 408 determines whether the image data is already compressed. If already compressed, step 422 sends the compressed image data to RAM spooler 2 (90) and returns the FIG. 10 process to step 402.
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 FIG. 10 process to step 402. If the “delete image” request is not present, step 414 determines whether there is (or will be) space on RAM disk 74. If there is space, step 416 waits for a “space available now” signal before step 418 creates the file to write on RAM disk 74. If step 414 determines that RAM disk 74 has no space, then step 424 determines whether flash memory 64 has (or will have) space. If flash memory 64 has no space, step 426 creates a RAM 60 buffer to hold the image data. If flash memory 64 has (or will have) space, step 428 waits for a “space available now” signal before step 430 creates the file to write on flash memory 64.
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 FIG. 10 process to step 402 to wait for another message on its input queue 78.
FIG. 11 is a flowchart of preferred method steps for implementing RAM Spooler 2 (90) of the present invention. In step 500, processing unit 54 initializes RAM spooler 2 (90). In step 502, RAM spooler 2 (90) waits for a message on its input queue 78 before advancing to step 504. RAM spooler 2 (90), in step 504, determines whether the compressed image data is in the RAM 60 buffer created in step 426 (FIG. 10). If not, step 522 sends the compressed data to flash spooler 2 (92) and returns the FIG. 11 process to step 502. If so, step 506 determines whether a “stop processing” request is present. If the request is present, step 508 returns data cell 76 to control application 82 and returns the FIG. 11 process back to step 502.
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 FIG. 11 process to step 502. If flash memory 64 has (or will have) space, step 528 waits for a “space available now” signal before step 530 creates the file to write on flash memory 64.
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 FIG. 11 process to step 502 to wait for another message on its input queue 78.
FIG. 12 is a flowchart of preferred method steps for implementing the flash spooler 2 (92) of the present invention. In step 600, processing unit 54 initializes flash spooler 2 (92). In step 602, flash spooler 2 (90) waits for a message on its input queue 78 before advancing to step 604. Flash spooler 2 (92), in step 604, determines whether flash memory 64 is available. If not available, step 606 returns data cell 76 to control application 82 and returns the FIG. 12 process to step 602. If flash memory 64 is available, step 608 determines whether a “stop processing” request is present. If the request is present, step 606 returns data cell 76 to control application 82 and returns the FIG. 12 process back to step 602.
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 FIG. 12 process to step 602. If the compressed data is not stored in flash memory 64, step 614 determines whether a “delete image” request is present. If the request is present, step 616 deletes the file in RAM disk 74. Step 606 then returns data cell 76 to control application 82 and returns the FIG. 12 process to step 602. If the “delete image” request is not present, step 618 determines whether the compressed image data is stored in RAM disk 74. If the compressed data is not stored in RAM disk 74, step 620 signals an error, returns data cell 76 to control application 82 and returns the FIG. 12 process to step 602. If the compressed image data is stored in RAM disk 74, step 622 determines whether flash memory 64 has (or will have) space. If flash memory 64 has no space, step 620 signals an error, returns data cell 76 to control application 82 and returns the FIG. 12 process to step 602. If flash memory 64 has (or will have) space, step 624 waits for a “space available now” signal before flash spooler 2 (92), in step 626, copies the compressed image data from RAM disk 74 to flash memory 64 and then deletes the file on RAM disk 74. Step 612 then returns data cell 76 to control application 82 and returns the FIG. 12 process to step 602 to wait for another message on its input queue 78.
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 by the following claims.

Claims (35)

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.
2. The method of claim 1 further comprising the steps 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 claim 1 wherein:
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 claim 3, wherein the image processing and compression step further comprises the steps 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 claim 4 wherein the first memory device is a RAM disk and the second memory device is a removable flash memory.
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.
7. The apparatus of claim 6 further comprising:
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 claim 6 wherein:
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 claim 8, wherein the image processing and compression means further comprises:
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 claim 9 wherein the first memory device is a RAM disk and the second memory device is a removable 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.
12. The medium of claim 11 further comprising instructions for:
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 claim 11 wherein:
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 claim 13 wherein the image processing and compression step further comprises the steps 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 claim 14 wherein the first memory device is a RAM disk and the second memory device is a removable flash memory.
16. An apparatus for increasing a digital camera capture rate, comprising:
an imaging device for generating raw image data responsive to an image capture request;
a memory buffer for initially storing the raw image data;
first routines for conveying the initially stored raw image data away from the frame 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;
second routines 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 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 buffer.
17. The apparatus of claim 16, wherein the first routines are configured to convey the initially stored raw image data from the frame buffer to a RAM disk.
18. The apparatus of claim 17, wherein the second routines include:
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.
19. An apparatus for handling digital image data, comprising:
an imaging device capable of capturing an image of an object and generating raw image data representing the captured image;
a frame buffer operatively coupled to the imaging device and capable of storing the raw image data;
a processing unit operatively coupled to a RAM disk and the imaging device, and capable of processing the raw image data and generating processed image data; and
a memory operatively coupled to the processing unit, the memory capable of storing instructions executable by the processing unit, the instructions comprising:
instructions for transferring the raw image data from the frame buffer directly to the RAM disk; and
instructions for transferring the raw image data from the RAM disk to a flash memory.
20. The apparatus of claim 19, further comprises instructions for processing the raw image data, wherein the instructions for transferring the raw image data from the RAM disk to the flash memory have a higher priority for execution than the instructions for processing the raw image data.
21. The apparatus of claim 20, wherein the instructions for processing the raw image data have a higher priority for execution than instructions for transferring the processed image data.
22. The apparatus of claim 19, wherein the apparatus is a digital camera.
23. The apparatus of claim 19, further comprising instructions for transferring the raw image data from the flash memory to the processing unit.
24. An apparatus for handling digital image data, comprising:
an imaging device capable of capturing an image of an object and generate raw image data representing the captured image;
a frame buffer operatively coupled to the imaging device and capable of storing the raw image data;
a processing unit operatively coupled to a RAM disk and capable of processing the raw image data and to generate processed image data; and
a memory operatively coupled to the processing unit, the memory capable of storing instructions executable by the processing unit, the instructions comprising:
instructions for transferring the raw image data from the frame buffer directly to the RAM disk;
instructions for transferring the raw image data from the RAM disk to a flash memory;
instructions for processing the raw image data; and
wherein the instructions for transferring the raw image data from the RAM disk to the flash memory have a higher priority than the instructions for processing the raw image data.
25. The apparatus of claim 24, wherein the instructions for processing the raw image data have a higher priority for execution than instructions for transferring the processed image data.
26. The apparatus of claim 24, wherein the apparatus is a digital camera.
27. The apparatus of claim 24, further comprising instructions for transferring the raw image data from the flash memory to the processing unit.
28. An apparatus for handling digital image data, comprising:
an imaging device capable of capturing an image of an object and generate raw image data representing the captured image;
a processing unit operatively coupled to the imaging device and capable of processing the raw image data and to generate processed image data, wherein the processed image data is stored in a RAM disk; and
a memory operatively coupled to the processing unit, the memory capable of storing instructions executable by the processing unit, the instructions comprising:
instructions for controlling the imaging device to capture an image and generate raw image data representing the captured image;
instructions for transferring the raw image data;
instructions for processing the raw image data; and
instructions for transferring the processed image data from the RAM disk to a flash memory;
wherein the instructions for processing the raw image data have a higher priority than the instructions for transferring the processed image data, and the instructions for transferring the raw image data have a higher priority for execution than the instructions for processing the raw image data, and wherein the instructions for transferring the processed image data operatively transfer the processed image data from the processing unit to the RAM disk.
29. The apparatus of claim 28, wherein the apparatus is a digital camera.
30. A method of handling digital image data, comprising:
capturing an image of an object and generating raw image data in response thereto;
transferring the raw image data from a frame buffer directly to a RAM disk;
transferring the raw image data from the RAM disk to a flash memory;
compressing the raw image data to generate compressed image data; and
transferring the compressed image data.
31. The method of claim 30, wherein a priority of transferring the raw image data from the RAM disk to the flash memory is higher than the priority of compressing the raw image data.
32. The method of claim 30, wherein a priority of the compressing is higher than a priority of transferring the compressed image data.
33. A method of handling digital image data, comprising:
capturing an image of an object and generating raw image data in response thereto;
transferring the raw image data from a frame buffer to a RAM disk;
transferring the raw image data from the RAM disk to a flash memory;
compressing the raw image data to generate compressed image data; and
transferring the compressed image data, wherein a priority of transferring the raw image data from the RAM disk to the flash memory is higher than a priority of compressing the raw image data.
34. The method of claim 33, wherein the priority of the compressing is higher than a priority of transferring the compressed image data.
35. A method of handling digital image data, comprising:
capturing an image of an object and generating raw image data in response thereto;
transferring the raw image data;
compressing the raw image data to generate compressed image data; and
transferring the compressed image data from a RAM disk to a flash memory, wherein a priority of the compressing is higher than a priority of transferring the compressed image data, and the priority of transferring the raw image data is higher than a priority of the compressing, and wherein the instructions for transferring the processed image data operatively transfer the processed image data from the processing unit to the RAM disk.
US11/349,499 1996-04-11 2006-02-06 Apparatus and method for handling digital image data Expired - Lifetime USRE42779E1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US11/349,499 USRE42779E1 (en) 1996-04-11 2006-02-06 Apparatus and method for handling digital image data

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/631,173 US5867214A (en) 1996-04-11 1996-04-11 Apparatus and method for increasing a digital camera image capture rate by delaying image processing
US09/775,720 USRE39213E1 (en) 1996-04-11 2001-02-02 Apparatus and method for increasing a digital camera image capture rate by delaying image processing
US11/349,499 USRE42779E1 (en) 1996-04-11 2006-02-06 Apparatus and method for handling digital image data

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US08/631,173 Reissue US5867214A (en) 1996-04-11 1996-04-11 Apparatus and method for increasing a digital camera image capture rate by delaying image processing

Publications (1)

Publication Number Publication Date
USRE42779E1 true USRE42779E1 (en) 2011-10-04

Family

ID=24530082

Family Applications (3)

Application Number Title Priority Date Filing Date
US08/631,173 Ceased US5867214A (en) 1996-04-11 1996-04-11 Apparatus and method for increasing a digital camera image capture rate by delaying image processing
US09/775,720 Expired - Lifetime USRE39213E1 (en) 1996-04-11 2001-02-02 Apparatus and method for increasing a digital camera image capture rate by delaying image processing
US11/349,499 Expired - Lifetime USRE42779E1 (en) 1996-04-11 2006-02-06 Apparatus and method for handling digital image data

Family Applications Before (2)

Application Number Title Priority Date Filing Date
US08/631,173 Ceased US5867214A (en) 1996-04-11 1996-04-11 Apparatus and method for increasing a digital camera image capture rate by delaying image processing
US09/775,720 Expired - Lifetime USRE39213E1 (en) 1996-04-11 2001-02-02 Apparatus and method for increasing a digital camera image capture rate by delaying image processing

Country Status (1)

Country Link
US (3) US5867214A (en)

Families Citing this family (114)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6330028B1 (en) * 1996-02-15 2001-12-11 Casio Computer Co., Ltd. Electronic image pickup device which is operable even when management information related to recording/reproducing image data is not readable
US6031964A (en) * 1996-06-20 2000-02-29 Apple Computer, Inc. System and method for using a unified memory architecture to implement a digital camera device
US6054990A (en) * 1996-07-05 2000-04-25 Tran; Bao Q. Computer system with handwriting annotation
JP3996962B2 (en) * 1996-08-02 2007-10-24 キヤノン株式会社 Digital camera
JPH10172237A (en) * 1996-12-06 1998-06-26 Sanyo Electric Co Ltd Method and apparatus for information memory control and information memory apparatus having the control function
US7653215B2 (en) 1997-04-02 2010-01-26 Gentex Corporation System for controlling exterior vehicle lights
US6861809B2 (en) * 1998-09-18 2005-03-01 Gentex Corporation Headlamp control to prevent glare
US6130421A (en) * 1998-06-09 2000-10-10 Gentex Corporation Imaging system for vehicle headlamp control
US6049171A (en) * 1998-09-18 2000-04-11 Gentex Corporation Continuously variable headlamp control
US6631316B2 (en) * 2001-03-05 2003-10-07 Gentex Corporation Image processing system to control vehicle headlamps or other vehicle equipment
US5837994C1 (en) * 1997-04-02 2001-10-16 Gentex Corp Control system to automatically dim vehicle head lamps
US5990469A (en) * 1997-04-02 1999-11-23 Gentex Corporation Control circuit for image array sensors
JP3496744B2 (en) * 1997-06-13 2004-02-16 三洋電機株式会社 Image data recording device and digital camera
US5973734A (en) 1997-07-09 1999-10-26 Flashpoint Technology, Inc. Method and apparatus for correcting aspect ratio in a camera graphical user interface
JP3748489B2 (en) * 1998-03-11 2006-02-22 キヤノン株式会社 Image processing apparatus, image processing method, and computer-readable storage medium
US6594399B1 (en) * 1998-05-14 2003-07-15 Sensar, Inc. Method and apparatus for integrating multiple 1-D filters into a digital image stream interface
US7253836B1 (en) * 1998-06-30 2007-08-07 Nikon Corporation Digital camera, storage medium for image signal processing, carrier wave and electronic camera
US7602424B2 (en) 1998-07-23 2009-10-13 Scenera Technologies, Llc Method and apparatus for automatically categorizing images in a digital camera
JP3091728B2 (en) * 1998-09-30 2000-09-25 三洋電機株式会社 Image recording method and imaging device
US6317141B1 (en) 1998-12-31 2001-11-13 Flashpoint Technology, Inc. Method and apparatus for editing heterogeneous media objects in a digital imaging device
DE20080319U1 (en) * 1999-06-30 2002-05-16 Logitech Inc., Fremont, Calif. Video camera in which the main functions are implemented in the main computer software
KR100631096B1 (en) * 1999-06-30 2006-10-02 로지테크 유럽 소시에떼 아노님 Video camera with major functions implemented in host software
US7009644B1 (en) 1999-12-15 2006-03-07 Logitech Europe S.A. Dynamic anomalous pixel detection and correction
US6995794B2 (en) * 1999-06-30 2006-02-07 Logitech Europe S.A. Video camera with major functions implemented in host software
US6734913B1 (en) * 1999-10-28 2004-05-11 Hewlett-Packard Development Company, L.P. Method of automatically adjusting exposure in a shutterless digital camera
JP3750462B2 (en) * 2000-02-22 2006-03-01 コニカミノルタフォトイメージング株式会社 Digital camera and recording medium
WO2001067747A1 (en) * 2000-03-10 2001-09-13 Sanyo Electric Co., Ltd. Digital camera and method of image processing
US7064784B2 (en) * 2000-10-19 2006-06-20 Canon Kabushiki Kaisha Image pickup apparatus adapted to carry out parallel operations in a continuous image pickup mode, and a control method
US20030035653A1 (en) 2001-08-20 2003-02-20 Lyon Richard F. Storage and processing service network for unrendered image data
US20030184650A1 (en) * 2002-03-27 2003-10-02 Eastman Kodak Company Transferring and proccessing a plurality of digital images captured by a digital camera using a computer
JP4357151B2 (en) * 2002-03-28 2009-11-04 富士フイルム株式会社 Digital camera and image data processing system
JP2004193686A (en) * 2002-12-06 2004-07-08 Nec Access Technica Ltd Camera attached mobile terminal
US7612803B2 (en) * 2003-06-10 2009-11-03 Zoran Corporation Digital camera with reduced image buffer memory and minimal processing for recycling through a service center
JP2005191771A (en) * 2003-12-25 2005-07-14 Oki Data Corp Image input device and image processing apparatus
JP4297023B2 (en) * 2004-10-08 2009-07-15 コニカミノルタビジネステクノロジーズ株式会社 Storage information processing apparatus and processing method of external storage device
TWI339978B (en) * 2006-03-29 2011-04-01 High Tech Comp Corp Handheld device havind a digital alblum for preserving history images and the application thereof
CN100566372C (en) * 2006-05-11 2009-12-02 宏达国际电子股份有限公司 Hand-hold electronic equipments and application process thereof with historic image digital album function
US20080052026A1 (en) * 2006-08-23 2008-02-28 Qurio Holdings, Inc. Configuring a content capture device for one or more service providers
US9224145B1 (en) 2006-08-30 2015-12-29 Qurio Holdings, Inc. Venue based digital rights using capture device with digital watermarking capability
US20090273686A1 (en) * 2008-05-02 2009-11-05 Nokia Corporation Methods, computer program products and apparatus providing improved image capturing
JP2010226453A (en) * 2009-03-24 2010-10-07 Toshiba Corp Still image memory device, and lighting fixture
CN101860680B (en) * 2009-04-08 2011-12-21 鸿富锦精密工业(深圳)有限公司 Image processing device and image processing method thereof
US20100279418A1 (en) * 2009-05-04 2010-11-04 Loren Robert Larson Glucose meter adaptable for use with handheld devices, and associated communication network
US8472712B2 (en) * 2009-10-20 2013-06-25 Apple Inc. System and method for applying lens shading correction during image processing
US8593483B2 (en) * 2009-10-20 2013-11-26 Apple Inc. Temporal filtering techniques for image signal processing
US8259198B2 (en) * 2009-10-20 2012-09-04 Apple Inc. System and method for detecting and correcting defective pixels in an image sensor
US8638342B2 (en) * 2009-10-20 2014-01-28 Apple Inc. System and method for demosaicing image data using weighted gradients
US8294781B2 (en) * 2009-10-20 2012-10-23 Apple Inc. System and method for sharpening image data
US8525895B2 (en) 2010-07-29 2013-09-03 Apple Inc. Binning compensation filtering techniques for image signal processing
US8493482B2 (en) 2010-08-18 2013-07-23 Apple Inc. Dual image sensor image processing system and method
US8531542B2 (en) 2010-09-01 2013-09-10 Apple Inc. Techniques for acquiring and processing statistics data in an image signal processor
US8605167B2 (en) 2010-09-01 2013-12-10 Apple Inc. Flexible color space selection for auto-white balance processing
US9398205B2 (en) 2010-09-01 2016-07-19 Apple Inc. Auto-focus control using image statistics data with coarse and fine auto-focus scores
US8922704B2 (en) 2010-09-01 2014-12-30 Apple Inc. Techniques for collection of auto-focus statistics
US8508612B2 (en) 2010-09-30 2013-08-13 Apple Inc. Image signal processor line buffer configuration for processing ram image data
US8471932B2 (en) 2010-09-30 2013-06-25 Apple Inc. Spatial filtering for image signal processing
US8488055B2 (en) 2010-09-30 2013-07-16 Apple Inc. Flash synchronization using image sensor interface timing signal
US8629913B2 (en) 2010-09-30 2014-01-14 Apple Inc. Overflow control techniques for image signal processing
US8508621B2 (en) 2010-09-30 2013-08-13 Apple Inc. Image sensor data formats and memory addressing techniques for image signal processing
US8736700B2 (en) 2010-09-30 2014-05-27 Apple Inc. Techniques for synchronizing audio and video data in an image signal processing system
US8786625B2 (en) 2010-09-30 2014-07-22 Apple Inc. System and method for processing image data using an image signal processor having back-end processing logic
US8879139B2 (en) 2012-04-24 2014-11-04 Gentex Corporation Display mirror assembly
US9077943B2 (en) 2012-05-31 2015-07-07 Apple Inc. Local image statistics collection
US11089247B2 (en) 2012-05-31 2021-08-10 Apple Inc. Systems and method for reducing fixed pattern noise in image data
US8917336B2 (en) 2012-05-31 2014-12-23 Apple Inc. Image signal processing involving geometric distortion correction
US8817120B2 (en) 2012-05-31 2014-08-26 Apple Inc. Systems and methods for collecting fixed pattern noise statistics of image data
US8872946B2 (en) 2012-05-31 2014-10-28 Apple Inc. Systems and methods for raw image processing
US8953882B2 (en) 2012-05-31 2015-02-10 Apple Inc. Systems and methods for determining noise statistics of image data
US9142012B2 (en) 2012-05-31 2015-09-22 Apple Inc. Systems and methods for chroma noise reduction
US9105078B2 (en) 2012-05-31 2015-08-11 Apple Inc. Systems and methods for local tone mapping
US9031319B2 (en) 2012-05-31 2015-05-12 Apple Inc. Systems and methods for luma sharpening
US9025867B2 (en) 2012-05-31 2015-05-05 Apple Inc. Systems and methods for YCC image processing
US9743057B2 (en) 2012-05-31 2017-08-22 Apple Inc. Systems and methods for lens shading correction
US9332239B2 (en) 2012-05-31 2016-05-03 Apple Inc. Systems and methods for RGB image processing
US9014504B2 (en) 2012-05-31 2015-04-21 Apple Inc. Systems and methods for highlight recovery in an image signal processor
US8983135B2 (en) 2012-06-01 2015-03-17 Gentex Corporation System and method for controlling vehicle equipment responsive to a multi-stage village detection
EP2859436B1 (en) 2012-06-12 2020-06-03 Gentex Corporation Vehicle imaging system providing multi-stage aiming stability indication
EP2879912B1 (en) 2012-08-02 2021-11-10 Gentex Corporation System and method for controlling exterior vehicle lights responsive to detection of a semi-truck
KR101848451B1 (en) 2013-08-19 2018-04-12 젠텍스 코포레이션 Vehicle imaging system and method for distinguishing between vehicle tail lights and flashing red stop lights
WO2015026810A1 (en) 2013-08-19 2015-02-26 Gentex Corporation Vehicle imaging system and method for distinguishing reflective objects from lights of another vehicle
CN105555612B (en) 2013-09-24 2018-06-01 金泰克斯公司 Show mirror assembly
CN105593061B (en) 2013-10-01 2018-03-27 金泰克斯公司 System and method for controlling exterior vehicle lights on fast traffic lane
KR101794821B1 (en) 2013-11-15 2017-11-07 젠텍스 코포레이션 Imaging system including dynamic compensation for color attenuation for vehicle windscreens
US9511715B2 (en) 2014-01-31 2016-12-06 Gentex Corporation Backlighting assembly for display for reducing cross-hatching
CN106061794B (en) 2014-03-21 2019-06-07 金泰克斯公司 Tri-state shows mirror assembly
EP3126195B1 (en) 2014-04-01 2019-06-05 Gentex Corporation Automatic display mirror assembly
US9277123B2 (en) 2014-05-30 2016-03-01 Apple Inc. Systems and methods for exposure metering for timelapse video
US9992443B2 (en) 2014-05-30 2018-06-05 Apple Inc. System and methods for time lapse video acquisition and compression
WO2016044746A1 (en) 2014-09-19 2016-03-24 Gentex Corporation Rearview assembly
US9426409B2 (en) 2014-09-30 2016-08-23 Apple Inc. Time-lapse video capture with optimal image stabilization
US9324376B2 (en) 2014-09-30 2016-04-26 Apple Inc. Time-lapse video capture with temporal points of interest
CN107000642B (en) 2014-11-07 2020-03-27 金泰克斯公司 Full display mirror actuator
KR101977685B1 (en) 2014-11-13 2019-05-13 젠텍스 코포레이션 Rearview mirror system with a display
KR101997815B1 (en) 2014-12-03 2019-07-08 젠텍스 코포레이션 Display mirror assembly
USD746744S1 (en) 2014-12-05 2016-01-05 Gentex Corporation Rearview device
US9744907B2 (en) 2014-12-29 2017-08-29 Gentex Corporation Vehicle vision system having adjustable displayed field of view
US9720278B2 (en) 2015-01-22 2017-08-01 Gentex Corporation Low cost optical film stack
WO2016172096A1 (en) 2015-04-20 2016-10-27 Gentex Corporation Rearview assembly with applique
US10112540B2 (en) 2015-05-18 2018-10-30 Gentex Corporation Full display rearview device
JP7060958B2 (en) 2015-06-22 2022-04-27 ジェンテックス コーポレイション Video Stream Image Processing System and Method for Amplitude Modulated Light Flicker Correction
JP6540356B2 (en) * 2015-08-10 2019-07-10 富士通株式会社 System replication control device and system replication control method
CN108349436B (en) 2015-10-30 2019-12-20 金泰克斯公司 Rear-view device
USD798207S1 (en) 2015-10-30 2017-09-26 Gentex Corporation Rearview mirror assembly
USD797627S1 (en) 2015-10-30 2017-09-19 Gentex Corporation Rearview mirror device
EP3368374B1 (en) 2015-10-30 2023-12-27 Gentex Corporation Toggle paddle
USD800618S1 (en) 2015-11-02 2017-10-24 Gentex Corporation Toggle paddle for a rear view device
USD845851S1 (en) 2016-03-31 2019-04-16 Gentex Corporation Rearview device
USD817238S1 (en) 2016-04-29 2018-05-08 Gentex Corporation Rearview device
US10025138B2 (en) 2016-06-06 2018-07-17 Gentex Corporation Illuminating display with light gathering structure
USD809984S1 (en) 2016-12-07 2018-02-13 Gentex Corporation Rearview assembly
USD854473S1 (en) 2016-12-16 2019-07-23 Gentex Corporation Rearview assembly
US20180191966A1 (en) 2016-12-30 2018-07-05 Gentex Corporation Full display mirror with on-demand spotter view
WO2018170353A1 (en) 2017-03-17 2018-09-20 Gentex Corporation Dual display reverse camera system
CN117859029A (en) 2021-08-20 2024-04-09 金泰克斯公司 Light assembly and lighting system having the same

Citations (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4888812A (en) 1987-12-18 1989-12-19 International Business Machines Corporation Document image processing system
US5016107A (en) 1989-05-09 1991-05-14 Eastman Kodak Company Electronic still camera utilizing image compression and digital storage
US5153730A (en) * 1989-07-27 1992-10-06 Olympus Optical Co., Ltd. Electronic still camera having two recording stages for recording still-image signals
US5164831A (en) 1990-03-15 1992-11-17 Eastman Kodak Company Electronic still camera providing multi-format storage of full and reduced resolution images
US5220420A (en) 1990-09-28 1993-06-15 Inteletext Systems, Inc. Interactive home information system for distributing compressed television programming
US5475441A (en) 1992-12-10 1995-12-12 Eastman Kodak Company Electronic camera with memory card interface to a computer
US5475428A (en) 1993-09-09 1995-12-12 Eastman Kodak Company Method for processing color image records subject to misregistration
US5477264A (en) 1994-03-29 1995-12-19 Eastman Kodak Company Electronic imaging system using a removable software-enhanced storage device
US5493335A (en) 1993-06-30 1996-02-20 Eastman Kodak Company Single sensor color camera with user selectable image record size
US5493332A (en) 1994-02-28 1996-02-20 Photometrics, Ltd. Modular electronic imaging system which accepts replacement solid state images
US5568192A (en) 1995-08-30 1996-10-22 Intel Corporation Method and apparatus for processing digital video camera signals
US5581311A (en) * 1994-07-22 1996-12-03 Nikon Corporation Image storage system for a digital still camera
US5585845A (en) 1993-06-25 1996-12-17 Nikon Corporation Electronic still camera having data storage device and method for recording image data within said data storage device
US5606365A (en) 1995-03-28 1997-02-25 Eastman Kodak Company Interactive camera for network processing of captured images
US5625412A (en) 1995-07-13 1997-04-29 Vision Research High-frame rate image acquisition and motion analysis system
US5631701A (en) 1995-02-14 1997-05-20 Fuji Photo Film Co., Ltd. Image data transfer system operable with an electronic still camera
US5633976A (en) 1991-12-06 1997-05-27 Canon Kabushiki Kaisha Image recording apparatus and electronic still camera
US5633678A (en) * 1995-12-20 1997-05-27 Eastman Kodak Company Electronic still camera for capturing and categorizing images

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5355165A (en) * 1992-08-06 1994-10-11 Princeton Scientific Instruments, Inc. Very high frame rate CCD imager
US6628325B1 (en) * 1998-06-26 2003-09-30 Fotonation Holdings, Llc Camera network communication device

Patent Citations (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4888812A (en) 1987-12-18 1989-12-19 International Business Machines Corporation Document image processing system
US5016107A (en) 1989-05-09 1991-05-14 Eastman Kodak Company Electronic still camera utilizing image compression and digital storage
US5153730A (en) * 1989-07-27 1992-10-06 Olympus Optical Co., Ltd. Electronic still camera having two recording stages for recording still-image signals
US5164831A (en) 1990-03-15 1992-11-17 Eastman Kodak Company Electronic still camera providing multi-format storage of full and reduced resolution images
US5220420A (en) 1990-09-28 1993-06-15 Inteletext Systems, Inc. Interactive home information system for distributing compressed television programming
US5633976A (en) 1991-12-06 1997-05-27 Canon Kabushiki Kaisha Image recording apparatus and electronic still camera
US5475441A (en) 1992-12-10 1995-12-12 Eastman Kodak Company Electronic camera with memory card interface to a computer
US5585845A (en) 1993-06-25 1996-12-17 Nikon Corporation Electronic still camera having data storage device and method for recording image data within said data storage device
US5493335A (en) 1993-06-30 1996-02-20 Eastman Kodak Company Single sensor color camera with user selectable image record size
US5475428A (en) 1993-09-09 1995-12-12 Eastman Kodak Company Method for processing color image records subject to misregistration
US5493332A (en) 1994-02-28 1996-02-20 Photometrics, Ltd. Modular electronic imaging system which accepts replacement solid state images
US5477264A (en) 1994-03-29 1995-12-19 Eastman Kodak Company Electronic imaging system using a removable software-enhanced storage device
US5581311A (en) * 1994-07-22 1996-12-03 Nikon Corporation Image storage system for a digital still camera
US5631701A (en) 1995-02-14 1997-05-20 Fuji Photo Film Co., Ltd. Image data transfer system operable with an electronic still camera
US5606365A (en) 1995-03-28 1997-02-25 Eastman Kodak Company Interactive camera for network processing of captured images
US5625412A (en) 1995-07-13 1997-04-29 Vision Research High-frame rate image acquisition and motion analysis system
US5568192A (en) 1995-08-30 1996-10-22 Intel Corporation Method and apparatus for processing digital video camera signals
US5633678A (en) * 1995-12-20 1997-05-27 Eastman Kodak Company Electronic still camera for capturing and categorizing images

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Martyn Williams, Review-NEC PC-DC401 Digital Still Camera, AppleLink Newbytes, Mar. 15, 1996, pp. 1-3.
Martyn Williams, Review—NEC PC-DC401 Digital Still Camera, AppleLink Newbytes, Mar. 15, 1996, pp. 1-3.

Also Published As

Publication number Publication date
USRE39213E1 (en) 2006-08-01
US5867214A (en) 1999-02-02

Similar Documents

Publication Publication Date Title
USRE42779E1 (en) Apparatus and method for handling digital image data
US6177956B1 (en) System and method for correlating processing data and image data within a digital camera device
US6137534A (en) Method and apparatus for providing live view and instant review in an image capture device
US5943093A (en) Software driver digital camera system with image storage tags
JP3534416B2 (en) Method and system for managing removable memory in digital camera
US6020920A (en) Method and system for speculative decompression of compressed image data in an image capture unit
US6141044A (en) Method and system for coherent image group maintenance in memory
US6847388B2 (en) Method and system for accelerating a user interface of an image capture unit during play mode
US6278447B1 (en) Method and system for accelerating a user interface of an image capture unit during play mode
US6169575B1 (en) Method and system for controlled time-based image group formation
EP2192758A1 (en) Image file generation device, camera and image file generation method for splitting excessively large files comprising multiple images
US5986701A (en) Method and system of grouping related images captured with a digital image capture device
EP1025547A2 (en) A method and system for accelerating a user interface of an image capture unit during play mode
US7388602B2 (en) Digital camera, method of controlling digital camera, and file server
WO1998013786A9 (en) A method and system of grouping related images captured with a digital image capture device
JP3302115B2 (en) Information processing device
JPH0690423A (en) Electronic still camera and picture record managing method
WO1998057294A1 (en) A method and system for generating an enhanced image file in an image capture unit
JP2004040479A (en) Electronic camera

Legal Events

Date Code Title Description
AS Assignment

Owner name: APPLE INC., CALIFORNIA

Free format text: CHANGE OF NAME;ASSIGNOR:APPLE COMPUTER, INC.;REEL/FRAME:020638/0127

Effective date: 20070109

FEPP Fee payment procedure

Free format text: PAYER NUMBER DE-ASSIGNED (ORIGINAL EVENT CODE: RMPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY