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

Overview of the software and its aims and functionality.

Organization

How directories are organized, what they contain.

Compiling

How to build the software from the source.

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.
 

Typical usage scenarios and examples

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.
 

Minor Utilities

A very brief description of minor utilities and test harnesses.

Performance Tuning

Performance hints.
 

File formats that Argyll uses

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.