i1Profiler .cxf Optimization Files

Device color profiles may be optimized by the addition of targeted color measurements.  When profiling a device from scratch, a “volley” of colors is printed and measured, with the expectation that the gamut of the device will be fully represented.  But if certain colors are of particular interest, such as grays and near-grays, more precise targeting may be of value, because it is not known in advance what the device’s actual response will be.  RGB (127, 127, 127), for example, may not print as a neutral gray.

i1Profiler is able to optimize printer profiles by converting selected Lab colors to print values through an existing profile.  This will help to ensure that colors of interest, such as grays, are accurately represented in the profile.  The application will also select colors to “fill in the gaps” of the profile.

One first generates a set of Lab values in the form of a .cxf (color exchage format) file.  The colors are then loaded as spot colors on the Patch Set page of i1Profiler’s printer optimization workflow.  Select an existing profile, then click the third little button in the upper left of the patch set window (the one with a picture of a swatch set).  Click Load spot colors, then navigate to the desired .cxf file. “Smart patches” to fill in gaps in the profile may also be generated (the number must be at least 50).  Colors may also be extracted from an image, but the results may not be what one might expect.  To see the sum of all the added colors, click the button with the sigma on it.  One then prints the colors as a test chart and creates a new profile based on the old, “upgraded” with the addition of new measurements.

Display profiles may be similarly optimized, but the process is not formally identified as such.  On the Patch Set page of the display profiling workflow, spot color Lab values are evidently run through the currently-active display profile, optimizing the selection of colors for profiling.

The optimization concept may be intepreted in different ways.  On one hand, a high-quality profile may be fine-tuned to ensure that colors of interest are accurately represented.  On the other hand, optimization may be incorporated into the workflow; a small, simple profile may be generated first, and used as the basis for more accurate selection of a larger number of colors, or specific colors for a specialized profile such as black-and-white or sepia.  The value of optimizing a high-quality profile has been debated; after optimizing a profile originally created using 1000+ patches, the results are almost imperceptible.  Neil Snape, for example, believes that optimization seems to be intended for profiles created with small patch sets.

I had wanted to optimize profiles for sepia tones and perhaps other colors such as cyanotypes, as well as small-gamut grays and near-grays.  One way to do it is to select colors from an image in an image editor, such as a gradient colorized with a Hue/Saturation layer, or a duotone, and record their Lab values.  Note that colors generated in this manner are device-specific, and depend on the color space (ProPhoto etc.) in which they are generated.  Below are links to a number of generators that will produce .cxf files from both Lab and device-specific colors for optimization.  The values are color managed for several color spaces.  Browsers by specification display colors in sRGB; the generated color values are converted to sRGB patches for accurate display (within the limits of your monitor).  Run the scripts, then save the output as regular ANSI-encoded text files with the extension .cxf.  If the stylesheet cxf.xsl is in the same folder, you can open the .cxf files with a browser to see results formatted as in the illustration below.  You may have to add an .xml extension to the files to get them to open in some browsers.  You can also do this with i1Profiler’s patch sets such as .pxf (printer) or .dptf (monitor), but you have to add the stylesheet specification to the file (open it with a plain text editor such as Notepad or gedit, and add the second line below:)

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="cxf.xsl"?>


.cxf File Generators

Lab:  generates CIELab colors directly.
LCh (CIELCh, or Lightness, Chroma, hue):  a cylindrical representation of CIELab, analogous to HSB or HSL.
Colorize/HSL:  generates HSL (Hue, Saturation, Lightness) values in the same way that image editors do via “Colorize” or “Recolor.”  Intended to imitate the appearance of a toned photograph or a duotone; the colors fade to white at the top, and black at the bottom.
HSB (Hue, Saturation, Brightness): colors tend to retain their hue all the way to the top and bottom; emphasizes pastel tints and rich shades.
RGB:  maybe someone will find a use for this one.  (Optimization in i1Profiler requires Lab values.)
Custom Lab:  enter your own values and convert them to a .cxf file.

Stylesheet:  cxf.xsl.  If this file is in the same folder, you can open .cxf files with a browser to see formatted results as shown below.  You may have to add an .xml extension to the files to get them to open in some browsers.
2023 UPDATE - this was true a long time ago; nowadays, the only browsers I have that still do it are Falkon and qutebrowser (go Qt !). 

Sample .cxf file:  LabGrays179.cxf.

Below is a set of HSL patches from a .cxf file, colorized with Hue = 50.

Source:  Colorize/HSL ranges
Color space:  ProPhoto2255 RGB
Patch count:  44

  H S L L a b
No. HSL L*a*b*
1 50410 6.095730.320821.52125
2 50418 17.733110.589402.95360
3 50426 28.174360.771843.86781
4 50434 37.778380.939644.70872
5 50442 46.792241.097145.49795
6 50450 55.356661.246786.24783
7 50458 63.077301.003165.04145
8 50466 70.532620.780933.94041
9 50474 77.761050.575142.92029
10 50482 84.792060.382411.96448
11 50490 91.648930.200331.06116
12 50810 6.506170.676623.02771
13 50818 18.473831.185575.91709
14 50826 29.144361.552547.74857
15 50834 38.959261.890089.43320
16 50842 48.171052.2068711.01431
17 50850 56.923532.5078812.51659
18 50858 64.346462.0199110.09704
19 50866 71.527671.575077.89116
20 50874 78.500541.163465.84886
21 50882 85.290980.778283.93626
22 50890 91.919660.414662.12933
23 501210 6.931321.065474.51882
24 501218 19.208951.783068.88966
25 501226 30.107012.3349611.64124
26 501234 40.131212.8426114.17218
27 501242 49.539433.3190716.54760
28 501250 58.478553.7717618.80457
29 501258 65.608543.0390615.16300
30 501266 72.518722.3709011.84731
31 501274 79.237981.752798.78003
32 501282 85.789021.174625.90909
33 501290 92.190150.629133.19777
34 501610 7.371271.487645.99510
35 501618 19.938662.3808911.87264
36 501626 31.062593.1178315.54753
37 501634 41.294543.7956818.92774
38 501642 50.897754.4318822.10024
39 501650 60.022145.0363625.11456
40 501658 66.863734.0596120.24046
41 501666 73.505863.1679915.80932
42 501674 79.973402.3429611.71394
43 501682 86.286211.571417.88300
44 501690 92.460410.843734.26650