Mike Chaney's Tech Corner

Technical Discussions => Articles => Topic started by: admin on May 27, 2009, 01:36:15 PM



Title: June 2006: My Camera, My Color Space
Post by: admin on May 27, 2009, 01:36:15 PM

My Camera, My Color Space


Background

We've covered a lot of ground in previous articles with respect to color management, profiles, and color spaces, but one area that continues to confuse many people is the origin of color management: the color space used by your digital camera.  If you have any interest in color management, that is preserving accurate color from the capture device to the monitor and printer, you probably understand that you need a printer profile to describe how to reproduce color with your printer, paper, and ink and a monitor profile so that you can see accurate color on your monitor.  Too often, however, we forget that the origin of color is just as important as the destination!  If you don't know what color space your camera is using and your camera isn't embedding a color space profile, you can end up with color problems on screen and in print.  Let's take a look at how your digital camera records color and try to get some answers.

 

The origin of color


Cameras make taking photos so easy that few people realize how complex the image capture process really is.  Unlike scanners, which have their own consistent light source, a camera must be able to record the scene under a variety of lighting conditions.  Since the lighting conditions that existed when the photo was taken are likely quite different than the lighting conditions where you'll be viewing the reproduced photo, white point adaption must be performed (white balance) so that our eyes perceive the scene as it was when photographed even though the lighting is now different.

Suffice it to say the camera is doing some number crunching before saving the finished JPEG on the flash card.  For this article, we'll limit our discussion to the JPEG/TIFF shooting mode and won't go into raw processing since most raw processing software both handles the color conversion and stores the proper color space as part of the processed image, thus eliminating the uncertainty of which color space to use for the processed images.  With cameras shooting in JPEG or TIFF capture mode, however, it can be difficult to tell exactly what the camera is using as the color space for the photos.  The camera has "done its thing" and processed the photo, but do you know whether the saved JPEG/TIFF images are in sRGB color space, Adobe RGB color space, or some other color space, and do you know whether or not the data is really accurate for that color space?  If you are not sure, using a super accurate monitor and printer profile won't help you because for the monitor/printer profile to work, you also have to know the color space (which can be specified as a profile as well) for the image itself!

 

What is color accuracy?
 

When I talk about "accuracy" for the purpose of this article, I'm using the term a bit loosely.  Technically, accurate color would be color that is identical to the original scene including the light source that illuminated the scene.  Unfortunately, if you reproduced the original scene with this type of colorimetric accuracy, it may look quite odd both on screen and on paper, because the light source in the room where you are viewing the photos is unlikely to be identical to that of the original scene, the white point of the paper is not likely to match the original scene, etc.  When we talk about accuracy in on-screen or printed photos, we must talk about a subjective type of accuracy in that our eyes perceive the photo to be true in color to the original scene.

If you are looking at a photo of someone you know was wearing a bright red shirt and the shirt looks orange in the photo, or you were looking at a blue sky that printed purple, you would say the color reproduction is "inaccurate".  In general, most complaints about color accuracy will come from hue shifts (colors shifted toward another/different color), saturation problems (colors being too vibrant or too dull) or luminance problems (too bright or too dark) in that order. Fortunately, color management knows how we see and can adapt to different illuminants so that photos still look accurate on our monitor and printer.  Once again though, to do this, we must have an accurate image profile (color space for the camera images), an accurate monitor profile, and an accurate profile for our printer, paper, and ink.

 

What color space does my camera use?
 

As discussed above, some color space (profile) must be assumed for the images created by your camera.  If you are using a monitor and/or printer profile, some color space is being assumed for your images (out of the camera) whether you realize it or not!  Let's make sure we know the assumptions being made by our camera and our imaging software.

Both the JPEG and TIFF image file specification include an option for embedding a profile that describes the color space for the images.  Unfortunately, and for reasons still unclear to me, I don't know of any camera manufacturer who chooses to utilize this feature, so there are almost no cameras that will specifically identify the color space of the image by embedding the profile for that color space even though it would require only about 500 bytes in the file header to do so.  Instead, most manufacturers include the EXIF "color space" tag in the file header, meaning that the color space is "tagged" but not "embedded".

