I'm not going to go into the full details of color management here. Basically, color management is needed because different devices conceive colors differently. For example, if you display a pure red on your computer screen, and photograph it, your camera won't necessarily translate this color to pure red. This is why you need to apply a color transformation.
The effect of color profiling is demonstrated with three copies of the same image. The first copy does not use color profiling, I only played with the saturation to get the best possible results. In the second copy I apply Nikon's ICC profile in UFRaw. The difference is most apparent in extreme colors, like in the purple balloon. The third copy is the camera's generated JPG.
Three ICC color profiles are involved in the color management process:
- Input profile should be set to the profile of your camera. See the Camera profiles section below for information on where such profiles can be found together with explanation on the related controls.
- Output profile should be set to your working space profile. Depending on your workflow this can be some large gamut profile, your printer profile or simply sRGB. This profile will be attached to the output image (TIFF, PNG or JPEG). Leave this setting to the default sRGB unless you know that the software that will handle this image is color management aware. Specifically, Gimp 2.2 is not color management aware, while Gimp 2.4 is.
- Display profile should be set to the profile of your display. The System default option will check if there is a system defined ICC profile for your display and use it if found. For information on how to embed an ICC profile for your X display see this. The choice of display profile affects only the preview image you see in UFRaw and has no effect on the final output image.
If you set the input profile to No profile and the output profiles to sRGB, no color transformation will be applied. The Color Matrix option for input profile, applies a camera specific color matrix transformation.
The Output intent and Display intent options are explained in the Rendering intents section bellow.
The tricky part is finding a color profile for your camera. Here is a short list of profiles you can download from this site. If you have other profiles that you are willing to share, then I'm willing to host them here.
Nikon D70 - the input profile for the Nikon D70.
This profile comes with D70's software, it is copyrighted by Nikon,
but I don't think they will mind me posting it here since any D70 owner
has this profile anyway. I'm only posting it here
to save Unix users the trouble of finding a Windows or Mac machine for
extracting the profile from their D70 CD.
Windows users can find the Nikon profiles under
- Nikon D80 - the input profile for the Nikon D80. Same copyright story as the D70 profile.
- Nikon D50 - the input profile for the Nikon D50. Same copyright story as the D70 profile.
- Nikon D40 - the input profile for the Nikon D40. Same copyright story as the D70 profile.
- Nikon D90 - the input profile for the Nikon D90. Same copyright story as the D70 profile.
- Nikon D100 - the input profile for the Nikon D100. Same copyright story as the D70 profile.
- Nikon D300 - the input profile for the Nikon D300. Same copyright story as the D70 profile.
- Nikon D5000 - the input profile for the Nikon D5000 series. Same copyright story as the D70 profile.
- Nikon D700 - the input profile for the Nikon D1 series. Same copyright story as the D70 profile.
- Nikon D1/D1H/D1X - the input profile for the Nikon D1 series. Same copyright story as the D70 profile.
- Canon 400D - an input profile for the Canon 400D created by Pascal de Bruijn, released under a Creative Commons license.
- Canon 10D - non linear - an input profile for the Canon 10D. Copyrighted by Timo Autiokari, the author of the XLProfiler freeware.
- Canon 10D - linear - another input profile for the Canon 10D. This is a linear profile, so Gamma should be set to 1. It is a public domain profile copied from Ture Pålsson's EOS 10D page .
- Canon PowerShot S60 - For this profile you need to set Gamma to 0.45 and Linearity to 0.04. It is a free profile made by Artis Rozentals using lprof 1.11.4. It would best match direct sun light conditions.
- Canon DSLR users can find information on how to get and use the ICC profiles that come with the camera software here and here.
- Adobe RGB - a possible wide gamut output profile. Profile taken from the Little CMS package.
More profile can be downloaded here. The profiles on this page require Gamma to be set to 0.45 and Linearity to be set to some small value, maybe 0.02. It also seems that one should enable the Use color matrix option with these profiles. I think that it a bit oversaturates the colors, but it seems to be the author's intent.
One can get many other profiles by installing the trial version of Phase One. (Even Unix users can install it using Wine.) Another option is to create your own profile, for that you will need an appropriate IT8 target. To create the profile you can use LProf. LProf was developed by the author of Little CMS, but it is no longer maintained by him. Recently it was adopted by a new maintainer so there is still hope for it. A short turtorial on how to generate ICC profiles using LProf was written by Pascal de Bruijn. Another free option for Windows users is the XLProfiler.
For the input profile you need to define the parameters of the gamma curve. For standard RGB profile the defaults are 0.45 (approximately 1/2.2) for the Gamma and 0.10 for the Linearity. For camera profiles you need to use the setting the profile was created with. If you created the profile, this is not a problem, but if you are using someone else's profile you will probably have to guess these setting since they are usually not published.
The Nikon D50, D70, D80 profiles above, for example, seems to requires Gamma 0.45 and Linearity 0.00. It seems that the Phase One curves also require Gamma 0.45 but with Linearity 0.05. Also enabling the use of color matrix with these profiles gives interesting results.
For each profile you can choose if you want to use the Color Matrix. The color matrix is used to make a linear transformation from the sensor's color filters to standard RGB. UFRaw gets these matrices from DCRaw, which in turn got most of them from Adobe. Usually you will want to use the Color Matrix with RGB profiles and not use it with camera profiles.
Notice that the Color Matrix and the gamma curve are applied before the ICC profile transformation. The reason that they appear after the Input Profile is to emphasize that these settings are defined per profile.
The different intents options specify how out of gamut colors will be handled. Display intent has an extra option - Disable soft proofing. When using this option, the output profile is ignored for the rendering of the preview image. The preview image is rendered in the display profile color space using the output intent.
The following explaination of the various transformation intents is copied from the Little CMS documentation:
It's out of scope of this document to define the exact meaning of rendering intents. I will try to make a quick explanation here, but often the meaning of intents depends on the profile manufacturer. INTENT_PERCEPTUAL: Hue hopefully maintained (but not required), lightness and saturation sacrificed to maintain the perceived color. White point changed to result in neutral grays. Intended for images. In lcms: Default intent of profiles is used. INTENT_RELATIVE_COLORIMETRIC: Within and outside gamut; same as Absolute Colorimetric. White point changed to result in neutral grays. In lcms: If adequate table is present in profile, then, it is used. Else reverts to perceptual intent. INTENT_SATURATION: Hue and saturation maintained with lightness sacrificed to maintain saturation. White point changed to result in neutral grays. Intended for business graphics (make it colorful charts, graphs, overheads, ...) In lcms: If adequate table is present in profile, then, it is used. Else reverts to perceptual intent. INTENT_ABSOLUTE_COLORIMETRIC: Within the destination device gamut; hue, lightness and saturation are maintained. Outside the gamut; hue and lightness are maintained, saturation is sacrificed. White point for source and destination; unchanged. Intended for spot colors (Pantone, TruMatch, logo colors, ...) In lcms: relative colorimetric intent is used with undoing of chromatic adaptation. Not all profiles support all intents, there is a function for inquiring which intents are really supported, but if you specify an intent that the profile doesn't handle, lcms will select default intent instead. Usually perceptual one. This will force things to "look nice", even if the intent is not the one really desired.