A brief tour of all the directories in the Argyll source code archive:
This directory contains routines that generate calibration test charts,
on various distribution algorithms suitable for
reading using an Xrite DTP51 or DTP41 colorimeter, or scanner for print
the Gretag Spectrolino for film charts, or the Xrite DTP92 pr DTP94 for
The generated file is a PostScript file for the print chart, and a
of TIFF files for the film chart.
This directory contains the implementation of all the instrument
drivers, as well as the tools to calibrate a display, take readings
from a display, or read a test chart. It also contains the tool that
supports installing and uninstalling display profiles.
This directory has code for taking raw device information (created
xxxread.exe or scanin.exe), and creating an ICC device profile from it.
takes care of the top level details of creating profiles, and relies on
XICC and RSPL libraries to do the underlying hard work,
This directory holds the ICC profile linking code. Linking two device
creates a device link profile, that embodies a direct device to device
This is the development area for IMDI, the Integer Multi-Dimensional
routines. They provide a flexible and high performance system for
color transforms to typical raster pixel data. The system has two
one that generates tailored, optimized source code for the
kernels, and the run time code that matches a transform request
a compiled kernel, and initializes the appropriate run time lookup
The kernel source generator is intended to accommodate various
such as assembly code, vector instruction set (ie. MMX, AltiVec etc.)
at present only generates the more portable 'C' code kernels.
ICC profile I/O library (icclib). This distribution contains
source code which implements the reading and writing of color profile
that conform to the International Color Consortium (ICC) Profile Format
This directory holds the "extension" icc libraries. These supplement
the base icc library with enhanced profile functionality, such as
interpolation, reverse interpolation, table creation from scattered
Most of this functionality is based on the rspl and icc libraries. This
where ink limiting and black generation policies for CMYK devices is
implemented. The CIECAM97s and CIECAM02 Color Appearance
Model libraries live here. Support for spectral to CIE conversions
FWA compensation) lives here. A simple model, notation and
system for n-color printing devices (MPP) lives here too.
This is the second generation Regular Spline library. It
scattered data point to regular grid interpolation, as well as spline
and the reverse interpolation code. This version is more modular, and
better solution algorithms than the earlier REGSPL, and generally
it. As well as creation from scattered data, there is support for
re-processing and reverse interpolation (inversion). The reverse
algorithms support features needed for devices like CMYK printers, such
total ink limiting, black locus selection, gamut boundary detection,
and nearest gamut clipping.
Collection of numerical routines used by various other (mainly color)
numsup Support routines, array and vector
dnsq Non-linear equation
powell Powell multi dimensional
ludecomp LU decomposition matrix solver
Value decomposition matrix solver
zbrent 1 dimensional brent root search
rand Random number
sobol Sobol pseudo-random
This directory contains the code to extract charts from TIFF scan
and output the patch values using the CGATS file format. Typically this
used to get the patch information from a scan of an IT8 calibration
It also has a mode to use a scanned image to measure color, and
convert a print test chart into approximate CIE values.
This directory contains the gamut boundary creation, and usage code. It
contains the gamut mapping code.
This directory contains a library for reading and writing CGATS format
color data files. These files are used extensively for holding color
information in a human readable form.
Sam Lefflers standard TIFF library.
A simple 2D graph plot library, to quickly display 2D graphs for
Where project common #include files live.
Where the main executables are copied to, when install.ksh or
install.bat is run. Other useful files get copied here too.
The necessary libraries to access USB devices live here
Tools that allow adjustment and improvement of profiles or links
live here. Currently the tool refine
is the only member.
This is a library and set of tools for rendering to raster images. It
supports creating a test images, and the raster output of printtarg.
Implementation of color configuration file format using JSON, used by ucmm.
Unix micro Color Management Module implementation, for supporting the
installation and access to display profiles.
Miscellaneous useful reference files, such as scanin recognition
templates for standard charts, live here.
All the Argyll HTML documentation lives here.