|
 |
Accurate
Image Manipulation for Desktop Publishing |
|
|
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
- 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.
- 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). (*)
- An image editing
application that is compatible with the the Adobe Photoshop type plug-in
standard (*.8bf plug-ins).
- 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
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:
- Create a directory
for the XLProfiler workbook and save the XLProfiler v n.n.xls
in that, also an existing directory can be used.
- 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:
- Chromaticity
(CIE x,y) points of the currently loaded Q-60 chart, i.e. shows
the gamut of the chart.
- Device gamut.
- 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:
- As Is (does
no appearance modeling on the D50 patches at all).
- Absolute colorimetry.
- Von Kries model.
- 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
- 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.
- 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.
- 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
|