[argyllcms] Reddish cast in shadows for Perceptual rendering intent (and commentary on gamut mapping)

  • From: Samuel Chia <inksandpaper@xxxxxxxxx>
  • To: argyllcms@xxxxxxxxxxxxx
  • Date: Thu, 8 Mar 2018 12:02:41 +0800

 I've observed that the Perceptual rendering intent causes the grayscale
spine as well as surrounding near-neutral colors to shift to a magenta-red
from about L*30 down to dmax with Argyll printer profiles. This color shift
is not present with Relative Colorimetric rendering, which is the correct
behaviour. The reddish shift is visible in soft proofs, actual prints, and
measurements of printed grayscale stepwedges and in prints of regular
photographs. It is not isolated to one printer+paper combination, I've see
it happen to all profiles I make with Argyll. Here are the Lab a* values of
measurements of grayscale stepwedges printed on Canson Rag Photographique
paper by my Canon iPF8400 printer, graphed with dmax on the left of the
x-axis, and paper white on the right. The shift, while small, is visible.

Perceptual:
In case this inline image does not show in the mailing list, here is a link
to the image on my Dropbox:
https://www.dropbox.com/s/l194seuqbf18jul/image.png?dl=0
[image: Inline images 1]

Relative Colorimetric:
In case this inline image does not show in the mailing list, here is a link
to the image on my Dropbox:
https://www.dropbox.com/s/6fgs99scr0w9845/image%20%281%29.png?dl=0
[image: Inline images 2]

Here is a composite TIFF file of screenshots of the shadow end of a
synthetic white to black gradient and grayscale step wedges, showing the
original neutral RGB target, then the Argyll profile-converted Perceptual
result, and the Rel Col result. Please turn your viewing background to
black in your imaging application of choice when viewing this tiff, to see
the subtle color shift better:

https://www.dropbox.com/s/uq3wdsu8h984u1x/Perceptual%20shift%20to%20magenta_screen.tif?dl=0

And here's a photograph of a print made with several different profile
conversions of grayscale step wedges. While the absolute colour is
impossible to show in the photograph, the *relative* red cast is visible in
the ArgyllCMS Perceptual rendering. This print was made using a profile
generated by an older version of ArgyllCMS, but as far as I know, later
versions to date have not corrected this aspect of the Perceptual rendering
gamut mapping.

https://www.dropbox.com/s/6813whgc1dhe6d1/Argyll%20grayscale%20magenta%20shift.tif?dl=0

I'm not sure what is causing this hue shift for Perceptual but not for Rel
Col. A rounding error in the mapping of dmax perhaps, or a relaxation of
the hue weighting for the mapping, or something to do with the smoothing
code perhaps? It would be great if this could be resolved as the reddish
cast is present in not just the grayscale, but all dark colors. Apparently
I'm not the only person to have noticed this, as user "Unesco" in post #18
of this luminous-landscape thread (
http://forum.luminous-landscape.com/index.php?topic=113165.msg932338#msg932338
) has mentioned it, and perhaps someone else has elsewhere on this mailing
list too, though I tried to search and did not find any in the archives.

A simple workaround for now might be to apply a small curves adjustment in
Photoshop to shift towards green-blue to counteract the reddish cast, but I
would rather the profile just behave properly in this regard.


Gamut mapping:
And please do not say to simply go and use the Rel Col intent for neutral
grayscale, as the reasons to want to use ArgyllCMS's Perceptual rendering
is long, complex and absolutely vital to attaining the best gamut mapping
possible for photographic output. I first suggested to Graeme in September
2015 to create a special "luminance preserving" gamut mapping for the
Perceptual table. All commercial profiling software, including ArgyllCMS,
tend to preserve the chroma over luminance of out-of-gamut colours, to the
point that it hurts the overall contrast and tonality of photographic
images. The gamut mapping characteristics I describe are absolutely not
about subjective or creative interpretation. What it is about, is mapping
that results in the *least* visual shifting to get out-of-gamut colors into
printer space. The ideal result is one that comes visually closest to the
original image, what we saw after spending many hours editing the image on
our monitors to exactly what we like. We know that luminance contrast
changes are most obvious to human vision, followed by hue and then chroma.
So, these goals of gamut mapping are most important to the desired result.


1. A tone curve that is fairly straight from paper white and compresses
tones gradually from around the midpoint to dmax. No contrast increasing
S-curve, or additional brightening or darkening should be done as that
alters the overall tonality and contrast of the original image. Basically
what is needed is the Relative Colorimetric tone curve with Black Point
Compensation applied.
2. Apart from tonal compression of all colors to fit into the dynamic range
of the printer space, and shifting of the grayscale spine to paper white
and printer black, in-gamut colors should not lose chroma. Essentially the
in-gamut colors should be rendered like it is with Colorimetric mapping
(Colorimetric minimized absolute color error), for as minimal visual
shifting as possible.
3. Out-of-gamut (OOG) colors should (most of the time) maintain their
luminance and hue, sacrificing chroma to be clipped/compressed to the gamut
shell of the device. More on that below.
4. The rendering of grayscale should follow the paper white colour from
lightest gray all the way down into the shadows, and then at around
L*30-20, shift to the dmax hue colour. This is something that ArgyllCMS,
out of every single profiling software in the world, does best. I
absolutely love it for this.

