Gamut compression - reduce artifacts resulting from out of gamut

Gamut compression is a tool which allows you to compress highly chromatic camera source colorimetry into a smaller gamut.

Out of gamut negative pixel values are problematic for working on images and should be avoided if possible.

Blue LED are perceive as highly colorful and colors like beetles, flowers and hummingbirds often over saturated.

This is not a gamut conversion : converting from one gamut to another does change the values of the pixels. However it does not actually change the colorimetric meaning of the pixel data. You could say that by converting between gamuts, you are changing frame of reference to the same colors.

This does not replace ‘highlight reconstruction’, but can at most complement it.

After compression the working profile is restored. Choose the workspace ‘Target Compression Gamut’ that will be used to set the gamut limits. Depending on the case you can choose:

  • The display gamut (sRGB, DCI P3,…).

  • The gamut of an output file for use by another software (Prophoto, Rec 2020…).

You can choose any working profile, preferably larger than the one for compression.

You have several settings available in addition to Target Compression Gamut:

  • Threshold: controls the percentage of the outer gamut to affect. A value of 0.8 will compress out of gamut values into the outer 20% of the gamut. The inner 80% of the gamut core will not be affected. You can adjust the colors separately: for example if you wanted to protect magenta and yellow a little more than cyan, you could set the threshold a bit higher for cyan.

  • Maximum Distance Limit: is the distance outside of the gamut boundary to compress to the gamut boundary. For example, a value of 1.2 will compress distance values of 1.2 to a value of 1.0. Individual controls are given for each color component. They are named cyan, magenta and yellow because they actually control the max distance from the edge of the triangle (primaries related to the CIExy diagram), not the corner. For example, boosting the value of the cyan distance limit will increase the distance from which values are mapped to the edge between the blue and green corners of the triangle (primaries). The distance limits also control the RGB ratios of the compressed values, which affects the apparent hue.

  • Power: Control the aggressiveness of the compression curve. Higher power values result in more compressed values distributed closer to the gamut boundary. This will increase the ‘color purity’ or ‘saturation’ once the image has been rendered through a display transform. Higher values have a smoother transition.

It is positioned in the pipeline (and writen in C++) just after the conversion to the working profile. So just after White Balance. I put this in the ‘Color’ Tab, just after ‘White Balance’. I wrote some tooltips that should make it easier to use.

I opened a pull request :
Pull request

Executables :
compgamut

This module should be in Adobe Camera Raw, but I can’t check because I don’t have it.

I based myself on the ACES documents - and on @agriggio Alberto’s work in ART with the CTL, thanks to him.

Aces gamut compress

Aces specifications

Jacques

3 Likes