[argyllcms] Re: Calculating film LUTs for a film recorder

  • From: Graeme Gill <graeme@xxxxxxxxxxxxx>
  • To: argyllcms@xxxxxxxxxxxxx
  • Date: Tue, 14 Aug 2012 11:37:47 +1000

Philip Pemberton wrote:
> A while ago I managed to pick up a Polaroid HR-6000 film recorder.
> Basically, it's a white CRT, an RGB filter wheel and a 35mm (or Polaroid
> packfilm) camera and a controller board with a SCSI port.

Ah yes - the DICENet RIP had a driver for something very like that
(except it used GPIB as the interface - rather slow).

> Image data is sent from the host (PC, Mac, whatever) as a {x}*{y}*3
> array of bytes (usually 4096x2732xRGB for 35mm). This data is fed to an
> 8:8 translation LUT (which converts a byte to a byte, thus allowing
> PseudoColor images to be printed without applying the palette data), and
> then on to an 8:11 LUT which converts the final pixel values into an
> exposure level value for that colour channel.
> The problem is, all the LUTs I have are for ancient and long-obsolete
> film stock. I'd like to create some new ones for more modern films (i.e.
> stuff I can still buy - Fuji FP100C packfilm is my main target).
> I can load a linear LUT into the printer and expose a piece of film to
> whatever image I like, then measure the density levels (either with my
> Xrite 890 or the flatbed scanner -- colour calibrated with a Wolf-Faust
> target). The problem is... how would I go about turning the "exposure
> value E produced density D" data (I think this might count as a
> Hurter-Driffield curve) and converting it into a LUT?

One issue I see is that you can't directly set any 11 bit value for
the test chart. There are certainly ways of doing this, but
you would need to create a suitable 8:11 LUT and then encode the
test chart values accordingly. Of course you may just
skip this by loading the LUT with a linear ramp and then
being content with <= 256 levels evenly spread.

> Can I do this with Argyll? If not, then what algorithms should I be
> looking at implementing?

I suspect that you can get a fair way with Argyll, if you make use of
the print calibration tool <http://www.argyllcms.com/doc/printcal.html>,
except that it's not really set up for density. A spectroscan T would
be the ideal instrument. I guess that density could be converted
to a pseudo-L*a*b* and fed into printcal (ie. convert to linear density
then apply a fake gamma = 1 RGB profile).
See <http://www.argyllcms.com/doc/Scenarios.html#PC1>.

> All the curves I've decrypted and dumped seem to follow the same format:
> a steep rise at the beginning, a pseudo-linear ramp, and a second steep
> rise towards the end. I get the impression this is somehow an inverse of
> the H-D curve, but I have no idea how to calculate it... About four
> hours of Google searching hasn't revealed anything useful :(

It's always hard to know what a calibration is intended to do. Is it
technical (ie. linear by some objective measure), or is there some
level of art in it, intended to make certain things "look nice".

You have a limited amount of control over this with printcal,
but the printcal result is really intended just to linearize the
device in front of profiling.

Graeme Gill.

Other related posts: