DNG Color Profiles allow for a complex set of what are in effect look-up tables that can translate from a color as photographed to another color as displayed. What's more, these look-up tables provide for the ability to make these color shifts dependent on the intensity. So two pixels with the same tint (a hue and saturation combination) but different intensities (values), can translate to pixels with different tints. This is what Adobe's new generation profiles do.


The impact of hue twists

The chart below shows before (outside) and after (inner) patches for the Adobe Standard profile for the Canon EOS 5D Mark II, for the a tint of yellow/orange (ProPhoto Gamma 1 244,161,65), varied in intensity (technically, varying in V in an HSV space). Note that shows only a portion of the scale; the sRGB encoding needed for display on a web page limits the gamut significantly.



What you see is that as the intensity of the light changes, the tint (the hue and the saturation) vary as well.


The next chart shows this even more clearly, by showing just the tint impact as V is changed.



Now, there is a good reason for this - hue twists give what most people perceive as “good color”. However, the downsides are as above - if exposure changes, tint changes as well. In some situations, that can be (a) quite unexpected and (b) quite counter-productive.


Exactly how these hue twists will impact you depends on where in the processing pipeline they occur. The DNG Camera Profile allows for two options:


  1. Twists applied immediately on the image data as it comes from the sensor. In this case, if you have two images of the same scene that differ in exposure, then the displayed images will differ in tint, and not just in luminosity, even if you use the Camera Raw or Lightroom exposure controls to adjust the images to the same exposure. So, for example, the same sweater (or whatever) in the two images would show as the center of patch 2 in one case, and the center of patch three in the other case.The reason is that the extent of the “twist” of any given pixel is being set by the original exposure, which was different. the up side of this situation though is that tint won’t change as you adjust exposure - it’s fixed.
  2. Twists applied after basic exposure adjustments. In this case, Camera Raw or Lightroom first apply basic exposure adjustments to the image - exposure, recovery, etc. Then the twists are applied. In this case, if you had the images of the same scene with different exposures, and adjusted them to the same, the tints would also match - so, in both cases the sweater would be the color of the inside of patch 2, for example. Note that prior to adjustment, the colors would be different - as you adjusted the exposure, the color in the image you were adjusting would move towards the color in the other image, and be the same once the exposure was the same. But that’s also the downside of applying twists after the exposure controls - colors change when you make exposure adjustments. Again, in some situations, that’s not great. Adobe’s default profiles (Adobe Standard, etc) work in this way.


So, hue twists give better color than conventional “non-twisted profiles”. But, depending on where they are applied, there are side effects. If you want colors that are the same regardless of image exposure and regardless of the setting of the exposure controls in Camera Raw or Lightroom, you can’t use profiles with hue twists.


What dcpTool can do about this

Version 1.1 of dcpTool can modify the way DNG camera profiles perform hue twists in two ways:


  1. Make a profile Invariate. Making a  profile ivariate shifts any hue twists to before the basic exposure adjustments stage, so they are applied immediately. So an invariate profile won’t cause changes tint when you make adjustments to exposure settings. this is what you want to do the standard Adobe profiles if you want to keep the twists, but just prevent colors from changing when you adjust Carmera Raw or Lightroom’s exposure controls.
  2. Untwist a profile entirely. Untwisting a profile removes all hue twists completely. An untwisted profile will always keep colors true, regardless of original in-camera exposure, or changes to exposure controls in Camera Raw or Lightroom.


Note: Generally, you will get better results from untwisting a profile than from making it invariate. Hue twists that are designed to be used post exposure adjustments often do not translate well into being used prior to exposure adjustments. Generally, I recommend that you try the untwisted version of a profile as a first step.


The technical bits

  1. Here’s a technical description of what the two options do:
  2. Make a profile Invariate. Making a  profile ivariate moves any LookTable to the HueSatDelta table. Specifically, if a LookTable exists, and no HueSatDelta tables exist, dcpTool simply copies the LookTable to the HueSatDelta tables, and the removes the original LookTable. If both a LookTable and HueSatDelta tables exist, the tables are mathematically combined, and the combination becomes the new HueSatDelta table. Again, the original LookTable is then removed. If no LookTable exists, then the profile is already invariate.
  3. Untwist a profile entirely. Untwisting a profile removes all intensity (V in HSV) dependencies in both the LookTable and any HueSatDelta tables. Effectively, the twist at a single point in the twist table is chosen, and applied to all intensities. The twist chosen is that corresponding to a skin tone that is accurately exposed, thus preserving the profile's skin tone.


I discuss more about hue twists on my blog.