The EXIF data in your photos includes information such as the shutter speed, aperture, flash status, and other shooting parameters, so it is logical to identify the color space via the EXIF information.  Sadly, the EXIF color space tag can only identify the color space if the color space being used is sRGB.  There are only two valid settings for the EXIF color space tag and those are sRGB (a standard color space for PC's and the web) and "uncalibrated".  Basically this means that if your camera is storing images in the sRGB color space, you should be fine since the EXIF color space tag will specify sRGB and your photo software should be able to identify sRGB as the color space of your images.  If your camera is not storing images in the sRGB color space, you really cannot tell what color space is being used by looking at the EXIF information since "uncalibrated" is all the information that will be provided.

 

Where does this leave us?
 

Fortunately, if you use a consumer camera that doesn't give you any menu option to change the color space, it is very likely using sRGB as the color space and this will be recorded in the EXIF header of the image.  These images will open in most photo editors and other imaging software with the proper sRGB color space recognized automatically.

Things can get a bit more complicated, however, if you are using a dSLR or other camera that allows you to switch your color space from sRGB to Adobe RGB.  Shooting in Adobe RGB mode allows you to capture a wider range of colors so those who use high end cameras like dSLR's often change the color space so that the camera uses Adobe RGB.  Once you do this, the EXIF information is changed so that the color space is listed as "uncalibrated".  At this point, some photo editors and other photo related software may start telling you that there is no embedded profile/color space and may ask you what color space to assume when you open the image(s).

Since the vast majority of cameras only offer two options for color space, sRGB or Adobe RGB, if the software you are using tells you that there is no embedded color space and asks you what to use, chances are the answer is Adobe RGB since if the images were in sRGB color space, sRGB would have been explicitly identified in the image file.  I have programmed my own Qimage software with logic that can automatically determine the proper color space to use, but if you are using other photo related software and you are asked about the color space or profile to use when the image is opened, follow these general guidelines:

  1. If you are using an older camera that may not support the latest EXIF data and/or your camera does not offer the ability to change the color space (say from sRGB to Adobe RGB), it is safe to assume sRGB as the color space for your photos.

  2. If you are using a camera that allows you to select sRGB or Adobe RGB as the color space in a setup menu and you are using ICC aware software, you should not be asked about which color space to use if sRGB is selected in the camera and you may or may not be asked if Adobe RGB is selected as this depends on the capability of the software you are using.  If you are asked, you have probably set your camera to Adobe RGB mode, so select Adobe RGB.

  3. If you are not using fully ICC aware (color managed) software, you may never be asked about color space because the software ignores that information, or you may be asked every time if the software is unable to read the EXIF header to determine color space.  In cases like these, use your best judgment.  Again, if you haven't taken any action to specifically change your camera to Adobe RGB color space, it should be safe to assume sRGB is the proper color space to use for your images.

 

I know now what my camera says.  Is it accurate?
 

Here we open up a whole new can of worms.  If we've read the above and we know which color space our camera is using for images it stores on the flash card (most likely either sRGB or Adobe RGB), is color really going to be "accurate" if we assume that color space for our photos?  This is a much more difficult question to answer and the answer depends on many factors such as lighting, white balance accuracy, exposure, and even the lens being used if the camera has interchangeable lenses.  Next comes the fact that the most accurate photos may not be the most pleasing photos to many people.

In reality, many consumer grade cameras offer a simple color shaping matrix that is designed to return pleasing color that results in few complaints from consumers.  Most consumers, for example, prefer a little extra sharpness and pop (contrast) in photos.  They also like green grass to look really green even when in reality it might be a little yellow/brown.  As you begin to move up to high end or dSLR cameras, we see more of a shift toward color accuracy and less of that extra "pop", but there is often still a balance between accuracy and that "wow" factor of a photo that really leaps off the paper.

In the end, if you know what color space was intended for the images, the resulting photos should look good when that color space is used.  Some people often notice small errors like some detail being lost in shadows as darkening shadows is a common technique used to increase contrast and hide image noise/grain.  People often ask whether they should try to create a custom ICC profile for their camera using their favorite profiling package.  Most often, the answer is no.  While some older cameras in the 1-3 megapixel era could benefit from custom profiles just because manufacturers weren't as good at color in those days, you'll most likely only make things worse trying to create a profile for a modern camera shooting in JPEG/TIFF mode.  Custom profiles can be a big help for raw shooting, however, since the profile can be applied in the raw software at a more stable point in the conversion process.  The trouble with trying to create an ICC profile for your camera in JPEG/TIFF shooting mode is that there are far too many adjustments taking place before the profile is applied and you end up shooting at a moving target.

 

Summary
 

The bottom line when dealing with photos from your digital camera is that you must be aware of the color space used for those images since this is the first step in color management and your monitor/printer profiles will not be accurate unless you are assuming the correct input (image) color space.  Unless you have specifically changed a setup menu to specify a color space like Adobe RGB in your camera's options, the camera is most likely storing photos in sRGB color space.  If your camera has a color space option and allows you to change the color space from sRGB to Adobe RGB and you are unsure about the mode used for some of your shots, try using Qimage to determine the color space of your images.  It has built in logic that can determine the proper color space for your camera's photos.  Simply hold your mouse pointer over the thumbnail for an image in question, and Qimage will display the color space assignment on the status bar at the bottom of the main window.  Ensuring the proper color space for your images will enable accurate color rendition from your monitor and printer by virtue of the fact that we have the right starting point.

 

Mike Chaney