U.S. patent number 9,582,902 [Application Number 14/146,847] was granted by the patent office on 2017-02-28 for managing raw and processed image file pairs.
This patent grant is currently assigned to Apple Inc.. The grantee listed for this patent is Apple Inc.. Invention is credited to Nikhil Bhatt, Mark Lee Kawano, Allen Langmaier, Mark Shackelford.
United States Patent |
9,582,902 |
Bhatt , et al. |
February 28, 2017 |
**Please see images for:
( Certificate of Correction ) ** |
Managing raw and processed image file pairs
Abstract
Among other things, methods, systems and computer program
products are disclosed for managing image files. In one aspect, a
method includes displaying, at a data processing device, a preview
of images available for import from a storage device, wherein each
image is associated with a pair of corresponding image files
comprising a compressed image file and a raw image file obtained
from a single image capture. At the data processing device, both
the raw image file and the compressed image file of the pair
associated with at least one of the images are imported. At the
data processing device, at least one of the pair of corresponding
image files is identified as a master image file for the associated
image. At the data processing device, the identified master image
file for the associated captured image is displayed.
Inventors: |
Bhatt; Nikhil (Cupertino,
CA), Shackelford; Mark (San Jose, CA), Kawano; Mark
Lee (San Mateo, CA), Langmaier; Allen (San Jose,
CA) |
Applicant: |
Name |
City |
State |
Country |
Type |
Apple Inc. |
Cupertino |
CA |
US |
|
|
Assignee: |
Apple Inc. (Cupertino,
CA)
|
Family
ID: |
43925506 |
Appl.
No.: |
14/146,847 |
Filed: |
January 3, 2014 |
Prior Publication Data
|
|
|
|
Document
Identifier |
Publication Date |
|
US 20140133770 A1 |
May 15, 2014 |
|
Related U.S. Patent Documents
|
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
Issue Date |
|
|
12611060 |
Nov 2, 2009 |
8625908 |
|
|
|
Current U.S.
Class: |
1/1 |
Current CPC
Class: |
G06T
9/00 (20130101); G06F 16/51 (20190101) |
Current International
Class: |
G06K
9/00 (20060101); G06T 9/00 (20060101); G06F
17/30 (20060101) |
References Cited
[Referenced By]
U.S. Patent Documents
Primary Examiner: Liew; Alex
Attorney, Agent or Firm: Fish & Richardson P.C.
Parent Case Text
CROSS-REFERENCE TO RELATED APPLICATION
This application is a continuation of U.S. patent application Ser.
No. 12/611,060 entitled "Managing Raw and Processed Image File
Pairs" filed on Nov. 2, 2009, the entire contents of which is
hereby incorporated by reference for all purposes.
Claims
What is claimed is:
1. A non-transitory computer-readable medium storing instructions
executable by a data processing device to perform operations
comprising: identifying a preview of images available for import,
wherein an image is associated with a pair of image files obtained
from a single image capture, the pair of image files comprising a
raw image file and a compressed image file generated by compressing
the raw image file, wherein the raw image file and the compressed
image file are linked, wherein the raw image file includes
substantially all pixel information about the image and the
compressed image file includes substantially less pixel information
compared to the raw image file; importing both the raw image file
and the compressed image file of the pair of image files associated
with the image; receiving input identifying one of the pair of
corresponding image files as a master image file for the image; and
displaying the identified master image file for the image.
2. The medium of claim 1, wherein receiving input identifying one
of the pair of image files as the master file for the image
comprises detecting that the raw image file and the compressed
image file together for the image are docked together as linked
image files.
3. The medium of claim 1, the operations further comprising:
detecting a selection of the image; and displaying the image to be
visually different from remaining unselected images in response to
detecting the selection.
4. A system comprising: a data processing device; and a
computer-readable medium storing instructions executable by the
data processing device to perform operations comprising:
identifying a preview of images available for import, wherein an
image is associated with a pair of image files obtained from a
single image capture, the pair of image files comprising a raw
image file and a compressed image file generated by compressing the
raw image file, wherein the raw image file and the compressed image
file are linked, wherein the raw image file includes substantially
all pixel information about the image and the compressed image file
includes substantially less pixel information compared to the raw
image file; importing both the raw image file and the compressed
image file of the pair of image files associated with the image;
receiving input identifying one of the pair of corresponding image
files as a master image file for the image; and displaying the
identified master image file for the image.
5. The system of claim 4, wherein receiving input identifying one
of the pair of image files as the master file for the image
comprises detecting that the raw image file and the compressed
image file together for the image are docked together as linked
image files.
6. The system of claim 4, the operations further comprising:
detecting a selection of the image; and displaying the image to be
visually different from remaining unselected images in response to
detecting the selection.
7. A non-transitory computer-readable medium storing instructions
executable by data processing apparatus to perform operations
comprising: identifying a preview of images available for import,
wherein an image is associated with a pair of image files obtained
from a single image capture, the pair of image files comprising a
raw image file and a compressed image file generated by compressing
the raw image file, wherein the raw image file includes
substantially all pixel information about the image and the
compressed image file includes substantially less pixel information
compared to the raw image file, wherein the raw image file and the
compressed image file are linked; importing the pair of image files
including both the compressed image file of the pair of image
files; receiving input adjusting an import setting to identify one
of the pair of corresponding image files as the raw image file; and
importing the raw image file based on the adjusted import
setting.
8. The medium of claim 7, the operations further comprising:
applying metadata to the imported compressed image file, wherein
the input adjusting the import setting comprises an adjustment to a
filter parameter based on the applied metadata; and automatically
identifying the raw image file based on the filter parameter.
9. The medium of claim 8, wherein applying the metadata comprises:
creating a metadata file containing the metadata; and pointing the
metadata file to the compressed image file and the raw image
file.
10. The medium of claim 7, wherein the metadata includes at least
one of non-pixel information related to at least one of caption,
global positioning satellite (GPS) coordinate, sharpness or white
balance, or a rating to the imported compressed image file.
11. A system comprising: a data processing device; and a
computer-readable medium storing instructions executable by data
processing apparatus to perform operations comprising: identifying
a preview of images available for import, wherein an image is
associated with a pair of image files obtained from a single image
capture, the pair of image files comprising a raw image file and a
compressed image file generated by compressing the raw image file,
wherein the raw image file and the compressed image file are
linked, wherein the raw image file includes substantially all pixel
information about the image and the compressed image file includes
substantially less pixel information compared to the raw image
file; importing both the compressed image file of the pair of image
files for the image; receiving input adjusting an import setting to
identify the raw image file for the imported compressed image file;
and importing the corresponding raw image file based on the
adjusted import setting.
12. The system of claim 11, the operations further comprising:
applying metadata to the imported compressed image file, wherein
the input adjusting the import setting comprises an adjustment to a
filter parameter based on the applied metadata; and automatically
identifying the raw image file that corresponds to the imported
compressed image file based on the filter parameter.
13. The system of claim 12, wherein applying the metadata
comprises: creating a metadata file containing the metadata; and
pointing the metadata file to the compressed image file and the raw
image file.
14. The system of claim 12, wherein the metadata includes a rating
to the imported compressed image file, and wherein automatically
identifying the raw image file that corresponds to the imported
compressed image file based on the filter parameter comprises:
searching for raw image files that meet the applied rating; and
importing the corresponding raw image files that meet the applied
rating.
15. A non-transitory computer-readable medium storing instructions
executable by data processing apparatus to perform operations
comprising: importing one of a pair of image files associated with
a captured image, wherein the image file pair comprises a
compressed image file and a raw image file; receiving input
applying an image adjustment to the imported one of the
corresponding pair; identifying whether the applied adjustment is
designated for association with both the compressed image file and
the raw image file in the image file pair; associating the applied
image adjustment to the other file in the image file pair when
identifying the applied adjustment as being designated for
association with both the compressed image file and the raw image
file in the image file pair; and displaying one or both of the
compressed image file and the raw image file in the image file pair
associated with the captured image with the applied image
adjustment based on the identifying and associating.
16. The medium of claim 15, the operations further comprising:
detecting a selection of the one of the pair of image files; and in
response to detecting the selection, displaying the one of the pair
of image files to be visually different from remaining unselected
image files to visually indicate the selection.
17. The medium of claim 15, wherein identifying the applied image
adjustment as being designated for association with both the
compressed image file and the raw image comprises: identifying the
applied image adjustment as matching one of available image
adjustments designated to be applied to both the compressed image
file and the raw image file; and applying an image adjustment of
the available image adjustments.
18. The medium of claim 15, wherein identifying the applied image
adjustment as being designated for association with both the
compressed image file and the raw image comprises identifying the
applied image adjustment as not matching one of available image
adjustments not designated to be applied to both the compressed
image file and the raw image file, wherein the available image
adjustments not designated to be applied to both the compressed
image file and the raw image file comprises at least one of tone or
white balance.
19. A system comprising: a data processing device; and a
computer-readable medium storing instructions executable by data
processing apparatus to perform operations comprising: importing
one of a pair of image files associated with a captured image,
wherein the image file pair comprises a compressed image file and a
raw image file; receiving input applying an image adjustment to the
imported one of the corresponding pair; identifying whether the
applied adjustment is designated for association with both the
compressed image file and the raw image file in the image file
pair; associating the applied image adjustment to the other file in
the image file pair when identifying the applied adjustment as
being designated for association with both the compressed image
file and the raw image file in the image file pair; and displaying
one or both of the compressed image file and the raw image file in
the image file pair associated with the captured image with the
applied image adjustment based on the identifying and
associating.
20. The system of claim 19, the operations further comprising:
detecting a selection of the one of the pair of image files; and in
response to detecting the selection, displaying the one of the pair
of image files to be visually different from remaining unselected
image files to visually indicate the selection.
21. The system of claim 19, wherein identifying the applied image
adjustment as being designated for association with both the
compressed image file and the raw image comprises: identifying the
applied image adjustment as matching one of available image
adjustments designated to be applied to both the compressed image
file and the raw image file; and applying an image adjustment of
the available image adjustments.
22. The system of claim 18, wherein identifying the applied image
adjustment as being designated for association with both the
compressed image file and the raw image comprises identifying the
applied image adjustment as not matching one of available image
adjustments not designated to be applied to both the compressed
image file and the raw image file, wherein the available image
adjustments not designated to be applied to both the compressed
image file and the raw image file comprises at least one of tone or
white balance.
Description
BACKGROUND
This application relates to digital image files.
When a user captures an image using a digital camera, for example,
this single exposure can result in a pair of image files associated
with the captured image. One of the pair is an image file in the
raw format, which has not been processed or compressed and thus has
all of the original image information available. The second file of
the pair is a processed and/or compressed image file that typically
has lost some of the pixel information compared to the raw image
file. One example of the corresponding pair of image files is the
RAW+JPEG pair, where JPEG is a common file format technology used
by digital cameras. The RAW image file represents an unprocessed
image file that retains all of the originally obtained pixel data.
The JPEG image file is a compressed image file that, as a result of
the compression, has lost some of the original pixel data of the
captured image. The JPEG image file necessarily loses at least some
pixel information because standard JPEG compression is lossy.
The JPEG image file may be visibly different from the RAW image
file because the JPEG image file has gone through camera
processing--for example, white balance processing, data compression
and the like. For example, the JPEG image file may look more
saturated than the RAW image file. The JPEG image file typically is
a result of processing the RAW image by decreasing the dynamic
range and performing compression. The resulting JPEG image file is
small in size and easy to work with.
The RAW+JPEG pair format can allow a user to obtain two image files
from a single exposure (e.g. capturing an image) on a camera
device. After shooting a RAW image file on a camera device, a
corresponding JPEG image file can be generated at the same time.
The RAW+JPEG pair is not obtained from two different exposures in
that the shutter of the camera is not fired twice, but rather the
image is captured once and saved in the two different formats.
SUMMARY
Methods, systems and computer program products are described for
managing RAW+JPEG pairs.
In one aspect, a method includes displaying, at a data processing
device, a preview of images available for import from a storage
device. Each image is associated with a pair of image files
obtained from a single image capture. The image file pair includes
a compressed image file and a raw image file. Additionally, the
method includes importing, at the data processing device, both the
raw image file and the compressed image file of the pair associated
with at least one of the images. The method includes receiving user
input identifying, at the data processing device, one of the pair
of corresponding image files as a master image file for the
associated image. Also, the method includes displaying, at the data
processing device, the identified master image file for the
associated image.
Implementations can optionally include one or more of the following
features. The master image file can be displayed to the user to
receive user modification of the image file pair through the master
image file. Identifying at least one of the pair of corresponding
image files as a master image file for the associated image can
include presenting a choice to the user to dock the raw image file
and the corresponding compressed image file together for the
associated image as linked image files or to identify the image
files in the pair as independent image files. When the image files
in the pair are docked together, one of the linked image files can
be identified as the master image file one at a time. When the
image files in the pair are independent image files, both image
files in the pair can be identified as the master file at the same
time. Displaying the identified master image file for the
associated image can include displaying one of the linked image
files at a time or displaying both of the independent image files
at the same time based on the identifying. The compressed image
file can include a Joint Photographic Experts Group (JPEG)
compatible file. The storage device can be included in a digital
camera.
In another aspect, a method can include displaying, at a data
processing device, a preview of images available for import from a
storage device. Each image is associated with a pair of image files
obtained from a single image capture. The image file pair includes
a compressed image file and a raw image file. The method includes
importing, at the data processing device, the compressed image file
of the pair for each imported image. The method includes receiving,
at the data processing device, user input adjusting an import
setting to identify a corresponding raw image file for at least one
of the imported compressed image files. Additionally, the method
includes importing, at the data processing device, the
corresponding raw image file from the storage device based on the
adjusted import setting.
Implementations can optionally include one or more of the following
features. The method can include receiving user input applying
metadata to at least one of the imported compressed image files.
The user input adjusting the import setting can include information
to adjust a filter parameter based on the applied metadata. The
corresponding raw image file can be automatically identified for at
least one of the imported compressed image files based on the
filter parameter. Applying the metadata can include creating a file
containing the metadata and pointing the created metadata file to
both the compressed image file and the corresponding raw image
file. The applied metadata can include non-pixel information
related to at least one of caption, global positioning satellite
(GPS) coordinate, sharpness or white balance. Applying the metadata
can include creating a separate file for the raw image file and the
compressed image file. Applying the metadata can include applying a
rating to the at least one imported compressed image file.
Automatically identifying the corresponding raw image file for at
least one of the imported compressed image files based on the
filter parameter can include searching for raw image files that
meet the applied rating; and importing the corresponding raw image
files that meet the applied rating. Additionally, the compressed
image file can include a Joint Photographic Experts Group (JPEG)
compatible file.
In another aspect, a method includes importing, at a data
processing device, one of a pair of image files associated with a
captured image. The image file pair includes a compressed image
file and a raw image file. The method includes receiving user input
applying, at the data processing device, an image adjustment to the
imported one of the corresponding pair. The method includes
identifying, at the data processing device, whether the applied
adjustment is designated for automatic association with the both
the compressed image file and the raw image file in the image file
pair. The method includes associating, at the data processing
device, the applied image adjustment to the other file in the image
file pair when identifying the applied adjustment as being
designated for association with both the compressed image file and
the raw image file in the image file pair. Additionally, the method
includes displaying, at the data processing device, one or both of
the compressed image file and the raw image file in the image file
pair associated with the captured image with the applied image
adjustment based on the identifying and associating.
Implementations can optionally include one or more of the following
features. The compressed image file can include a Joint
Photographic Experts Group (JPEG) compatible file. The image
adjustment can include metadata generated by the user. The method
can include applying the image adjustment to both the compressed
image file and the raw image file of the image file pair based on
the receiving, identifying and associating. Identifying the applied
image adjustment as being designated for association with both the
compressed image file and the raw image can include identifying the
applied image adjustment as matching one of available image
adjustments designated to be applied to both the compressed image
file and the raw image file. The available image adjustments
designated to be applied to both the compressed image file and the
raw image file can include at least one of crop, flip or
straighten. Identifying the applied image adjustment as being
designated for association with both the compressed image file and
the raw image can include identifying the applied image adjustment
as not matching one of available image adjustments not designated
to be applied to both the compressed image file and the raw image
file. The available image adjustments not designated to be applied
to both the compressed image file and the raw image file comprises
at least one of tone or white balance.
In another aspect, a system includes an image management system to
import a select image from a storage device. The image management
system can include a preview unit to present a choice of images
available or import. Each image is associated with a pair of image
files obtained from a single image capture. The image file pair
includes a compressed image file and a corresponding raw image
file. The image management system includes an import unit to import
at least one of the available images from the storage device
including importing both the raw image file and the corresponding
compressed image file of the pair associated with each imported
image. The image management system includes an image identification
unit to identify the raw image file, the corresponding compressed
image file or both files of the pair associated with each imported
image to be displayed. The system includes a user input unit to
communicate with the image management system. The user input unit
is configured to receive a selection of at least one of the
available images and a selection of at least one of the pair of
files associated with the selected image for display. The system
includes a display unit to communicate with the image management
system. The display unit is configured to display the selected
image file of the pair associated with the imported image based on
the received selection.
Implementations can optionally include one or more of the following
features. The compressed image file can include a Joint
Photographic Experts Group (JPEG) compatible file.
In another aspect, a computer-readable medium embodying
instructions, when executed by a processor, causes a data
processing device to perform operations including displaying a
preview of images available for import from a storage device. Each
image is associated with a pair of image files obtained from a
single image capture, and the image file pair includes a compressed
image file and a raw image file obtained from a single image
capture. The operations include importing at least one of the image
files available from the storage device that includes importing one
of the two files from the pair for each imported image. Importing
at least one of the image files includes applying metadata to the
imported file from the pair for at least one of the imported image.
Importing at least one of the image files includes automatically
associating the applied metadata to the other file in the pair.
Importing at least one of the image files includes identifying at
least one imported image to import the other file in the image file
pair based on the applied metadata. Additionally, importing at
least one of the image files includes importing the other file in
the image file pair for the identified at least one imported
image.
Implementations can optionally include one or more of the following
features. Importing one of the two files from the corresponding
pair for each imported image can include importing the compressed
image file; and identifying at least one imported image to import
the other file in the pair based on the applied metadata including
setting a filter parameter based on the applied metadata. Applying
the metadata can include creating a file containing the metadata;
and pointing the created metadata file to both the compressed image
file and the corresponding raw image file. The applied metadata can
include a user rating of the image associated with the imported
file. Applying the metadata can include creating a separate file
for the raw image file and the compressed image file; and sync the
two separate metadata files.
The subject matter described in this specification can potentially
provide one or more advantages. For example, managing the RAW+JPEG
pairs as described can provide various camera support function. By
importing the JPEG files of the corresponding pairs first, the
images can be imported faster than importing both file types.
Because the JPEG files are smaller in size, due to its compressed
nature, JPEG files are easier to adjust. Any adjustments applied to
the JPEG files can be automatically attributed or associated with
the RAW files of the corresponding pairs. Thus, a user can import
one of the two image files from each corresponding pair (e.g., the
JPEG file) and import the other file (e.g., RAW file) from the
corresponding pair at a later time. Once the JPEG files are
imported, metadata, such as user ratings, can be assigned to the
imported JPEG files. Then, filter functions can be set to import a
subset of all available RAW image files that match the desired
metadata information. Also, when viewing the images, the JPEG, the
RAW or both image files can be displayed to the user. The displayed
files can be deemed to be the master file to be manipulated by the
user. Also, both files in the corresponding pair can be displayed
separately as two different masters. In this case, both files can
be manipulated by the user separately.
The subject matter described in this specification can be
implemented as a method or as a system or using computer program
products, tangibly embodied in computer readable medium, such as a
CD-ROM, a DVD-ROM, a semiconductor memory, and a hard disk. Such
computer program products may cause a data processing apparatus to
conduct one or more operations described in this specification.
In addition, the subject matter described in this specification can
also be implemented as a system including a processor and a memory
coupled to the processor. The memory may encode one or more
programs that cause the processor to perform one or more of the
method acts described in this specification. Further the subject
matter described in this specification can be implemented using
various data processing machines.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1A shows an example graphical user interface (GUI) (100) for
importing one or more images from a data repository, such as a
memory or storage device on a digital camera.
FIG. 1B shows a GUI for presenting operations available for
imported image files.
FIG. 2 shows a process for importing one or more RAW+JPEG
pairs.
FIGS. 3A, 3B, 3C, 3D, 3E and 3F show example GUIs that illustrate a
process for importing RAW+JPEG pairs.
FIGS. 4A and 4B show a process for importing RAW image files
corresponding to first imported JPEG image files.
FIG. 5 is a process flow diagram showing a process for associating
metadata with image files in a corresponding RAW+JPEG pair.
FIG. 6 is a process flow diagram showing a process for associating
image adjustments to a RAW+JPEG pair.
FIG. 7 is a block diagram of a computing device and system that can
be used to implement techniques described with respect to FIGS.
1A-1B, 3A-3E, 4, 5 and 6.
FIG. 8 is a block diagram of another computing device and system
that can be used, e.g., to manage RAW+JPEG pairs as described with
respect to FIGS. 1A-1B, 3A-3E, 4, 5 and 6.
Like reference symbols and designations in the various drawings
indicate like elements.
DETAILED DESCRIPTION
Techniques, apparatus, systems and computer program product are
described for managing RAW+JPEG pairs associated with each image
file captured from a digital camera device, for example. Managing
the RAW+JPEG pairs can include selectively importing the RAW and
JPEG images from the pairs by adjusting the import settings. The
imported RAW+JPEG pairs can be displayed with the RAW, the JPEG or
both image files designated as the master image file. The
designated and displayed master image file can be modified by the
user.
Selecting RAW or JPEG as Master When Importing Images
FIG. 1A shows an example graphical user interface (GUI) (100) that
can be used to import one or more images from a data repository,
such as a memory or storage device on a digital camera. The GUI
(100) can include an image preview area (112) for previewing the
image files available for import. Each previewed image file (e.g.,
114 or 120) can include a file name (e.g., 116 or 122) and a visual
indicator (e.g., 118 or 124) for selecting the previewed image
file. The file name (e.g., 116 or 122) displayed with the
corresponding previewed image file (e.g., 114 or 120) can indicate
whether the previewed image is a RAW image file (e.g., 120, "RWL")
or a JPEG (e.g., processed) image file (e.g., 114, "JPG"). The
visual indicator (e.g., 118 or 124) for selecting the previewed
image file can include a user-selectable interface, such as a box
that can be checked to select the corresponding image file. Other
user-selectable interface can be used to select the corresponding
image file, including a radio button, a box that can be "x-ed,"
etc. Also, the previewed image file or the displayed file name can
be highlighted to visually indicate that the corresponding image
file has been selected.
The GUI (100) can also include a user interface for selecting or
unselecting all of the previewed image files (e.g., 126, 128). For
example, a user-selectable button can be implemented to
automatically select (e.g., 126 to check a box) all of the
previewed image files at once. Also, a user selectable button can
be implemented to automatically unselect (e.g., 128 to uncheck a
box) all of the previewed image files at once.
The GUI (100) can include a user interface for adjusting the import
settings (130). The user interface for adjusting the import
settings (130) can include a user interface that can provide
different options for importing the RAW+JPEG pair (132). For
example, the import settings can be adjusted to import both the RAW
image file and the JPEG image file together with the JPEG image
file designated as the master image file. The master image file is
displayed to the user, and the user can apply adjustments,
metadata, etc. to the master image file. By adjusting the import
settings, both the RAW image file and the JPEG image file from the
corresponding RAW+JPEG pair can be imported together with the RAW
image file as the master. The import settings can be adjusted to
import the JPEG image file from the selected RAW+JPEG pair(s)
without importing the corresponding RAW image file. Also, the
import settings can be adjusted to import the RAW image file from
the selected RAW+JPEG pair(s) without importing the corresponding
JPEG image file. In addition, the import settings can be adjusted
to import both the RAW image file and the corresponding JPEG image
file together with each image file designated as a separate master
file.
When the two image files in the corresponding RAW+JPEG pair are
linked together, either one of the two files can be selected as the
master file. For example, the import settings can be adjusted to
import both files with the JPEG image file selected as the master
file. Alternatively, the import settings can be adjusted to import
both image files with the RAW image file selected as the master
file.
When one of the two image files from the corresponding RAW+JPEG
pair is selected and displayed as the master file, the other file
in the corresponding RAW+JPEG pair is not visible to the user.
However, the user can easily switch between the two files in the
corresponding RAW+JPEG pair as the master file. For example, FIG.
1B shows a GUI (102) for presenting the available operations for
the imported image files. The GUI (102) can include a main image
display area (140) and a preview area (150). Also, the GUI (102)
shown in FIG. 1B can include a menu (160) for presenting a choice
of operations available for the imported image files. The menu
(160) can include an option to switch the designated master file
(162). In the example shown in FIG. 1B, the JPEG image file is
currently set as the master file, as indicated by the letter "J"
displayed on the previewed image. The menu (160) presents an option
to switch the master file to the RAW image file of the
corresponding pair. Also, the menu (160) can include an option to
delete the other file in the corresponding pair not visible to the
user (in this example, the RAW image file) to save space, for
example. The menu (160) can include another option to split the
linked image files in the corresponding pair as separate master
image files using a menu option named "Separate RAW+JPEG," for
example. When the two image files in the corresponding pair are
separated, an option can be provided to take the two separate image
files of the RAW+JPEG pair and make them a linked pair using a menu
option named "Combine RAW+JPEG," for example.
The process for importing one or more RAW+JPEG pairs can be
described using a process flow diagram as shown in FIG. 2. A system
or an apparatus can implement a GUI (e.g., 100 or 102) to present a
preview of image files available for import (210). Using the GUI,
one or more of the available image files can be imported based on
received user input (220). For example, user input indicating
selection of one or more of the available image files can be
received using the checked-boxes. Those selected image files can be
imported. Importing the image files can include importing the raw
image file (e.g., RAW), the corresponding compressed image file
(e.g., JPEG) or both from the RAW+JPEG pair (222). When importing
the image files, the raw image file, the corresponding compressed
image file or both can be selected to be displayed as the master
image file (224). The selected master file(s) is displayed to the
user using the GUI, for example (226).
As described above, the selected master file(s) from the
corresponding RAW+JPEG pair can be displayed to the user, and the
user can apply the desired metadata or adjustments to the displayed
master file(s). If the applied metadata and adjustments are
identified as those that should be associated with the other image
file, the metadata and adjustments can be automatically associated
with the other image file in the corresponding RAW+JPEG pair. Also,
when the RAW image file is linked to the JPEG image file, the
applied metadata and adjustments can be automatically associated
with the other image file in the corresponding RAW+JPEG pair.
Importing Corresponding RAW Files Using First Imported JPEG
files
FIGS. 3A, 3B, 3C, 3D and 3E show example GUIs that illustrate a
process for importing RAW+JPEG pairs. Rather than importing both
files in the corresponding RAW+JPEG pair, one of the two files can
be imported first. The RAW image files are larger in size than the
corresponding JPEG files, and thus it may be more efficient, with
respect to time and storage space, to import the JPEG files first
without the RAW files. From the imported JPEG files, a select
number of corresponding RAW image files can be imported. This
process can eliminate the need to import all of the RAW image files
at the beginning.
FIG. 3A shows an example GUI (300) that can be used to import the
RAW+JPEG pairs. The GUI can include a user interface to adjust the
import settings (130) to import the JPEG image files first without
the RAW image files (132). When the import settings (130) are
adjusted to import the JPEG image files first without the
corresponding RAW image files from the corresponding RAW+JPEG
pairs, the available RAW image files shown in FIG. 1A above can be
removed from the import view (112) automatically. Importing the
JPEG image files first without the corresponding RAW image files
can be useful when the user doesn't have time or adequate memory
space to import all of the corresponding RAW image files. The
corresponding RAW images files are much larger in size than the
corresponding JPEG files and thus may need a longer wait time to
import. Also, these larger sized RAW image files may need a larger
available storage space to import.
In the example shown in FIG. 3A, three of the imported JPEG image
files are selected (e.g., the associated boxes are checked) for
import (310). The rest of the imported JPEG image files are
selectively excluded. In this manner, the GUI (300) can be used to
allow the user to select any of the available image files for
importing the corresponding RAW image files.
FIG. 3B shows a GUI 302 for importing and displaying the imported
image files. The GUI (302) can include a main image display area
(320) and an image preview area (330) for displaying the imported
image files. The main image display area (320) can display one of
the imported image files previewed in the image preview area (330).
The imported image file (340) displayed in the main display area
(330) can be displayed larger than the previewed image files. The
imported image file (340) selected and displayed in the main
display area (320) can be identified to the user using a visual
indicator (346). In the example shown in FIG. 3B, the left-most
image file in the preview area (340) is highlighted to identify the
selected image file to the user.
Also, the image files displayed in the main display area (320) and
the preview area (330) can also include a visual indication (342)
of the file type: raw image file (e.g., RAW) or processed image
file (e.g., JPEG). For example, the displayed image files can
include a "J" or "R" over a portion of the displayed files to
identify the image files as RAW image files or JPEG image files.
Other visual indicators can be used, such as JPEG, JPG, RAW, RWL,
etc. Also, the visual indicator is not limited to textual
information and can include non-textual information, such as
different shaped objects, different colored objects, etc.
The imported image files (the JPEG image files in the example shown
in FIG. 3B) indicated and displayed as the master files can be
adjusted or have metadata associated with the master files. For
example, the displayed master file (e.g., JPEG image file 340) has
been edited to associate user desired metadata with the master
image file. In the example shown in FIG. 3B, a user indicated
rating (e.g., two stars out of maximum 5 stars 344) has been
associated with the JPEG image file (340) displayed. Other ratings
can be used as the metadata, such as a numbered rating (e.g., a
scale of 1-10 with 10 being the best rating) or color-coded
ratings, for example. Moreover, the metadata applied or associated
with the image files can include other non-pixel information that
identifies the user generated description of the image files. The
metadata associated with the image files are non-pixel information
in that the images files are not processed or compressed by the
metadata. Other types of metadata can include changing the spatial
position of the image files, such as rotating the image files. The
metadata associated with the first imported image files (e.g., the
imported JPEG image files) can be used to further adjust the import
settings and narrow the list of corresponding RAW image files to
import.
FIG. 3C shows a GUI (304) that can be used to allow the user to
adjust the import settings (130). For example, after selecting the
three JPEG image files in FIG. 3A, the import settings (130) can be
adjusted to import a subset of the available RAW image files. The
import settings (130) can include an import file-type setting (132)
and an import filter setting (134). The import file-type setting
(132) can be selected to import all matching or corresponding RAW
image files (or JPEG files when RAW files are imported first). The
import filter setting (134) can be adjusted to further narrow the
list of corresponding RAW files to include all matching files. In
response to the request to import all matching RAW image files
including all matching files, the three RAW image files
corresponding to the three imported JPEG image files are displayed
in the preview area (112) of the GUI.
FIG. 3D shows a GUI (306) that can be used to import the RAW image
files corresponding to the first imported JPEG image files using an
import filter setting. The import filter setting (130) can be
adjusted based on the metadata associated with the imported JPEG
image files (e.g., the master image files). The GUI (306) includes
an import setting (130) for selecting image files to import. The
import setting (130) includes an import file type setting (132) and
an import filter setting (134). In the example shown in FIG. 3D,
the import file type setting (132) is set as all matching RAW image
files. However, the import filter setting (134) is set to all
unrated or better image files. From the three imported JPEG image
files in FIG. 3A above, one was assigned a two-star rating, one was
indicated as a rejected image file, and the third was unrated.
Thus, in response to the import filter setting of "unrated or
better," two of the corresponding RAW image files are displayed in
the preview area 112. The RAW image file corresponding to the
rejected JPEG image file is excluded by the above described filter
setting.
FIG. 3E shows another GUI (308) that can be used to import the RAW
image files corresponding to the first imported JPEG image files
using an import filter setting. The import filter setting can be
adjusted based on the metadata assigned to the imported JPEG image
files (e.g., the master image files). In this example, the import
filter setting 134 is set as the current filter. The current filter
can be set or adjusted by the user based on the metadata assigned
to the JPEG image files. In the example shown in FIG. 3E, the
current filter is set as a two-star rating. In response to the
import filter setting of "current filter" (e.g., two-star rating),
one of the RAW image files is displayed in the preview area 112.
The displayed RAW image file corresponds to the imported JPEG image
file with the two-star rating.
FIG. 3F shows a GUI (309) that can be used to display an image file
imported using an import filter. The GUI (309) includes an image
display area 320 and a preview area 330. The preview area 330
displays all of the imported image files, and the image display
area 320 displays the selected one of the imported image files. In
the example shown in FIG. 3F, a RAW image file 342 is imported and
displayed based on the import filter set to "current filter" as
described with respect to FIG. 3E above. Because only one RAW image
file is imported based on the import filter, the preview area 330
displays the one imported RAW image file. The image display area
320 displays the RAW image file selected from the choice of
imported image files previewed in the preview area 330.
The process for importing the RAW image files corresponding to the
first imported JPEG image files illustrated in FIGS. 3A-F can be
described using process flow diagrams as shown in FIGS. 4A and 4B.
A system or an apparatus can implement a GUI (e.g., 300, 302, 304,
306, 308 and 309) to displaying a preview of image files available
for import (410). The GUI can be used to importing one or more user
selected image files from the available image files (420). When
importing the user selected image files, the compressed image files
(e.g., JPEG image files) can be selected and imported first (422)
before importing the corresponding RAW image files. A corresponding
RAW image file for at least one of the first imported JPEG image
files can be selected to import (424). The selected corresponding
RAW image files can be imported and displayed to the user
(426).
To identifying a corresponding RAW image file for at least one of
the imported JPEG image files (424), metadata can be applied to at
least one of the imported JPEG image files (421). Based on the
applied metadata, a filter parameter can be set to selectively
identify the corresponding RAW image file (423). The filter
parameter can be used to import a subset of the available
corresponding RAW image files.
Associating METADATA with RAW+JPEG Pair
When assigning or associating metadata with the two linked image
files in a corresponding RAW+JPEG pair, the desired metadata can be
applied to the currently designated master image file only and the
metadata can be automatically associated with the other image file
in the corresponding pair. FIG. 5 is a process flow diagram showing
a process for associating metadata with the image files in a
corresponding RAW+JPEG pair. A system or apparatus can implement a
GUI (e.g., 100, 102, 300, 302, 304, 306, 308 and 309) to present a
preview of image files available for import from a digital camera,
for example (510). The GUI can be implemented to import one of the
two image files from a corresponding pair associated with a
captured image (520). The imported image file is set as the master
file. The GUI can be implemented to apply the user desired metadata
to the imported image file (e.g., the master file) from the
corresponding pair (530). The GUI can be implemented to
automatically associate the applied metadata to the other image
file in the corresponding pair (540).
Although the other image file in the corresponding pair has not yet
been imported, the metadata can be automatically assigned to the
other image file as long as the two image files are linked
together. For example, if the JPEG image file from a corresponding
pair is imported first and the metadata applied, the RAW image file
can have the same metadata associated with it. When the other image
file in the corresponding pair is selectively imported, using the
import settings for example (550), the imported other image file in
the corresponding pair can be set as the master file and displayed
to the user along with the associated metadata (560). However,
because the other image file in the corresponding pair need not be
imported, the associated metadata on the other image file may not
be visible to the user until imported and displayed.
The metadata can be applied to the two image files in the
corresponding par using a single metadata file that includes the
applied metadata. The metadata file can be generated and point to
the two image files in the corresponding pair. The image file
selected as the master file is displayed to the user along with the
applied metadata. The metadata applied to the image files can
include user rating, caption, GPS coordinate, sharpness, white
balance, etc. Thus, Metadata can include any data about that
captured image except for any modification to the pixels.
When the two image files are not linked together but rather
separated as separate master files, the metadata applied to one
image file is not automatically associated with the other image
file in the corresponding pair. In this example, two different
metadata files are implemented with each pointing to a separate
master image file.
In addition, the GUI can be implemented to import both image files
rather than just one of the corresponding pair. As described above
with respect to FIGS. 1A, 1B and 2, both image files in a
corresponding pair can be imported together with one image file
(e.g., RAW or JPEG) designated as the master file. When the
metadata is applied to the master image file (e.g., the image file
displayed to the user), the metadata can be automatically
associated with the other image file in the corresponding pair. The
associated metadata can be presented to the user when the master
image file is switched to the other image file. For example, the
GUI can be implemented to import both image files with the JPEG
image file designated as the master image file. The GUI can be
implemented to assign a two-star rating to the master image file
(e.g., the displayed JPEG image file). Then the two-star rating can
be automatically associated with the not yet displayed RAW image
file. Because the metadata is automatically associated with the
corresponding RAW image file, the GUI can be used to adjust the
import filter settings to eliminate some of the RAW image files
based on the associated metadata. Also, when the RAW image file is
set as the master image file, the associated metadata can be
displayed to the user along with the RAW image file.
Associating Adjustments to RAW+JPEG Pair
In addition to associating metadata to the RAW+JPEG pair, different
image adjustments can be applied. FIG. 6 is a process flow diagram
showing a process for associating image adjustments to a RAW+JPEG
pair. A system or apparatus can implement a GUI (e.g., 100, 102,
300, 302, 304, 306, 308 and 309) to present image files available
for import (610). The GUI can be implemented to import one of the
two image files from a corresponding pair associated with a
captured Image (620). The GUI can be implemented to apply an image
adjustment to the imported one of the corresponding Pair (630). The
system or the apparatus can identify whether the applied adjustment
is designated for automatic association with the other image file
in the corresponding pair (640). Even if the two image files are
linked together, it may not be desirable to automatically associate
all image adjustments to both image files in the corresponding
pair. The different types of image adjustments are described
further below. The GUI can be implemented to automatically
associate the applied image adjustment to the other image file in
the corresponding pair when the applied adjustment is identified as
being designated for association with both files in the
corresponding pair (650). The GUI can be implemented to display the
JPEG or RAW or both image files from the corresponding pair
associated with the captured image along with the applied image
adjustment based on the identifying and associating (660). The
image adjustment is displayed with the selected master image file.
For example, when the JPEG image file is displayed as the master
file, the applied image adjustment is shown with the displayed JPEG
image file. When the RAW image file is displayed as the master
file, the applied image adjustment is shown with the displayed RAW
image file.
Examples of image adjustments can include crop, flip and straighten
that can be designated for association with both JPEG and RAW image
files. Examples of the image adjustments that may not be
automatically associated with both the JPEG and RAW image files can
include tone and white balance. The different treatment of
different image adjustment can be attributed to the desire to
process the JPEG image file differently from the RAW image file.
For example, the JPEG image file may be white balanced differently
than the RAW image file.
Also, the JPEG and RAW image files may have different height and
width information. Thus, when applying the different image
adjustment to the JPEG and RAW image files, these differences in
the height and width of the image files can be compensated using a
corrective relative spatial location determination. For example,
when the color of a jacket worn by a person in the JPEG image file
is adjusted, the pixel location of the jacket can be different in
the RAW image file. Thus, the relative location of the jacket with
respect to a reference point can be calculated in the JPEG image
file and extrapolated onto the RAW image file. For example, the
jacket location can be calculated from the center of the JPEG image
or from the edges of the JPEG image or both. Other spatial
corrective techniques can be used to determine the correct location
of the image adjustment.
The user may be presented with the control over which image
adjustments carry over to both the JPEG and RAW image files. Also,
the applied adjustments are removable or non-destructive. Rather
than directly modifying the pixel information of the image files, a
record or file can be generated with the desired image adjustment
information. The record with the desired image adjustment is
associated with the corresponding image files, such that when
either or both image files are displayed, the image adjustment
information from the image adjustment file is used to apply the
image adjustment to the displayed image(s).
In addition, the GUI can be implemented to import both image files
from the corresponding pair rather than just one. As described
above with respect to FIGS. 1A, 1B and 2, both image files in a
corresponding pair can be imported together with one image file
(e.g., RAW or JPEG) designated as the master file. When the image
adjustment is applied to the master image file (e.g., the image
file displayed to the user), the image adjustment can be
automatically associated with the other image file in the
corresponding pair based on whether the image adjustment should
carry over to both image files.
FIG. 7 is a block diagram of a computing device and system (700)
that can be used to implement the techniques described with respect
to FIGS. 1A-1B, 3A-3E, 4, 5 and 6. The system (700) can include a
processor (720) to control operation of the system (700) including
executing any machine or computer readable instructions. The
processor (720) can communicate with a memory or data storage unit
(730) that can store data, such as image files and machine or
computer readable instructions. Also, the processor (720) can
communicate with an image management system (710) to manage
different image files including import, export, storage, image
adjustment, metadata application and display of the image files.
The processor (720) can communicate with an input/output (I/O)
interface (740) that can interface with different input devices,
output devices or both. For example, the I/O interface (740) can
interface with a touch screen (742) on a display device (702).
Also, the I/O interface (740) can interface with a user input
device (744) such as a keyboard, a mouse, a trackball, etc. that
are designed to receive input form a user.
FIG. 8 is a block diagram of another computing device and system
that can be used, e.g., to manage RAW+JPEG pairs as described with
respect to FIGS. 1A-1B, 3A-3E, 4, 5 and 6. Computing device 800 is
intended to represent various forms of digital computers, such as
laptops, desktops, workstations, personal digital assistants,
servers, blade servers, mainframes, and other appropriate
computers. The components shown here, their connections and
relationships, and their functions, are meant to be exemplary only,
and are not meant to limit implementations of the inventions
described and/or claimed in this document.
Computing device 800 includes a processor 810, memory 820, a
storage device 830, a high-speed interface 850 connecting to memory
820. The computing device can also include high-speed expansion
ports (not shown), and a low speed interface (not shown) connecting
to low speed bus (not shown) and storage device 830. Each of the
components 810, 820, 830, 850, and 820, are interconnected using
various busses, and can be mounted on a common motherboard or in
other manners as appropriate. The processor 810 can process
instructions for execution within the computing device 800,
including instructions stored in the memory 820 or on the storage
device 830 to display graphical information for a GUI on an
external input/output device, such as display 840 coupled to an
input/output interface 860. In other implementations, multiple
processors and/or multiple buses can be used, as appropriate, along
with multiple memories and types of memory. Also, multiple
computing devices 800 can be connected, with each device providing
portions of the necessary operations (e.g., as a server bank, a
group of blade servers, or a multi-processor system).
The memory 820 stores information within the computing device 800.
In one implementation, the memory 820 is a computer-readable
medium. In one implementation, the memory 820 is a volatile memory
unit or units. In another implementation, the memory 820 is a
non-volatile memory unit or units.
The storage device 830 is capable of providing mass storage for the
computing device 800. In one implementation, the storage device 830
is a computer-readable medium. In various different
implementations, the storage device 830 can be a floppy disk
device, a hard disk device, an optical disk device, or a tape
device, a flash memory or other similar solid state memory device,
or an array of devices, including devices in a storage area network
or other configurations. The computer program product contains
instructions that, when executed, perform one or more methods, such
as those described above. The computer- or machine-readable medium
can include the memory 820, the storage device 830, memory on
processor 810, or a propagated signal.
The high speed controller 850 manages bandwidth-intensive
operations for the computing device 800, while the low speed
controller manages lower bandwidth-intensive operations. Such
allocation of duties is exemplary only. In one implementation, the
high-speed controller 850 is coupled to memory 820, display 840
(e.g., through a graphics processor or accelerator), and to
high-speed expansion ports (not shown), which can accept various
expansion cards (not shown). In the implementation, low-speed
controller (not shown) is coupled to storage device 830 and
low-speed expansion port (not shown). The low-speed expansion port,
which can include various communication ports (e.g., USB,
Bluetooth, Ethernet, wireless Ethernet) can be coupled to one or
more input/output devices, such as a keyboard, a pointing device, a
scanner, or a networking device such as a switch or router, e.g.,
through a network adapter.
The computing device 800 can be implemented in a number of
different forms, as shown in the figure. For example, it can be
implemented as a standard server 865, or multiple times in a group
of such servers. It can also be implemented as part of a rack
server system 870. In addition, it can be implemented in a personal
computer such as a laptop computer 880.
Embodiments of the subject matter and the functional operations
described in this specification can be implemented in digital
electronic circuitry, or in computer software, firmware, or
hardware, including the structures disclosed in this specification
and their structural equivalents, or in combinations of one or more
of them. Embodiments of the subject matter described in this
specification can be implemented as one or more computer program
products, i.e., one or more modules of computer program
instructions encoded on a tangible computer or machine readable
medium for execution by, or to control the operation of, data
processing apparatus. The computer readable medium can be a
machine-readable storage device, a machine-readable storage
substrate, a memory device, a composition of matter effecting a
machine-readable propagated signal, or a combination of one or more
of them.
The term "data processing apparatus" encompasses all apparatus,
devices, and machines for processing data, including by way of
example a programmable processor, a computer, or multiple
processors or computers. The apparatus can include, in addition to
hardware, code that creates an execution environment for the
computer program in question, e.g., code that constitutes processor
firmware, a protocol stack, a database management system, an
operating system, or a combination of one or more of them.
A computer program (also known as a program, software, software
application, script, or code) can be written in any form of
programming language, including compiled or interpreted languages,
or declarative or procedural languages, and it can be deployed in
any form, including as a stand alone program or as a module,
component, subroutine, or other unit suitable for use in a
computing environment. A computer program does not necessarily
correspond to a file in a file system. A program can be stored in a
portion of a file that holds other programs or data (e.g., one or
more scripts stored in a markup language document), in a single
file dedicated to the program in question, or in multiple
coordinated files (e.g., files that store one or more modules, sub
programs, or portions of code). A computer program can be deployed
to be executed on one computer or on multiple computers that are
located at one site or distributed across multiple sites and
interconnected by a communication network.
The processes and logic flows described in this specification can
be performed by one or more programmable processors executing one
or more computer programs to perform functions by operating on
input data and generating output. The processes and logic flows can
also be performed by, and apparatus can also be implemented as,
special purpose logic circuitry, e.g., an FPGA (field programmable
gate array) or an ASIC (application specific integrated
circuit).
Processors suitable for the execution of a computer program
include, by way of example, both general and special purpose
microprocessors, and any one or more processors of any kind of
digital computer. Generally, a processor will receive instructions
and data from a read only memory or a random access memory or both.
The essential elements of a computer are a processor for performing
instructions and one or more memory devices for storing
instructions and data. Generally, a computer will also include, or
be operatively coupled to receive data from or transfer data to, or
both, one or more mass storage devices for storing data, e.g.,
magnetic, magneto optical disks, or optical disks. However, a
computer need not have such devices. Moreover, a computer can be
embedded in another device.
Computer readable media suitable for storing computer program
instructions and data include all forms of non volatile memory,
media and memory devices, including by way of example semiconductor
memory devices, e.g., EPROM, EEPROM, and flash memory devices;
magnetic disks, e.g., internal hard disks or removable disks;
magneto optical disks; and CD ROM and DVD-ROM disks. The processor
and the memory can be supplemented by, or incorporated in, special
purpose logic circuitry.
To provide for interaction with a user, embodiments of the subject
matter described in this specification can be implemented on a
computer having a display device, e.g., a CRT (cathode ray tube) or
LCD (liquid crystal display) monitor, for displaying information to
the user and a keyboard and a pointing device, e.g., a mouse or a
trackball, by which the user can provide input to the computer.
Other kinds of devices can be used to provide for interaction with
a user as well; for example, input from the user can be received in
any form, including acoustic, speech, or tactile input.
Embodiments of the subject matter described in this specification
can be implemented in a computing system that includes a back end
component, e.g., as a data server, or that includes a middleware
component, e.g., an application server, or that includes a front
end component, e.g., a client computer having a graphical user
interface or a Web browser through which a user can interact with
an implementation of the subject matter described is this
specification, or any combination of one or more such back end,
middleware, or front end components. The components of the system
can be interconnected by any form or medium of digital data
communication, e.g., a communication network. Examples of
communication networks include a local area network ("LAN") and a
wide area network ("WAN"), e.g., the Internet.
The computing system can include clients and servers. A client and
server are generally remote from each other and typically interact
through a communication network. The relationship of client and
server arises by virtue of computer programs running on the
respective computers and having a client-server relationship to
each other.
While this specification contains many specifics, these should not
be construed as limitations on the scope of any invention or of
what may be claimed, but rather as descriptions of features that
may be specific to particular embodiments of particular inventions.
Certain features that are described in this specification in the
context of separate embodiments can also be implemented in
combination in a single embodiment. Conversely, various features
that are described in the context of a single embodiment can also
be implemented in multiple embodiments separately or in any
suitable subcombination. Moreover, although features may be
described above as acting in certain combinations and even
initially claimed as such, one or more features from a claimed
combination can in some cases be excised from the combination, and
the claimed combination may be directed to a subcombination or
variation of a subcombination.
Similarly, while operations are depicted in the drawings in a
particular order, this should not be understood as requiring that
such operations be performed in the particular order shown or in
sequential order, or that all illustrated operations be performed,
to achieve desirable results. In certain circumstances,
multitasking and parallel processing may be advantageous. Moreover,
the separation of various system components in the embodiments
described above should not be understood as requiring such
separation in all embodiments, and it should be understood that the
described program components and systems can generally be
integrated together in a single software product or packaged into
multiple software products.
Only a few implementations and examples are described and other
implementations, enhancements and variations can be made based on
what is described and illustrated in this application. For example,
the GUIs 100, 102, 300, 302, 304, 306, 308 and 309 may be
implemented as the same GUI or as separate GUIs. Also, any number
of the GUIs can be implemented together.
* * * * *