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.
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.
Like reference symbols and designations in the various drawings indicate like elements.
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
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,
The process for importing one or more RAW+JPEG pairs can be described using a process flow diagram as shown in
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
In the example shown in
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
The process for importing the RAW image files corresponding to the first imported JPEG image files illustrated in
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.
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
Associating Adjustments to RAW+JPEG Pair
In addition to associating metadata to the RAW+JPEG pair, different image adjustments can be applied.
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
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.
Number | Name | Date | Kind |
---|---|---|---|
5867606 | Tretter | Feb 1999 | A |
5987165 | Matsuzaki et al. | Nov 1999 | A |
6300955 | Zamir | Oct 2001 | B1 |
7593603 | Wilensky | Sep 2009 | B1 |
7602949 | Simon et al. | Oct 2009 | B2 |
20050012829 | Tashiro et al. | Jan 2005 | A1 |
20070188510 | Kokemohr | Aug 2007 | A1 |
20080036864 | McCubbrey et al. | Feb 2008 | A1 |
20080075395 | Wallace et al. | Mar 2008 | A1 |
20090201316 | Bhatt et al. | Aug 2009 | A1 |
20090204894 | Bhatt et al. | Aug 2009 | A1 |
20090204895 | Bhatt et al. | Aug 2009 | A1 |
Number | Date | Country | |
---|---|---|---|
20110103684 A1 | May 2011 | US |