Well, one thing's for certain: we have lots of tuning left
to do on gimp-print. The good news is that a lot of it
might just be parameter tuning rather than a massive
overhaul.
Niels Gram Jeppesen forwarded me a photo of a friend's
car. Now, said car is a beautiful red Alfa Romeo, and he
was justly disappointed with the somewhat orange cast the
car was taking on. He didn't notice (or took pity and
didn't comment on) the rather strange color of the grass. I
tried fiddling around, boosting the saturation and
decreasing the yellow, and got slightly better results.
This morning I printed out a photograph of my wedding (the
same photograph that's on my home page) to see how far
things have come since 3.0 (or maybe an early 3.1, I don't
know how long ago I printed it). Well, in terms of
smoothness of dithering, we've certainly come a long way.
However, it was definitely oversaturated, and had a somewhat
yellow cast. Hmm.
Photograph mode has some hacks to improve color fidelity.
These hacks hacks reduce the CMY levels in regions of fairly
pure CMY (which is needed to prevent CMY from reaching
saturation too quickly), and do some other things which
appeared to reduce saturation (theoretically, they should
have reduced saturation also; increasing the level of the
least dominant ink will do so by definition). So I boosted
the baseline saturation by 1.6 to compensate. Well, it
appears that in practice that's going way too far. In fact,
I got a really good print with saturation set to .625 -- the
exact inverse of 1.6! So that suggests that no saturation
boost at all is the right way to go. That's nice; it will
speed things up too.
Anyway, with saturation at .625, yellow at .8, and overall
gamma of .9 (that's also scaled from a printer and
application specific baseline) I got some very nice prints.
A brilliant sunset shot, unfortunately, is proving harder to
fix.
What's really amazing me here is that reducing the
saturation increases the perceived saturation of the color
of the car. If I look at it very closely, though, the car
isn't fully saturated at all; it's one of those perceptual
quirks that makes it look like a brilliant, earth-shattering
red. I don't have enough grounding in color theory to fully
understand the details, but I think that what's going on is
that cyan is the least dominant color in the output, so
increasing the saturation decreases the cyan, which leaves
only magenta and yellow. The end result is that the output
looks slightly orange. Decreasing the gamma darkens the
output, which also increases the perceived saturation.
What gimp-print really needs to do is to do everything in
CMY space rather than RGB space, I think. That isn't going
to magically solve anything, but it will at least make
things consistent and hopefully easier to solve.
Of course, part of the story is that every printer is
different. The 6 color Epson Stylus Photo EX is a more
difficult printer to get light greens out of than a 4 color
model; the result is that grass tends to look a bit brown.
This isn't quite as offensive as one might think, because
it's actually a fairly natural brown. When the saturation
is less extreme, this is also less noticeable.
In any event, I think I'm probably going to rescale the
saturation, since that's clearly wrong. The issue of yellow
is very printer and lighting specific, and I think I'm going
to leave it alone for now. Gamma is also a tough call,
since every monitor's gamma is different.
I'm looking forward to khk's
color management stuff for 4.1/4.2.