Graeme has done a lot of great work towards getting all of this to work
well, but unfortunately the community at large is unaware of the benefits
of this kind of gamut mapping, which I cannot blame them for, as I myself
was not privy to it until about two years ago, when I learned about a very
old profiling software, RT Kit by Color Savvy, which is able to do such a
thing. It is hard to know how much more we can ask for if one does not know
what "better" looks like. Graeme has understandably, and regretfully,
stopped further development of this beautiful mapping for a while now, as
his attention is needed in other equally vital, and probably more
frequently used aspects of ArgyllCMS. Thus, there are a few critical areas
where the luminance preserving "-lp" intent still does not work as desired,
which I hope one day can be made better, so we may all have the best gamut
mapping the world has NEVER seen. At this point, all the other major
hurdles to achieving exceptional image quality have been breached, most
recently with Anders Toger's Lumariver camera profiling software, superior
demosaicing interpolators in open source raw converters like Raw Therapee,
anti-reflective glazing that do not shift in reflection hue colour for
framing, beautiful matte inkjet paper that can hit a dmax of L*15 or less
with matte inks for a stunning, beautiful, sensual print that no glossy or
semi-gloss or baryta media will ever achieve etc. etc. Gamut mapping of
printer profiles remains the last, final hurdle to be breached - towards
exceptional printed colour.

Do not for a second think that "smart" mapping, which takes into account
the source gamut and does individual gamut compression depending on that
into printer space, is somehow the solution for gamut mapping of images.
Not to mention when I was testing it out while discussing this topic with
Graeme over private email, that the process is slow, convoluted and fails
to work with very large image files over 4GB, which I routinely send to my
printer for printing (600ppi for a 40x60 inch print is 4.8GB). The program
just crashes when it has to parse so much data, while printer drivers and
RIPs and Adobe CMM handles the data load just fine (we still have to depend
on V2 ICC printing profiles). It simply does not work reasonably well with
current printing workflows and CMMs. But let's consider the original
problem for a moment: Ok, we have smart mapping, so the image's gamut is
known, and the output gamut is known. Fine. How then will you decide what
colours map to what? We as the users would still have zero control over how
the colours are mapped by software. What if the in-gamut colours get
compressed more than we would like? Can we ask for no compression? No we
can't. Not yet at least. We need to have control of the shifting colors in
such a way that does not ruin the carefully balanced tonal relationships
that our carefully edited master images are dependent on.

And we can! At least when the luminance-preservation mapping of ArgyllCMS
is fully realized.

It's a common misunderstanding that constant luminance mapping will make
regular photographic images (rather than synthetic gradients) look very
flat. On the contrary, it does the exact opposite since it attempts to
preserve the tonality and contrast of the original. Preserving some chroma
and sacrificing some luminance causes the tonal relationships in the detail
of an image to be destroyed as light OOG colors have to get darker and dark
OOG colors have to get lighter to move into the printer's gamut, always
ending up in a flatter result. Loss of contrast and luminance detail is
very visible - on all images. Loss of chroma is often invisible in most
photographs, and where it is visible it is almost always preferable to
sacrifice it as the visual shifting is less than if luminance were
sacrificed. The problem is we often use synthetic targets to evaluate the
way profiles render color, which unfortunately makes a dead-constant
luminance mapping appear not so good, not least because synthetic gradients
contain a lot of unnatural color, but also because we almost never have a
perfect gradient of very saturated pure color we have to deal with in
normal real world photographs. An exception might be photos with
out-of-focus colourful flowers in the background which can create strong
gradients of colour. So the following is proposed:

Individual taste matters, and one may desire to preserve more saturation
instead of luminance in certain situations. So what is needed are options
to specify the weighting of luminance vs saturation preservation, like the
"Slope" setting in Color Savvy. It could be like a sliding scale parameter
that go from 100% - 0% for luminance preservation. This control is needed
so we can choose the balance of mapping one would desire. It is not about
serving any one individual's creative desires for color rendering, because
the user is supposed to tweak the balance of luminance vs saturation
preservation for the best result. We could say -- make a bouquet of 8
profiles for each printer+paper combination, with varying degrees of
luminance preservation and soft-proof with them to see which rendering
suits the image in question best, and chose that, and then print as per
normal.

There are probably more than several ways to affect the chroma vs luminance
tradeoff. Graeme has at the moment, added a compression "-s" function to
Colprof, which compresses in-gamut colours more to accommodate out-of-gamut
colours. While this sounds good, in practice it causes large shifts in the
luminance of in-gamut and out-of-gamut colours, which should not happen.

Color Savvy's RT Kit that has two unique parameters (unique to Savvy)
tweaked which affects the OOG colors mapping: the "Slope" setting and the
"Level" setting. The "Slope" setting controls the trade-off between
luminance preservation and chroma preservation - a setting of zero gives
maximal luminance preservation, higher values sacrifice more and more
luminance for gains in chroma. The other setting, "Levels", appears to
affect the distinction between colors of the same hue and L*. At zero, all
the OOG colors map horizontally straight in on the luminance plane to a
point (colours get clipped). At larger setting values, the vectors fan out
slightly on the gamut shell, so this is more like a clipping adjustment,
except it does not use compression, more like luminance shifting. It can
sometimes cause synthetic gradients to look a little weird.

If you are still following me on this rather long treatise, I thank you for
your time and attention, and I hope you begin to see now how important all
of this is. We should all want better colour mapping for our prints!


Samuel Chia
cacaoeditions.com

PNG image

PNG image

Other related posts: