Accurate Image Manipulation for Desktop Publishing
Calibration


XLProfiler

XLProfiler is freeware ICC profiler for digital cameras and scanner, it is a combination of a Microsoft Excel Workbook and a standard Adobe Photoshop plug-in filter that support both 16-bit/c and 8-bit/c mode. Also the generated ICC profiles are free, you may freely distribute them. Please do read the AIM-DTP Copyright if you plan to include profiles or CGIs created with XLProfiler into a commercial product.

XLProfiler creates high quality colorimetric ICC profiles, in addition XLProfiler creates accurate CGI Simulations for the Q-60 and IT8/7 calibration targets in 16-bit/c TIFF format with the ICC profile embedded.

XLProfiler is compatible with all image editing applications that support the Adobe Photoshop type plug-in standard and that can save uncompressed TIF images in PC format such as Adobe Photoshop and Corel PhotoPaint.

Screen-shot of XLProfiler (opens to another browser window).

What is needed for profiling with XLProfiler

  1. Microsoft Excel, Windows version. If your have a language localized Excel then you'll need in addition the two Solver files (SOLVER.XLA and SOLVER32.DLL) from English version of Excel in order to XLProfiler to run. Users with French version of Excel need to update to the latest service pack from Microsoft then at least Excel 2000 will open XLProfiler, so far no one using French version of Excel 97 or earlier have not been able to open it, this has to do with the password protection of the XLProfiler workbook that is 128-bit and such "strong" protection was illegal in France up to 1999.
  2. Any normal IT8/7 or Q-60 calibration target with the associated reference file in ASCII form. Also targets from Monaco Systems can be used, note that the reference file has to be expanded (append ".gz" to the binary file, open that with WinZip and extract the ASCII file). (*)
  3. An image editing application that is compatible with the the Adobe Photoshop type plug-in standard (*.8bf plug-ins).
  4. The XLProfiler package.

    (*) The Praxisoft, WiziWYG target could be used too if the compression of their reference files could be opened, I do not know how.

About ICC profiles created by XLProfiler

XLProfiler created ICC profiles use the CIE XYZ Profile Connection Space (PCS) and are based on TRC curve linearization followed by the gamut matrix -method as described in the ICC specification, section 6.3.1.2. The TRC curves are solved in floating-point and written into the profile using 12-bit/c precision (or using 4096 points per channel), where most of the other ICC profilers only use 256 points per channel. This means that there is a lot of benefits in working in the 16-bit/c mode when using XLProfiler created ICC profiles.

The TRC curves & gamut matrix -method (colorimetric profile) provides very good and smooth profiling since this method actually solves the device parameters. All the other ICC profile types use dissectioning and interpolation, basically 3-dimensional lookup tables where the 264 or 288 color patches from the scan or digital camera shot of the target are simply entered into a 3-dimensional table and then all the the rest of the color codes are interpolated based on those scan patches, this will often "tear" the image data and can not estimate the dark and light end of the capture range well.

XLProfiler does not use CIE Lab delta E weighting in profile creation nor does it report the dE values.

Most but not all acquire devices can be profiled

XLProfiler does an exhaustive search for the colorimetric parameters of the device so all properly behaving acquire devices can be profiled at very high quality and accuracy.

However some acquire devices apply non-colorimetric tweaking over the image data such as "skin-tone enhancement" or similar that affect to the color gamut only locally. When such device is colorimetricly profiled then even if the profile may seem to be very good (errors can be very small) that local area of the color gamut that has the non-colorimetric tweaking will be miserably off. Some scanner and many consumer grade digicams belong to this category.

Particularly consumer grade digicams that conform with the EXIF 2.1 Jpeg standard can usually not be calibrated well, not with the XLProfiler nor with any other ICC profiler. The EXIF 2.2 Jpeg standard includes the Epson PIM "technology", cameras that conform with the EXIF 2.2 can usually be calibrated quite decently. Naturally all acquire devices that output linear RAW image data can be calibrated extremely well.

It may take some time to solve the device parameters

With a 2GHZ Pentium 4 system the profiling takes usually something in the range of 5 minutes to 30 minutes to complete, but it is well worth of the wait. Some high end ICC profilers also run a very long time and even operate on a reduced set of the target patches in attempt to gain speed, XLProfiler always use the full patch set.

XLProfiler Examples

The below three examples were solved using the Weight on Gamut -method. XLProfiler does offer several solving methods but the Weight on Gamut -method is the default profiling method.

Please note: The demonstration images are rather large and there are many of them on this page, please wait until they are all loaded, see the status bar at the bottom of your Web browser. The option buttons change the images immediately but only after the images have been fully downloaded.


Canon/Kodak D2000 Professional Quality Digital Camera

uncalibrated, appearance in AIMRGBpro, published to nativePC for Web viewing.
Profiled with XLProfiler, then converted to nativePC for Web viewing.

The Original Canon/ D2000 photo is here (8.2MB) if you like to try profiling yourself. You can also download the Canon D2000 profile and the XLProfiler state-file.


Canon/Kodak EOS*DCS*3 Professional Quality Digital Camera

Unedited camera image (linear 12-bit/c Acquire, appearance in AIMRGBpro working-space, gamma 1/2.5 applied for the Web).
Profiled with XLProfiler, then converted to nativePC for the Web.

The Original Canon/Kodak EOS*DCS*3 photo is here (5.5MB) if you like to try it by yourself. You can also download the Canon/Kodak EOS*DCS*3 profile and the XLProfiler state-file.


Casio QV-3500-EX Consumer Grade Digicam

Unedited QV-3500EX shot.
Profiled with XLProfiler, then converted to nativePC for the Web.

The Original Casio QV-3500EX digicam photo is here if you like to try it by yourself. You can also download the QV-3500EX profile and the XLProfiler state-file.


Umax PowerLook III Scanner

Unedited scan (appearance in AIMRGB, gamma 1/2.5 applied for the Web).
Profiled with XLProfiler, then converted to nativePC for the Web.

The original scan is a bit too large to be put on the Web. Download the Umax PowerLook III Linear Acquire profile if you like or the XLProfiler state-file.


HP OfficeJet d155xi (low quality All-In-One type device)

Raw scan from HP OfficeJet d155xi, using the 48-bit acquire tool.
Profiled with XLProfiler, then converted to nativePC for the Web.

The original scan is a bit too large to be put on the Web. Download the HP OfficeJet d155xi profile if you like or the XLProfiler state-file.

Canon G2 Consumer Grade Digicam

On his site, Zoran Zivotic provides examples and the profile for Canon G2 RAW images. There is also rather interesting guess-the-workflow puzzle. Unfortunately he does not provide actual RAW files so it is not possible to evaluate the conversions.

XLProfiler Installation

XLProfiler needs no installation procedure, simply:

  1. Create a directory for the XLProfiler workbook and save the XLProfiler v n.n.xls in that, also an existing directory can be used.
  2. Save the aim_xlprofiler_prepare_v.3.0.8bf into the plug-ins directory of your image editing application.

The XLProfiler Excel Workbook use the standard Solver ADD-IN of Microsoft Excel to solve the device parameters. The Solver ADD-IN has to be installed in order to use the XLProfiler Excel Workbook.

To add the Solver to your Excel or Office setup simply run the Excel or Office setup program, it shows what is currently installed and allows to alter the list of installed components, select the Solver in the Excel ADD-IN section.

If Excel does not find the Solver when XLProfiler is opened

Microsoft Excel does not manage the Solver resource well, it saves the absolute path of the solver.xla into the workbook at the compile time (when the workbook is saved), this installation location of the Solver ADD-IN on your PC system can be different one than where it is installed on my machine. Therefore it can happen that even if the Solver is properly installed on your system Excel does not find the Solver when XLProfiler workbook is opened. If this happens then search the two Solver files: SOLVER.XLA and SOLVER32.DLL (they are sometimes located in: C:\Program Files\Microsoft Office\Office\Library\Solver\ but can be elsewhere. Best to use Find/Files Or Folders -dialog of the WindowsExplorer and search for "SOLVER") and copy (copy not move) them to the XLProfiler's working directory, close Excel then start it again and Open XLProfiler.

Microsoft Excel version 2000 and later may show the following error dialog when the XLProfiler is first opened: Microsoft Excel Solver: An unexpected internal error occurred, or available memory was exhausted. Even if it sounds very dramatic it does not affect to Excel nor XLProfiler at all since Excel eventually does find the Solver when it is next accessed by XLProfiler.

In case you get the error dialog: "Error in Hidden module 6" and you do have the US/English version of Excel and the Solver ADD-IN is properly installed then please use the WindowsExplorer and search the two Solver files: SOLVER.XLA and SOLVER32.DLL. using WindowsExplorer (first select the MyComputer from the Folders list (on the left) then select the menu command Tools/Find/FilesOrFolders and there write the word "solver" to the search box. Make a copy of them and put the copies into the same directory where the xlprofiler.xls is.

If your have a language localized Excel then you'll need to download English version Solver file SOLVER.XLA from Frontsys (found in the section: Update for International Users of Excel 97 U.S. English Version) in order to XLProfiler to run, extract and save them to the same directory where the XLProfiler is located.

The err13 issue: on the XLProfiler board Dibutil® writes:

 Err13 is caused by the new solver.xla installed with the latest Office service pack. Replacing it with the xla from the original (O2000PROSR2) cd solves this "solver" problem. Comment: the error is caused by the bug identified by Microsoft
The err13 (type mismatch) appears at the time when profiling is started.

Usage, The XLProfiler Prepare v.3.0 plug-in

The XLProfiler Prepare v3.0 plug-in works both in 8-bit/c and 16-bit/c modes, it samples the color patches from the acquired calibration target image by calculating either the Average or Median for each of the patches. XLProfiler Prepare v3.0 plug-in embeds the calculated patch data into the image itself so that the XLProfiler Excel Workbook can read it easily (this prepare step is needed because Excel is rather slow in handling image data). XLProfiler Prepare v3.0 plug-in use the leftmost 400 pixels of the two uppermost rows of pixels of the image to store the patch data.

There is no need nor benefit in converting an 8-bit/c acquire to the 16-bit/c mode, the XLProfiler Prepare v3.0 plug-in always embeds the results using 16-bit/c even if the image mode is 8-bit/c.

Three steps to prepare

Firstly scan the target (or shoot it with a digital camera) then crop the image properly in the image editing software, as shown below:


Properly cropped Q-60 acquire

Secondly run the XLProfiler Prepare v.3.0 plug-in over the cropped scan.


XLProfiler Prepare plug-in.

Adjust the X and Y controls of XLProfiler Prepare plug-in so that the sampling grid is well aligned. Use Average sampling for linear devices that have low noise. For nonlinear devices and for all noisy devices deselect the Average checkbox for Median sampling.

When the StampGrid checkbox is selected the plug-in will stamp the grid to the image like the grid is shown in the previewbox, when the StampGrid checkbox is deselected the plug-in only embeds the calculated patch data to the image.

With the StampGrid checkbox selected it is easy to verify (in the image editing application) that the sampling grid was properly aligned.

Thirdly save the prepared image in TIF image format without compression and using IBM PC byte order. It is beneficial to name the TIF file properly, doing so will help in the XLProfiler Workbook, it use this filename as a seed in various dialogs.


Usage, the XLProfiler Excel Workbook

The various XLProfiler Excel Workbook features are first described below.


The Charts


The Histogram Chart

The Histogram chart shows the reflectance or transmittance distribution (the CIE Y histogram) of the currently loaded Q-60 calibration chart. (Multiply the x-axis by 100 to get percentage).

In addition it shows the dynamic range of the chart as calculated from the effective luminance (CIE Y) of:

  • all patches (Range All)
  • Dmin and Dmax patches (GS Range).

XLProfiler use the X, Y and Z histograms of the target internally for weighting purposes.

Click the chart to see Density values for the GS step wedge (the horizontal wedge at the bottom of the chart).


The Chromaticity & Gamut Chart

The Chromaticity chart shows the:

  1. Chromaticity (CIE x,y) points of the currently loaded Q-60 chart, i.e. shows the gamut of the chart.
  2. Device gamut.
  3. Device whitepoint.

Optionally the Chromaticity chart shows the gamut of the working-space that a CGI Simulation will be written. The working-space of the CGI simulation has nothing to do with the ICC profiling, this chart is simply shared to make the user interface more compact.


The Transfer Function Chart

Shows:

1. rTRC, gTRC and bTRC linearization curves. Note that in the chart the TRC curves (that have floating-point precision) are presented using 100 points only to speed up the operation, but they are written to the ICC profile using 12-bit/c precision.

2. Gray linearity of the device using the gray patches (the GS patches and column 16 patches).

3. Device exposure, it will change during the profiling and is accurate only when the profiling is complete.

4. Approximation for the device gamma, this is estimated in the early stage of profiling.

5. The gamma viewer curve.

Clicking the chart toggles the x-y scaling of the chart by 0.05 - 0.1 - 1.0. This allows a closer look at the blackpoint. Note that all units are normalized (0...1) in XLProfiler.


XYZ Error Chart

Shows the CIE X, Y and Z errors as a function of the effective patch luminance (CIE Y).

Clicking the chart toggles the Y scaling of the chart between AutoScale and +/-0.4.

Note that all units are normalized (0...1) in XLProfiler.


 

The Buttons and Dropdowns

 

Load Prepared TIF

Load the prepared *.TIF file as the first step of profiling.

Press Load to browse. 

XLProfiler does still read the older XLProfiler Prepare plug-ins (v.2.0 and v.1.0) created RAW data too, run from the Macro -dialog.

Bad patches are patches that have any one of the color channels clipped (that mean that the patch is either range or gamut clipped). Typically acquire devices map such clipped channel either to level 0 or 255 but if the firmware applied e.g. gamut conversion then other level values are possible, the XLProfiler Prepare v.3.0 plug-in inspects the patches against range and gamut clipping no matter what level value they may have and excludes such patches, they would severely affect to profiling.

Even a high amount of bad patches (like 40) are OK provided that they are not due to range clipping e.g. by the Levels adjustment in the scanner driver.


Load Q60 Datasheeet

Load the reference file (datafile) as the second step of profiling.

Press the Load button to browse Q-60 reference files.

Only files with ".q60" file-extensions are show in the browse box, if the filename of the reference file has another extension either replace or append the ".q60" to it using the WindowsExplorer.

XLProfiler reads correctly reference files of Kodak, Agfa, Fuji, C-Roes and Faust targets (maybe some other too), just remember to add the ".Q60" to the filename. XLProfiler reads reference files of targets manufactured by Monaco Systems (*.mrf) also once they are decrypted and the ".Q60" is added to the filename.

Reference files should not contain bad patches at all (here bad patches are such that have X, Y or Z value of 0. In case the bad patches show other value than .0 then it is possible that the reference file has some formatting problem.


Save CGI Simulation

A colorimetricly accurate CGI simulation can be a very useful tool in overall system calibration or verification, as a visual aid. It can shows at a glance if a good calibration profiling is achieved. Please note that the Save CGI settings do not affect to the ICC profiling at all, they simply specify the working-space that the CGI simulation is created.

Press the Save button to save the CGI simulation according to the currently loaded Q-60 reference file as a 16-bit/c TIF file with the working-space ICC profile embedded. Currently the following working-spaces are available for the CGI simulations:

  • CIE XYZ with Bradford appearance model to D6500
  • Kodak ProPhoto
  • AIM RGB pro
  • Widegamut RGB
  • NTSC(1953)
  • AdobeRGB(1998)
  • CIE RGB
  • ColorMatch RGB
  • Apple RGB
  • sRGB IEC61966-2.1

Creating a CGI Simulation to such a small working-space that cause gamut clipping is not allowed.

The working-space checkbox toggles the display of the selected working-space gamut of the CGI Simulation in the Chromaticity & Gamut chart On/Off. Note that several patches would be gamut clipped when a smaller gamut working-space is chosen, use the checkbox for graphical view to this. The gamut of the CGI Simulation does not have anything to do with profiling itself, only the chart is shared for viewing purposes.

Currently four Adaptation Models are supported for the CGI Simulations:

  1. As Is (does no appearance modeling on the D50 patches at all).
  2. Absolute colorimetry.
  3. Von Kries model.
  4. Bradford model (as specified by the ICC). Photoshop 6.0x is using the Bradford model so it perhaps is best to stick with it.

If you want to convert the CGI Simulation using your editing application so that the particular adaptation model that your particular image editing application is using (that is often unknown) will surely be in effect then save the CGI Simulation to Widegamut RGB working-space using the AsIs adaptation model, or in fact what ever Adaptation model, they do not affect at all since the Widegamut RGB has D50 whitepoint.

Note that the CGI Simulation is created by absolute effective luminance, as if there would be "exposure of 1:1" between the XYZ values of the reference file and the final RGB values of the CGI Simulation. For this reason the CGI simulation will not match the profiled acquire of the calibration target unless the acquire device exposure was exactly 1.00. In order to visually compare the profiled acquire image of the Q60 target and the CGI simulation the CGI Simulation has to be adjusted using the composite RGB light-end slider in the Levels dialog according to the device exposure.

The CGI Simulations are saved in a very small size but can be scaled up to what ever size required, just remember to use the Nearest Neighbor mode in the Image Size dialog.


The Profiling section

After the prepared TIF and the reference file are loaded start profiling, it will take some time.

How to Profile

The Gma option cause the XLProfiler to do a gamma match as the first step. If the device is nonlinear then tick the Gma checkbox. A device is nonlinear when after the prepared acquire and the datasheet are both loaded the gray linearity dots in the Transfer Function chart form a curved imaginary path. If the device is linear then clear the Gma checkbox. Device is linear when after the prepared acquire and the datasheet are loaded the gray linearity dots in the Transfer Function chart form a straight imaginary path, not necessarily on the diagonal line, but a decently linear (straight) imaginary path.

Currently very many solving methods are provided in the Start Profiling dropdown they probably will be reduced in the future. The Profile: Weight on Gamut method is the default solving mode. All decently behaving acquire devices will profile perfectly using the Profile: Weight on Gamut method, try it first. The Profile: Weight on kTRC mode will help if the default mode does not give achromatic grayrange. After profiling the Reprofile:AtOnce can possibly improve the calibration. All modes that use rgbRTC are for desperate situations only, they will run a very long time.

When a profiling mode is select the profiling will start and runs (quite long) without any user interaction.

When the Info box tells that profiling is done:

The Intent dropdown allows for Relative, Absolute and Saturation scaling, an option that would cause grayrange clipping are not allowed. The Intent only affects at the time the profile is written.

Then click the Save ICC profile button to save the profile. At this time it is very beneficial to save the state so that reprofiling can be started from the current situation. Save State will save all the XLProfiler setting, all of them. To reprofile, first load the previous state then load the new prepared TIF and start reprofiling.

The History list collects every profiling state, also the intermediate states within profiling methods. Reprofiling or Manual profiling can be started from what ever state.

 


The Info box

The info box gives all the time useful information. While the Solver is running it shows the Trial Solution information in the StatusBar of Excel. The absolute value of the Trial Solution has no direct relation to the accuracy of the calibration (is not a direct measure of calibration accuracy) but it shows the how the Solver is progressing.

Solving can be paused at any time when the Trial Solution is shown in the StatusBar, by pressing the ESC keyboard key. Solver then shows a dialog that allows to continue or stop solving. When Solver is paused the gamut and curves charts are updated so they reflect the current solving situation at that point. Then e.g. stepping back one step in the history list will resume the previous solving situation.

Overall Profiling Workflow

  1. Scan the target or shoot it with a digital camera. When profiling a camera illuminate the target with real daylight (the sunlight, but not direct) or under a high quality wide spectrum daylight fluorescent. Try to align it correctly so that it is not strongly rotated. With digital cameras take several shots at different exposure and select the shot that has the Dmin patch (leftmost patch of the lower horizontal grayscale) mapped to high RGB levels but preferably so that the color-channels of the Dmin patch are not clipped to level 255. With scanners do not use the dark-end levels slider in the scanner driver (it only clips image data), the light-end levels slider could be used but in general it is best to keep it at 255. No matter what the device exposure was (or what scaling is applied in the scanner driver) XLProfiler always manages the exposure correctly, however underexposed scan/shot will adversely affect to the profiling accuracy, slight overexposure actually only improves it.
  2. Crop the acquired target as instructed below, apply the XLProfiler Prepare plug-in and save the file as TIF, without compression and using PC byte order.
  3. Open 1) the prepared TIF and 2) the associated reference file of the target into XLProfiler Excel workbook, solve the device characteristics and save the ICC profile.

Other features

XLProfiler keeps track of the default file locations, it saves this information into itself so to take the advantage from this feature always save the XLProfiler workbook after a profiling session.

The Load ChannelMixer Adjustment option (from the Macro dialog) can be used for fine-tuning the ICC profile that is to be written, e.g. a color-temperature change can be built in to the profile. The procedure is: Profile the device, create the profile, open the raw Q60 acquire to Photoshop, assign the newly created profile, convert the acquire to AIM RGB pro working-space, create the ChannelMixer adjustment and save the adjustment as a control file to the disk. Then go back to XLProfiler, use the Load ChannelMixer Adjustment macro command and finally write a new ICC profile.

The Gamma Viewer shows a gamma curve on the Transfer Function chart, it takes no part to anything else. To reset it press the Gamma Viewer header text.

The XLProfiler package (the XLProfiler Excel Workbook and the XLProfiler Acquire plugin) is freeware but you may not distribute it in any form. Instead please link to this page. You may not modify the XLProfiler in any way either.

The ICC profiles created using the XLProfiler are free from royalties, you have the right to distribute them and if you want you can also sell the profiles, the same is valid for the CGI simulations also. Please read the AIM-DTP Copyright if you plan to sell profiles or CGIs created with XLProfiler).

Download the XLProfiler v.1.0
updated 2004-08-31

What is new after v.0.999.20

  • the bug  in creating the CGI Simulation of the target is corrected. It prevented saving the CGI to an output space where the CGI would in fact fit (a small problem in gamut boundry calculation).
  • plenty of optimization of the solving parameters. These mostly affect to solving speed and particularly to the cases where extremely long solving times were experienced. After beta 0.999.25 there should not be notable differences in profile accuracy.

What is new since 0.999.17:

  • there was some "developing residues" in v 0.999.17 related to error weighting, corrected and the weighting algorithm is improved.
  • the handling of out-of-gamut patches is improved, this improves accuracy particularly for acquire devices that have smaller gamut than the target has.
  • it is now possible to select between using the XYZ or Lab reference data. In addition an optimize mode is provided, in this mode the reference data for each patch is taken either from XYZ or Lab information depending on the numerical accuracy of the data (since the reference data has fixed number of decimals the Lab data has the potential to provide higher numerical accuracy in the deep dark end of the range). However, in some reference data-files the Lab values have errors (or even very large errors), this is because the formula that is to be used in calculation of the Lab data from the measured XYZ data have, how to say, evolved or fluctuated somewhat so the Lab data should be used with caution, in practice the benefit of using the Lab data is very small.


Accurate Image Manipulation for Desktop Publishing
Copyright Timo Autiokari, 2001-2007. Contact info