<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Calibration Format File (.cal)</title> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"> <meta name="author" content="Graeme Gill"> </head> <body> <h2>Description of the .cal format</h2> Device calibration information. This is ASCII text, <a href="File_Formats.html#CGATS">CGATS</a>, Argyll specific format, used to hold a description of device setup information that brings it to a desired calibration state. Calibration files are created by <a href="synthcal.html">synthcal</a>, <a href="dispcal.html">dispcal</a> and <a href="printcal.html">printcal</a>.<br> <br> 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 <span style="font-weight: bold;">CAL</span> is used to avoid confusion with standard ANSI or CGATS files.<br> <br> The <span style="font-weight: bold;">.cal</span> 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.<br> <br> Generally a .cal file contains only one table, the table containing the setup information. <br> <br> <br> The table contains the following:<br> <br> The file identifier (First 7 characters) shall be <span style="font-weight: bold;">CAL</span>.<br> <br> A <span style="font-weight: bold;">#</span> character introduces a comment.<br> <br> <span style="font-weight: bold;"><span style="font-weight: bold;"><span style="font-weight: bold;"></span></span></span>There may be <span style="font-weight: bold;">DESCRIPTOR</span>, <span style="font-weight: bold;">ORIGINATOR</span>, or <span style="font-weight: bold;">CREATED</span> keywords and values (as per CGATS).<br> <br> There shall be a <span style="font-weight: bold;">DEVICE_CLASS</span> keyword that has a value of <span style="font-weight: bold;">"OUTPUT</span>", "<span style="font-weight: bold;">DISPLAY</span>" or <span style="font-weight: bold;">"INPUT"</span>.<br> This indicates what type of device the calibration information is suitable for.<br> <br> A <span style="font-weight: bold;">"DISPLAY"</span> type device may have a <span style="font-weight: bold;">VIDEO_LUT_CALIBRATION_POSSIBLE </span>keyword that must have a value of "<span style="font-weight: bold;">NO</span>" or "<span style="font-weight: bold;">YES</span>", to indicate whether the display has the ability to be calibrated by loading VideoLUT values.<br> <br> There shall be a keyword <span style="font-weight: bold;">COLOR_REP</span> that has a value that indicates what colorspaces of the device values. The colorspaces shall be encoded with one or two letters per component. The device spaces shall use the following letter encoding:<br> <br> <span style="font-weight: bold;"><span style="font-weight: bold;"></span></span> Cyan C<br> Magenta M<br> Yellow Y<br> Black K<br> Orange O<br> Red R<br> Green G<br> Blue B<br> White W<br> Light Cyan c<br> Light Magenta m<br> Light Yellow y<br> Light Black k<br> Medium Cyan 2c<br> Medium Magenta 2m<br> Medium Yellow 2y<br> Medium Black 2k<br> Light Light Black 1k<br> <br> There may be an a prefix <span style="font-weight: bold;">i</span> preceding the device space letter encoding, indicating that although the space appears to be an additive space, it is in fact a subtractive device.<br> <br> Typical values might be: "<span style="font-weight: bold;">RGB</span><span style="font-weight: bold;"></span>" for an RGB display, "<span style="font-weight: bold;">iRGB</span><span style="font-weight: bold;"></span>" for an RGB printer, "<span style="font-weight: bold;">CMYK</span>" for a printer, "<span style="font-weight: bold;">RGB"</span> for an RGB scanner.<br> <br> The <span style="font-weight: bold;">NUMBER_OF_FIELDS</span> keyword shall have a value that indicates the number of fields in each data set, e.g. <span style="font-weight: bold;">4</span> (as per CGATS).<br> <br> The start of the declaration of the fields shall be marked by the <span style="font-weight: bold;">BEGIN_DATA_FORMAT</span> keyword (as per CGATS).<br> <br> The fields shall use the standard CGATS pattern of the full colorspace identified followed by the individual colorant identifier. There shall be an initial input index value identified by the letter <span style="font-weight: bold;">I</span>.<br> <br> For an RGB device, the following fields would be used:<br> <br> <span style="font-weight: bold;">RGB_I</span> The device value input value between 0.0 and 1.0.<br> <span style="font-weight: bold;">RGB_R</span> The Red device value input value between 0.0 and 1.0.<br> <span style="font-weight: bold;">RGB_G</span> The Green device value input value between 0.0 and 1.0.<br> <span style="font-weight: bold;">RGB_B</span> The Blue device value input value between 0.0 and 1.0.<br> <br> The corresponding field names for a CMYK device would be <span style="font-weight: bold;">CMYK_I</span>, <span style="font-weight: bold;">CMYK_C</span>, <span style="font-weight: bold;">CMYK_M</span>, <span style="font-weight: bold;">CMYK_Y</span> and <span style="font-weight: bold;">CMYK_K</span>, etc.<br> <br> The definition of the fields shall be terminated by the <span style="font-weight: bold;">END_DATA_FORMAT</span> keyword (as per CGATS).<br> <br> The <span style="font-weight: bold;">NUMBER_OF_SETS</span> keyword shall have a value that indicates the number of sets of data, e.g. <span style="font-weight: bold;">256</span> (as per CGATS).<br> <br> The start of the values of the data sets shall be marked by the <span style="font-weight: bold;">BEGIN_DATA</span> keyword (as per CGATS).<br> <br> 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.<br> <br> The end of the values of the data sets shall be marked by the <span style="font-weight: bold;">END_DATA</span> keyword (as per CGATS).<br> <br> There may then be device type specific extra tables that hold target or device behavior information. These will be specific to the tool that creates that particular type of calibration.<br> <br> Generally any other keywords and values will be ignored.<br> <br> <br> </body> </html>