B2A part 3, turn it on
This CL structures things as we want them to end up:
- prefer B2A over TRC/XYZ
- allow B2A in MakeUsableAsDestination(), but not WithSingleCurve()
I figured we might as well try this first, knowing either of these
optimisms might lead to the CL being reverted. Could stick, who knows?
I don't trust CMYK destinations at all, but they don't work at all
today, so leaving it in work-in-progress state should be harmless.
I think the non-CMYK profiles look pretty good. Some profiles are newly
able to be destinations, with some so-so roundtrips and some wonderful.
And other profiles that had both TRC/XYZ and B2A show diffs, some
improved, some regressed, and some essentially unchanged. It's this mix
of results that has me cautiously optimistic... if this were way off,
we'd expect to see uniformly bad results. :)
Quick notes on particular profiles:
- sRGB_ICC_v4_Appearance.icc: new dest, not great, not so bad.
- sRGB_ICC_v4_beta.icc: ditto... new, not great, not bad.
- sRGB_v4_ICC_preference.icc: new, near perfect!
- BenQ_RL2455.icc: much improved over XYZ/TRC
- Calibrated_A2B_XYZ_Mismatch.icc: bad before, now worse.
- Kodak_sRGB.icc: stays not-great
By far most interesting, with an XYZ PCS where the others all use
Lab. Flailing around with this profile is what lead me to invert
encoding_factor for B2A, nothing more principled. I'd like to
even underflow those principles further, with an exhaustive search
over what encoding_factor results in the best roundtripping for
this profile, to see if that leads to any enlightenment.
Reviewed-by: Brian Osman <firstname.lastname@example.org>
Commit-Queue: Mike Klein <email@example.com>
19 files changed