Argyll CMS documentation index
Date: 16th December 2005
Author: Graeme Gill
Introduction
Argyll is an experimental, open source, ICC compatible color management
system. It supports accurate ICC profile creation for scanners, CMYK
printers,
film recorders and calibration and profiling of displays.
Spectral sample data is supported,
allowing a selection of illuminants observer types, and paper
fluorescent
whitener additive compensation. Profiles can also incorporate source
specific
gamut mappings for perceptual and saturation intents. Gamut mapping and
profile linking uses the CIECAM02 appearance model, a unique gamut
mapping
algorithm, and a wide selection of rendering intents. It also includes
code for the fastest portable 8 bit raster color conversion engine
available
anywhere, as well as support for fast, fully accurate 16 bit
conversion.
Device color gamuts can also be viewed and compared using a VRML
viewer.
This is Version 0.53. The last full release was in November 2005.
The first public release of Argyll was made in July 2000. Code
development
commenced in 1995. See Changes Summary
for an overview of changes since the last release. Details on changes
between
revisions is detailed in the log.txt file that accompanies the
source
code.
The latest source code is available from here.
Argyll is known to compile and run in at least three environments:
1) MSWindows NT/2K system running the Microsoft VC++ compiler and
Jam/MR
2) MSWindows NT/2K system running the MingW port of the GCC compiler
and Jam/MR
3) Linux using gcc and Jam/MR
4) Macintosh OSX 10.3 gcc and Jam/MR
but may well compile in more.
This is a command line only environment.
It still has an amount of debugging turned on.
The Argyll CMS is Copyright 1995 - 2005 Graeme W. Gill, and is made
available under the terms of the GNU General Public License, as
detailed
in the Licence.txt file.
The film recorder support (spectro/filmread.c, spm.[ch],
gretag.[ch]) support is
Copyright
2001, DreamWorks LLC (Author Neil Okamoto),
and is made available under the terms of the GNU General Public
License,
as detailed in the Licence.txt file.
The utility spectro/spec2cie.c is 2005 Gerhard Fuernkranz, and is
made available under the terms of the GNU General Public
License,
as detailed in the Licence.txt file.
The icc library in icc/ and the CGATS library in cgats/ are
available
according to the licence granted in the icc/Licence.txt
and cgats/Licence.txt file (a "BSD" like licence).
The TIFF library included for convenience in this snapshot, has its
own copyright and licence detailed in tiff/COPYRIGHT
Overview of the software and its aims and functionality.
How directories are organized, what they contain.
How to build the software from the source.
Any detailed documentation on how the software works, or what
algorithms
it is based on. (Very incomplete at the moment.)
Main Utilities
These are all command line ("DOS" shell) utilities, and are licensed
under
the GNU licence, and can't be copied or sold without providing the
source
code. Nothing other than your agreement and compliance with the GNU
Licence,
grants you permission to modify or distribute Argyll source code,
executables
or
its derivative works. The GNU licence prohibits combining these
utilities
into any sort of package (i.e. by providing other programs or scripts
that
make use of, depend on, or work with the Argyll code), unless the other
elements of the package are also licensed under the GPL. It is
permissible
to provide Argyll utilities with other non GPL components, if such a
packaging
is mere aggregation. For all the gory details, please read the
accompanying
licence.
Note that unlike many commercial ICC profiling tools, the profiles
created
using Argyll, are not subject to any claims or restrictions of Argyll's
author(s), but are the copyright property of the person who gathers the
characterization data, and causes the profiles to be created.
Each Argyll tool require appropriate options to be set, followed by
filename arguments. Sometimes the filenames will have to include the
usual
extensions, sometimes they are implicit. To get a brief listing of the
possible arguments and usage of any of the utilities, run it with just
an "-?" argument, i.e.
targen -? (or some other unrecognized flag,
if the "?" character is treated specially in your shell, i.e. try
"--").
In order to make use of the tools, it is necessary to keep track of
where various files are, and what they are called. There are many
possible
ways of doing this. One way is to put each source profile and all its
associated
files (test charts, spectrometer values etc.) in one set of directories
for each source profile type. Similarly the device profiles could be
stored
in a hierarchy of directories ordered by device type, media,
resolution,
device mode etc.
A guided tour of the major utilities, applied to typical CMS jobs, such
as creating device profiles, linking them, and converting color spaces
of raster files.
Main Utilities by category:
Calibrating devices
dispcal
Calibrate a display, producing a .cal
file.
Creating test targets for profiling
targen
Generate a profiling test target values .ti1 file.
filmtarg
Create film recorder TIFF files from Argyll .ti1 file.
printtarg
Create a PS or EPS file to containing test patch values, ready for
printing.
Obtaining test results for profiling
printread
Read a printer test chart using an instrument to create a .ti3 data
file.
dispread
Test and read colorimetric values from a display
filmread
Read film colorimetric values using a SpectroScanT (Deprecated ?)
scanin
Convert a TIFF image of a test chart into .ti3 device values.
fakeread
Fake the reading of a device using an ICC or MPP profile.
cb2cgats
Convert Colorblind format CMY/RGB test chart into Argyll .ti3 CGATS
format.
kodak2cgats
Convert Kodak Colorflow format CMYK test chart into Argyll .ti3 CGATS
format.
logo2cgats
Convert Gretag/Logo format CMYK test chart results into Argyll .ti3
CGATS
format.
fakeCMY
Create a fake Argyll .ti3 CMY data file from a CMYK profile, as a basis
of creating a CMY to CMYK separation
Creating Device Profiles
profile
Create an ICC profile from the .ti3 test data.
mpprof
Create a Model Printer Profile (MPP) from the .ti3 test data.
sepgen
IN DEVELOPMENT Create a CMY[K] to device colorant separation.
revfix
Regenerate a device profiles B2A table data by inverting the A2B table.
Linking Profiles
icclink
Link two device ICC profiles to create a device link profile.
Converting colors
cctiff
Color convert a TIFF file using an ICC device link profile, or two ICC
device profiles
icclu
Lookup individual color values through any ICC profile table.
xicclu
Lookup individual color values forward or inverted though an ICC
profile
table.
mpplu
Lookup individual color values though an MPP profile. Also create MPP
gamut
files/views.
Color Tweaking tools
refine
Creates an abstract profile from two chart readings, useful for
refining proofing profiles.
Creating gamut views
iccgamut
Create a gamut file or VRML file of the color gamut of an ICC
profile.
tiffgamut
Create a gamut file or VRML file of the color gamut of a TIFF
image.
viewgam
Convert one or more gamuts into a VRML 3D visualization file.
Diagnostic and test utilities
iccdump
Dump the contents of an ICC profile as text.
profcheck
Check an ICC profile against .ti3 test chart data.
splitscgats
Split a
CGATS file (ie. a .ti3) into two parts randomly to verify profiling.
mppcheck
Check an MPP profile against .ti3 test chart data.
spotread
Use an instrument to read a single spot color value.
verify
Verify matching of CIE in two .ti3 files.
Other Utilities
spec2cie
Convert spectral .ti3
readings into CIE XYZ or L*a*b* readings.
Main Utilities Alphabetic Listing:
cb2cgats
Convert Colorblind format CMY/RGB test chart into Argyll .ti3 CGATS
format.
cctiff
Color convert a TIFF file using an ICC device link profile, or two ICC
device profiles
dispcal
Calibrate a display, producing a .cal
file.
dispread
Test and read colorimetric values from a display
fakeCMY
Create a fake Argyll .ti3 CMY data file from a CMYK profile, as a basis
of creating a CMY to CMYK separation
fakeread
Fake the reading of a device using an ICC or MPP profile.
filmread
Read film colorimetric values using a SpectroScanT (Deprecated ?)
filmtarg
Create film recorder TIFF files from Argyll .ti1 file.
iccdump
Dump the contents of an ICC profile as text.
iccgamut
Create a gamut file or VRML file of the color gamut of an ICC
profile.
icclink
Link two device ICC profiles to create a device link profile.
icclu
Lookup individual color values through any ICC profile table.
kodak2cgats
Convert Kodak Colorflow format CMYK test chart into Argyll .ti3 CGATS
format.
logo2cgats
Convert Gretag/Logo format CMYK test chart results into Argyll .ti3
CGATS
format.
mppcheck
Check an MPP profile against .ti3 test chart data.
mpplu
Lookup individual color values though an MPP profile. Also create MPP
gamut
files/views.
mpprof
Create a Model Printer Profile (MPP) from the .ti3 test data.
printread
Read a printer test chart using an instrument to create a .ti3 data
file.
printtarg
Create a PS or EPS file to containing test patch values, ready for
printing.
profcheck
Check an ICC profile against .ti3 test chart data.
profile
Create an ICC profile from the .ti3 test data.
refine
Creates an abstract profile from two chart readings, useful for
refining proofing profiles.
revfix
Regenerate a device profiles B2A table data by inverting the A2B table.
scanin
Convert a TIFF image of a test chart into .ti3 device values.
sepgen
IN DEVELOPMENT Create a CMY[K] to device colorant separation.
spec2cie
Convert spectral .ti3
readings into CIE XYZ or L*a*b* readings.
spotread
Use an instrument to read a single spot color value.
splitscgats
Split a
CGATS file (ie. a .ti3) into two parts randomly to verify profiling.
targen
Generate a profiling test target values .ti1 file.
tiffgamut
Create a gamut file or VRML file of the color gamut of a TIFF
image.
verify
Verify matching of CIE in two .ti3 files.
viewgam
Convert one or more gamuts into a VRML 3D visualization file.
xicclu
Lookup individual color values forward or inverted though an ICC
profile
table.
A very brief description of minor utilities and test harnesses.
Performance hints.
Argyll uses a number of file formats for its operation, some that are
external
standards, and some that are unique to Argyll.
.ti1
Device test values
.ti2
Device test values & chart layout
.ti3
Device test values & CIE tristimulus/spectral results
.cal
Device calibration information
.cht
Test chart recognition template. Format
details.
.gam
3D gamut surface description
.sp
Illuminant spectral description
CGATS
Standard text based data exchange format
ICC
International Color Consortium profile format
MPP
Model device profile format
TIFF
Tag Image File Format raster files.
VRML
Virtual Reality Modelling Language 3D file format.
Errors, Corrections and Omissions:
if you notice any errors, corrections needed or omissions in the
current
documentation.