Source: http://patents.com/us-8249385.html
Timestamp: 2018-09-26 01:36:54
Document Index: 596231958

Matched Legal Cases: ['application No. 200910129558', 'application No. 200910129558', 'application No. 2005800342883', 'application No. 2005800342883', 'application No. 05805830', 'application No. 05805830', 'Application No. 05805830']

US Patent # 8,249,385. Migration for old image database - Patents.com
United States Patent 8,249,385
Bhatt , et al. August 21, 2012
Inventors: Bhatt; Nikhil M. (Cupertino, CA), Bianchi; Curtis A. (Saratoga, CA)
Appl. No.: 13/037,152
11710109 Feb., 2007 7936946
Current U.S. Class: 382/276
Field of Search: 348/E3.018,E3.029 382/162,276
5172103 December 1992 Kita
5283557 February 1994 Memarzadeh
6005679 December 1999 Haneda
6025826 February 2000 Hung et al.
6130665 October 2000 Ericsson
6175841 January 2001 Loiacono
7202878 April 2007 Safadi et al.
7372595 May 2008 Lyon et al.
7480872 January 2009 Ubillos
2002/0008721 January 2002 Fahraeus et al.
2002/0054172 May 2002 Berman et al.
2002/0070982 June 2002 Hill et al.
2002/0191867 December 2002 Le et al.
2003/0179154 September 2003 Demsky et al.
2003/0189602 October 2003 Dalton et al.
2003/0223650 December 2003 Kim
2003/0227468 December 2003 Takeda
2005/0134610 June 2005 Doyle et al.
2005/0163378 July 2005 Chen
2005/0179705 August 2005 Ubillos et al.
2005/0262447 November 2005 Shoemaker
2006/0220986 October 2006 Takabe et al.
2007/0253626 November 2007 Jeffrey et al.
2008/0089580 April 2008 Marcu
2010/0079495 April 2010 Ubillos et al.
1 369 792 Dec., 2003 EP
23/10988 Sep., 1997 GB
WO 93/22738 Nov., 1993 WO
Chinese Office Action received in International application No. 200910129558.9 dated Jan. 4, 2012 (12 pages). cited by other .
Current Claims of Chinese application No. 200910129558.9 dated Jan. 2012 (2 pages). cited by other .
Shneiderman, B. et al., "A Photo history of SIGCHI: evolution of design from personal to public, interactions," ACM, vol. 9, Issue 3, May 2002 (7 pages). cited by other .
European Patent Office, "Communication pursuant to Article 96(2) EPC", Foreign Application No. PCT/US2005/035938 (7 pages), Published Nov. 7, 2007. cited by other .
Claims, Foreign Application No. PCT/US2005/035938 (4 pages), Published Nov. 7, 2007. cited by other .
International Business Machines Corporation, "Automated/customized method for window tiling," Research Disclosure Database No. 444135, published Apr. 2001 (3 pages). cited by other .
State Intellectual Property Office of the People's Republic of China, "The First Office Action," application No. 2005800342883, dated Oct. 16, 2008 (23 pages). cited by other .
Clean Claims, application No. 2005800342883 (6 pages), Oct. 16, 2008. cited by other .
Graham, A. et al., "Time as Essence for Photo Browsing Through Personal Digital Libraries," JCDL 2002, Copyright ACM, Jul. 2002 (10 pages). cited by other .
Mander, R. et al., "A Pile Metaphor for Supporting Casual Organization of Information," Copyright ACM, 1992 (8 pages). cited by other .
European Patent Office, "Communication pursuant to Article 96(2) EPC," Foreign Application No. PCT/US2005/035943 (8 pages), Apr. 5, 2006. cited by other .
Claims, Foreign Application No. PCT/US2005/035943 (5 pages), Apr. 5, 2006. cited by other .
Apple Computer, Inc., "A `Pile` Metaphor for Supporting Casual Organization of Information," ACM CHI '92, published May 1992 (8 pages). cited by other .
Janssen, W. et al., "UpLib: A universal personal digital library system," Nov. 2003, ACM (9 pages). cited by other .
Baudisch, P. et al., "Keeping Things in Context: A Comparative Evaluation of Focus Plus Context Screens, Overviews, and Zooming," Information Sciences and Technologies Lab/Computer Science Lab Xerox, Palo Alto Research Center, Apr. 2002 (8 pages). cited by other .
Graham, A. et al., "Time as essence for photo browsing through personal digital libraries," Proceedings of the 2.sup.nd ACM/IEEE-CS joint conference on Digital libraries JCDL '02, Jul. 2002 (10 pages). cited by other .
Rodden, K. et al., "How do people manage their digital photographs?", Proceedings of the SIGCHI conference on Human factors in computing systems CHI '03, Apr. 2003 (8 pages). cited by other .
Baudisch, et al., "Focus Plus context screens: displays for users working with large visual documents," ACM, CHI 2002, extended abstracts on human factors in computing systems, Apr. 2002 (2 pages). cited by other .
Mander, et al., "A Pile metaphor for supporting casual organization of information," ACM, CHI 1992, Proceedings of the SIGCHI conference on Human factors in computing systems, Jun. 1992 (8 pages). cited by other .
Ware, et al., "The DragMag image magnifier," ACM, CHI 1995, Conference companion on human factors in computing systems, May 1995 (2 pages). cited by other .
Perlin, K. et al., "An Alternative Approach to the Computer Interface" 1993 (11 pages). cited by other .
"Text of the Second Office Action," received in Application Serial No. 200580034288.3 dated May 15, 2009 (2 pages). cited by other .
Current claims of Application Serial No. 200580034288.3 Jun. 2009 (14 pages). cited by other .
"Summons to attend oral proceeding pursuant to Rule 115(1) EPC" received in Application Serial No. 05256232.9-1225/1645950 dated Jun. 16, 2009 (8 pages). cited by other .
Current claims of Application Serial No. 0525632.9-1225/1645950 as of Jul. 2009 (3 pages). cited by other .
The DragMag image magnifier Colin Ware, Marlon Lewis May 1995 Conference companion on Human factors in computing systems CHI '95 Publisher: ACM Press. cited by other .
Mills, M. et al., "A magnifier tool for video data" Jun. 1992 Proceedings of the SIGCHI conference on Human factors in computing systems CHI '92 Publisher: ACM Press. cited by other .
European Patent Office, "Communication pursuant to Article 94(3) EPC," application No. 05805830.6-1245, dated Dec. 2, 2009 (5 pages). cited by other .
Claims, application No. 05805830.6-1245, 2008 (3 pages). cited by other .
International Business Machines Corporation, "Automated Customized Method for Window Tiling," research disclosure database No. 444135, Kenneth Mason Publications Ltd., Apr. 2001 (3 pages). cited by other .
European Patent Office, "Communication Pursuant to Article 94(3) EPC," Application No. 05805830-6-1245, received May 28, 2008 (11 pages). cited by other.
Attorney, Agent or Firm: Hickman Palermo Truong Becker Bingham Wong LLP Rees; Karl T.
PRIORITY CLAIM; CROSS-REFERENCE TO RELATED APPLICATIONS(S)
This application claims benefit as a Continuation of U.S. patent application Ser. No. 11/710,109, filed Feb. 23, 2007, which is incorporated herein by reference for all purposes as if fully set forth herein, under 35 U.S.C. .sctn.120. The applicant(s) hereby rescind any disclaimer of claim scope in the parent application(s) or the prosecution history thereof and advise the USPTO that the claims in this application may be broader than any claim in the parent application(s).
This application is related to: (1) pending non-provisional application Ser. No. 10/960,888, filed on Oct. 6, 2004, by Randy Ubillos, Laurent Perrodin, Dan Waylonis, Stan Erman, Sarah Brody and Mike Mages, entitled "Displaying Digital Images using Groups, Stacks, and Version Sets;" (2) U.S. Pat. No. 7,705,858, issued on Apr. 27, 2010, by Randy Ubillos, Laurent Perrodin and Dan Waylonis, entitled "Techniques for Displaying Digital Images on a Display;" and (3) U.S. Pat. No. 7,561,157, issued on Jul. 14, 2009, by Joshua Fagans and Timothy Benjamin Martin, entitled "Compare Mode for Variable Number of Images." The entire disclosures of the above applications are hereby incorporated by reference for all purposes as if fully set forth herein.
1. A method comprising: retrieving, by a particular application executing at a computing device, from a plurality of raw image files, raw sensor data that describes light sensed by an image sensor, wherein the raw sensor data conforms to a specific raw format recorded by a specific type of image sensor; determining that a plurality of different techniques are concurrently available to the particular application for interpreting the specific raw format as pixels in an RGB color space, wherein a first set of executable code implements a first technique for interpreting the specific raw format in the RGB color space, and wherein a second set of executable code implements a second and different technique for interpreting the specific raw format in the RGB color space; generating, by the particular application, a first set of one or more digital images by invoking the first set of executable code to interpret a first subset of the raw sensor data in the RGB color space in accordance with the first technique; and generating, by the particular application, a second set of one or more digital images by invoking the second set of executable code to interpret a second subset of the raw sensor data in the RGB color space in accordance with the second technique; wherein the method is performed by the computing device; wherein performance of generating the first set of one or more digital images at least partially overlaps in time with performance of generating the second set of one or more digital images.
2. The method of claim 1, further comprising determining to generate the first set of one or more digital images based on version data associated with the first subset of the raw sensor data, the version data indicating that the first subset of the raw sensor data is to be interpreted using the first technique.
3. A method comprising: accessing sensor data that describes light sensed by an image sensor, wherein the sensor data conforms to a specific raw format recorded by a specific type of image sensor; retrieving first data describing a first technique for interpreting the specific raw format; generating version data in response to a user specifying one or more modifications to a first subset of the raw sensor data while one or more images based on the first subset of the raw sensor data are being displayed to the user using the first technique in accordance with the retrieved first data; retrieving second data describing a second technique for interpreting the specific raw format; determining to generate a first set of one or more digital images using the first technique based on the version data associated with the first subset of the sensor data, the version data indicating that the first subset of the sensor data is to be interpreted using the first technique; responsive to the determining, generating the first set of one or more digital images by interpreting the first subset of the sensor data using the first technique, in accordance with the retrieved first data; and generating a second set of one or more digital images by interpreting a second subset of the sensor data using the second technique, in accordance with the retrieved second data; wherein the method is performed by a computing device; wherein generating the first set of one or more digital images at least partially overlaps with generating the second set of one or more digital images.
4. The method of claim 3, wherein the first technique was the most current technique available for interpreting the specific raw format when the one or more modifications were specified; wherein the second technique is the most current technique available for interpreting the specific raw format when the first set of one or more digital images and the second set of one or more digital images are generated.
5. The method of claim 1, further comprising prompting a user to select between the first technique and the second technique for interpreting a particular portion of raw sensor data.
6. The method of claim 1, wherein accessing the raw sensor data comprises reading the raw sensor data from a plurality of RAW files, wherein each of generating the first set of one or more digital images and generating the second set of one or more digital images comprises generating at least one of: an RGB image; a JPEG image; a TIFF image; a bitmap image; or graphics data for outputting to a display device.
7. The method of claim 1, wherein generating the first set of one or more digital images comprises applying one or more modifications to one or more sets of pixels in the RGB color space, the one or more sets of pixels in the RGB color space having been generated by applying the first technique to the first subset of the raw sensor data.
8. The method of claim 1, wherein the first subset of the raw sensor data and the second subset of the raw sensor data are the same, the method further comprising: displaying the first set of one or more digital images at the same time as the second set of one or more digital images; prompting the user to select between the first technique and the second technique based on said displaying.
9. The method of claim 1, further comprising: while the first technique is indicated as the most current technique available for interpreting the specific raw format, receiving the second data indicating the second technique; in response to receiving the second data, prompting the user to select between continuing to use the first technique to interpret a particular portion of the raw sensor data or reinterpreting the particular portion of the raw sensor data using the second technique.
10. The method of claim 1, further comprising: retrieving a third set of executable code implementing a third technique for interpreting the specific raw format in the RGB color space; and generating, by the particular application, a third set of one or more digital images by invoking the third set of executable code to interpret a third subset of the raw sensor data in the RGB color space in accordance with the third technique; wherein performance of generating the third set of one or more digital images at least partially overlaps with performance of generating the first set of one or more digital images and at least partially overlaps with performance of generating the second set of one or more digital images.
11. One or more non-transitory computer-readable media storing instructions that, when executed by one or more computing devices, causes performance of: retrieving, by a particular application executing at a computing device, from a plurality of raw image files, raw sensor data that describes light sensed by an image sensor, wherein the raw sensor data conforms to a specific raw format recorded by a specific type of image sensor; determining that a plurality of different techniques are concurrently available to the particular application for interpreting the specific raw format as pixels in an RGB color space, wherein a first set of executable code implements a first technique for interpreting the specific raw format in the RGB color space, and wherein a second set of executable code implements a second and different technique for interpreting the specific raw format in the RGB color space; generating, by the particular application, a first set of one or more digital images by invoking the first set of executable code to interpret a first subset of the raw sensor data in the RGB color space in accordance with the first technique; and generating, by the particular application, a second set of one or more digital images by invoking the second set of executable code to interpret a second subset of the raw sensor data in the RGB color space in accordance with the second technique; wherein performance of generating the first set of one or more digital images at least partially overlaps in time with performance of generating the second set of one or more digital images.
12. The one or more non-transitory computer-readable media of claim 11, wherein the instructions, when executed by the one or more computing devices, further cause performance of: determining to generate the first set of one or more digital images based on version data associated with the first subset of the raw sensor data, the version data indicating that the first subset of the raw sensor data is to be interpreted using the first technique.
13. One or more non-transitory computer-readable media storing instructions that, when executed by one or more computing devices, cause performance of: accessing sensor data that describes light sensed by an image sensor, wherein the sensor data conforms to a specific raw format recorded by a specific type of image sensor; retrieving first data describing a first technique for interpreting the specific raw format; generating version data in response to a user specifying one or more modifications to a first subset of the raw sensor data while one or more images based on the first subset of the raw sensor data are being displayed to the user using the first technique in accordance with the retrieved first data; retrieving second data describing a second technique for interpreting the specific raw format; determining to generate a first set of one more digital images using the first technique based on the version data associated with the first subset of the sensor data, the version data indicating that the first subset of the sensor data is to be interpreted using the first technique; responsive to the determining, generating set of one or more digital images by interpreting the first subset of the sensor data using the first technique, in accordance with the retrieved first data; and generating a second set of one or more digital interpreting a second subset of the sensor data using the second technique, in accordance with the retrieved second data; wherein generating the first set of one or more digital images at least partially overlaps with generating the second set of one or more digital images.
14. The one or more non-transitory computer-readable media of claim 13, wherein the first technique was the most current technique available for interpreting the specific raw format when the one or more modifications were specified; wherein the second technique is the most current technique available for interpreting the specific raw format when the first set of one or more digital images and the second set of one or more digital images are generated.
15. The one or more non-transitory computer-readable media of claim 11, wherein the instructions, when executed by the one or more computing devices, further cause performance of: prompting a user to select between the first technique and the second technique for interpreting a particular portion of raw sensor data.
16. The one or more non-transitory computer-readable media of claim 11, wherein accessing the raw sensor data comprises reading the raw sensor data from a plurality of RAW files, wherein each of generating the first set of one or more digital images and generating the second set of one or more digital images comprises generating at least one of: an RGB image; a JPEG image; a TIFF image; a bitmap image; or graphics data for outputting to a display device.
17. The one or more non-transitory computer-readable media of claim 11, wherein generating the first set of one or more digital images comprises applying one or more modifications to one or more sets of pixels in the RGB color space, the one or more sets of pixels in the RGB color space having been generated by applying the first technique to the first subset of the raw sensor data.
18. The one or more non-transitory computer-readable media of claim 11, wherein the first subset of the raw sensor data and the second subset of the raw sensor data are the same, wherein the instructions, when executed by the one or more computing devices, further cause performance of: displaying the first set of one or more digital images at the same time as the second set of one or more digital images; prompting the user to select between the first technique and the second technique based on said displaying.
19. The one or more non-transitory computer-readable media of claim 11, wherein the instructions, when executed by the one or more computing devices, further cause performance of: while the first technique is indicated as the most current technique available for interpreting the specific raw format, receiving the second data indicating the second technique; in response to receiving the second data, prompting the user to select between continuing to use the first technique to interpret a particular portion of the raw sensor data or reinterpreting the particular portion of the raw sensor data using the second technique.
20. The one or more non-transitory computer-readable media of claim 11, wherein the instructions, when executed by the one or more computing devices, further cause performance of: retrieving a third set of executable code implementing a third technique for interpreting the specific raw format in the RGB color space; and generating, by the particular application, a third set of one or more digital images by invoking the third set of executable code to interpret a third subset of the raw sensor data in the RGB color space in accordance with the third technique; wherein performance of generating the third set of one or more digital images at least partially overlaps with performance of generating the first set of one or more digital images and at least partially overlaps with performance of generating the second set of one or more digital images.
21. The method of claim 2, further comprising: generating the version data in response to a user specifying one or more modifications to the first subset of the raw sensor data while one or more images based on the first subset of the raw sensor data are being displayed to the user using the first technique; wherein the first technique was the most current technique available for interpreting the specific raw format when the one or more modifications were specified; wherein the second technique is the most current technique available for interpreting the specific raw format when the first set of one or more digital images and the second set of one or more digital images are generated.
22. The one or more non-transitory computer-readable media of claim 12, wherein the instructions, when executed by the one or more computing devices, further cause performance of: generating the version data in response to a user specifying one or more modifications to the first subset of the raw sensor data while one or more images based on the first subset of the raw sensor data are being displayed to the user using the first technique; wherein the first technique was the most current technique available for interpreting the specific raw format when the one or more modifications were specified; wherein the second technique is the most current technique available for interpreting the specific raw format when the first set of one or more digital images and the second set of one or more digital images are generated.
23. The method of claim 3, wherein retrieving the sensor data comprises reading the sensor data from a plurality of RAW files, wherein each of generating the first set of one or more digital images and generating the second set of one or more digital images comprises generating at least one of: an RGB image; a JPEG image; a TIFF image; a bitmap image; or graphics data for outputting to a display device.
24. The method of claim 3, wherein generating the first set of one or more digital images comprises applying the one or more modifications to interpretations of the first subset of sensor data, the interpretations having been generated using the first technique.
25. The method of claim 3, further comprising: while the first technique is indicated as the most current technique available for interpreting the specific raw format, receiving the second data indicating the second technique; in response to receiving the second data, prompting the user to select between continuing to use the first technique to interpret a particular portion of the sensor data or reinterpreting the particular portion of the sensor data using the second technique.
26. The one or more non-transitory computer-readable media of claim 13, wherein retrieving the sensor data comprises reading the sensor data from a plurality of RAW files, wherein each of generating the first set of one or more digital images and generating the second set of one or more digital images comprises generating at least one of: an RGB image; a JPEG image; a TIFF image; a bitmap image; or graphics data for outputting to a display device.
27. The one or more non-transitory computer-readable media of claim 13, wherein generating the first set of one or more digital images comprises applying the one or more modifications to interpretations of the first subset of sensor data, the interpretations having been generated using the first technique.
28. The one or more non-transitory computer-readable media of claim 13, wherein the instructions, when executed by the one or more computing devices, further cause performance of: while the first technique is indicated as the most current technique available for interpreting the specific raw format, receiving the second data indicating the second technique; in response to receiving the second data, prompting the user to select between continuing to use the first technique to interpret a particular portion of the sensor data or reinterpreting the particular portion of the sensor data using the second technique.
A "RAW" image file contains this minimally processed data from the image sensor of a digital camera or image scanner. RAW files are so named because they are not yet processed and capable of being displayed in a visually intelligible manner, ready to use with a bitmap graphics editor, printed, or by a typical web browser. Under current approaches, the RAW image data must be processed and converted to an RGB format such as TIFF or JPEG before it can be manipulated.
Current approaches use an "all-or-nothing" approach, where a new version of the technique is installed, for example as a plug-in, and all future sensor data is interpreted using the newly-installed technique. A drawback to this approach is that a user may find that the new technique produces unacceptable results, such as rendering custom filters unusable, as discussed above. Under current approaches, then a user must de-install the plug-in or other approach for applying the new technique and re-install the previous technique, with no guarantee that the previous technique may even be located and re-installed.
FIG. 1 is a block diagram illustrating a current approach to interpreting RAW image files. In FIG. 1, a collection of RAW data, for example four RAW image files 104a-104d representing four digital photographs, reside in storage 102. Storage 102 may be a flash memory card, a hard drive, a DVD, or any other type of non-volatile storage medium. The RAW image files 104a-104d are comprised of sensor data, which is not viewable as a digital image and may be in a manufacturer-specific format.
In order to view the RAW image files 104a-104d as visible digital images, the RAW image files 104a-104d must be interpreted by a RAW processing technique, such as an algorithm. In FIG. 1, there are two RAW interpretation techniques 106, 114 that may be used to interpret the RAW image files 104a-104d. These techniques may be embodied, for example, in a "plug-in" module or other type of installable executable instructions. However, under current approaches, only one of the interpretation techniques 106, 114 is available for use at one time. FIG. 1 illustrates an alternative flow of data. The RAW image files 104a-104d may either be processed by the first technique 106 or the second technique 114, but in order to use the second technique 114, the first technique 106 must be made unavailable; for example by uninstalling a plug-in that comprises the first technique 106 and installing a plug-in that comprises the second technique 114.
In FIG. 1, the RAW image files 104a-104d are transmitted to the first technique 106, for example by plugging storage 102 such as a memory card containing the RAW image files 104a-104d into a computer and causing the RAW image files 104a-104d to be read by a program embodying the first technique 106. The first technique 106 takes the sensor data comprising the RAW image files 104a-104d and interprets the data into fully defined pixels. Fully defined pixels are pixels for which a color value has been defined.
After the RAW image files 104a-104d have been interpreted by the first technique 106, they are transmitted to storage 108, for example a hard drive, and stored as image files 110a-110d, such as a TIFF file or a JPEG file, in which the color values for every pixel have been defined. Once the pixels for the image files 110a-110d have been defined and stored, then the image files 110a-110d may be modified by one or more operations 112, such as one or more filters, or removing dust specks or red-eye reduction. In the current approaches, the operations 112 need to work with a defined set of pixel data, which is not defined until the RAW data has been interpreted by an interpretation technique 106, 114.
In the example illustrated by FIG. 1, a user wishes to use a new RAW interpretation technique 114 to interpret the RAW image files 104a-104d. In order to do this, the first technique 106 must be made unavailable under current approaches, for example by being uninstalled. After installing or otherwise making available the new RAW interpretation technique 114, the RAW image files 104a-104d must be re-interpreted by the new technique 114 prior to being viewed and modified. After the RAW image files 104a-104d are re-interpreted by the new technique 114, they are transmitted to storage 116, for example a hard drive, and stored as image files 118a-118d, such as a TIFF file or a JPEG file, in which the color values for every pixel have been defined. Because the new RAW interpretation technique 114 operates in a different manner than the previous technique 106, the image files 118a-118d may look different. These image files 118a-118d may then be modified by one or more operations 112, such as one or more filters, or removing dust specks or red-eye reduction.
FIG. 3 is a block diagram of an embodiment illustrating a graphical user interface element that allows a user to choose how to migrate existing images that are stored in a RAW format and interpreted according to a particular technique to being interpreted according to a new technique;
FIG. 4A is a block diagram of an embodiment illustrating the concurrent display of the same unmodified sensor data as interpreted by multiple techniques;
FIG. 4B is a block diagram of an embodiment illustrating the concurrent display of the same unmodified sensor data as interpreted by multiple techniques;
According to an embodiment, digital sensor data is received, for example, by importing digital image data from a digital camera or importing sensor data that has previously been imported from a digital camera. This sensor data may be in what is collectively known as the RAW data format, although different manufacturers may call the file containing the sensor data a different name. In order for the sensor data to be rendered into a visually intelligible form, a technique is performed on the sensor data that generates a display of the sensor data. The resulting display is an unmodified image from the sensor data as interpreted by the technique. The term "unmodified image" in this context means data or a digital image as interpreted from sensor data that has not undergone any alterations such as being stored in another format such as JPEG or TIFF.
FIG. 2 is a block diagram of an embodiment illustrating an approach to interpreting RAW image files. In FIG. 2, a collection of RAW data, for example four RAW image files 204a-204d representing four digital photographs, reside in storage 202. Storage 202 may be a flash memory card, a hard drive, a DVD, or any other type of non-volatile storage medium. The RAW image files 204a-204d are comprised of sensor data, which is not viewable as a digital image and may be in a manufacturer-specific format.
In order to view the RAW image files 204a-204d as visible digital images, the RAW image files 204a-204d must be interpreted by a RAW processing technique, such as an algorithm. In FIG. 2, there are two RAW interpretation techniques 206, 208 that may be used to interpret the RAW image files 204a-204d. According to an embodiment, the RAW image files 204a-204d are transmitted to either of the interpretation techniques 206, 208. Both interpretation techniques 206, 208 are available concurrently and the particular one used may be a "default" technique which is used for all transmitted RAW image files without user intervention, or a user may choose which of the available interpretation techniques 206, 208 to use. According to an embodiment, this choice may be in response to user input received through a user interface element.
Once the RAW image files 204a-204d have been interpreted by the particular technique of the available techniques 206, 208, the technique taking the sensor data comprising the RAW image files 204a-204d and interpreting the data into fully defined pixels, the resulting pixels may be displayed as an image file. According to an embodiment, the fully defined pixels, as output by the particular technique, are not stored as an image file such as JPEG or TIFF, but are instead dynamically interpreted for display by the particular technique of the available techniques. According to an embodiment, the fully defined pixels may be stored as an instruction set in a database.
According to an embodiment, after the RAW image files 204a-204d are interpreted by any of the available techniques 106, 108, the output may be returned to any of the available techniques 106, 108 for reinterpretation. For example, the RAW image files 204a-204d are transmitted to the first technique 206, for example by plugging storage 202 such as a memory card containing the RAW image files 204a-204d into a computer and causing the RAW image files 204a-204d to be read by a program embodying the first technique 206. The first technique 206 takes the sensor data comprising the RAW image files 204a-204d and interprets the data into fully defined pixels. The output from the first technique 206 may be displayed as a digital image and transmitted to an operation 210 such as a filter, or simply viewed.
The user then installs a new RAW interpretation technique 208 and desires to view the RAW image files 204a-204d as interpreted by the new technique 208. According to an embodiment, the use selects one or more of the digital image displays of the RAW image files 204a-204d as currently interpreted by the first technique 206, and chooses to reinterpret the underlying RAW image files 204a-204d according to the new technique 208. In response, the RAW image files 204a-204d are interpreted by the new technique 208 and the reinterpreted output may be displayed and/or modified by an operation 210 without saving the output as an image file such as TIFF or JPEG.
If the user desires to return to viewing the RAW image files 204a-204d as interpreted by the first technique 206, the user may select one or more of the digital image displays of the RAW image files 204a-204d as currently interpreted by the new technique 208, and choose to interpret the underlying RAW image files 204a-204d according to the first technique 206. In response, the RAW image files 204a-204d are reinterpreted by the first technique 208 and the reinterpreted output may be displayed and/or modified by an operation 210 without saving the output as an image file such as TIFF or JPEG.
According to an embodiment, the RAW image files 204a-204d are dynamically interpreted by any of the available techniques and the resulting fully defined pixels may be displayed, modified, or reinterpreted by another technique without saving the output to an image file or de-installing any of the techniques. Two products released by Apple, Inc. of Cupertino, Calif., "Aperture" (version 1.0) and "iPhoto" have allowed for RAW interpreting RAW image data without storing a file describing the fully defined pixels, but among other difference, "Aperture" (version 1.0) and "iPhoto" do not allow the RAW image data to be interpreted by a specific technique of a plurality of techniques that are all concurrently available to interpret the RAW data.
FIG. 3 is a block diagram of an embodiment illustrating a graphical user interface element that allows a user to choose how to migrate existing images, which are stored in a RAW format and interpreted according to a particular technique, to being interpreted according to a new technique. For purposes of this application, the term "migrate" means to cause existing image data to be interpreted according to this new technique. For example, a user may have a library of 300 images each stored in a RAW format representing the underlying sensor data of the images. Once a new technique for interpreting the sensor data has been made available, for example by upgrading the image management and processing program with which the images are associated, then a dialog box 302 is presented to the user offering options for dealing with the existing image data.
In an embodiment as illustrated by FIG. 3, another choice may be presented that causes new versions of all existing images to be created, where the new versions are displayed as interpreted by the new technique 306. Versions are described, for example, in pending non-provisional application Ser. No. 10/960,888, filed on Oct. 6, 2004, by Randy Ubillos, Laurent Perrodin, Dan Waylonis, Stan Erman, Sarah Brody and Mike Mages, entitled "Displaying Digital Images using Groups, Stacks, and Version Sets," the contents of which are incorporated herein by reference.
FIG. 4A is a block diagram of an embodiment illustrating the concurrent display of the same unmodified sensor data as interpreted by multiple techniques. FIG. 4A illustrates how a user may easily compare two implementations of a RAW processing technique, or any other processing technique that may have multiple versions of available techniques, such as filters. In FIG. 4A, a digital image is displayed twice, the top display 402 being the underlying sensor data as interpreted by a first technique, and the bottom display 404 being the same underlying sensor data as interpreted by a second technique. According to an embodiment, one or both of the displayed digital images 402, 404 may be versions of a digital image.
In FIG. 4A, the top displayed digital image 402 is selected, and in response, a particular display of user interface controls 406 are displayed. According to an embodiment, the particular display of user interface controls is based upon which iteration of the interpretation technique is being used to interpret the selected digital image or version of the digital image. In FIG. 4A, a graphical user interface element 408 is displayed that indicates which technique of a plurality of techniques is being used to interpret the selected digital image. In FIG. 4A, a pop-up dialog box is being used, although any type of graphical user interface element is envisioned as being used for this purpose. In this example, "version 1.0" of a RAW interpretation algorithm is being used to interpret and display the top digital image 402.
According to an embodiment, a user may select the graphical user interface element 408 and choose any one of a number of available RAW interpretation algorithms to interpret the selected displayed digital image. For example, a user may select the top displayed digital image 402, in which case the graphical user interface element 408 will change to indicate that the "version 1.0" algorithm is being used to interpret the selected displayed digital image. The user may then select the graphical user interface element 408 and choose a "version 2.0" of the available RAW interpretation algorithms, or any other version available in the user interface element 408. In response, the selected displayed digital image 402 will be displayed according to the "version 2.0" technique instead of the previously-used "version 1.0." The newly-selected technique may automatically alter the display of the digital image, because the underlying sensor data is being interpreted by the "version 2.0" technique in a different manner than by the "version 1.0" technique. According to an embodiment, any number of digital images may be selected and the underlying interpretation changed by use of a user interface element or user command, an example as illustrated by FIG. 4A.
According to an embodiment, a user may select any number of contiguous or non-contiguous digital images, albums, libraries, stacks, versions, or any other grouping or collection of digital images and use a user interface element or user command to choose which technique of any number of available techniques with which to interpret the sensor data underlying the digital images comprising the grouping or collection. This may be referred to as "migrating" the selected images to a different technique for interpretation of the sensor data. Stacks and Versions are described, for example, in pending non-provisional application Ser. No. 10/960,888, filed on Oct. 6, 2004, by Randy Ubillos, Laurent Perrodin, Dan Waylonis, Stan Erman, Sarah Brody and Mike Mages, entitled "Displaying Digital Images using Groups, Stacks, and Version Sets," the contents of which are incorporated herein by reference.
Because there may be any number of available techniques available, the graphical user interface element 408 may be modified to clarify the available techniques. For example, if five techniques are available, each being labeled in a drop-down dialog box as "version 1.0" through "version 5.0," respectively, a user may add to or change the wording in the graphical user interface element 408 to allow for easier selection of a particular technique. "Version 1.0" may be changed to read "Version 1.0--desaturated colors," while "version 2.0" could be changed to read "second version--need to adjust white balance." By annotating the graphical user interface element 408 in this manner, a user does not have to remember specific properties of the available techniques or choose from a confusing list of non-specific version numbers.
FIG. 4B is a block diagram of an embodiment illustrating the concurrent display of the same unmodified sensor data as interpreted by multiple techniques. In FIG. 4B, a digital image is displayed twice, the top displayed digital image 402 being the underlying sensor data as interpreted by a first technique, and the bottom displayed digital image 404 being the same underlying sensor data as interpreted by a second technique. According to an embodiment, one or both of the displayed digital images 402, 404 may be versions of a digital image. Versions are described, for example, in pending non-provisional application Ser. No. 10/960,888, filed on Oct. 6, 2004, by Randy Ubillos, Laurent Perrodin, Dan Waylonis, Stan Erman, Sarah Brody and Mike Mages, entitled "Displaying Digital Images using Groups, Stacks, and Version Sets," the contents of which are incorporated herein by reference.
In FIG. 4B, the bottom digital image 404 is selected, and in response, a particular display of user interface controls 410 are displayed. This particular display is different from the particular display 406 of FIG. 4A, because the selected digital image 404 is interpreted by a different technique than the technique used to interpret the top digital image 402. This may be seen from the different appearance of the graphical user interface element 408 in FIG. 4B as compared to FIG. 4A. The graphical user interface element 408 in FIG. 4B indicates that the "version 1.1" algorithm is being used to interpret the selected digital image (the bottom digital image 404).
According to an embodiment, if a particular technique for interpreting sensor data offers features that are different from features offered by other available techniques, then user interface controls associated with the features offered by the particular technique currently selected will be displayed. For example, in FIG. 4B, the particular technique ("version 1.1") associated with the selected digital image (the bottom image 404) offers control over numerous parameters not offered by the "version 1.0" technique illustrated in FIG. 4A. In FIG. 4B, these parameters include "Boost," "Sharpening," "Chroma Blur," and "Auto Noise Compensation." User interface controls 410 associated with the "version 1.1" technique are displayed to the user. If the "version 1.0" technique were then selected for use with the selected digital image, the user interface controls 410 would change to reflect controls associated with the "version 1.0" technique.
According to an embodiment, a particular technique of a number of available techniques to interpret sensor data, such as one version of an algorithm where numerous versions are available for use, is used as the "default" technique to interpret newly-acquired or newly-received sensor data. For example, there may be numerous digital images displayed in a library of digital images, each individual image display generated by interpreting the underlying sensor data with any one of a number of available techniques that were selected as the "default" when the particular digital sensor data was received. For example, in a library displaying five digital images, the first digital image display may have been generated by "version 1" of a sensor data interpretation technique, the second digital image display may have been generated by "version 2" of a sensor data interpretation technique, and similarly through the fifth digital image display that was generated by "version 5" of a sensor data interpretation technique, each sensor data interpretation technique having been the "default" when the particular sensor data was received.
In one embodiment, a new version of the selected digital images is created, the new version displaying the underlying sensor data according to the particular technique chosen in response to the user input. For example, a user may select a display of a digital image previously generated and displayed by a technique "1.0" for interpreting sensor data and generating a display of an unmodified image from the sensor data. User input is then received that selects technique "2.0," this technique interpreting the sensor data and generating the display in a different manner than "1.0." In response, the image displayed using technique "1.0" is maintained and a new version of the image is created that displays the underlying sensor data according to technique "2.0." Versions are described, for example, in pending non-provisional application Ser. No. 10/960,888, filed on Oct. 6, 2004, by Randy Ubillos, Laurent Perrodin, Dan Waylonis, Stan Erman, Sarah Brody and Mike Mages, entitled "Displaying Digital Images using Groups, Stacks, and Version Sets," the contents of which are incorporated herein by reference.
According to an embodiment, the user input that specifies which technique of the number of available techniques may include a "lift and stamp" operation, which is a type of "copy and paste" operation applied to digital images. According to an embodiment, a "lift-and-stamp" operation is a way to apply the technique used to generate a display from sensor data that is associated with one version to any other version of a digital image. For example, the user configures the settings for one version of a digital image, then uses lift-and-stamp to apply the exact same settings to other versions of the digital image. A "lift and stamp" operation may be used to change RAW processing parameters as well as any other piece of metadata simultaneously.
The term "machine-readable medium" as used herein refers to any medium that participates in providing data that causes a machine to operation in a specific fashion. In an embodiment implemented using computer system 600, various machine-readable media are involved, for example, in providing instructions to processor 604 for execution. Such a medium may take many forms, including but not limited to, non-volatile media, volatile media, and transmission media. Non-volatile media includes, for example, optical or magnetic disks, such as storage device 610. Volatile media includes dynamic memory, such as main memory 606. Transmission media includes coaxial cables, copper wire and fiber optics, including the wires that comprise bus 602. Transmission media can also take the form of acoustic or light waves, such as those generated during radio-wave and infra-red data communications. All such media must be tangible to enable the instructions carried by the media to be detected by a physical mechanism that reads the instructions into a machine.
Previous Patent US 8,249,384 | Next Patent US 8,249,386