UFRaw

Color management

No color profile applied Color Profiled image Camera's original JPG

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:

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.

Camera profiles

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.

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.

Rendering intents

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.

For comments on UFRaw you can contact me at UdiFuchs@ gmail .com

You are also welcome to visit my photography homepage.