[argyllcms] Re: FWA correction in XYZ space

  • From: Graeme Gill <graeme@xxxxxxxxxxxxx>
  • To: argyllcms@xxxxxxxxxxxxx
  • Date: Fri, 29 Jul 2005 12:38:54 +1000

Gerhard Fuernkranz wrote:

The following heretical thought just came into my mind: I'm actually wondering whether it might be possible to apply FWA compensation somehow in tri-chromatic space.

My ulterior motive is to measure a printer target (> 1000 patches) with a DTP51 (auto-scan, but no spectral readings), and to correct the DTP51 readings, based on a model whose parameters are estimated from a *small* number of spectral measurements taken with a hand-held spectrometer. I guess the intentions is clear - I'm too lazy to measure thousands of patches with a hand-held instrument :-)

I suspect, a 3x3 matrix + offset term is probably not sufficient as model for this purpose, is it? Is there another promising model you could imagine for converting XYZ_dtp51 to XYZ_fwa_corrected?

It sounds feasible, with some loss of accuracy of course. It depends somewhat on how much you're willing to characterize the device/illuminant response using the spectrometer.

A classic (but somewhat elaborate approach) would be to build up a model
that translates the XYZ values into estimated spectral values
for that device, and then simply apply the spectral FWA algorithm
as is. Essential to do this you would need something like
a spectral Neugenbauer model (such as what mpp supports), and
do some minimal spectral measurements to establish the colorant
spectra, and a rough device response (e.g. a rough mpp profile
using something like 50 or so spectrally measured patches.)

For each XYZ you measure, you would need to invert the Neugenbauer model
to determine the device values that produce the measured XYZ value, and then
use the spectral values out of the Neugenbauer model as the input to
the FWA. (For a CMYK device, you would make the inversion deterministic
by also aiming for a K value close to that actually used to print the test
patch.)

I'm not sure quite how one would do this purely in XYZ. Essentially it might
be something like a Bradford transform, where you want to transform
the XYZ into an alternate space, where one of the parameters in
translated through a curve, and then the inverse transform is made
back to XYZ. The transformed space would be one that most separates
the effects of FWA into an independent channel.
The translation curve would somehow have to be "calibrated" from
some of the spectral values (perhaps a yellow ramp ?) that
has been FWA corrected using the spectral approach.

Of the two ideas, the first may actually be the simplest to implement,
since the machinery for making an mpp profile already exists,
and using the multivariate minimizer to invert it should be
straightforward. If I were doing it, I'd make a separate utility
to convert a .ti3 without spectral into a spectral .ti3.

Graeme Gill.


Other related posts: