[argyllcms] Re: Verifying profile quality of LUT-based scanner and printer profiles

  • From: Milton Taylor <milton.taylor@xxxxxxxxxxx>
  • To: argyllcms@xxxxxxxxxxxxx
  • Date: Mon, 20 Mar 2006 11:01:37 +1100

Many thanks for the detailed reply Graeme. Some followup questions/comments then:


With the currently available release of Argyll, it is probably advisable
to specify a fairly high level of smoothing, by using -r 1.0 or so.
The next version will have better defaults in this regard, and
shouldn't usually need a -r parameter. This should result in a smoother
profile with a higher self fit dE.

I will rebuild the profile, but other than seeing what effect it has on dE (I would expect it might go up slightly?), I'm not really sure how to verify if it's any better.



The one that went straight to the printer was interesting. The hues are not evenly represented in terms of their 'share' of the 360 degree hue spectrum. Yellows and cyans are quite skinny compared to blues, reds and greens. However, at least it came out with very even colour progressions and shifts in the Hue/Sat and Hue/Light charts. The colours are of course just reflecting raw RGB inputs, so I would expect it to look smooth, even if these are non-managed colours.

Actually, it's not something you should expect would always come out
smooth, because the printer isn't an RGB device, and (assuming Canon isn't
using a simple 1.0 - RGB type conversion to CMY), mapping the RGB gamut
onto the quite differently shaped CMY(K) gamut, while maintaining
some degree of absolute and relative color matching, together
with smoothness, is not that easy.

You're right...what I should have said was that I would expect the manufacturer to have ensured a smooth result through the continuum of raw device RGB values, and this it does seem to do. However the greys are not neutral enough and the colours are probably out somewhat compared to sRGB.



However, when printing the same chart through the new profile, (using sRGB as the assigned source profile), the result looks pretty awful. There are clearly serious discontinuities in the LUT tables, as you can lots of banding and distinct edges and steps at numerous points in the HSL charts.

It depends rather critically what intent you were using, and what source gamut the profile was setup for. To have a hope of a smooth result for the sort of "RGB rainbow" tests in the above chart, all this has to be right. (The printer is effectively using a device link when it's running in "RGB" mode, so that it can get it right.)

So, you need to generate the profile using -S srgb.icm (or -s srgb.icm),
and then have srgb.icm as the source profile, and use perceptual
intent for the destination (printer) profile when converting the test chart.

I was using relative colorimetric. In typical use Perceptual would probably be better for this type of printer, but if I wanted to use it as a VERY rough idea of color accuracy and (can live with a little gamut clipping here and there in the process), then Relative would be my default choice.


I will regenerate the profile for Perceptual and see what the result is then.

(or you need to convert using a device link with the right intent).

I use Photoshop so I'm not sure how this works with device links?

Now, assuming you did set it up this way, it might still give a
disappointing result. The "rainbow" tests are pretty tough, and
not often reflected in real world images, since the rainbow
is the surface of the gamut, and few colors in a real image
are on the gamut surface. All I can say is, that this particular
aspect will be much improved in the next release of Argyll,
since it's something I've been working on.

Interestingly, I did a soft proof of Canon's own icm profile for this printer, and the rainbow test shows reasonably well on that one...still gamut clipping of sRGB range, but only slight banding visible on the rainbow really. Even at Rel Col intent.

I think I need to try it with a wider gamut source-space as well, because I suspect the printer is capable of making some colours that fall well outside sRGB. The fully saturated greens that appear on the "raw" rainbow test haven't showed up on the sRGB rainbow test.

Generally the result through the relative colorimetric intent
will produce banding type artefacts, due to the effects of gamut
clipping. You shouldn't expect smoothness for any intent except
perceptual. Even saturation may be a bit bumpy at the source gamut
surface, since it prioritizes saturation over other qualities.

Fortunately I never need to use saturation, and as said before would probably not use perceptual much either.

So here are my questions:
1. I assume a LUT approach is always going to show discontinuities in an HSL chart like this. Is it something to be overly concerned about? Am I seeing something here that is much worse than normal because of (a), (b) and (c) above? I imagine it would be a problem if you were printing anything that had a smooth gradient in it, like a skin tone or a blue sky...I'm sure unwanted banding would be the result. I once saw this happen on some lab proofs from a commercial colour lab, and they couldn't explain why it happened. But I think I can now!

It depends a lot on whether this effect is confined to source gamut surface colors, or whether it also occurs for blends of in-gamut colors.

I will check that out....if it's doing it with in-gamut colors I would be more worried.

4. How can I be sure that my film scanner profile doesn't show similar disturbing discontinuities...is there a way to visualise this? Once again, I'm worried about banding when it's scanning anything with a smooth tone progression in it. Perhaps I should try making a shaper/matrix profile for it to see what that produces.

You could try running a similar "rainbow" test chart through the scanner profile, and see what sort of effects you get in the output. It is a bit difficult separating where an effect comes from though. Is it in the scanner profile, or in the way the output colors are being represented on the display ? You wouldn't expect any sort of color accuracy with this test of course, unless you had a way of converting back to the scanner colorspace without introducing banding effects.


I tried that. There is some effect caused by the display definitely (I'm using rather bad LCD...don't ask...)...but generally it didn't look too bad. How does this work though? i.e. I'm using an input profile as if it was an output profile?



5. Why is it not possible to produce a shaper/matrix profile for an output profile? I assume it would have to be CMYK so that the real ink channels were being directly controlled by the printing application.

You can attempt to do so for a printer that emulates an RGB device, and if it's emulation was very very good, and it compressed the gamut sufficiently to emulate an additive device (leading to a poor gamut), the matrix might fit reasonably well. But if the emulated RGB at all reflects the behaviour of the underlying CMYK printer and its gamut, the matrix will be a very poor fit to the device (ie. 10+ delta E errors is the sort of thing I'd expect).

I'd like to try that just for the hell of it, but the profile.exe won't let me select -as to create an output profile? (I get an error message)



Cheers...

Other related posts: