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