Description of the .cal format
Device calibration information. This is ASCII text, CGATS, Argyll specific format, used
to hold a description of device setup information that brings it to a
desired calibration state. Currently only display output curves are
defined. Created by dispcal.
While fully compatible with the CGATS.5 Data Exchange Format, the
particular required keywords and fields are unique to Argyll, hence an
Argyll specific file identifier CAL
is used to avoid confusion with standard ANSI or CGATS files.
The .cal format changes from
time to time with new releases, to add new functionality, but generally
retains backwards compatibility. Note that in the description below,
the word "may" indicates an optional component, while the word "shall"
indicates a necessary component.
Generally a .cal file contains only one table, the table containing the
setup information.
The table contains the following:
The file identifier (First 7 characters) shall be CAL.
A # character introduces a
comment.
There may be DESCRIPTOR, ORIGINATOR, or CREATED keywords and values (as per
CGATS).
There shall be a DEVICE_CLASS
keyword that has a value of "OUTPUT",
"DISPLAY" or "INPUT".
This indicates what type of device the calibration information is
suitable for.
The NUMBER_OF_FIELDS keyword
shall have a value that indicates the number of fields in each data
set, e.g. 4 (as per CGATS).
The start of the declaration of the fields shall be marked by the BEGIN_DATA_FORMAT keyword (as per
CGATS).
For a DISPLAY device, the
following fields shall be used:
RGB_I
index of the RAMDAC entry.
RGB_R
RAMDAC Red value for that entry.
RGB_G
RAMDAC Green value for that entry.
RGB_B
RAMDAC Blue value for that entry.
The definition of the fields shall be terminated by the END_DATA_FORMAT keyword (as per
CGATS).
The NUMBER_OF_SETS keyword
shall have a value that indicates the number of sets of data, e.g. 256 (as per CGATS).
The start of the values of the data sets shall be marked by the BEGIN_DATA keyword (as per CGATS).
Each set of data shall be on one line, and shall be separated by white
space. All values shall be normalized to lie between 0.0 and 1.0.
The end of the values of the data sets shall be marked by the END_DATA keyword (as per CGATS).
Generally any other keywords and values will be ignored.