wohlberg.net
public
HomePhotographyScanner Profiling › Custom Profiles
› Software › Photography

Custom Colour Profiles

A custom colour profile for a specific device is necessary to obtain the most accurate reproduction of colours in scanned slides. The requirements for constructing such a profile are:


Profile Construction

The two main open source options are LProf and Argyll CMS. These seem to give similar quality results (see the comparison below), and while LProf has a GUI interface which makes it easier to use initially, the command line interface of Argyll CMS allows scripting of more complex operations.

Single Scan/Reference

The simplest (and usual) approach is to construct a profile for the film type of one specific IT8.7 slide. The following sh/bash script segments work under Ubuntu 10.04 with package argyll installed; minor changes may be required for a different OS:

      # This should be the path to your IT8.7 slide scan
      scn='filename_of_it8_scan.tif'
      # This should be the path to the corresponding reference
      # file (the name is something like f070907.txt for Wolf
      # Faust targets)
      ref='filename_of_reference_file.txt'
      # The scanin tool needs the IT8.7 layout definition
      cht='/usr/share/color/argyll/ref/it8.cht'
      # Generate a diagnostic image so that one can check that
      # scanin correctly identified the IT8.7 patches in the scan
      dgi='scanin_diag.tif'
      # Measure the patches in the scan and write results, together
      # with reference data, into scan.ti3
      scanin -v -p -dipo -O measurement.ti3 $scn $cht $ref $dgi > scanin.log
    

The algorithm used by scanin for auto-aligning the scan to the IT8.7 template does not work reliably for high resolution scans. If the diagnostic image indicates that it has failed, downsampling using Imagemagick usually seems to resolve the problem:

     convert scan.tif -geometry 50% scan_lowres.tif
    

When a meaningful measurement file has been created, one can move on to building the actual device profile:

      # Set up profile metadata
      mnf='Nikon'
      mdl='Coolscan 9000ED'
      dsc='Custom profile description here'
      cpr='Desired copyright notice here'
      # Using -ax gave lower dE in my experiments, but -al (the
      # default) is also worth trying. If a small profile is needed,
      # -qm seems to give only slightly higher dE values than -qh.
      opt='-ax -bn -nc -qh'
      # Create the profile
      colprof -v -A"$mnf" -M"$mdl" -D"$dsc" -C"$cpr" $opt -O profile.icc measurement > colprof.log
    

Finally, if desired, one can compute dE values for the profile applied to its own measurement data, and also VRML diagrams of the meaurement errors and profile gamut:

      profcheck -c -w -e measurement.ti3 profile.icc > profcheck.log
      iccgamut -w profile.icc
    

Significantly more information, and Argyll CMS instructions for Windows users, are provided by Marcel Patek.


Composite Profile: Multiple Scans/References

It is also possible to construct a composite profile for a number of different scans and reference files. Such a profile could be expected, for example, to give better performance for scans of a film type not represented in the available set of IT8.7 slides. Hal Engel has provided detailed instructions on how to create composite profiles using LProf. The procedure for creating composite measurement and reference files is quite tedious, but can be largely automated using the cgatscmpst bash script as follows:

      # Arguments are the reference files to be included
      cgatscmpst ref1.txt ref2.txt ... > cmpstref.txt
      # Arguments are LProf measurement files which can be located
      # following the instructions by Hal Engel 
      cgatscmpst msr1.cgt msr2.cgt ... > cmpstmsr.cgt
    

This script will also generate a valid composite measurement file for Argyll CMS if the arguments provided are a set of .ti3 measurement files. Once the composite reference and measurement files have been constructed, one can apply the relevant part of the single-scan profile construction procedure to generate a composite profile.


Profile Error Comparison

In the usage example above, the Argyll CMS profcheck utility is used to check the error in applying a profile to the measurement data used to construct it, but it can also be used to determine the error in applying a profile to a different set of measurement data. The table below displays the results of such a comparison. Each column corresponds to the measurement data for a different IT8.7 scan (a070525, e070508, f070907, and n060527 are Agfa RSX, Kodak Ektachrome, Fuji Provia, and Fuji Velvia 100 IT8.7 slides respectively), and each row corresponds to a different profile constructed using a selection of this measurement data. Profile names either indicate a single IT8.7 scan, or a composite profile (allcmpst was constructed from all four measurement files, agfjcmpst excluded the Ektachrome measurements, and fujicmpst made use of the Fuji Provia and Velvia 100 measurements), and the suffixes indicate the profile construction software and settings (_qh and _qm correspond to Argyll CMS colprof with high and medium quality respectively, and _r33 and _r20 correspond to LProf with resolution 33 and 20 respectively).

