|
Digital Camera Patent Abstract
A method and apparatus for managing categorized images in a digital
camera is provided. In one aspect, a method includes, storing images
on a storage media in the digital imaging device, where each image
includes at least one tag corresponding to a category for categorizing
the images. A category list is generated that includes the categories
corresponding to the tags in the images and the category list is
stored on the storage media. The category list identifies, for each
category, which of the stored images have the tag corresponding
to the category. A category within the category list is designated
as a default category. The method further includes accessing the
image category list in order to display the images, wherein only
the identified images of the default category are displayed, thereby
speeding access to, and display of, the images.
Digital Camera Patent Claims
What is claimed is:
1. A method for managing categorized images stored in a high-capacity
storage media in a digital imaging device, the method comprising;
storing images on the storage media, wherein each image includes
at least one tag corresponding to a category for categorizing the
images; generating an image category list comprising the categories
corresponding to the tags in the images, wherein for each category,
the image category list identifies which of the stored images have
the tag corresponding to the category; storing the image category
list on the storage media, the image category list including a default
category; and accessing the image category list in order to display
the images, wherein only the images having the tag corresponding
to the default category are displayed, thereby speeding access to,
and display of, the images.
2. The method of claim 1 further including: synchronizing the image
category list with the images on the storage media when it has been
determined that at least one image was deleted, added, or recategorized.
3. The method of claim 2 wherein synchronizing further includes:
automatically synchronizing the image category list when the storage
media is under control of the digital imaging device.
4. The method of claim 3 wherein generating the image category
list further includes generating dynamic categories from the tags.
5. The method of claim 4 wherein one of the tags indicates a date
of image capture, storing images includes setting thresholds for
the date to automatically create the dynamic categories.
6. The method of claim 5 wherein storing images further includes
providing a recent category that displays N of latest images captured.
7. The method of claim 1 further including: allowing a user to
select a category in the image category list to change which images
are being displayed.
8. The method of claim 7 wherein allowing the user to select a
category further includes allowing the user to change the default
category.
9. A system for managing categorized images stored a high-capacity
storage media in a digital imaging device, comprising: means for
storing images on the storage media, wherein each image includes
at least one tag corresponding to a category for categorizing the
images; means for generating an image category list comprising categories
corresponding to the tags in the images, wherein for each category,
the image category list identifies which of the stored images have
the tag corresponding to the category; means for storing the image
category list on the storage media, the image category list including
a default category; and means for accessing the image category list
in order to display the images, wherein only the images having the
tag corresponding to the default category are displayed, thereby
speeding access to, and display of, the images.
10. The system of claim 9 further including means for synchronizing
the image category list with the images on the storage media when
it has been determined that at least one image was deleted, added,
or recategorized.
11. The system of claim 10 wherein the means for synchronizing
automatically synchronizes the image category list when the storage
media is under control of the digital imaging device.
12. The system of claim 9 wherein the means for generating generates
dynamic categories from the tags.
13. The system of claim 12 wherein one of the tags indicates a
date of image capture, the means for generating further including
means for setting thresholds for the date to automatically create
the dynamic categories.
14. The system of claim 13 wherein the dynamic categories include
a recent category that displays N of latest images captured.
15. The system of claim 9 further including means for allowing
a user to select a category in the image category list to change
which images are being displayed.
16. The system of claim 15 further including means for allowing
the user to change the default category.
17. A computer-readable medium containing program instructions
for managing categorized images stored in a high-capacity storage
media in a digital imaging device, the program instructions for:
a) storing images on the storage media, wherein each image includes
at least one tag corresponding to a category for categorizing the
images; b) generating an image category list comprising the categories
corresponding to the tags in the images, wherein for each category,
the image category list identifies which of the stored images have
the tag corresponding to the category; c) storing the image category
list on the storage media, the image category list including a default
category; and d) accessing the image category list in order to display
the images, wherein only the images having the tag corresponding
to the default category are displayed, thereby speeding access to,
and display of, the images.
18. The computer-readable medium of claim 17 further including
program instructions for: e) synchronizing the image category list
with the images on the storage media when it has been determined
that at least one image was deleted, added, or recategorized.
19. The computer-readable medium of claim 18 wherein program instruction
e) further includes program instructions for: i) automatically synchronizing
the image category list when the storage media is under control
of the digital imaging device.
20. The computer-readable medium of claim 17 wherein program instruction
b) further includes program instructions for generating dynamic
categories from the tags.
21. The computer-readable medium of claim 20 wherein one of the
tags indicates a date of image capture, program instruction a) further
including program instructions for: i) setting thresholds for the
date to automatically create the dynamic categories.
22. The computer-readable medium of claim 21 wherein program instruction
a) further includes program instructions for: ii) providing a recent
category that displays N of latest images captured.
23. The computer-readable medium of claim 17 further including
program instructions for: d) allowing a user to select a category
in the image category list to change which images are being displayed.
24. The computer-readable medium of claim 23 wherein program instruction
d) further includes program instructions for: i) allowing the user
to change the default category.
Digital Camera Patent Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application is a continuation application of U.S. patent
application Ser. No. 09/430,235, entitled "Method and Apparatus
for Managing Image Categories in a Digital Camera to Enhance Performance
of a High-Capacity Image Storage Media," (P153CIP) filed on
Oct. 29, 1999, now issued as U.S. Pat. No. ______, which is a continuation-in-part
of U.S. patent application Ser. No. 09/121,760 filed on Jul. 23,
1998, entitled "System and Method for Automatic Analysis and
Categorization of Images in an Electronic Imaging Device,"
(P153CPA) now abandoned, each assigned to the assignee of the present
application.
FIELD OF THE INVENTION
[0002] The present invention relates to category management in
a digital camera, and more particularly to a method and apparatus
for managing categorized images in a digital camera.
BACKGROUND OF THE INVENTION
[0003] The use of digital cameras is becoming increasingly widespread.
Captured digital images are typically stored in image files within
the camera on some type of storage media, such as an internal flash
memory, a removable hard drive, or on a removable flash memory card.
One advantage over analog SLR cameras is that removable flash memory
card. One advantage over analog SLR cameras is that digital cameras
allow the user to play back the captured images on a liquid-crystal
display (LCD).
[0004] Typically, the images are displayed sequentially based on
an image number or the time and date that the images were captured.
When the number of stored images is large, the user has difficulty
finding particular images, and sequentially navigating among the
images during the search can be tedious and slow. Therefore, digital
cameras are being provided with a categorization feature in which
a user may categorize the images for easier sorting.
[0005] For example, U.S. Pat. No. 5,633,678 issued to Parulski
discloses a digital camera in which image category icons are displayed
on the LCD for selection by the user so that the user may choose
an appropriate category before taking a group of pictures. Examples
of categories are Family, Work, Vacation, and Pets, for instance.
After the user selects a particular category and captures an image,
the category name is stored as a tag in the image file along with
the image data.
[0006] By the time this patent issues, some cameras on the market
will allow a user to display captured images on the camera based
on their associated categories (e.g. the DC290 by Eastman Kodak
Co. incorporating the Digita Operating Environment by FlashPoint
Technology Inc.). To implement this sort function, the camera must
build an inventory list in memory indicating which images belong
to which categories. The camera builds this inventory list by opening
each image and extracting the category tags.
[0007] Due to the time required to open and read the category tags
from each image file, it is more efficient to build the inventory
list each time the camera is turned-on, rather than each time the
user requests a sort. But even building the inventory list at cameras
start-up is less than optimal because the process may significantly
increase the boot-up time of the camera. Even with faster processors
and disk access time, this problem may grow worse in the future
due to the advent of high-capacity storage media.
[0008] For example, now available on the market are tiny disk drives
for digital cameras having 340 MB of storage space. Anticipated
sizes within a year exceed 1 GB. This is enough storage capacity
to store well over one thousand very large JPEG images. The time
required to access that many images from a high-capacity storage
media each time the camera is turned-on in order to build an inventory
list would be a significant barrier to the marketability and usability
of the camera.
[0009] Accordingly, what is needed is an improved method for managing
images captured by a digital camera. The present invention addresses
such a need.
SUMMARY OF THE INVENTION
[0010] The present invention provides a method and apparatus for
managing categorized images in a digital camera. In one aspect,
a method includes, storing images on a storage media in the digital
imaging device, where each image includes at least one tag corresponding
to a category for categorizing the images. A category list is generated
that includes the categories corresponding to the tags in the images
and the category list is stored on the storage media. The category
list identifies, for each category, which of the stored images have
the tag corresponding to the category. A category within the category
list is designated as a default category. The method further includes
accessing the image category list in order to display the images,
wherein only the identified images of the default category are displayed,
thereby speeding access to, and display of, the images.
BRIEF DESCRIPTION OF THE DRAWINGS
[0011] FIG. 1 is a block diagram of one preferred embodiment of
a digital camera 110 system for use in accordance with the present
invention.
[0012] FIGS. 2A and 2B are diagrams depicting exemplary hardware
components of the camera's user interface.
[0013] FIG. 3 is a diagram of an example an image file.
[0014] FIG. 4 is a diagram of one embodiment for the image tags
of FIG. 3.
[0015] FIG. 5 is a diagram of the non-volatile memory in the embodiment
where categorization software is included as part of the operating
system.
[0016] FIG. 6 is a diagram of one embodiment for a single analysis
module that automatically analyzes and categorizes images upon capture.
[0017] FIG. 7 is a flowchart is shown for one embodiment of method
steps to automatically analyze and categorize images, according
to the present invention.
[0018] FIG. 8 is a flow chart illustrating the process of enhancing
the performance of a high-capacity storage media in a digital imaging
device.
[0019] FIG. 9 is a diagram of storage media including a category
list and stored image files.
[0020] FIG. 10 is a flow chart illustrating the process of updating
the category list during contemporaneous synchronization in accordance
with the present invention.
[0021] FIG. 11 is a flow chart illustrating the subsequent synchronization
process in accordance with the present invention.
DETAILED DESCRIPTION
[0022] The present invention relates to managing categorized images
in a digital camera. The following description is presented to enable
one of ordinary skill in the art to make and use the invention and
is provided in the context of a patent application and its requirements.
Although the present invention will be described in the context
of a still digital camera, various modifications to the preferred
embodiment will be readily apparent to those skilled in the art
and the generic principles herein may be applied to other embodiments.
That is, any digital imaging device which captures, stores, or displays
digital images, could incorporate the features described below and
that device would be within the spirit and scope of the present
invention. Thus, the present invention is not intended to be limited
to the embodiment shown but is to be accorded the widest scope consistent
with the principles and features described herein.
[0023] Referring now to FIG. 1, a block diagram of one preferred
embodiment of a digital camera 110 system is shown for use in accordance
with the present invention. Camera 110 preferably comprises an imaging
device 114, a system bus 116 and a computer 118. Imaging device
114 includes an image sensor, such as a charged coupled device (CCD)
or a CMOS sensor, for generating a set of raw image data representing
a captured image. In a preferred embodiment, system bus 116 provides
connection paths between imaging device 114, an optional power manager
342, central processing unit (CPU) 344, dynamic random-access memory
(DRAM) 346, input/output interface (I/O) 348, non-volatile memory
350, and buffers/connector 352 that connect a removable memory 354
to system bus 116.
[0024] CPU 344 may include a conventional microprocessor device
for controlling the operation of camera 110. In the preferred embodiment,
CPU 344 is capable of concurrently running multiple software routines
to control the various processes of camera 110 within a multithreaded
environment. For example, images may be captured at the same time
that previously captured images are processed in the background
to effectively increase the capture rate of the camera. In a preferred
embodiment, CPU 344 runs an operating system that includes a menu-driven
GUI and provides image processing through software, rather than
hardware. An example of such software is the Digita.TM. Operating
Environment by FlashPoint Technology of San Jose, Calif. Although
CPU 344 is preferably a microprocessor, one or more DSP's (digital
signal processor) or ASIC's (Application Specific Integrated Circuit)
could also be used.
[0025] I/O 348 is an interface device allowing communications to
and from computer 118. For example, I/O 348 permits an external
host computer (not shown) to connect to and communicate with computer
118. I/O 348 also interfaces with a plurality of buttons and/or
dials 404, and an optional status LCD 406, which in addition to
the LCD screen 402, are the hardware elements of the camera's user
interface 408. Non-volatile memory 350, which may typically comprise
a conventional read-only memory or flash memory, stores a set of
computer readable program instructions to control the operation
of camera 110.
[0026] Storage media 354 stores image data and is preferably a
non-volatile device, such a flash disk, readily removable and replaceable
by a camera 110 user via buffers/connector 352. In place of a flash
disk, the storage media 354 could be a mini hard disk, such as IBM's
340 MB Micro Drive.TM.. And instead of being removable, the storage
media 354 could be permanently affixed in the camera 110 provided
it had sufficient storage capacity, such as 1 GB, for example.
[0027] Power supply 356 supplies operating power to the various
components of camera 110. Power manager 342 communicates with power
supply 356 and coordinates power management operations for camera
110. In the preferred embodiment, power supply 356 provides operating
power to a main power bus 362 and also to a secondary power bus
364. The main power bus 362 provides power to imaging device 114,
I/O 348, non-volatile memory 350 and storage media 354. The secondary
power bus 364 provides power to power manager 342, CPU 344 and DRAM
346. Power supply 356 is connected to main batteries 358 and also
to backup batteries 360. In the preferred embodiment, a camera 110
user may also connect power supply 356 to an external power source.
[0028] Dynamic Random Access Memory (DRAM) 346 is a contiguous
block of dynamic memory that may be selectively allocated for various
storage functions. DRAM 346 may store both raw and compressed image
data and is also used by CPU 344 while executing the software routines
used within computer 118. The raw image data received from imaging
device 114 is temporarily stored in several input buffers (not shown)
within DRAM 346. Once the raw image data is processed, it is stored
in a frame buffer (not shown) for display on the LCD screen 402.
After processed image data has been stored in DRAM 346, LCD controller
390 transfers the image data to LCD screen 402 for display.
[0029] FIGS. 2A and 2B are diagrams depicting exemplary hardware
components of the camera's user interface 408. FIG. 2A is back view
of the camera 110 showing the LCD screen 402, a four-way navigation
control button 409, an overlay button 412, a menu button 414, and
a set of programmable soft keys 416. FIG. 2B is a top view of the
camera 110 showing a shutter button 418, and a mode dial 420. The
camera may optionally include status LCD 406, status LCD scroll
and select buttons 422 and 424, a sound record button 426, and zoom-in,
zoom-out buttons 426a and 426b.
[0030] The camera operates in at least two modes, capture mode
for capturing images, and play mode for playing back the captured
images on the LCD screen 402. During capture mode, when the user
presses the shutter button to capture an image, the imaged data
is captured at a resolution set by user, transformed into YCC 4:2:2
color space, compressed (e.g. JPEG), and stored as an image file.
The user may then continue to capture images or switch the camera
110 to play mode to playback and view the previously captured images
on the LCD screen 402.
[0031] In play mode, images are displayed on the LCD screen 402
either individually or in arrays of two, four, or nine images. Images
may be manually categorized by the user either pre-capture or post
capture. Categorizing images pre-capture is done by selecting a
category icon displayed on the camera and then capturing a series
of images. Categorizing images post capture is done by selecting
captured images during playback and choosing a category for the
image. In either case, the name of the chosen category is stored
in the image files as a tag.
[0032] Referring now to FIG. 3, a diagram of an example an image
file 835 is shown. The exemplary image file 835 includes a header
805, image data 810, a screennail 815, a thumbnail 820, and image
tags 825.
[0033] Header 805 preferably includes information that identifies
and describes the various contents of image file 835. Image data
810 contains actual captured image data. Image data 810 exists in
whichever format that is appropriate for the current location of
image file 835 within the image processing chain of camera 110.
Screennail 815 and thumbnail 820 are each different versions of
image data 810 that have varying degrees of reduced resolution for
a number of special viewing applications.
[0034] Image tags 825 includes various types of information that
correspond and relate to particular captured image data 810. Image
tags 825 are further discussed below in conjunction with FIG. 4.
[0035] Referring now to FIG. 4, a diagram of one embodiment for
the image tags of FIG. 3 is shown. In the FIG. 4 embodiment, image
tags 825 include capture information tags 710, user tags 715, product
tags 720, and category tags 735.
[0036] Capture information tags 710 preferably include various
types of information that correlate with the captured image data
810 (FIG. 3). For example, capture information tags 710 may indicate
date and time of capture, focus setting, aperture setting, and other
relevant information that may be useful for effectively processing
or analyzing the corresponding image data 810. User tags 715 and
product tags 720 typically contain various other information that
may be needed for use with camera 110. In the preferred embodiment,
category tags 735 are initially sixteen empty locations in which
new category tags may be stored, as explained further below.
[0037] In conventional cameras that include manually applied categories,
upon turning-on the digital camera, the camera must search for and
open each image file stored on the storage media to load the image
tags into memory to keep track of which images belong to which categories.
After the category information has been loaded into memory, the
digital camera sorts the images chronologically based on the date
and time tags and displays the first or last N images on the LCD
screen 402. Due to the length of time it may take for the digital
camera to perform this operation when a high-capacity storage media
containing a large number of images is used, the boot-up time of
the digital camera may be significantly lengthened.
[0038] According to the present invention, the digital camera is
provided with an improved categorization function. The categorization
function of the present invention not only allows the user to manually
apply categories to images, but also includes categorization software
for both automatically categorizing images and for permanently storing
the image category information in a category list on the storage
media as a means for managing the stored images. In a preferred
embodiment, the categorization software may be loaded into DRAM
346 from storage media 354 or another external source, or included
as part of the camera's operating system, which is stored in nonvolatile
memory 350.
[0039] Referring now to FIG. 5, a diagram of the non-volatile memory
350 is shown in the embodiment where categorization software is
included as part of the operating system. The FIG. 5 diagram includes
control application 500, toolbox 502, drivers 504, kernel 506, and
system configuration 508. Control application 500 comprises program
instructions for controlling and coordinating the various functions
of camera 110. Toolbox 502 contains selected function modules including
image processing backplane 510, image processing modules 512, menu
and dialog manager 514, file formatter 516, analysis modules 540,
and a category manager 520.
[0040] The analysis modules 540 are software routines for automatically
analyzing and categorizing images as the images are captured. The
category manager 520 creates and maintains a permanent category
list listing which images belong to which categories. The analysis
modules 540 in the category manager 520 are described in further
detail below.
[0041] Image processing backplane 510 includes software routines
that coordinate the functioning and communication of various image
processing modules 512 and handle the data flow between the various
modules. Image processing modules 512 preferably include selectable
plug-in software routines that manipulate captured image data in
a variety of ways, depending on the particular modules selected.
Menu and dialog manager 514 includes software routines which provide
information for controlling access to camera control menus and camera
control menu items for access to features in camera 110. File formatter
516 includes software routines for creating an image file from the
processed image data.
[0042] Drivers 504 control various hardware devices within camera
110 (for example, motors 234). Kernel 506 provides basic underlying
services for the camera 110 operating system. System configuration
508 performs initial start-up routines for camera 110, including
the boot routine and initial system diagnostics.
[0043] Referring now to FIG. 6, a diagram of one embodiment for
a single analysis module 540 that automatically analyzes and categorizes
images upon capture is shown. Analysis module 540 includes text
category list 610, combination logic 615, analysis algorithms 630,
and parametric control 635.
[0044] Analysis algorithms 630 are a series of software routines
ranging from analysis algorithm 1 (620) through analysis algorithm
n (625.) Analysis algorithms 630 are each designed to allow analysis
module 540 to access and analyze images at various stages in the
processing chain of camera 110, in order to gather information about
the image for later categorization.
[0045] Combination logic 615 determines how to resolve the results
of the image analysis when multiple analysis algorithms 630 are
utilized. Parametric control 635 is used to control settable parameters
for analysis module 540. For example, analysis module may be turned
on/off, or sensitivity settings for analysis module 540 may be controlled
with parametric control 635.
[0046] Typically, each analysis algorithm 630 is designed to detect
at least one image category. For example, individual analysis algorithms
630 may be designed to detect a person or groups of people based
on characteristics like substantial amounts of flesh tones within
the image. Individual analysis algorithms 630 may likewise be designed
to detect nature scenes from characteristics like substantial green
content in the image combined with the relative lack of hard edges.
Similarly, categories like city images, water images or indoor images
may be detected by characteristic features contained in those images.
Once the last line of image data from a given image is processed,
analysis module 540 then preferably generates one or more category
tags that correspond to the particular image, and the generated
category tags are stored as part of the image file. A user of camera
110 may thus readily utilize the category tags to efficiently access
and sort images into selected categories. Text category list 610
is a listing of the various possible image categories that a given
analysis module 540 may assign to an image.
[0047] Referring now to FIG. 7, a flowchart is shown for one embodiment
of method steps to automatically analyze and categorize images,
according to the present invention. FIG. 7 also details the operation
of a series of plug-in image processing modules 512 for processing
and formatting image data 810. However, in other embodiments of
camera 110, various other modules may readily be substituted or
added to those modules discussed in below conjunction with the FIG.
7 embodiment.
[0048] Initially, in step 910, camera 110 preferably captures a
selected image as CCD raw data, stores the raw data as image data
810 into image file 835, and then propagates image file 835 through
camera 110 for processing and formatting of the image data 810.
In step 920, an image processing module 512 preferably replaces
any defective pixels in image data 810, and also performs white
balance and color correction on image data 810.
[0049] Next, in step 925, another image processing module 512 preferably
performs interpolation (edge enhancement) on image data 810, and
then converts image data 810 into an intermediate format. In the
preferred embodiment, step 925 converts image data 810 into an RGB
(Red, Blue, Green) format.
[0050] In the FIG. 7 embodiment, following step 925, selected analysis
modules 540 may be plugged into an RGB insertion point 940 to advantageously
analyze image data 810 at RGB transition point 930, in accordance
with the present invention. One, some, or all of the analysis modules
540 may analyze image data 810 at RGB transition point 930. Preferably,
analysis modules 540 are selected for optimal compatibility and
effectiveness with the current format of image data 810 at RGB transition
point 930. Once a particular analysis module 540 analyzes the final
line of image data 810, then that analysis module 540 preferably
generates any appropriate category tags 735 and stores the generated
category tags 735 into a blank category tag location in image file
835. Then, camera 110 may subsequently access the stored category
tags 735 to automatically categorize and utilize the individual
stored images (which each correspond to a separate image file 835).
[0051] Next, in step 945, another image processing module 512 preferably
performs gamma correction and color space conversion on image data
810. In the FIG. 7 embodiment, image data 810 is converted to YCC
444 (Luminance, Chrominance-red, and Chrominance-blue) format.
[0052] In the FIG. 7 embodiment, following step 945, selected analysis
modules 540 may be plugged into a YCC insertion point 960 to analyze
image data 810 at YCC transition point 950, in accordance with the
present invention. One, some, or all of the analysis modules 540
may analyze image data 810 at YCC transition point 950. As discussed
above, once a particular analysis module 540 analyzes the final
line of image data 810, then that analysis module 540 preferably
generates any appropriate category tags 735 and stores the generated
category tags 735 into a blank category tag location in image file
835 for subsequent use by camera 110 to automatically categorize
captured images.
[0053] This discussion of the FIG. 7 embodiment specifically refers
only RGB insertion point 940 and YCC insertion point 960. However,
in other embodiments of the present invention, analysis modules
540 may readily analyze image data 810 at any other time or insertion
point within camera 110. For example, in an alternate embodiment,
analysis modules 540 may readily be configured to examine image
data 810 at capture time, and to specifically recognize and identify
the capture of any image that matches one or more selectable parameters.
[0054] Furthermore, in another embodiment, analysis modules 540
may advantageously access image files 835 that have been processed
and stored onto storage media 354. Analysis modules 540 may then
automatically categorize the image files 835 by analyzing image
data 810 and responsively generating corresponding category tags
735, in accordance with the present invention.
[0055] In step 965, an image processing module 512 preferably performs
a sharpening procedure on image data 810, and also may perform a
variety of other processing options. Then, in step 970, an image
processing module 512 preferably decimates image data 810. In the
preferred embodiment, the decimation process reduces image resolution
by decimating the YCC 444 image data to produce YCC 422 or YCC 411
image data.
[0056] In step 975, the image data 810 is preferably compressed
into a final image format (preferably JPEG.) Next, in step 980,
file formatter 516 preferably formats the compressed image file
835, and the resulting image file 835 is finally saved into storage
media 354 in step 985. As discussed above, image file 835 thus includes
any appropriate category tags which camera 110 may then subsequently
automatically access to sort selected images, in accordance with
the present invention.
[0057] As stated above, in a second aspect of the present invention,
the category manager 520 creates and maintains a category list on
the storage media 354 as a way for managing and accessing a large
quantity of images to thereby enhance the performance of the storage
media 354.
[0058] Referring now to FIG. 8, a flow chart illustrating the process
of enhancing the performance of a high-capacity storage media 354
in a digital imaging device is shown. The process begins by generating
an image category list from the image tags contained in the image
files stored on the storage media 354 in step 1000. Rather than
creating the image category list every time the camera 110 is turned-on,
the category manager 520 of the present invention creates a category
list once and stores the category list on the storage media 354
in step 1002, and as shown in FIG. 8. In a preferred embodiment,
the category list is created the first time a storage media 354
not containing a category list is inserted into the camera 110.
[0059] FIG. 9 is a diagram of storage media 354 including a category
list 1110 and stored image files 1112. The category list 1110 is
a file that contains a list of all images that have a category assigned
to them, either by the system using automatic categories, or by
the user using manual categories.
[0060] The category list 1110 may be organized using various formats.
The easiest implementation is a table of category names and corresponding
pathnames of the image files containing a particular category. A
more efficient approach is to use a directory like method, which
eliminates replicating the entire pathname for each image. This
allows shorter entries in the table, saving disk space and more
importantly, memory space when the table is loaded from the storage
media 354 into memory. Another approach is to use a multimedia file
type, such as QuickTime sparse format, where the list is effectively
encoded as a slide show, using external filenames to locate the
image files, rather than including the image files within a QuickTime
movie file. Using a multimedia file type will result in a larger
category list 1110 any other approaches, but has the advantage allowing
the user to "view" available categories on a personal
computer as a movie. In a preferred embodiment, the category list
1110 is stored in a system folder on the storage media 354. As will
be appreciated by those with ordinary skill in the art, many other
embodiments are also possible.
[0061] In accordance with the present invention, the category manager
520 also creates dynamic categories 1114 from the date and time
tag in the image files. These dynamic categories are then used by
the camera 110 to display images upon startup, rather than reading
each image file to sort them by date and time. Examples of dynamic
categories that may be created from the date and time tag are: "recent",
"this week", "last week", "this month",
"last month", "this year", "last year",
and "all". The names of the dynamic categories are self-explainable.
For instance, the recent category is used to display N of the latest
images captured. In a preferred embodiment, the recent category
is set by default to display fifty images, but may be adjusted by
the user.
[0062] Referring again to FIG. 8, after the category list 520 has
been stored, the image category list 520 is accessed and only those
images belonging to the default category are displayed in step 1004.
This occurs when the camera 110 is first turned on and whenever
images are to be displayed. In a preferred embodiment, the default
category is the recent category. By displaying images that only
belong to the default category, the present invention eliminates
the requirement of the camera 110 having to exhaustively search,
sort, and display all of the images on the storage media 354 based
on date and time. Consequently, the time required to boot the camera
110 and display images is dramatically reduced.
[0063] Once images are displayed on the camera 110, the user may
change which images are displayed by changing the category currently
displayed. In a preferred embodiment, the user may instruct the
camera to display a menu of category names on the camera's GUI and
then select a particular category name using the user interface
of the camera 110. Once a particular category is selected, those
images indexed in the category list 1110 under the selected category
are displayed. If the user selects more than one category, only
the image files that include all the selected categories are displayed.
[0064] Once a category list 1110 has been created from a set of
images on the storage media 354, the contents of the storage media
354 may be modified, causing synchronization problems between the
category list 1110 and the images on the storage media 354. Therefore,
when it has been determined that at least one image on the storage
media 354 has been deleted, added, or recategorized, the image category
list 1110 is synchronized with the images on the storage media 354
in step 1006.
[0065] According to the present invention, there are two types
of synchronization, contemporaneous and subsequent. Contemporaneous
synchronization occurs when the contents of the storage media 354
are modified while the storage media 354 is under control of the
digital camera 110. In this case, the category manager 520 automatically
updates the category list 1110 as images are added, deleted and
recategorized. Often times, however, the contents of the storage
media 354 may be modified while the storage media 354 is under control
of an external device, such as a PC. When the digital camera 110
regains control of the storage media 354, synchronizing the category
list 1110 with the images on the storage media 354 must occur after
the modifications to the images have been made. Hence the term subsequent
synchronization.
[0066] FIG. 10 is a flow chart illustrating the process of updating
the category list 1110 during contemporaneous synchronization. In
response to an image being deleted, added, or recategorized, the
image tags in the image file are automatically updated in step 1120.
The category list 1110 is then automatically updated to reflect
these modifications in step 1122. Finally, synchronization data
1116 is automatically updated as well in step 1124.
[0067] In a preferred embodiment, the synchronization data 1116
is the value of the remaining storage space on the storage media
354 after a synchronization event has occurred. The synchronization
data 1116 is updated by making a call to the operating system for
the number of blocks free on the storage media 354. The value returned
is then stored on the storage media 354 as the synchronization data
1116. The synchronization data 1116 is then used to detect when
a subsequent synchronization is necessary by comparing the saved
storage space with the current storage space remaining. A difference
in the two values may be used to indicate that the contents of the
storage media 354 have been modified since the last synchronization.
If supported by the camera system, a volume last date change, which
indicates the last date the volume on the storage media 354 was
changed, may also be used as the synchronization data 1116. Other
methods are also possible.
[0068] A subsequent synchronization occurs in response to the contents
of the storage media 354 being modified via an external device,
such as a personal computer (PC). As an example, the user may remove
the storage media 354 from the camera 110 and insert it into a PC,
or connect the digital camera 110 to a PC, in which case the digital
camera 110 loses control of the storage media 354. After the storage
media 354 has been modified by a device that has no knowledge of
the category list 1110, the category list 1110 will no longer accurately
reflect the contents of the storage media 354.
[0069] Therefore, after it has been determined that at least one
image was deleted, added, or recategorized when the storage media
354 was under control of an external device, the user is requested
to initiate a synchronization of the image category list 1110 via
a prompt on the camera 110. Alternatively, the subsequent synchronization
process may be performed in the background assuming that the digital
camera 110 has the necessary processing power to do so.
[0070] Upon initiation of a subsequent synchronization, the storage
media 354 is scanned for image files, and each image file is opened
to extract the user tags 715 and category tags 735 (FIG. 4), while
the date and time tag is extracted to generate the dynamic categories
1114 (FIG. 9). This type of synchronization is not performed automatically
upon detection that an image was modified outside control of the
camera 110 because rebuilding the category list 1110 could take
several minutes, during which time the user would be prevented from
taking pictures.
[0071] Referring again to FIG. 9, the category manager 520 determines
a subsequent synchronization is necessary after control over the
storage media 354 is returned to the camera 110 by storing synchronization
data 1114 on the storage media 354 with the category list 1110.
[0072] FIG. 11 is a flow chart illustrating the subsequent synchronization
process in accordance with the present invention. As stated above,
the process begins by opening each image file on the storage media
354 to extract the image tags, and to extract the date and time
tag to generate the dynamic categories 1114 in step 1130. Thereafter,
the category list 1110 is saved onto the storage media 354 in step
1132 and the synchronization data is updated in step 1134.
[0073] In an alternative embodiment where the digital camera includes
a file system that associates an archived bit with each file, the
subsequent synchronization process may be improved. Typically, a
file system clears the archived bit of a file every time a file
is opened for writing. According to the present invention, after
the synchronization data 1116 is used to detect that a subsequent
synchronization is necessary, the archived bit may be used as an
indication that an image file was added to the storage media 354
or recategorized. Instead of reading each file on the storage media
354 during a subsequent synchronization, the archived bit of each
file is checked and only those files whose archived bit has been
cleared are read, thereby significantly increasing the speed of
the process. After the tags are read from the image files, the archive
bits for those files are reset.
[0074] A method and apparatus for automatically categorizing images
and managing image categories in a digital camera to enhance performance
of a high-capacity image storage media has been disclosed. The present
invention has been described in accordance with the embodiments
shown, and one of ordinary skill in the art will readily recognize
that there could be variations to the embodiments, and any variations
are would be within the spirit and scope of the present invention.
[0075] For example, the present invention may be implemented in
other types of digital imaging devices, such as an electronic device
for archiving images that displays stored images on a television,
for instance. In addition, software written according to the present
invention may be stored on a computer-readable medium, such as a
storage media, or transmitted over a network, and loaded into the
digital camera for execution. Accordingly, many modifications may
be made by one of ordinary skill in the art without departing from
the spirit and scope of the appended claims. |