CIE94 dE (mean / max) profile comparison on four IT8.7 targets
Profile a070525 e070508 f070907 n060527 Mean Max
allcmpst_qh 0.50 / 2.45 0.55 / 2.48 0.43 / 3.11 0.61 / 2.76 0.52 / 2.70 0.61 / 3.11
allcmpst_qm 0.95 / 3.51 0.94 / 3.89 0.90 / 3.00 1.07 / 3.15 0.96 / 3.39 1.07 / 3.89
allcmpst_r33 0.93 / 2.05 0.92 / 2.62 1.22 / 2.33 1.31 / 3.23 1.09 / 2.56 1.31 / 3.23
allcmpst_r20 0.95 / 1.93 0.92 / 2.80 1.27 / 2.73 1.32 / 3.19 1.11 / 2.66 1.32 / 3.19
agfjcmpst_qh 0.42 / 3.13 1.57 / 6.59 0.33 / 2.12 0.49 / 3.29 0.70 / 3.78 1.57 / 6.59
agfjcmpst_qm 0.90 / 7.58 1.65 / 6.11 0.74 / 5.93 1.02 / 4.84 1.08 / 6.12 1.65 / 7.58
fujicmpst_qh 1.80 / 4.06 1.66 / 5.73 0.23 / 2.33 0.26 / 2.54 0.99 / 3.67 1.80 / 5.73
fujicmpst_qm 1.86 / 6.41 1.78 / 6.39 0.62 / 5.60 0.71 / 5.21 1.24 / 5.90 1.86 / 6.41
n060527_r20 1.99 / 4.27 1.51 / 6.19 2.00 / 4.12 0.60 / 5.80 1.52 / 5.10 2.00 / 6.19
e070508_qh 1.22 / 3.14 0.07 / 1.15 2.06 / 4.12 1.67 / 5.29 1.25 / 3.43 2.06 / 5.29
e070508_qm 1.26 / 3.22 0.28 / 1.85 2.09 / 4.29 1.72 / 6.84 1.34 / 4.05 2.09 / 6.84
a070525_qm 0.21 / 1.68 1.41 / 4.04 1.87 / 5.19 2.11 / 7.59 1.40 / 4.62 2.11 / 7.59
a070525_qh 0.06 / 0.77 1.37 / 3.69 1.83 / 6.51 2.13 / 8.16 1.35 / 4.78 2.13 / 8.16
e070508_r20 1.25 / 5.25 0.64 / 2.67 2.15 / 6.08 1.90 /10.72 1.48 / 6.18 2.15 /10.72
n060527_qh 2.03 / 4.26 1.56 / 6.44 2.16 / 4.27 0.06 / 1.11 1.45 / 4.02 2.16 / 6.44
n060527_qm 2.03 / 4.77 1.58 / 6.18 2.17 / 4.36 0.18 / 2.42 1.49 / 4.43 2.17 / 6.18
f070907_qh 1.74 / 4.29 2.05 / 4.18 0.06 / 0.67 2.20 / 6.59 1.51 / 3.93 2.20 / 6.59
f070907_qm 1.76 / 4.27 2.10 / 4.17 0.18 / 1.35 2.22 / 6.10 1.57 / 3.97 2.22 / 6.10
f070907_r20 1.78 / 3.81 2.14 / 4.08 0.52 / 2.87 2.35 / 6.29 1.70 / 4.26 2.35 / 6.29
a070525_r20 0.51 / 2.44 1.36 / 4.14 1.88 / 5.01 2.36 / 8.45 1.53 / 5.01 2.36 / 8.45
f070907_r33 1.79 / 3.82 2.16 / 4.07 0.51 / 2.86 2.38 / 6.54 1.71 / 4.32 2.38 / 6.54

As might be expected, the composite profile constructed using all four measurements show the best overall performance across the measurement set.


Nikon Scan CMS Comparison

The following table compares colour error measurements, on a Fuji Provia IT8.7 target, for scans made with Nikon CMS both off and on. The scan with Nikon CMS off was compared with the IT8.7 reference data using a custom profile constructed on a different scan of the same target (made more than a year after the test scan), and the scan with Nikon CMS on was compared with the IT8.7 reference data using the profile embedded in the image (extracted using exiftool with the -icc_profile flag). The dE values were computed using the Argyll CMS profcheck utility.

CIE94 dE comparison on Fuji Provia IT8.7 target
Scan Profile dE Mean dE Max
Nikon CMS Off Argyll F070907 0.66 2.16
Nikon CMS On Nikon AdobeWide RGB 4.35 9.08

While colour error measurements only represent one aspect of colour profile quality, these dE results do suggest that Nikon CMS performs relatively poorly compared with custom profiling and colour management external to Nikon Scsan.


Example Profiles

The profiles are provided for reference purposes only -- one should not expect them to provide good results on any other Coolscan 9000ED than the one for which they were made.


Profile CIE94 dE (mean/max) Colour Error Gamut
All Film 0.39 / 2.98 VRML VRML
Fuji Provia, Astia, and Sensia 0.05 / 0.66 VRML VRML
Fuji Velvia 100, 100F and Astia 100F 0.05 / 1.00 VRML VRML


Comments, suggestions, error corrections etc. are welcome.