From 22f703cab05b7cd368f4de9e03991b7664dc5022 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Frings-F=C3=BCrst?= Date: Mon, 1 Sep 2014 13:56:46 +0200 Subject: Initial import of argyll version 1.5.1-8 --- doc/ArgyllDoc.html | 5570 ++++++++++++++++++++ doc/ArgyllFlow.jpg | Bin 0 -> 225826 bytes doc/ArgyllFlowThumb.jpg | Bin 0 -> 10629 bytes doc/CMP_DT_003.jpg | Bin 0 -> 23966 bytes doc/CMP_Digital_Target-3.jpg | Bin 0 -> 21111 bytes doc/CRTspectrum.jpg | Bin 0 -> 32231 bytes doc/ChangesSummary.html | 790 +++ doc/Chroma4.jpg | Bin 0 -> 16118 bytes doc/ColorManagement.html | 271 + doc/ColorMunki.jpg | Bin 0 -> 43097 bytes doc/ColorMunkiCreate.jpg | Bin 0 -> 29653 bytes doc/Compiling.html | 170 + doc/CrushedDisplyBlacks.html | 85 + doc/DC.jpg | Bin 0 -> 23570 bytes doc/DTP20.jpg | Bin 0 -> 83527 bytes doc/DTP22.jpg | Bin 0 -> 51054 bytes doc/DTP41.jpg | Bin 0 -> 78517 bytes doc/DTP51.jpg | Bin 0 -> 52356 bytes doc/DTP92.jpg | Bin 0 -> 41789 bytes doc/DTP94.jpg | Bin 0 -> 46245 bytes doc/DocLicense.txt | 451 ++ doc/Environment.html | 125 + doc/FWA.html | 262 + doc/FWA_measure.jpg | Bin 0 -> 23717 bytes doc/File_Formats.html | 186 + doc/Fluorescent.jpg | Bin 0 -> 35863 bytes doc/HCFR.jpg | Bin 0 -> 21765 bytes doc/HCT.jpg | Bin 0 -> 9601 bytes doc/HiResLaser.jpg | Bin 0 -> 28163 bytes doc/Huey.jpg | Bin 0 -> 30022 bytes doc/Installing.html | 49 + doc/Installing_Linux.html | 582 ++ doc/Installing_MSWindows.html | 583 ++ doc/Installing_OSX.html | 283 + doc/Kgraph1.jpg | Bin 0 -> 14691 bytes doc/Kgraph2.jpg | Bin 0 -> 13544 bytes doc/Kgraph3.jpg | Bin 0 -> 14548 bytes doc/Kgraph4.jpg | Bin 0 -> 14056 bytes doc/Kgraph5.jpg | Bin 0 -> 14084 bytes doc/Kgraph6.jpg | Bin 0 -> 14830 bytes doc/Kgraph7.jpg | Bin 0 -> 15134 bytes doc/Kgraph8.jpg | Bin 0 -> 14218 bytes doc/Kparams.jpg | Bin 0 -> 15850 bytes doc/LSDC.jpg | Bin 0 -> 12237 bytes doc/LabSteps.jpg | Bin 0 -> 13335 bytes doc/License.txt | 662 +++ doc/License2.txt | 282 + doc/License3.txt | 674 +++ doc/Limitations.html | 42 + doc/Makefile.am | 6 + doc/MinorTools.html | 64 + doc/Organisation.html | 230 + doc/Overview.html | 57 + doc/Performance.html | 106 + doc/Q60.jpg | Bin 0 -> 14943 bytes doc/QPcard201.jpg | Bin 0 -> 4967 bytes doc/QPcard202.jpg | Bin 0 -> 9016 bytes doc/SG.jpg | Bin 0 -> 11348 bytes doc/SG_footer.txt | 1 + doc/SG_header.txt | 12 + doc/Scenarios.html | 2177 ++++++++ doc/Smile.jpg | Bin 0 -> 25761 bytes doc/Source.html | 219 + doc/Spyd2.jpg | Bin 0 -> 64227 bytes doc/Spyd3.jpg | Bin 0 -> 13975 bytes doc/Spyd3x.jpg | Bin 0 -> 13519 bytes doc/Spyd4.jpg | Bin 0 -> 11284 bytes doc/SpyderChecker.jpg | Bin 0 -> 12497 bytes doc/WideGamutColmters.html | 120 + doc/YellowGreen.jpg | Bin 0 -> 18404 bytes doc/afiles | 179 + doc/applycal.html | 135 + doc/average.html | 43 + doc/cal_format.html | 216 + doc/calvschar.html | 62 + doc/cb2ti3.html | 56 + doc/ccmxs.html | 424 ++ doc/ccmxs/DTP-94_1964_10_Dell_2408W.ccmx | 25 + doc/ccmxs/DTP-94_1997_Shaw_Dell_2408W.ccmx | 25 + doc/ccmxs/DTP-94_Dell_2408W.ccmx | 25 + doc/ccmxs/DTP-94_Dell_U2410.ccmx | 25 + doc/ccmxs/EyeOne_Display_1_NEC1990SXi.ccmx | 25 + doc/ccmxs/EyeOne_Display_2_EIZO_S2233W.ccmx | 25 + doc/ccmxs/EyeOne_Display_2_NEC1990SXi.ccmx | 25 + .../EyeOne_Display_LT_U2410_Standard_1931.ccmx | 25 + .../EyeOne_Display_LT_U2410_Standard_1964.ccmx | 25 + doc/ccmxs/EyeOne_Display_LT_U2410_sRGB_1931.ccmx | 25 + doc/ccmxs/EyeOne_Display_LT_U2410_sRGB_1964.ccmx | 25 + doc/ccmxs/Huey_Acer_al2016w.ccmx | 25 + doc/ccmxs/Huey_Eizo_CG243.ccmx | 25 + doc/ccmxs/Huey_HP_compaq_6730s.ccmx | 25 + doc/ccmxs/Huey_HP_lp2475w.ccmx | 25 + doc/ccmxs/Huey_NEC1990SXi.ccmx | 25 + doc/ccmxs/Huey_NEC_Spectraview_241.ccmx | 25 + doc/ccmxs/NEC_EyeOne_Display_2_NEC2690WUXi2.ccmx | 25 + doc/ccmxs/Spyder2_EIZO_S2433W_standard_1931.ccmx | 25 + doc/ccmxs/Spyder2_EIZO_S2433W_standard_1964.ccmx | 25 + doc/ccmxs/Spyder3_EIZO_S2233_standard_1964.ccmx | 25 + doc/ccmxs/Spyder3_EIZO_S2243W_standard_1931.ccmx | 25 + doc/ccmxs/Spyder3_HP_LP2475w.ccmx | 25 + doc/ccmxs/Spyder3_NEC2690WUXi2.ccmx | 25 + doc/ccmxs/Spyder3_NEC_PA301W.ccmx | 25 + doc/cctiff.html | 351 ++ doc/ccxxmake.html | 954 ++++ doc/chartread.html | 499 ++ doc/cht_format.html | 576 ++ doc/collink.html | 1059 ++++ doc/colorchecker.jpg | Bin 0 -> 7522 bytes doc/colprof.html | 1559 ++++++ doc/cube.jpg | Bin 0 -> 11036 bytes doc/dispcal.html | 2256 ++++++++ doc/dispprofloc.html | 313 ++ doc/dispread.html | 926 ++++ doc/dispwin.html | 593 +++ doc/evalInputTargets.html | 61 + doc/extracticc.html | 40 + doc/extractttag.html | 43 + doc/fakeCMY.html | 73 + doc/fakeread.html | 248 + doc/filmread.html | 55 + doc/filmtarg.html | 78 + doc/gamma.html | 64 + doc/gamutmapping1.jpg | Bin 0 -> 19794 bytes doc/greytiff.html | 96 + doc/i1d.jpg | Bin 0 -> 36903 bytes doc/i1d3_1.jpg | Bin 0 -> 16744 bytes doc/i1d3_2.jpg | Bin 0 -> 16538 bytes doc/i1m.jpg | Bin 0 -> 29888 bytes doc/i1p.jpg | Bin 0 -> 62804 bytes doc/i1pro2.jpg | Bin 0 -> 73450 bytes doc/i1proDriver.html | 157 + doc/i1proDriver.xls | Bin 0 -> 187392 bytes doc/i1scan14.jpg | Bin 0 -> 15925 bytes doc/iccdump.html | 52 + doc/iccgamut.html | 334 ++ doc/iccgamutmapping.html | 163 + doc/icclu.html | 119 + doc/illumread.html | 319 ++ doc/illumread_1.jpg | Bin 0 -> 14047 bytes doc/illumread_2.jpg | Bin 0 -> 13451 bytes doc/illumread_3.jpg | Bin 0 -> 17753 bytes doc/illumread_4.jpg | Bin 0 -> 21691 bytes doc/illumread_5.jpg | Bin 0 -> 15948 bytes doc/illumread_6.jpg | Bin 0 -> 8066 bytes doc/instruments.html | 2214 ++++++++ doc/invprofcheck.html | 133 + doc/kodak2ti3.html | 59 + doc/monitorcontrols.html | 90 + doc/mox.jpg | Bin 0 -> 8355 bytes doc/moxxr.jpg | Bin 0 -> 6289 bytes doc/mppcheck.html | 78 + doc/mpplu.html | 182 + doc/mppprof.html | 99 + doc/oeminst.html | 323 ++ doc/printcal.html | 399 ++ doc/printtarg.html | 681 +++ doc/profcheck.html | 251 + doc/refine.html | 354 ++ doc/revfix.html | 252 + doc/scanin.html | 582 ++ doc/sl.jpg | Bin 0 -> 77102 bytes doc/spec2cie.html | 207 + doc/specplot.html | 46 + doc/splitti3.html | 75 + doc/spotread.html | 1011 ++++ doc/srgbplot.gif | Bin 0 -> 3468 bytes doc/ss.jpg | Bin 0 -> 65180 bytes doc/surface.jpg | Bin 0 -> 11222 bytes doc/synthcal.html | 108 + doc/synthread.html | 166 + doc/targen.html | 1024 ++++ doc/ti3_format.html | 311 ++ doc/tiffgamut.html | 357 ++ doc/timage.html | 100 + doc/txt2ti3.html | 98 + doc/ucmm.html | 122 + doc/verify.html | 186 + doc/viewgam.html | 125 + doc/xicclu.html | 551 ++ 179 files changed, 36971 insertions(+) create mode 100644 doc/ArgyllDoc.html create mode 100644 doc/ArgyllFlow.jpg create mode 100644 doc/ArgyllFlowThumb.jpg create mode 100644 doc/CMP_DT_003.jpg create mode 100644 doc/CMP_Digital_Target-3.jpg create mode 100644 doc/CRTspectrum.jpg create mode 100644 doc/ChangesSummary.html create mode 100644 doc/Chroma4.jpg create mode 100644 doc/ColorManagement.html create mode 100644 doc/ColorMunki.jpg create mode 100644 doc/ColorMunkiCreate.jpg create mode 100644 doc/Compiling.html create mode 100644 doc/CrushedDisplyBlacks.html create mode 100644 doc/DC.jpg create mode 100644 doc/DTP20.jpg create mode 100644 doc/DTP22.jpg create mode 100644 doc/DTP41.jpg create mode 100644 doc/DTP51.jpg create mode 100644 doc/DTP92.jpg create mode 100644 doc/DTP94.jpg create mode 100644 doc/DocLicense.txt create mode 100644 doc/Environment.html create mode 100644 doc/FWA.html create mode 100644 doc/FWA_measure.jpg create mode 100644 doc/File_Formats.html create mode 100644 doc/Fluorescent.jpg create mode 100644 doc/HCFR.jpg create mode 100644 doc/HCT.jpg create mode 100644 doc/HiResLaser.jpg create mode 100644 doc/Huey.jpg create mode 100644 doc/Installing.html create mode 100644 doc/Installing_Linux.html create mode 100644 doc/Installing_MSWindows.html create mode 100644 doc/Installing_OSX.html create mode 100644 doc/Kgraph1.jpg create mode 100644 doc/Kgraph2.jpg create mode 100644 doc/Kgraph3.jpg create mode 100644 doc/Kgraph4.jpg create mode 100644 doc/Kgraph5.jpg create mode 100644 doc/Kgraph6.jpg create mode 100644 doc/Kgraph7.jpg create mode 100644 doc/Kgraph8.jpg create mode 100644 doc/Kparams.jpg create mode 100644 doc/LSDC.jpg create mode 100644 doc/LabSteps.jpg create mode 100644 doc/License.txt create mode 100644 doc/License2.txt create mode 100644 doc/License3.txt create mode 100644 doc/Limitations.html create mode 100644 doc/Makefile.am create mode 100644 doc/MinorTools.html create mode 100644 doc/Organisation.html create mode 100644 doc/Overview.html create mode 100644 doc/Performance.html create mode 100644 doc/Q60.jpg create mode 100644 doc/QPcard201.jpg create mode 100644 doc/QPcard202.jpg create mode 100644 doc/SG.jpg create mode 100644 doc/SG_footer.txt create mode 100644 doc/SG_header.txt create mode 100644 doc/Scenarios.html create mode 100644 doc/Smile.jpg create mode 100644 doc/Source.html create mode 100644 doc/Spyd2.jpg create mode 100644 doc/Spyd3.jpg create mode 100644 doc/Spyd3x.jpg create mode 100644 doc/Spyd4.jpg create mode 100644 doc/SpyderChecker.jpg create mode 100644 doc/WideGamutColmters.html create mode 100644 doc/YellowGreen.jpg create mode 100644 doc/afiles create mode 100644 doc/applycal.html create mode 100644 doc/average.html create mode 100644 doc/cal_format.html create mode 100644 doc/calvschar.html create mode 100644 doc/cb2ti3.html create mode 100644 doc/ccmxs.html create mode 100644 doc/ccmxs/DTP-94_1964_10_Dell_2408W.ccmx create mode 100644 doc/ccmxs/DTP-94_1997_Shaw_Dell_2408W.ccmx create mode 100644 doc/ccmxs/DTP-94_Dell_2408W.ccmx create mode 100644 doc/ccmxs/DTP-94_Dell_U2410.ccmx create mode 100644 doc/ccmxs/EyeOne_Display_1_NEC1990SXi.ccmx create mode 100644 doc/ccmxs/EyeOne_Display_2_EIZO_S2233W.ccmx create mode 100644 doc/ccmxs/EyeOne_Display_2_NEC1990SXi.ccmx create mode 100644 doc/ccmxs/EyeOne_Display_LT_U2410_Standard_1931.ccmx create mode 100644 doc/ccmxs/EyeOne_Display_LT_U2410_Standard_1964.ccmx create mode 100644 doc/ccmxs/EyeOne_Display_LT_U2410_sRGB_1931.ccmx create mode 100644 doc/ccmxs/EyeOne_Display_LT_U2410_sRGB_1964.ccmx create mode 100644 doc/ccmxs/Huey_Acer_al2016w.ccmx create mode 100644 doc/ccmxs/Huey_Eizo_CG243.ccmx create mode 100644 doc/ccmxs/Huey_HP_compaq_6730s.ccmx create mode 100644 doc/ccmxs/Huey_HP_lp2475w.ccmx create mode 100644 doc/ccmxs/Huey_NEC1990SXi.ccmx create mode 100644 doc/ccmxs/Huey_NEC_Spectraview_241.ccmx create mode 100644 doc/ccmxs/NEC_EyeOne_Display_2_NEC2690WUXi2.ccmx create mode 100644 doc/ccmxs/Spyder2_EIZO_S2433W_standard_1931.ccmx create mode 100644 doc/ccmxs/Spyder2_EIZO_S2433W_standard_1964.ccmx create mode 100644 doc/ccmxs/Spyder3_EIZO_S2233_standard_1964.ccmx create mode 100644 doc/ccmxs/Spyder3_EIZO_S2243W_standard_1931.ccmx create mode 100644 doc/ccmxs/Spyder3_HP_LP2475w.ccmx create mode 100644 doc/ccmxs/Spyder3_NEC2690WUXi2.ccmx create mode 100644 doc/ccmxs/Spyder3_NEC_PA301W.ccmx create mode 100644 doc/cctiff.html create mode 100644 doc/ccxxmake.html create mode 100644 doc/chartread.html create mode 100644 doc/cht_format.html create mode 100644 doc/collink.html create mode 100644 doc/colorchecker.jpg create mode 100644 doc/colprof.html create mode 100644 doc/cube.jpg create mode 100644 doc/dispcal.html create mode 100644 doc/dispprofloc.html create mode 100644 doc/dispread.html create mode 100644 doc/dispwin.html create mode 100644 doc/evalInputTargets.html create mode 100644 doc/extracticc.html create mode 100644 doc/extractttag.html create mode 100644 doc/fakeCMY.html create mode 100644 doc/fakeread.html create mode 100644 doc/filmread.html create mode 100644 doc/filmtarg.html create mode 100644 doc/gamma.html create mode 100644 doc/gamutmapping1.jpg create mode 100644 doc/greytiff.html create mode 100644 doc/i1d.jpg create mode 100644 doc/i1d3_1.jpg create mode 100644 doc/i1d3_2.jpg create mode 100644 doc/i1m.jpg create mode 100644 doc/i1p.jpg create mode 100644 doc/i1pro2.jpg create mode 100644 doc/i1proDriver.html create mode 100644 doc/i1proDriver.xls create mode 100644 doc/i1scan14.jpg create mode 100644 doc/iccdump.html create mode 100644 doc/iccgamut.html create mode 100644 doc/iccgamutmapping.html create mode 100644 doc/icclu.html create mode 100644 doc/illumread.html create mode 100644 doc/illumread_1.jpg create mode 100644 doc/illumread_2.jpg create mode 100644 doc/illumread_3.jpg create mode 100644 doc/illumread_4.jpg create mode 100644 doc/illumread_5.jpg create mode 100644 doc/illumread_6.jpg create mode 100644 doc/instruments.html create mode 100644 doc/invprofcheck.html create mode 100644 doc/kodak2ti3.html create mode 100644 doc/monitorcontrols.html create mode 100644 doc/mox.jpg create mode 100644 doc/moxxr.jpg create mode 100644 doc/mppcheck.html create mode 100644 doc/mpplu.html create mode 100644 doc/mppprof.html create mode 100644 doc/oeminst.html create mode 100644 doc/printcal.html create mode 100644 doc/printtarg.html create mode 100644 doc/profcheck.html create mode 100644 doc/refine.html create mode 100644 doc/revfix.html create mode 100644 doc/scanin.html create mode 100644 doc/sl.jpg create mode 100644 doc/spec2cie.html create mode 100644 doc/specplot.html create mode 100644 doc/splitti3.html create mode 100644 doc/spotread.html create mode 100644 doc/srgbplot.gif create mode 100644 doc/ss.jpg create mode 100644 doc/surface.jpg create mode 100644 doc/synthcal.html create mode 100644 doc/synthread.html create mode 100644 doc/targen.html create mode 100644 doc/ti3_format.html create mode 100644 doc/tiffgamut.html create mode 100644 doc/timage.html create mode 100644 doc/txt2ti3.html create mode 100644 doc/ucmm.html create mode 100644 doc/verify.html create mode 100644 doc/viewgam.html create mode 100644 doc/xicclu.html (limited to 'doc') diff --git a/doc/ArgyllDoc.html b/doc/ArgyllDoc.html new file mode 100644 index 0000000..498e974 --- /dev/null +++ b/doc/ArgyllDoc.html @@ -0,0 +1,5570 @@ + + + + + + + + Argyll Documentation Top + + +

Argyll CMS documentation index (V1.5.1)
+

+ Date:   8th March 2013
+ Author: Graeme Gill +

Introduction

+ ArgyllCMS is an ICC compatible color management system, available as + Open Source. It supports accurate ICC profile creation for scanners, + cameras and film recorders, and calibration and profiling of + displays and RGB & CMYK printers. 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. Device Link can be created with + a wide variety of advanced options. 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. Comprehensive documentation is provided for + each major tool, and a general guide to using the tools for typical + color management tasks is also available. A mailing list provides + support for more advanced usage.
+

This is Version 1.5.1, a bug fix and feature update to V1.5.0 + released on 1st March 2013. The first public release of icclib was + in November 1998, and of Argyll was in October 2000. Code + development commenced in 1995. See Changes + + + + + + + + + + + + + + + + + + + + + + + + + + + + Summary for an overview of changes since the last release. + Changes between revisions is detailed in the log.txt file + that accompanies the source code.

+

The latest source code is available from here.
+

+

An Introduction to Color + Management

+ A concise discussion of what + color management is, and why we need it, together with a brief + overview of the ICC profile format.
+

Operating Environments

+

+

Argyll is known to compile and run in at least the following + environments:

+ 1) MSWindows XP system using Microsoft VC++ 6.0 compiler
+ 2) MSWindows XP system using Microsoft VC++ 8.0 Express compiler + + Platform SDK Feb. 2003
+ 3) MSWindows XP system using Microsoft VC++ 9.0 Express compiler + + Platform SDK Feb. 2003
+ 4) MSWindows XP system using the MingW port of the GCC compiler
+ 5) Linux on Fedora Core 8, 32 bit using gcc
+ 6) Linux on Fedora Core 8, 64 bit using gcc
+ 7) Apple OS X 10.3 PPC using GCC
+ 8) Apple OS X 10.4, 10.5, 10.6 Intel using GCC
+ 9) Apple OS X10.7 Intel using  Clang
+ 10) PCBSD 9.1 (FreeBSD) [You need to copy the libusb sub directory + from ArgyllCMS V1.4.0]
+
+ Additionally it is also known to run on:
+
+  MSWindows 2000, Vista & Windows 7 32 bit.
+  MSWindows Vista 64bit, Windows 7 64bit & Windows 8 64 bit.
+  Linux Ubuntu 7.10
+  Linux Kubuntu 7.10
+  Linux Mandriva 2008.0
+  Linux OpenSuSE 10.3
+  Linux Whitebox 4.2/2
+

but may well compile and run correctly in many more than this, + including OS X 10.8.

+ This is a command line terminal + only environment. Those unfamiliar with command line environments + should consult an appropriate tutorial for their environment if they + are interested in using this software. See the listing of tutorials below.
+
+ The following color measuring instruments are directly supported:
+
+ X-Rite:
+     DTP20 "Pulse"  +                            + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - "swipe" type reflective spectrometer, that can be used untethered.
+     DTP22 Digital + Swatchbook            + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - spot type reflective spectrometer.
+     DTP41                                         + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - spot and strip reading reflective spectrometer.
+     DTP41T +                  +                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - spot and strip reading reflective/transmissive spectrometer.
+     DTP51                                         + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - strip reading reflective colorimeter.
+     DTP92                                         + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - CRT display colorimeter.
+     DTP94 "Optix XR" or "Optix XR2" or "Optix Pro"- display + colorimeter.
+     ColorMunki Design + or Photo           - + spot and "swipe" reflective/emissive spectrometer (UV cut only).
+     ColorMunki Create + or Smile   +          - display + colorimeter. (Similar to an Eye-One Display 2)
+     Lenovo W +                   +                   - + built in laptop Huey display colorimeter.
+     Eye-One Display + 3                 +         - Xrite i1 DisplayPro and ColorMunki + Display
+             +             +             +             +           [ The OEM + i1Display Pro, NEC SpectraSensor Pro and
+                   +                   +                   +        Quato Silver Haze 3 OEM i1d3 are also + reported to work.]
+     Eye-One Pro2 +                   +              - spot and + "swipe" reflective/emissive spectrometer.
+
+ Gretag-Macbeth (now X-Rite):
+     Spectrolino   +                   +               - spot + reflective/emissive spectrometer.
+     SpectroScan   +                   +             - spot + reflective/emissive, XY table reflective spectrometer  .
+     SpectroScanT   +                   +           - spot + reflective/emissive/transmissive, XY table reflective spectrometer.
+     Eye-One Pro "EFI + ES-1000"           - spot and "swipe" + reflective/emissive spectrometer.
+     Eye-One Monitor +                   +         - spot and "swipe" emissive + spectrometer.
+     Eye-One Display 1 + or 2  or LT        - + display colorimeter.
+     HP DreamColor or + APS  +                 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - display colorimeter. (Treated as a Eye-One Display 2)
+     CalMAN X2 +                                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - display colorimeter. (Treated as a Eye-One Display 2)
+     Huey   +                   +                 +        - display colorimeter.
+
+ Sequel imaging (Now X-Rite):
+      MonacoOPTIX +                   +           - display + colorimeter (Treated as an Eye-One Display 1)
+                                                            + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + [The Sequel Chroma 4 may also work.]
+
+ Lacie Blue + Eye:                                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - see Eye-One Display
+
+ DataColor ColorVision:
+      Spyder 2 +                    +            +        - display colorimeter (Note + that the user must supply firmware)
+                                                           + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + [The Spyder 1 has also been reported as working, but this has not + been confirmed.]
+      Spyder 3 +                    +            +        - display colorimeter.
+      Spyder 4 +                    +            +        - display colorimeter (Note + that the user must supply calibration + data)
+
+ Other:
+     Colorimètre HCFR                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - display colorimeter
+     ColorHug                                       + + + + + + + + + + + + + + + + + + + + + + + + + + - display colorimeter. Experimental only, does not work on all + platforms.
+
+ See
Operation of particular + instruments for more instrument specific detail.
+
+ Other instruments can be supported indirectly, since patch result + files created by other packages can be imported into Argyll.
+
+ Please note the installation instructions for each + platform - they contain important information for getting your + instruments working.
+

If you've decided to buy a color instrument because Argyll + supports it, please let the dealer and manufacturer know that "You bought it because Argyll CMS + supports it" - thanks.
+

+

Please note that instruments are + being driven by ArgyllCMS drivers, and that any problems or + queries regarding instrument
+ operation
should be + directed to the Argyll's author(s) or the Argyll mailing list, + and not to any other + party.

+

There is a list + of contributed ccmx + (Colorimeter Correction Matrix) files for some display/colorimeter + combinations.

+

Copyright and Licensing:
+

+

Most of the source code and provided executable files are + copyrighted works, licensed under the Affero GNU Version 3 license, and therefore they + (or works derived from them) can't be copied, sold or made + available to users interacting with them remotely through a + computer network, without providing the source code. Nothing other + than your agreement and compliance with the Affero GNU License + grants you permission to use, modify or distribute Argyll source + code, executables or its derivative works. You could be sued for + copyright infringement if you use or distribute Argyll without a + valid license. The Affero GNU + license prohibits + extending these tools + (i.e. by combining them with other programs or scripts that make + use of, depend on, or work with the Argyll code) and distributing + them, unless the all the elements of the extensions are also made + available under a GPL compatible license. It is permissible to + provide Argyll tools with other non GPL components if the elements + of the package are not related, such that the packaging is mere + aggregation. For all the gory details, please read the + accompanying license.

+ 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 assumed to be the copyright property + of the person who gathers the characterization data, and causes the + profiles to be created. +

The Argyll CMS is Copyright 1995 - 2013 Graeme W. Gill, and is + made available under the terms of the Affero GNU General Public + License Version 3, as detailed in the License.txt + file. Documentation is licensed under the terms of the GNU Free + Documentation License, Version 1.3. The author asserts his moral + rights over this material in relationship to the attribution and + integrity of these works. In particular, if these works are + modified in a way that materially changes their functionality, + then the modified works should be renamed in a way that clearly + distinguishes them from "Argyll" or "ArgyllCMS" so that the + effects of such changes do not reflect on the original works + integrity or the original authors reputation. A subset of files + (those that are related to the color instrument drivers, and are + collected together into the instlib.zip archive by the + spectro/instlib.ksh script + xicc/ccmx.h and xicc/ccmx.c) are + licensed under the General Public License Version 2 or later, as + detailed in the License2.txt file.
+

+

Portions of the ColorHug instrument library + (spectro/colorhug.[ch]) are Copyright 2011, Richard Hughes, and is + licensed under the General Public License Version 2 or later, as + detailed in the License2.txt file.

+

The tool spectro/spec2cie.c is Copyright 2005 Gerhard Fuernkranz, + and is made available under the terms of the GNU General Public + License Version 2 or later, and is licensed here under the Version + 3 license, as detailed in the License3.txt + file.
+

+

The Win32 USB library libusb-win32 kernel drivers are included in + this distribution in the usb/driver and usb/bin directories, and + are copyright Stephan Meyer and Travis Robinson, and are licensed + under the GNU Version 2 or later (the drivers, services, + installer). See  usb/driver/License.txt, + libusbw/COPYING_LGPL.txt and libusbw/COPYING_GPL.txt for details. + Additional terms noted on the website + are "This license combination explicitly allows the use of this + library in commercial, non-Open-Source applications."
+

+

The icc library in icc/, + the CGATS library in cgats/, + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + the jcnf library in jcnf/, + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + the files spectro/xdg_bds.*, + spectro/aglob.* and the + ucmm library in ucmm/ are + Copyright 1995 - 2011 Graeme W. Gill, and available according to + the "MIT" license granted in the icc/License.txt and + cgats/License.txt files, and the licenses at the top of + ucmm/ucmm.c and jcnf/jcnf.c.
+

+

The yajl library in jcnf/yajl + is Copyright 2007-2009, Lloyd Hilaiel and is licensed according to + the Berkeley-style License granted in the jcnf/yajl/COPYING files. + The yajl library has been repackaged and modified slightly for + convenience.
+

+

The TIFF library included in this distribution for convenience, + has its own copyright and license detailed in tiff/COPYRIGHT (an + "MIT"/"BSD" like license).
+

+

The Independent JPEG Group's JPEG library included in this + distribution for convenience, has its own copyright and license + detailed in jpg/README (an "MIT"/"BSD" like license). Executables + that include JPEG format support are based in part on the work of + the Independent JPEG Group.

+

xicc/iccjpeg.h and xicc/iccjpeg.c are from lcms and they are Copyright + (c) 1998-2010 Marti Maria Saguer and is licensed under an + "MIT"/"BSD" like license. See the top of the iccjpeg.c file for + the detailed copyright and licensing conditions.
+

+

The mongoose web server software is Copyright (c) 2004-2011 + Sergey Lyubka, and is licensed under an "MIT" license.

+

What sort of project is this ? (re: + contributions)
+

+ This is essentially my private project, that I've made available + under GNU licensing conditions. Because I license my code under + other licenses as well, there is a limit to what I will accept in + the way of code contributions back into this project. For me to + accept contributions into the distribution, it either has to a + non-core (side) project, or has to be offered to me with copyright + conditions that are compatible with my other uses (i.e.. a "BSD" + like license, or assigning or licensing the copyright to me), or has + to be so trivial (say a one line bug fix), that it can't be the + subject of copyright.
+
+ Of course there is nothing to stop someone setting up a real free + software, community project based on the GNU licensed code made + available here, that would be able to take GNU licensed + contributions from everyone and would essentially be a "fork" of + this code base.
+
+

Compiling

+ How to build the software from the + source if you want to.
+ Note that you don't need to + do this if you are using one of the binary installations.
+

Installing

+ Important notes on installing the binary + software on various platforms.
+
+

Graphic + User Interfaces
+

+ ArgyllCMS does not directly support a graphic user interface, but + several people have written GUI + based front ends for it. A popular front +end +that +supports +display +calibration + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + and profiling is dispcalGUI + by Florian Höch. Others can be found with a suitable search.
+

Main + Tools and the command line
+

+ These are all command line ("DOS" shell) tools, and each 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 tools, 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 "--" on OS X zsh).
+
+ Note that in general the arguments consist of possible flags or + options followed by file name arguments. All arguments need to be + separated by whitespace.  (If you need to specify a string with + embedded white space, double quote the string). A flag consists of a + dash attached to a single letter, the letter identifying the flag, + and is usually case sensitive. An option is a flag that has an + associated parameter or parameters. The parameter can be separated + from the flag by white space, or may come directly after the flag. + So if a tool has a usage that looks like this:
+
+   tool -?
+   usage: tool [options] infile outfile
+    + -v                   + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Verbose mode
+    -d + n                + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Choose a depth 0-4
+    -r +                   + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Use a random depth
+    -f + [nn]            + Use full range. nn optional range 0 - 100.
+    -M +                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Manual
+    infile +                + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Input file
+    outfile +             + Output file
+
+ then there are  5 flags/options, and two filename arguments. + Notice that square braces [] denote optional items. The first + flag/option is a flag. The second is an option that has a numerical + argument in the range 0 to 4. The third is a flag. the fourth is an + option with an optional argument. The fourth is a flag.  The + flags and options can generally be in any order, but must be before + the file name arguments. (For a few special tools you actually + specify a sequence of flags and files where the flags apply just to + the following file.) So example invocations may look like:
+
+   tool -v testin testout
+   tool -d3 -M testin1 testout2
+   tool -f infile outfile
+   tool -f 45 infile outfile
+   tool -d 3 -f67 infile outfile
+

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. Naturally you will want to set your $PATH so that you + can run the tools from whichever directory you are in, as well as + specify any necessary directory paths for file arguments so that + the tools are able to open them.
+

+

Note that there are two ways the Argyll tools deal with filename + extensions. In one you supply the extension (ie. you supply the + whole file name), so the extension is up to you. In the other + (used where one name is used for input and output files, or where + there are multiple output files), the program adds the extension. + In the documentation this should be indicated by calling it a + "base name".
+

+

For more information on using a command + line environments, consult an appropriate tutorial:

+

MS Windows :
+    <http://www.bleepingcomputer.com/tutorials/tutorial76.html>
+    <http://www.pcstats.com/articleview.cfm?articleid=1723&page=1>
+    <http://www.voidspace.org.uk/python/articles/command_line.shtml>
+
+     To find more: <http://www.google.com/search?hl=en&q=windows+command+prompt+tutorial>
+
+ OS X:
+     <http://www.osxfaq.com/Tutorials/LearningCenter/>
+     <http://www.atomiclearning.com/macosxterminalx.shtml>
+     <http://www.oreillynet.com/pub/a/mac/2001/12/14/terminal_one.html>
+
+     To find more: <http://www.google.com/search?hl=en&q=OS+X+shell+tutorial>
+
+ Linux:
+     <http://www.linuxcommand.org/index.php>
+     <http://www.tuxfiles.org/linuxhelp/shell.html>
+     <http://www.ee.surrey.ac.uk/Teaching/Unix/>
+
+     To find more: <http://www.google.com/search?q=linux+command+line+shell+tutorial>

+


+ Note that since OS X is + based on UNIX, there is much in common between the OS X and Linux + command line environments, and many of the UNIX tutorials may be + useful:
+

+

    <http://www.rain.org/~mkummel/unix.html>
+
+

+

Tutorial: Typical usage scenarios + and examples

+ A guided tour of the major tools, + applied to typical CMS jobs, such as calibrating displays, creating + device profiles, calibrating printers, linking profiles, and + converting color spaces of raster files.
+
+ Although it is is a couple of years old now, this tutorial + may also be of interest.
+  
+

Topical + Discussions

+ Discussions about particular topics:
+
+ About Fluorescent Whitening Agent compensation
+
+ Operation of particular instruments
+
+ About ICC profiles and Gamut Mapping
+
+ About display monitor settings and + targets
+
+ About display "Gamma"
+
+ What's the difference between Calibration + and Characterization ?
+
+ Why doesn't my Colorimeter work + well on my Wide Gamut display ?
+
+ My blacks get crushed on my + display - why ? How do I fix it ?
+
+ How can I have confidence in the i1pro + Driver ?
+
+ Evaluating input targets
+
+

Flow + diagram of Major Tools:

+
+           Thumbnail of Flow Diagram
+
+

Main Tools by + category:

+

Calibrating devices
+

+ dispcal +       Adjust, + calibrate and profile a display.
+
printcal      Create a + printer calibration .cal file from a .ti3 data file.
+

Creating test targets for profiling or print calibration
+

+ targen        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Generate a profiling test target values .ti1 file.
+ filmtarg      Create + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + film recorder TIFF files from Argyll .ti1 file.
+ printtarg     Create + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + a PS, EPS or TIFF file containing test patch values, ready for + printing.
+

Obtaining test results for profiling or print calibration
+

+ chartread     Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + a 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.
+
illumread     Use an + instrument to measure an illuminant spectrum, and estimate its UV + content.
+ fakeread      Fake + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + the reading of a device using an ICC or MPP profile.
+
synthread     Fake the + reading of a device using a synthetic device model.
+ cb2ti3        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Convert Colorblind format CMY/RGB test chart into + Argyll .ti3 CGATS format.
+ kodak2ti3     Convert + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Kodak Colorflow format CMYK test chart into Argyll .ti3 CGATS + format.
+ txt2ti3       + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Convert Gretag/Logo/X-Rite or other format RGB or 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
+
average       Average + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + / Merge two measurement data files
+

Creating Device Profiles

+ colprof       + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Create an ICC profile from the .ti3 test data.
+ mppprof       + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Create a Model Printer Profile (MPP) from the .ti3 + test data.
+ revfix        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Regenerate a device profiles B2A table data by + inverting the A2B table. +

Creating Device Link Profiles

+ collink       + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link two device ICC profiles to create a device + link profile. +

Converting colors or applying print calibration
+

+ cctiff        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Color convert a TIFF or JPEG file using a sequence + of ICC device, device link, abstract profiles and calibration files. +
+ applycal      Apply + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + calibration curves to an ICC profile.
+ 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.
+ greytiff      Convert + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + a TIFF file to monochrome using an ICC device profile
+

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 or JPEG + image.
+ viewgam       + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Convert one or more gamuts into a VRML 3D + visualization file. Compute an intersection.
+

Diagnostic and test tools
+

+ iccdump       + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Dump the contents of an ICC profile as text.
+ profcheck     Check + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + an ICC profile against .ti3 test chart data.
+ invprofcheck  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Check ICC forward against inverse lookup.
+ splitsti3     Split + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + a CGATS file (ie. a .ti3) into two parts randomly to verify + profiling.
+ timage +        Create TIFF test + images.
+ 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 CGATS/.ti3 files (also view differences as + VRML)
+ synthcal      Create + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + a synthetic input, display or output calibration (.cal)file. +

Other Tools

+ ccxxmake      Use + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + a Spectrometer to create a Colorimeter Correction Matrix + (CCMX)  or a Colorimeter Calibration Spectral Set (CCSS)  + for a particular display.
+ extracticc    Extract + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + an embedded ICC profile from a TIFF or JPEG file.
+
extractttag   Extract a text tag (ie. CGATS + .ti3 data or CAL) from an ICC profile.
+ dispwin       Install + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + or uninstall display profile, set display calibration from profile + or .cal file, test displace and dispwin access to a display.
+ oeminst       + Install Instrument manufacturers files for the + Spyder 2, EDR or CCSS calibration files for i1d3 or Spyder 4,  + CCMX files for colorimeters.
+ specplot       + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Plot a spectrum (.sp, .cmf, .ccss) and calculate CCT and VCT.
+ spec2cie      Convert + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + spectral .ti3 readings into CIE XYZ or L*a*b* readings. Apply FWA, + plot spectrums.
+   +

Main Tools + Alphabetic Listing:

+ applycal      Apply + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + calibration curves to an ICC profile.
+ average       + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Average / Merge two measurement data files
+ cb2ti3        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Convert Colorblind format CMY/RGB test chart into + Argyll .ti3 CGATS format.
+ cctiff        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Color convert a TIFF or JPEG file using a sequence + of ICC device, device link, abstract profiles and calibration files.
+ ccxxmake      Use + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + a Spectrometer to create a Colorimeter Correction Matrix + (CCMX)  or a Colorimeter Calibration Spectral Set (CCSS)  + for a particular display.
+ chartread     Read + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + a test chart using an instrument to create a .ti3 data file.
+ collink       + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link two device ICC profiles to create a device + link profile.
+ colprof       + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Create an ICC profile from the .ti3 test data.
+ dispcal +       Adjust, calibrate and + profile a display.
+ dispread      Test + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + and read colorimetric values from a display
+ dispwin       Install + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + or uninstall display profile, set display calibration from profile + or .cal file, test displace and dispwin access to a display.
+ extracticc    Extract + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + an embedded ICC profile from a TIFF or JPEG file.
+
extractttag   Extract a text tag (ie. CGATS + .ti3 data or CAL) from an ICC profile.
+ 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.
+ greytiff      Convert + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + a TIFF file to monochrome using an ICC device profile
+ 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.
+ icclu         + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Lookup individual color values through any ICC + profile table.
+ illumread     Use + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + an instrument to measure an illuminant spectrum, and estimate its UV + content.
+ invprofcheck  Check ICC + forward against inverse lookup.
+ kodak2ti3     Convert + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Kodak Colorflow format CMYK test chart 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.
+ mppprof       + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Create a Model Printer Profile (MPP) from the .ti3 + test data.
+ oeminst       + Install Instrument manufacturers files for the + Spyder 2, EDR or CCSS calibration files for i1d3 or Spyder 4,  + CCMX files for colorimeters.
+ printcal      Create + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + a printer calibration .cal file from a .ti3 data file.
+ printtarg     Create + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + a PS, EPS or TIFF file containing test patch values, ready for + printing.
+ profcheck     Check + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + an ICC profile against .ti3 test chart 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.
+ spec2cie      Convert + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + spectral .ti3 readings into CIE XYZ or L*a*b* readings. Apply FWA, + plot spectrums.
+ specplot       + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Plot a spectrum (.sp, .cmf, .ccss) and calculate CCT and VCT.
+ splitsti3     Split + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + a CGATS file (ie. a .ti3) into two parts randomly to verify + profiling.
+ spotread      Use + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + an instrument to read a single spot color value.
+ synthcal      Create + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + a synthetic input, display or output calibration (.cal)file.
+ synthread     Fake + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + the reading of a device using a synthetic device model.
+ targen        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Generate a profiling test target values .ti1 file. +
+ tiffgamut     Create + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + a gamut file or VRML file of the color gamut of a TIFF or JPEG + image.
+ timage +        Create TIFF + test images.
+ txt2ti3       + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Convert Gretag/Logo/X-Rite or other + format RGB or CMYK test chart results into Argyll .ti3 CGATS + format.
+ verify        Verify + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + matching of CIE in two CGATS/.ti3 files (also view differences as + VRML)
+ viewgam       Convert + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + one or more gamuts into a VRML 3D visualization file. Compute an + intersection.
+ xicclu        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Lookup individual color values forward or inverted + though an ICC profile table.
+
+

Environment Variables
+

+ Performance/memory tuning hints, plus + tweaks for scipting.
+

Performance Tuning
+

+ Performance hints.
+

Overview

+ Overview of the software and its aims and functionality.
+

Limitations

+ Limitations of the current functionality.
+

Organization

+ How directories are organized, what they contain. +

Source

+ Any detailed documentation on how the software works, or what + algorithms it is based on. (Very incomplete.) +

Minor Tools

+ A very brief description of minor tools and test harnesses.
+
+
+

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  Format details.
+ .cal +            Device + calibration information. Format details.
+ .cht           + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Test chart recognition template. Format + details.
+ .gam         + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 3D gamut surface description
+ .sp            + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Illuminant spectral description
+ .ccmx +        Colorimeter Correction Matrix
+ .ccss +         Colorimeter Calibration + Spectral Set
+ 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.
+ JPEG         + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Joint Photographic Experts Group, JPEG File Interchange Format + raster files.
+ VRML       + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Virtual Reality Modelling Language 3D file format.
+
+ ucmm       Unix micro + Color Management Module convention and configuration file format and + Profile + Locations.
+   +

Errors, Corrections and Omissions:

+ If you notice any errors, corrections needed or omissions in + the current documentation, please contact the author.
+  
+   + + diff --git a/doc/ArgyllFlow.jpg b/doc/ArgyllFlow.jpg new file mode 100644 index 0000000..962e42a Binary files /dev/null and b/doc/ArgyllFlow.jpg differ diff --git a/doc/ArgyllFlowThumb.jpg b/doc/ArgyllFlowThumb.jpg new file mode 100644 index 0000000..a98b4ff Binary files /dev/null and b/doc/ArgyllFlowThumb.jpg differ diff --git a/doc/CMP_DT_003.jpg b/doc/CMP_DT_003.jpg new file mode 100644 index 0000000..1975eeb Binary files /dev/null and b/doc/CMP_DT_003.jpg differ diff --git a/doc/CMP_Digital_Target-3.jpg b/doc/CMP_Digital_Target-3.jpg new file mode 100644 index 0000000..b6502d5 Binary files /dev/null and b/doc/CMP_Digital_Target-3.jpg differ diff --git a/doc/CRTspectrum.jpg b/doc/CRTspectrum.jpg new file mode 100644 index 0000000..82ddd17 Binary files /dev/null and b/doc/CRTspectrum.jpg differ diff --git a/doc/ChangesSummary.html b/doc/ChangesSummary.html new file mode 100644 index 0000000..94e3aa3 --- /dev/null +++ b/doc/ChangesSummary.html @@ -0,0 +1,790 @@ + + + + + + + + + + Argyll CMS changes since last release + + +

Summary of Argyll CMS Changes since last release

+

For a complete + and more detailed list of changes, please see the log.txt file.

+

[V1.5.0 -> V1.5.1] 8th March 2013

+ +

[V1.4.0 -> V1.5.0] 1st March 2013

+ +

[V1.3.7 -> V1.4.0] 20th April 2012

+ +

[V1.3.6 -> V1.3.7] 26th March 2012

+ +

[V1.3.5 -> V1.3.6] 19th March 2012
+

+ +

[V1.3.4 -> V1.3.5] 24th October 2011

+ +

[V1.3.3 -> V1.3.4] 31st August 2011

+ +

[V1.3.2 -> V1.3.3] 13th May 2011

+ + +

[V1.3.1 -> V1.3.2] 4th November 2010
+

+ +

[V1.3.0 -> V1.3.1] 26th October 2010
+

+ +

[V1.2.0 -> V1.3.0] 8th September 2010
+

+ +

[V1.1.1 -> V1.2.0] 30 July 2010
+

+ +

[V1.1.0 -> V1.1.1] 21 February 2010
+

+ +

[V1.0.4 -> V1.1.0] 17th January 2010
+

+ +

[V1.0.3 -> V1.0.4] 30th June 2009
+

+ +

[V1.0.2 -> V1.0.3] 3rd September 2008
+

+ +

[V1.0.1 -> V1.0.2] 19th August 2008
+

+ Various bug fixes, the main ones being:
+ +

[V0.70 Beta 8 -> V1.0.0] 1st July 2008
+

+
+ Apart from numerous bug fixes and many minor feature additions and + improvements, the main changes to this version compared to the + previous one are:
+ + As usual, a more detailed description of all changes is in the log.txt + file that accompanies the source code. +

[V0.60 -> V0.70 Beta 8]15th January 2008
+

+ +
+
+
+


+  
+  
+  
+  
+  
+  

+
+ + diff --git a/doc/Chroma4.jpg b/doc/Chroma4.jpg new file mode 100644 index 0000000..917a9e5 Binary files /dev/null and b/doc/Chroma4.jpg differ diff --git a/doc/ColorManagement.html b/doc/ColorManagement.html new file mode 100644 index 0000000..fa7b656 --- /dev/null +++ b/doc/ColorManagement.html @@ -0,0 +1,271 @@ + + + + + Color Management + + + +

A Concise Introduction to + Color Management and ICC profiles
+

+ [Note that there are many other, perhaps more comprehensive and + expansive "introduction to Color Management" resources on the web. + Google is your friend...]
+
+ Color management is a means of dealing with the fact that color + capture and output devices such as Cameras, Scanners, Displays and + Printers etc., all have different color capabilities and different + native ways of communicating color. In the modern world each device + is typically just part of a chain of devices and applications that + deal with color, so it is essential that there be some means for + each of these devices to communicate with each other about what they + mean by color.
+
+ Successful color management allows colors to be captured, + interchanged and reproduced by different devices in a consistent + manner, and in such a way as to minimize the impact of any technical + limitation each device has in relation to color. It must also deal + with the interaction of human vision and devices, allowing for such + fundamental vision characteristics as white point adaptation and + other phenomena. It should also allow the human end purposes to + influence the choice between  tradeoffs in dealing with + practical device limitations.
+
+ The key means of implementing color management is to have a way of + relating what we see, to the numbers that each device uses to + represent color.
+
+ The human eye is known to have 3 type of receptors responsible for + color vision, the long, medium and short wavelength receptors. + Because there are 3 receptors, human color perception is a 3 + dimensional phenomena, and therefore at least 3 channels are + necessary when communicating color information. Any device capable + of sensing or reproducing color must therefore have at least 3 + channels, and any numerical representation of a full range of colors + must have at least 3 components and hence may be interpreted as a + point in a 3 dimensional space. Such a representation is referred to + as a Color Space.
+
+ Typically color capture and output devices expose their native color + spaces in their hardware interfaces. The native color space is + usually related to the particular technology they employ to capture + or reproduce color. Devices that emit light often choose Red Green and Blue (RGB) wavelengths, as these are particularly + efficient at independently stimulating the human eye's receptors, + and for capture devices R,G & B are roughly similar to the type + of spectral sensitivity of our eyes receptors. Devices that work by + taking a white background or illumination and filtering out (or subtracting) colors tend to use + Cyan, Magenta, and Yellow (CMY) filters or colorants to + manipulate the color, often augmented by a Black channel (CMYK). This is because a Cyan + filters out Red wavelengths, Magenta filters out Green wavelengths, + and Yellow filters out Blue wavelengths, allowing these colorants to + independently control how much RGB is emitted. Because it's + impossible to make filters that perfectly block C, M or Y + wavelengths without overlapping each other, C+M+Y filters together + tend to let some light through, making for an imperfect black. + Augmenting with an additional Black filter allows improving Black, + but the extra channel greatly complicates the choice of values to + create any particular color.
+
+ Many color devices have mechanisms for changing the way they respond + to or reproduce color, and such features are called Adjustments, or Calibration. Such features can + be very useful in adapting the device for use in a particular + situation, or for matching different instances of the device, or for + keeping its behavior constant in the face of component or + environmental changes. Sometimes there may be internal + transformations going on in the device so that it presents a more or + less expected type of color space in its hardware interface. [ Some + sophisticated devices have built in means of emulating the behavior + of other devices, but we won't go into such details here, as this is + really just a specialized implementation of color management. ]
+
+ To be able to communicate the way we see color, a common "language" + is needed, and the scientific basis for such a language was laid + down by the International Commission on Illumination (CIE) in 1931 + with the establishment of the CIE 1931 XYZ color space. This provides a means of predicting + what light spectra will match in color for a Standard Observer, who + represents the typical response of the Human eye under given viewing + conditions. Such a color space is said to be Device Independent since it is + not related to a particular technological capture or reproduction + device. There are also closely related color-spaces which are direct + transformations of the XYZ space, such as the L* a* b* space which is a more + perceptually uniform device independent colorspace.
+
+ As mentioned above, the key to managing color is to be able to + relate different color spaces so that they can be compares and + transformed between. The most practical approach to doing this is to + relate all color spaces back to one common colorspace, and the CIE + XYZ colorspace is the logical choice for this. A description of the + relationship between a devices native color space and an XYZ based + colorspace is commonly referred to as a Color Profile. As a practical issue when dealing + with computers, it's important to have a common and widely + understood means to communicate such profiles, and the ICC profile format standardized + by the International Color Consortium is today's most widely + supported color profile format.
+
+ The ICC profile format refers to it's common color space as the Profile Connection Space (PCS), which is closely based on + the CIE XYZ space. ICC profile are based on a Tagged format, so they + are very flexible, and may contain a variety of ways to represent + profile information, and may also contain a lot of other optional + information.
+
+ There are several fundamental types of ICC profiles. Device and Named profiles represent color anchor points. Device Link and Abstract profiles represent journeys between anchor + points.
+
+ Device
+
+     These primarily provide a translation between + device space and PCS. They also typically provide a translation in + the reverse direction, from PCS to device space. They provide an + "color anchor" with which we are able to navigate our way around + device color. The mechanisms they use to do this are discussed in + more detail below.
+
+ Device Link
+
+     A Device Link profile provides a transformation + from one Device space to another. It is typically the result of + linking two device profiles, ie. Device A -> PCS -> Device B, + resulting in a direct Device A -> Device B transformation.
+
+ Abstract
+
+     An abstract profile contains a transformation + define in PCS space, and typically represents some sort of color + adjustment in a device independent manner.
+
+ Named
+
+     A Named profile is analogous to a device Profile, + but contains a list of named colors, and the equivalent PCS and + possibly Device values.
+
+ Most of the time when people talk about "ICC profiles" they mean Device Profiles. Profiles rely + on a set of mathematical models to define the translation from one + colorspace to another. The models represent a general framework, + while a specific profile will define the scope of the model as well + as it's specific parameters, resulting an a concrete translation. + Profiles are typically used by CMMs + (Color Management Modules), which are a piece of software (and + possibly hardware) that knows how to read and interpret an ICC + profile, and perform the translation it contains.
+
+ Often the function of a CMM will be to take two device profiles, one + representing the starting point and the other representing the + destination, and create a transformation between the two and + applying it to image pixel values.
+
+ Two basic models can be used in ICC profiles, a Matrix/shaper model and a cLUT (Color Lookup Table) model. + Models often contain several optional processing elements that are + applied one after the other in order to provide an overall + transformation.
+
+ The Matrix/Shaper model consists of a set of per channel lookup + curves followed by a 3x3 matrix. The curves may be defined as a + single power value, or as a one dimensional lookup table which + encodes a discretely represented curve (Lut). The matrix step can + only transform between 3 dimensional to 3 dimensional color spaces.
+
+ The cLUT model consists of an optional 3x3 matrix, a set of per + channel one dimensional LUTs, an N dimensional lookup table (cLUT) + and a set of per channel one dimensional LUTs. It can transform from + any dimension input to any dimension output.
+
+ All Lookup Tables are interpolated, so while they are defined by a + specific set of point values, in-between values are filled in using + (typically linear) interpolation.
+
+ For a one dimensional Lookup table, the number of points needed to + define it is equal to its resolution.
+
+ For an n-dimensional cLUT, the number of points needed to define it + is equal to it's resolution taken to the power of the number of + input channels. Because of this, the number of entries climbs rapidly with resolution, and + typical limited resolution tables are used to constrain profile file + size and processing time. cLUT's permit detailed, independent + control over the the transformation throughout the colorspace.
+
+ Limitations of CIE XYZ
+
+ Although CIE XYZ colorspace forms an excellent basis for connecting + what we can measure with what we see in regard to color, it has its + limitations. The primary limitation is that the visual match between + two colors with the same XYZ values assumes identical viewing + conditions. Our eyes are marvelously adaptable, automatically + adjusting to different viewing conditions so that we are able to + extract the maximum amount of useful visual information. There are + many practical situations in which the viewing conditions are not + identical - e.g. when evaluating an image against our memory of an + image seen in a different location, or in viewing images side by + side under mixed viewing conditions. One of the primary things that + can change is our adaptation to the white point of what we are + looking at. This can be accounted for in XYZ space by applying a + chromatic adaptation, which mimics the adaptation of the eye. The + ICC profile format PCS space by default adapts the XYZ values to a + common white point (D50), to facilitate ease of matching colors + amongst devices with different white points. Other viewing condition + effects (ie. image luminance level, viewing surround luminance and + flare) can be modeled using (for example) using CIECAM02 to modify + XYZ values.
+
+ Another limitation relates to spectral assumptions. CIE XYZ uses a + standard observer to convert spectral light values into XYZ values, + but in practice every observer may have slightly different spectral + sensitivities due to biological differences, including aging. + (People with color deficient vision may have radically different + spectral sensitivities.) Our eyes also have a fourth receptor + responsible for low light level vision, and in the eye's periphery + or at very low light levels it too comes to play a role in the color + we perceive, and is the source of a difference in the eye's spectral + sensitivity under these conditions.
+
+ Another spectral effect is in the practice of separating the color + of reflective prints from the light source used to view them, by + characterizing a prints color by it's reflectance. This is very + convenient, since a print will probably be taken into many different + lighting situations, but if the color is reduced to XYZ reflectance + the effect of the detailed interaction between the spectra of the + light source and print will lead to inaccuracies.
+
+
+
+
+
+
+
+
+
+
+
+
+ + diff --git a/doc/ColorMunki.jpg b/doc/ColorMunki.jpg new file mode 100644 index 0000000..513d770 Binary files /dev/null and b/doc/ColorMunki.jpg differ diff --git a/doc/ColorMunkiCreate.jpg b/doc/ColorMunkiCreate.jpg new file mode 100644 index 0000000..64b3dbd Binary files /dev/null and b/doc/ColorMunkiCreate.jpg differ diff --git a/doc/Compiling.html b/doc/Compiling.html new file mode 100644 index 0000000..b4fcd7c --- /dev/null +++ b/doc/Compiling.html @@ -0,0 +1,170 @@ + + + + + + + Argyll Compiling + + +

Compiling the Source Code

+ If you have downloaded the source code package, then you will need + to read the following instructions in order to compile and then run + any of the tools. If you have downloaded one of the platform + specific executable package, then the executables don't need to be + compiled, and the following instructions are not relevant.
+
Check your development + environment:
+ Check you have one of the supported development environments listed, and that your shell is + configured to have access to the development tools.
+
+ On Linux, check that the appropriate development packages are + installed:
+
+     jam: Program construction tool, similar to make + [If available]
+     gcc C compiler
+     Development files for libX11
+     Development files for libXdmcp
+     X.Org X11 libXext development package
+     X.Org X11 libXxf86vm development package
+     X.Org X11 libXinerama development package
+     X.Org X11 libXrandr development package
+     X.Org X11 libXScrnSaver A.K.A. libxss-dev + development package +
Setup JAM:
+
+ Argyll makes use of a build system called Jam/MR. Jam is + cross platform, highly customizable and flexible. It uses a concise, + scalable and platform neutral configuration files, and is fast.
+

If you do not already have Jam 2.5 on your system or if it is not + available as an installable package, you will need to install it. + [It may be available as an RPM for Linux systems.] Jam/MR is + available from <ftp://ftp.perforce.com/jam> + You'll want to bootstrap it up using its Makefile - see the README file that comes with + Jam for more information. You may want to apply the patch jam.patch included in Argyll + to jam.c so that it uses + the environment variable JAMBASE, + and then setting this environment variable to point to the Argyll + Jambase. The patch also fixes a non-critical bug that affects + building using MingW. Note that building jam results in an + executable jam0 that you + will want to rename and install in an appropriate place on your + system. A pre-patched + source archive of Jam is available as a  .zip here + for MSWin, or as a .tgz for OS + X and Linux.
+

+

An alternative to the original Jam may be ftjam, + which is appears to be backwards compatible with the original + Jam/MR.

+

The Jambase I am using + for Argyll is different to the default Jambase provided with Jam + and compiled into it,  and you need to arrange to use this + when you compile Argyll. You can tell Jam to use an alternate + Jambase using the -f + option, or by setting the environment variable JAMBASE to point to the Argyll + Jambase if you applied the Argyll patch to jam. Another method + would be to create a shell alias of jam that invokes jam using the + -f flag, or to create a script that provides the -f option to + point to the Argyll Jambase. Argyll will not build properly if you + use the wrong Jambase.

+ If you are running on Mac OSX, then even though OSX comes with a + version of Jam/MR in the development system, you will need to + download, build and install a normal version of Jam/MR Version 2.5 + or later from perforce, to be able to build Argyll. This is due to + Apple changing their version of Jam sufficiently to make it + incompatible with normal Jamfiles :-(.
+

On OSX what I did was to name the "normal" Jam ajam, and then + setup a jam shell script to invoke it something like this: "ajam + -f~/src/argyll/Jambase $*", and to make sure that my script is + ahead of Apples jam in my $PATH.  The makeall.ksh script or + Makefile will run Jam with the -f flag.

+

You may also have to set the appropriate environment variable to + tell the Jambase which compiler you are using.
+

+
Then compile Argyll:
+
+

Once you've got a working Jam, you simply have to unzip the + argyll.zip file, and it will create a top level directory Argyll_VX.X.X, where X.X.X is + the version number, and you can then cd into this directory and + run jam. For a faster build on a multiprocessor + system you may like to use the -j option  to do a parallel + build, e.g. jam -j3. To + install the executables in the bin directory and the sample files + into the ref directory, + run jam install. To + remove everything that has been built, run jam clean. On Linux/OS X you + could also just try running make, and the makefile will invoke + jam.
+

+

Something to watch on the Intel versions of OS X 10.4, is that + your shell environment variable $MACHTYPE may be incorrect. On + Intel 10.4 it should be i386-apple-darwin8.0, but there are bugs + in Apples distribution.
+

+

You may have to check that your shell environment variable $HOSTTYPE has been exported, so + that Jam can know if it's 64 bit or not,
+ and look for libraries in the right place. You can fix this + permanently in your shell .initialization file (ie. ~/.profile, + ~/.bashrc etc.).
+

+

To build a particular sub directory only, cd to the directory and + simply run jam, although + be aware that the local Jamfile compile time options may be + different to those in the top level Jamfile used when compiling + from the top.
+

+

NOTE that "jam install" + doesn't install the resulting binaries in the "usual places", it + installs them in the Argyll_VX.X.X/bin directory, and it's then + up to you whether you want copy them to somewhere like C:\Program + Files\argyll, /usr/bin, /usr/local/bin etc., or simply leave them + there.

+
Compile environment on + MSWindows:
+

Setting up a compile environment on MSWindows can be challenging. + The simplest approach is probably to install MingW, since it + provides both the compiler and the SDK in one package.
+
+ I've successfully compiled using Microsoft VC++ 6.0, but I think I + remember tweaking some of the header files by borrowing from a + latter SDK to be able to incorporate the  necessary function + calls to access display and color profiles on Win2K and latter, so + this may not work "out of the box".

+

I've also successfully compiled using Microsoft VC++ 8.0 and VC++ + 9.0 Express (the free Microsoft compiler) plus the Microsoft + Platform SDK February 2008. To get this to work though, I had to + create my own batch file to setup the SDK environment variables MSSdk etc., because the batch + files provided with the SDK got confused by the presence of VC++6, + and didn't notice that VC++8 or 9 was configured.

+

Note that for some hard to fathom reason VC++ 9.0 refused to + install on my Win2K development machine, so I had to install it on + a WinXP machine and then copy the installation back to Win2K, and + manually complete the installation. There seems to be no reason + for this limitation, since the VC++9  compiler/linker etc. + seems quite happy to run on Win2K.

+

I haven't attempted to compile for Win64, and currently the + Jambase isn't setup for cross compilation, nor have I tried to + setup a native build environment yet on Vista64.
+  

+ + diff --git a/doc/CrushedDisplyBlacks.html b/doc/CrushedDisplyBlacks.html new file mode 100644 index 0000000..3038384 --- /dev/null +++ b/doc/CrushedDisplyBlacks.html @@ -0,0 +1,85 @@ + + + + Crushed Display Blacks + + + + +

Crushed +Display Blacks
+

+Often people create a display profile, and then notice that when they +try and display some images using the profile, that the darkest blacks +in the image all get crushed into the black of the display. Why does +this happen ?
+
+There are many reasons this may happen, but here is a common one:
+
+The image has blacks that are darker than the black of the display, and +the color management intent being used clips out of gamut colors. So +all the blacks that are darker than the display black get mapped to the +display black. To avoid this, some sort of Gamut Mapping that maps that black +of the source image to the black of the display, while preserving the +distinction between all the rest of the colors needs to be used.
+
+Some popular synthetic colorspaces have a perfect (and unrealistic) +zero black, for instance sRGB +and AdobeRGB. Real world +display profiles have non-zero blacks, so transforming between these +two using a colorimetric intent will clip the blacks, and loose the +shadow details.
+
+

What performs gamut mapping ?

+Typically there are only two mechanisms available to perform gamut +mapping. The main one is a pre-cooked (static) gamut mapping built into +cLUT type ICC profiles. The second is an on-the-fly (dynamic) gamut +mapping performed by the CMM (Color Management Module). A limited form +of the latter is Adobe BPC (Black point compensation), which is also +available sometimes with applications or systems that use lcms. (Little +cms).
+
+

How do I fix it ?

+There are two ways of avoiding the black crush. One is to turn on BPC +if it is available in the system you are using. Sometimes it may only +be available for certain intents.
+
+The second way of fixing it is to create your display profile with +appropriate gamut mapping, and make sure that it gets used.
+
+Shaper/Matrix type ICC profiles do not support gamut mapping, since +there is only one transformation in them and it does not have the +necessary flexibility to incorporate gamut mapping. Shaper/Matrix +profiles are always colorimetric intent. So it is necessary to create a +cLUT based Display profile if gamut mapping is to be incorporated into +the profile. (Note that not all systems accept cLUT based Display +profiles). Creating cLUT profiles that incorporate appropriate gamut +mapping depends on the profile creation tools, and not all tools give +adequate control over gamut mapping to reliably fix this problem.
+
+

OK, so how do I fix it using +Argyll ?

+You can usually fix this problem using Argyll by simply creating a cLUT +based profile (the default), and telling colprof what the source +colorspace is going to be.
+
+i.e. say your source images are in sRGB space, then:
+
+    colprof -v -S sRGB.icm -D "My +Display" MyDisplayProfile +
+
+[It's usually safer to use the sRGB profile provided by Argyll than use +an sRGB profile of unknown origin. Find it in the ref directory.]
+
+This will create 3 separate B2A cLUT tables, one for colorimetric +intent, one for Perceptual intent, and one for Saturation intent. Both +Perceptual and Saturation tables will have appropriate gamut mapping +for a source colorspace of sRGB. So it is just a matter of making sure +that either Perceptual or Saturation intent is used when making use of +the display profile.
+
+ + diff --git a/doc/DC.jpg b/doc/DC.jpg new file mode 100644 index 0000000..4b3508e Binary files /dev/null and b/doc/DC.jpg differ diff --git a/doc/DTP20.jpg b/doc/DTP20.jpg new file mode 100644 index 0000000..f5ec164 Binary files /dev/null and b/doc/DTP20.jpg differ diff --git a/doc/DTP22.jpg b/doc/DTP22.jpg new file mode 100644 index 0000000..93d7400 Binary files /dev/null and b/doc/DTP22.jpg differ diff --git a/doc/DTP41.jpg b/doc/DTP41.jpg new file mode 100644 index 0000000..1a946e9 Binary files /dev/null and b/doc/DTP41.jpg differ diff --git a/doc/DTP51.jpg b/doc/DTP51.jpg new file mode 100644 index 0000000..946810c Binary files /dev/null and b/doc/DTP51.jpg differ diff --git a/doc/DTP92.jpg b/doc/DTP92.jpg new file mode 100644 index 0000000..2570daa Binary files /dev/null and b/doc/DTP92.jpg differ diff --git a/doc/DTP94.jpg b/doc/DTP94.jpg new file mode 100644 index 0000000..d99feaf Binary files /dev/null and b/doc/DTP94.jpg differ diff --git a/doc/DocLicense.txt b/doc/DocLicense.txt new file mode 100644 index 0000000..cd2b3b1 --- /dev/null +++ b/doc/DocLicense.txt @@ -0,0 +1,451 @@ + GNU Free Documentation License + Version 1.3, 3 November 2008 + + + Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. + + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +0. PREAMBLE + +The purpose of this License is to make a manual, textbook, or other +functional and useful document "free" in the sense of freedom: to +assure everyone the effective freedom to copy and redistribute it, +with or without modifying it, either commercially or noncommercially. +Secondarily, this License preserves for the author and publisher a way +to get credit for their work, while not being considered responsible +for modifications made by others. + +This License is a kind of "copyleft", which means that derivative +works of the document must themselves be free in the same sense. It +complements the GNU General Public License, which is a copyleft +license designed for free software. + +We have designed this License in order to use it for manuals for free +software, because free software needs free documentation: a free +program should come with manuals providing the same freedoms that the +software does. But this License is not limited to software manuals; +it can be used for any textual work, regardless of subject matter or +whether it is published as a printed book. We recommend this License +principally for works whose purpose is instruction or reference. + + +1. APPLICABILITY AND DEFINITIONS + +This License applies to any manual or other work, in any medium, that +contains a notice placed by the copyright holder saying it can be +distributed under the terms of this License. Such a notice grants a +world-wide, royalty-free license, unlimited in duration, to use that +work under the conditions stated herein. The "Document", below, +refers to any such manual or work. Any member of the public is a +licensee, and is addressed as "you". You accept the license if you +copy, modify or distribute the work in a way requiring permission +under copyright law. + +A "Modified Version" of the Document means any work containing the +Document or a portion of it, either copied verbatim, or with +modifications and/or translated into another language. + +A "Secondary Section" is a named appendix or a front-matter section of +the Document that deals exclusively with the relationship of the +publishers or authors of the Document to the Document's overall +subject (or to related matters) and contains nothing that could fall +directly within that overall subject. (Thus, if the Document is in +part a textbook of mathematics, a Secondary Section may not explain +any mathematics.) The relationship could be a matter of historical +connection with the subject or with related matters, or of legal, +commercial, philosophical, ethical or political position regarding +them. + +The "Invariant Sections" are certain Secondary Sections whose titles +are designated, as being those of Invariant Sections, in the notice +that says that the Document is released under this License. If a +section does not fit the above definition of Secondary then it is not +allowed to be designated as Invariant. The Document may contain zero +Invariant Sections. If the Document does not identify any Invariant +Sections then there are none. + +The "Cover Texts" are certain short passages of text that are listed, +as Front-Cover Texts or Back-Cover Texts, in the notice that says that +the Document is released under this License. A Front-Cover Text may +be at most 5 words, and a Back-Cover Text may be at most 25 words. + +A "Transparent" copy of the Document means a machine-readable copy, +represented in a format whose specification is available to the +general public, that is suitable for revising the document +straightforwardly with generic text editors or (for images composed of +pixels) generic paint programs or (for drawings) some widely available +drawing editor, and that is suitable for input to text formatters or +for automatic translation to a variety of formats suitable for input +to text formatters. A copy made in an otherwise Transparent file +format whose markup, or absence of markup, has been arranged to thwart +or discourage subsequent modification by readers is not Transparent. +An image format is not Transparent if used for any substantial amount +of text. A copy that is not "Transparent" is called "Opaque". + +Examples of suitable formats for Transparent copies include plain +ASCII without markup, Texinfo input format, LaTeX input format, SGML +or XML using a publicly available DTD, and standard-conforming simple +HTML, PostScript or PDF designed for human modification. Examples of +transparent image formats include PNG, XCF and JPG. Opaque formats +include proprietary formats that can be read and edited only by +proprietary word processors, SGML or XML for which the DTD and/or +processing tools are not generally available, and the +machine-generated HTML, PostScript or PDF produced by some word +processors for output purposes only. + +The "Title Page" means, for a printed book, the title page itself, +plus such following pages as are needed to hold, legibly, the material +this License requires to appear in the title page. For works in +formats which do not have any title page as such, "Title Page" means +the text near the most prominent appearance of the work's title, +preceding the beginning of the body of the text. + +The "publisher" means any person or entity that distributes copies of +the Document to the public. + +A section "Entitled XYZ" means a named subunit of the Document whose +title either is precisely XYZ or contains XYZ in parentheses following +text that translates XYZ in another language. (Here XYZ stands for a +specific section name mentioned below, such as "Acknowledgements", +"Dedications", "Endorsements", or "History".) To "Preserve the Title" +of such a section when you modify the Document means that it remains a +section "Entitled XYZ" according to this definition. + +The Document may include Warranty Disclaimers next to the notice which +states that this License applies to the Document. These Warranty +Disclaimers are considered to be included by reference in this +License, but only as regards disclaiming warranties: any other +implication that these Warranty Disclaimers may have is void and has +no effect on the meaning of this License. + +2. VERBATIM COPYING + +You may copy and distribute the Document in any medium, either +commercially or noncommercially, provided that this License, the +copyright notices, and the license notice saying this License applies +to the Document are reproduced in all copies, and that you add no +other conditions whatsoever to those of this License. You may not use +technical measures to obstruct or control the reading or further +copying of the copies you make or distribute. However, you may accept +compensation in exchange for copies. If you distribute a large enough +number of copies you must also follow the conditions in section 3. + +You may also lend copies, under the same conditions stated above, and +you may publicly display copies. + + +3. COPYING IN QUANTITY + +If you publish printed copies (or copies in media that commonly have +printed covers) of the Document, numbering more than 100, and the +Document's license notice requires Cover Texts, you must enclose the +copies in covers that carry, clearly and legibly, all these Cover +Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on +the back cover. Both covers must also clearly and legibly identify +you as the publisher of these copies. The front cover must present +the full title with all words of the title equally prominent and +visible. You may add other material on the covers in addition. +Copying with changes limited to the covers, as long as they preserve +the title of the Document and satisfy these conditions, can be treated +as verbatim copying in other respects. + +If the required texts for either cover are too voluminous to fit +legibly, you should put the first ones listed (as many as fit +reasonably) on the actual cover, and continue the rest onto adjacent +pages. + +If you publish or distribute Opaque copies of the Document numbering +more than 100, you must either include a machine-readable Transparent +copy along with each Opaque copy, or state in or with each Opaque copy +a computer-network location from which the general network-using +public has access to download using public-standard network protocols +a complete Transparent copy of the Document, free of added material. +If you use the latter option, you must take reasonably prudent steps, +when you begin distribution of Opaque copies in quantity, to ensure +that this Transparent copy will remain thus accessible at the stated +location until at least one year after the last time you distribute an +Opaque copy (directly or through your agents or retailers) of that +edition to the public. + +It is requested, but not required, that you contact the authors of the +Document well before redistributing any large number of copies, to +give them a chance to provide you with an updated version of the +Document. + + +4. MODIFICATIONS + +You may copy and distribute a Modified Version of the Document under +the conditions of sections 2 and 3 above, provided that you release +the Modified Version under precisely this License, with the Modified +Version filling the role of the Document, thus licensing distribution +and modification of the Modified Version to whoever possesses a copy +of it. In addition, you must do these things in the Modified Version: + +A. Use in the Title Page (and on the covers, if any) a title distinct + from that of the Document, and from those of previous versions + (which should, if there were any, be listed in the History section + of the Document). You may use the same title as a previous version + if the original publisher of that version gives permission. +B. List on the Title Page, as authors, one or more persons or entities + responsible for authorship of the modifications in the Modified + Version, together with at least five of the principal authors of the + Document (all of its principal authors, if it has fewer than five), + unless they release you from this requirement. +C. State on the Title page the name of the publisher of the + Modified Version, as the publisher. +D. Preserve all the copyright notices of the Document. +E. Add an appropriate copyright notice for your modifications + adjacent to the other copyright notices. +F. Include, immediately after the copyright notices, a license notice + giving the public permission to use the Modified Version under the + terms of this License, in the form shown in the Addendum below. +G. Preserve in that license notice the full lists of Invariant Sections + and required Cover Texts given in the Document's license notice. +H. Include an unaltered copy of this License. +I. Preserve the section Entitled "History", Preserve its Title, and add + to it an item stating at least the title, year, new authors, and + publisher of the Modified Version as given on the Title Page. If + there is no section Entitled "History" in the Document, create one + stating the title, year, authors, and publisher of the Document as + given on its Title Page, then add an item describing the Modified + Version as stated in the previous sentence. +J. Preserve the network location, if any, given in the Document for + public access to a Transparent copy of the Document, and likewise + the network locations given in the Document for previous versions + it was based on. These may be placed in the "History" section. + You may omit a network location for a work that was published at + least four years before the Document itself, or if the original + publisher of the version it refers to gives permission. +K. For any section Entitled "Acknowledgements" or "Dedications", + Preserve the Title of the section, and preserve in the section all + the substance and tone of each of the contributor acknowledgements + and/or dedications given therein. +L. Preserve all the Invariant Sections of the Document, + unaltered in their text and in their titles. Section numbers + or the equivalent are not considered part of the section titles. +M. Delete any section Entitled "Endorsements". Such a section + may not be included in the Modified Version. +N. Do not retitle any existing section to be Entitled "Endorsements" + or to conflict in title with any Invariant Section. +O. Preserve any Warranty Disclaimers. + +If the Modified Version includes new front-matter sections or +appendices that qualify as Secondary Sections and contain no material +copied from the Document, you may at your option designate some or all +of these sections as invariant. To do this, add their titles to the +list of Invariant Sections in the Modified Version's license notice. +These titles must be distinct from any other section titles. + +You may add a section Entitled "Endorsements", provided it contains +nothing but endorsements of your Modified Version by various +parties--for example, statements of peer review or that the text has +been approved by an organization as the authoritative definition of a +standard. + +You may add a passage of up to five words as a Front-Cover Text, and a +passage of up to 25 words as a Back-Cover Text, to the end of the list +of Cover Texts in the Modified Version. Only one passage of +Front-Cover Text and one of Back-Cover Text may be added by (or +through arrangements made by) any one entity. If the Document already +includes a cover text for the same cover, previously added by you or +by arrangement made by the same entity you are acting on behalf of, +you may not add another; but you may replace the old one, on explicit +permission from the previous publisher that added the old one. + +The author(s) and publisher(s) of the Document do not by this License +give permission to use their names for publicity for or to assert or +imply endorsement of any Modified Version. + + +5. COMBINING DOCUMENTS + +You may combine the Document with other documents released under this +License, under the terms defined in section 4 above for modified +versions, provided that you include in the combination all of the +Invariant Sections of all of the original documents, unmodified, and +list them all as Invariant Sections of your combined work in its +license notice, and that you preserve all their Warranty Disclaimers. + +The combined work need only contain one copy of this License, and +multiple identical Invariant Sections may be replaced with a single +copy. If there are multiple Invariant Sections with the same name but +different contents, make the title of each such section unique by +adding at the end of it, in parentheses, the name of the original +author or publisher of that section if known, or else a unique number. +Make the same adjustment to the section titles in the list of +Invariant Sections in the license notice of the combined work. + +In the combination, you must combine any sections Entitled "History" +in the various original documents, forming one section Entitled +"History"; likewise combine any sections Entitled "Acknowledgements", +and any sections Entitled "Dedications". You must delete all sections +Entitled "Endorsements". + + +6. COLLECTIONS OF DOCUMENTS + +You may make a collection consisting of the Document and other +documents released under this License, and replace the individual +copies of this License in the various documents with a single copy +that is included in the collection, provided that you follow the rules +of this License for verbatim copying of each of the documents in all +other respects. + +You may extract a single document from such a collection, and +distribute it individually under this License, provided you insert a +copy of this License into the extracted document, and follow this +License in all other respects regarding verbatim copying of that +document. + + +7. AGGREGATION WITH INDEPENDENT WORKS + +A compilation of the Document or its derivatives with other separate +and independent documents or works, in or on a volume of a storage or +distribution medium, is called an "aggregate" if the copyright +resulting from the compilation is not used to limit the legal rights +of the compilation's users beyond what the individual works permit. +When the Document is included in an aggregate, this License does not +apply to the other works in the aggregate which are not themselves +derivative works of the Document. + +If the Cover Text requirement of section 3 is applicable to these +copies of the Document, then if the Document is less than one half of +the entire aggregate, the Document's Cover Texts may be placed on +covers that bracket the Document within the aggregate, or the +electronic equivalent of covers if the Document is in electronic form. +Otherwise they must appear on printed covers that bracket the whole +aggregate. + + +8. TRANSLATION + +Translation is considered a kind of modification, so you may +distribute translations of the Document under the terms of section 4. +Replacing Invariant Sections with translations requires special +permission from their copyright holders, but you may include +translations of some or all Invariant Sections in addition to the +original versions of these Invariant Sections. You may include a +translation of this License, and all the license notices in the +Document, and any Warranty Disclaimers, provided that you also include +the original English version of this License and the original versions +of those notices and disclaimers. In case of a disagreement between +the translation and the original version of this License or a notice +or disclaimer, the original version will prevail. + +If a section in the Document is Entitled "Acknowledgements", +"Dedications", or "History", the requirement (section 4) to Preserve +its Title (section 1) will typically require changing the actual +title. + + +9. TERMINATION + +You may not copy, modify, sublicense, or distribute the Document +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense, or distribute it is void, and +will automatically terminate your rights under this License. + +However, if you cease all violation of this License, then your license +from a particular copyright holder is reinstated (a) provisionally, +unless and until the copyright holder explicitly and finally +terminates your license, and (b) permanently, if the copyright holder +fails to notify you of the violation by some reasonable means prior to +60 days after the cessation. + +Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + +Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, receipt of a copy of some or all of the same material does +not give you any rights to use it. + + +10. FUTURE REVISIONS OF THIS LICENSE + +The Free Software Foundation may publish new, revised versions of the +GNU Free Documentation License from time to time. Such new versions +will be similar in spirit to the present version, but may differ in +detail to address new problems or concerns. See +http://www.gnu.org/copyleft/. + +Each version of the License is given a distinguishing version number. +If the Document specifies that a particular numbered version of this +License "or any later version" applies to it, you have the option of +following the terms and conditions either of that specified version or +of any later version that has been published (not as a draft) by the +Free Software Foundation. If the Document does not specify a version +number of this License, you may choose any version ever published (not +as a draft) by the Free Software Foundation. If the Document +specifies that a proxy can decide which future versions of this +License can be used, that proxy's public statement of acceptance of a +version permanently authorizes you to choose that version for the +Document. + +11. RELICENSING + +"Massive Multiauthor Collaboration Site" (or "MMC Site") means any +World Wide Web server that publishes copyrightable works and also +provides prominent facilities for anybody to edit those works. A +public wiki that anybody can edit is an example of such a server. A +"Massive Multiauthor Collaboration" (or "MMC") contained in the site +means any set of copyrightable works thus published on the MMC site. + +"CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0 +license published by Creative Commons Corporation, a not-for-profit +corporation with a principal place of business in San Francisco, +California, as well as future copyleft versions of that license +published by that same organization. + +"Incorporate" means to publish or republish a Document, in whole or in +part, as part of another Document. + +An MMC is "eligible for relicensing" if it is licensed under this +License, and if all works that were first published under this License +somewhere other than this MMC, and subsequently incorporated in whole or +in part into the MMC, (1) had no cover texts or invariant sections, and +(2) were thus incorporated prior to November 1, 2008. + +The operator of an MMC Site may republish an MMC contained in the site +under CC-BY-SA on the same site at any time before August 1, 2009, +provided the MMC is eligible for relicensing. + + +ADDENDUM: How to use this License for your documents + +To use this License in a document you have written, include a copy of +the License in the document and put the following copyright and +license notices just after the title page: + + Copyright (c) YEAR YOUR NAME. + Permission is granted to copy, distribute and/or modify this document + under the terms of the GNU Free Documentation License, Version 1.3 + or any later version published by the Free Software Foundation; + with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. + A copy of the license is included in the section entitled "GNU + Free Documentation License". + +If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, +replace the "with...Texts." line with this: + + with the Invariant Sections being LIST THEIR TITLES, with the + Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. + +If you have Invariant Sections without Cover Texts, or some other +combination of the three, merge those two alternatives to suit the +situation. + +If your document contains nontrivial examples of program code, we +recommend releasing these examples in parallel under your choice of +free software license, such as the GNU General Public License, +to permit their use in free software. + diff --git a/doc/Environment.html b/doc/Environment.html new file mode 100644 index 0000000..a319513 --- /dev/null +++ b/doc/Environment.html @@ -0,0 +1,125 @@ + + + + + + + Argyll Environment Variables + + +
+

Environment variables
+

+ The following environment variables affect behaviour:
+
+ ARGYLL_NOT_INTERACTIVE
+
+
Normally Argylls tools expect that + they are directly interacting with a user, and use a couple of + techniques for communicating with them through the command line. + One is to output progress information by re-writing the same + display line by using a Carriage Return rather than a Line Feed at + the end of each line. Another is to allow a single key stroke to + trigger an action or interrupt operations.
+
+ If the ARGYLL_NOT_INTERACTIVE + environment variable is set, then:
+
+     A Line Feed will be added to the end of each + progress line.
+
+     Any time it would wait for a single keystroke + input, it will instead wait for and read the next character from + stdin.
+     To facilitate flushing stdin, any return or + line feed characters will be ignored, so a character other than + return or line feed must be used to trigger activity.
+
+     Note that while a reading is being made, a + character input can abort the reading, just as with normal + interactive mode.
+
+
+ ARGYLL_COLMTER_CAL_SPEC_SET
+ ARGYLL_COLMTER_COR_MATRIX
+
+
Both of these can be used to set a + default CCMX or CCSS colorimeter calibration + file, equivalent to supplying a -X + argument to spotread, dispcal, dispread and any other utility that + allows using a colorimteter. The ARGYLL_COLMTER_CAL_SPEC_SET will + take priority if both are set.
+
+
+
+ ARGYLL_MIN_DISPLAY_UPDATE_DELAY_MS
+
+
+
Normally + + a delay of 200 msec is allowed between changing a patch color on a + display, and reading the color with an instrument, although some + instruments (ie. i1d3) will automatically measure and set an + appropriate delay during instrument calibration. In rare + situations this delay may not be sufficient (ie. some TV's with + extensive image processing features turned on), and a larger delay + can be set using the ARGYLL_MIN_DISPLAY_UPDATE_DELAY_MS + + environment variable, ie. ARGYLL_MIN_DISPLAY_UPDATE_DELAY_MS=400 + would set a 400 msec minimum delay.
+
+
+ ARGYLL_IGNORE_XRANDR1_2
+
+
+
On an X11 system, if this is set (ie. set it to "yes"), + then the presence of the XRandR 1.2 extension will be ignored, and + other extensions such as Xinerama and XF86VidMode extension will + be used. This may be a way to work around buggy XRandR 1.2 + implementations.
+
+
+ ARGYLL_DISABLE_I1PRO2_DRIVER
+
+
+
There is now partial support for the + Eye-One Pro Rev E (aka Eye-One Pro 2) instrument, but a Rev E can + be operated in legacy mode if the environment variable + ARGYLL_DISABLE_I1PRO2_DRIVER is set (ie. set it to "yes").
+
+
+ XDG_CACHE_HOME
+
+
+
Argyll tries to follow the XDG + + Base Directory Specification, and uses the XDG_CACHE_HOME environment + variable to place per instrument calibration information (Eye-One + Pro and ColorMunki instruments).
+
+
+ XDG_CONFIG_DIRS
+ XDG_DATA_DIRS
+

+
On Unix type operating systems, + configuration and profiles for displays are placed relative to + these environment variables.
+
+
+          
+
+ See Performance Tuning for other + variables.
+
+
+ + diff --git a/doc/FWA.html b/doc/FWA.html new file mode 100644 index 0000000..c1d4c6d --- /dev/null +++ b/doc/FWA.html @@ -0,0 +1,262 @@ + + + + Fluorescent Whitener Additive Compensation + + + +

Fluorescent Whitener Additive Compensation (FWA Compensation)

+
+

Introduction

+ To make paper look "whiter" without increasing the cost of + production, paper manufactures often employ a couple of different + techniques. One technique is to add "shading agents" to the paper, + that absorb a little of the middle wavelengths, thereby changing the + color of the paper to be a little less green. By far the most + powerful way of making the paper appear more white is to add + Fluorescent Whitener Additive (FWA, or Optical Brightening Agents - + OBA) to the paper. This is basically a fluorescent material that + absorbs light at Ultra Violet (U.V.) wavelengths, and re-emits it at + a slightly longer blue wavelengths. Subjectively something that + appears more blue, is regarded as being "whiter".
+
+ For more technical treatment of this topic, please refer to this + excellent paper: <http://www.axiphos.com/BrightnessReview.pdf>
+
+

Fluorescence

+ Fluorescent materials absorb light radiation at one wavelength, and + then almost instantaneously re-emit some of that energy at a longer + wavelength. Typical FWA absorbs wavelengths in the U.V. between + about 300 and 400 nm, and re-emit it between 400 and 460nm. The + visual effect of FWA depends on the amount of it present in the + paper, and the amount of U.V. in the illumination compared to the + level of normal, visible light. Generally better quality papers have + lower levels of whitening agents, and cheaper papers more.
+
+

Reflection Models and Spectro-colorimetry

+ The way a spectrometer measures the effect of ink on paper, depends + on a model of how an illuminant is reflected by the ink and the + paper. Typically a spectrometer instrument illuminates the sample + with a known illumination, often a incandescent tungsten lamp having + a color temperature of  2800 degrees Kelvin. It measures the + amount of light reflected by the sample at each wavelength, and then + converts that to spectral reflectance value between 0 and 100% by + dividing by it's measurement illuminant's intensity at each + wavelength. When it comes time to use that measurement to create an + ICC profile, the intensity of the assumed viewing illumination at + each wavelength (typically D50 for standard ICC profiles) is then + multiplied by the reflectance at each wavelength, and the overall + spectral reflectance is in this way converted into CIE tri-stimulus + values using an observer model.
+
+ So while the instrument measures with one type of light (type A, or + a white LED), it returns a measurement as if it had been measured + under a different kind of light (D50) by making use of a simple + model of light reflection off the media.
+
+ Notice that a key assumption of this simple model is that the light + that impinges on the sample at a given wavelength is reflected back + at exactly the same wavelength at a diminished intensity. Notice + also that any sort of fluorescent material (such as FWA) breaks this + model, since fluorescent materials emit light a different + wavelengths to which they absorb it. So the color measurements do + not accurately portray the appearance of the media when FWA is + present. A more complicated bi-spectral measurement (2 dimensional + spectral reflectance) is actually needed to fully characterize + fluorescent materials.
+
+

What Argyll's FWA compensation does

+ The FWA compensation function in Argyll improve on this simple model + of spectral reflection by taking into account the action of FWA. To + do this, it needs to measure the amount and nature of the FWA in the + media, and then have enough information about the viewing + environment to model how that FWA will behave.
+
+ To be able to measure the level of FWA in the media, the instrument + needs to be able to "see" the FWA in action, so the instrument needs + to be illuminating the samples with some level of U.V. Typically all + instruments do this, unless they have been fitted with a filter that + filters out any U.V. illumination (so called "UV cut" instruments), + or use an illumination source such as a "white" LED that doesn't + emit any U.V.
+ Such UV excluded instruments are not suitable for use with FWA + compensation.
+ The effects of FWA are modeled spectrally, so a spectral reading + instrument is also required.
+
+ Argyll can compute a model for the effects of FWA given the media's + spectral characteristics, and the illuminations spectral + characteristic, which must include the levels of U.V. in the + illuminant. Given these two things, Argyll can calculate how much + effect the FWA will have on the light being reflected and emitted by + the media under the intended illumination.
+
+ Ideally the level of FWA would be measured by comparing the paper + spectrum with and without U.V. present in the instruments + illumination. Because not all instruments allow these two + measurements to be done without some sort of manual intervention, + Argyll avoids the need for an FWA inactive (UV cut) or extra UV (UV + LED) measurement by employing a heuristic to estimate the FWA + inactive spectrum from the spectrum of the paper with FWA active. + Being a heuristic, it can sometimes be fooled by certain paper + colors into estimating more or less FWA content than is actual + present. The heuristic works best with high quality papers with an + essentially flat non-FWA enhanced spectrum. Papers with colored + tints or particularly off white appearance may not work well with + FWA compensation, unless the instrument has the capability of + measuring with two different levels of UV.
+
+ Graph showing FWA effect on UV vs. UV cut measurement.
+
+ Note that typically in Argyll, if a viewing illuminant is specified, + then it is used for computing the appearance under that illumination + (CIE XYZ values), and if FWA compensation is used, then that same + illuminant will be assumed for the simulated measurement illuminant. + This results in measurements that better reflects the appearance as + the media as if it was being viewed under that illuminant, FWA + effects and all.
+
+  It is possible to also simulate the measurement of a media + under one illuminant, while then computing the tristimulus values as + if being viewed under a different illuminant, but this scenario is + only really useful for reproducing standardized measurement + conditions such as ISO 13655:2009 M0, M1 and M2, and is less useful + than the normal FWA compensation scenario in modelling real world + situations.
+
+ [The Argyll FWA compensation algorithm is described in the paper: A + Practical Approach to Measuring and Modelling Paper + Fluorescense for Improved Colorimetric Characterisation of + Printing Processes", Graeme W. Gill, Proc. IS&T/SID + 11th Color Imaging Conference, + Scottsdale, Arizona; November 2003; p. 248-254, and was first published on December 2, 2002 + in the argyllu_2002_12_02 source code. ]
+
+

Using FWA Compensation with proofing

+ The most common situation for employing FWA compensation, is in + proofing. This is when you have one printing device, the target (say + a printing press), and wish to emulate the behaviour of it with a + different device, the proofer (say an inkjet printer). The aim is to + be able to put both prints next to each other in a viewing booth, + and have them look identical. Typically the printing process, the + inks, and the media will be different between the target device and + the proofer. The aim of applying color profiling is to compensate + for these differences. Since the printing process can only darken a + white media, the selection of the proofing stock is critical. + Ideally it should be exactly the same color as the target, or if not + possible, lighter, so that the proofer can tint the proofing media + to match the target. If the two media had identical levels and types + of FWA in them, then there would be no need to use FWA compensation, + since the appearance of the media would match under any viewing + condition. Typically though, the levels and types of FWA are + different between the target paper and the proofing paper. A + limitation imposed by tri-stimulus colorimetry is that the + differences between the two media, inks and FWA can only be + compensated for perfectly, under a fixed and known illuminant.
+
+ By allowing Argyll to model the effects of FWA for both the source + profile (the target device), and the destination profile (the + proofing device), the effects can be accounted for, modeled + accurately, and incorporated in the profiles, so that a subsequent + transformation from source to destination device spaces using + absolute colorimetric intent, achieves a (hopefully) perfect + colorimetric reproduction. Since this is a closed system, where both + the source and destination profiles are made for each other, + non-standard parameters such as illuminant and observer models can + be used, as long as they are the same for both profiles. For + proofing, FWA should be applied identically to both profiles, by + specifying the same illuminant, and (optionally) the same observer + model.
+
+ In practice it is possible to compensate for the color shift that + results in viewing the media under non-D50 illumination or using a + non 1931_2 observer, or allowing for FWA effects without severe + incompatibility because all rendering intents except absolute + rendering normalize to the media color, rendering the media white as + white, even though the absolute values are not measured using a D50 + illuminant.
+

Using FWA compensation for single, general use profiles

+ For creating ICC profiles that will be interchanged with other + unknown ICC profiles, or used with non-print source or destination + profiles, there is less flexibility, since ICC profiles by + convention assume that all media is being viewed under D50 + illumination. The implication of this is that to be fully + interchangeable, it's not really possible to make the profile for + your actual viewing environment. Note that the D50 values that are + calculated without FWA compensation do not actually reflect the + appearance of a media under real D50, because they fail to take into + account the different levels of FWA activity between the + illumination using by the instrument to measure the media, and real + D50. To allow for this and actually meet the letter of the ICC + specifications, FWA compensation should ideally be used when + building a interchangeable ICC profile, by selecting the D50 + illuminant, and the 1931_2 observer model (ISO 13655:2009 M1). Note + however that this is likely to make profiles less + interchangeable rather than more, since few if any other profiles + will represent the appearance under real D50, since few if any + instruments use a real D50 illuminant that will trigger the correct + level of FWA response, and few if any other packages will compensate + for the differences in FWA activity between the instrument + illuminant used and real D50 (ie. most instruments are actually + returning  ISO 13655:2009 M0 measurements).
+
+ Similarly, the effects of viewing the media in an environment with a + UV filter fitted over the D50 illuminant can be simulated by using + FWA compensation with the D50M2 illuminant, and the 1931_2 observer, + thereby simulating the results one would get if the media had been + measured with a "UV cut" type instrument, although such profiles are + not technically ICC compatible.
+
+

Measuring the illuminant

+ For FWA compensation to work well, it is necessary to know what the + spectral shape of the illuminant used for viewing is. While many + instruments provide an illuminant measurement capability over the + visible spectrum, for FWA compensation it is desirable to know the + Ultra Violet (UV) component of the illuminant. Few color instruments + are capable of reading to such short wavelengths though. Argyll + provides an indirect way of estimating the UV component of an + illuminant using its illumread + utility. Using illumread in combination with FWA compensation is the + recommended approach to modelling real world appearance of paper + containing FWA.
+
+

FWA myths

+ Amongst the user (and to some degree) vendor community, there is a + widely held belief that the solution to fluorescent whitener + affecting color profiles is to simply use a UV filter fitted + instrument. Exactly what the origin of the legend is, is hard to + tell. Possibly it is a misinterpretation of the  ANSI + CGATS.5-1993 Annex B recommendations for measuring the impact of + fluorescent effects, a translation of some of paper whiteness + measurement standards into the color profiling world, or possibly in + some common situations, if the viewing environment is very poor in + UV, then adding a UV filter to the tungsten instrument illuminant + makes for a better instrument/viewing illuminant match. There seems + to be no scientific or practical basis for believing that a UV + filter fitted instrument magically makes all FWA induced problems go + away.
+
+

Instrument UV filters

+ Note that to be able to measure the FWA in the paper, the instrument + has to be able to trigger Fluorescence, which it cannot do if it is + fitted with a UV filter, or uses a light source that emits no UV + (e.g. a white LED). So UV excluded instruments are not suitable for + use with FWA compensation.
+
+
+
+
+ + diff --git a/doc/FWA_measure.jpg b/doc/FWA_measure.jpg new file mode 100644 index 0000000..7d97fff Binary files /dev/null and b/doc/FWA_measure.jpg differ diff --git a/doc/File_Formats.html b/doc/File_Formats.html new file mode 100644 index 0000000..d6e38c5 --- /dev/null +++ b/doc/File_Formats.html @@ -0,0 +1,186 @@ + + + + Argyll File Formats + + + + +

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
+ .ti2
+ .ti3
+ .cal
+ .cht
+ .gam
+ .sp
+ CGATS
+ ICC
+ MPP
+ TIFF
+ VRML
+
+

.ti1

+ Target Information 1 data. This is an ASCII text, CGATS, + Argyll specific format, used to hold device value ready for creating + a profiling test chart, as well as the estimated CIE color values + for each value, used in laying out the test chart and reading + validation purposes. Additional information on possible spacer and + marking values that may be needed in creating a rendered test chart + is also included. This file is typically created using the targen tool.
+
+

.ti2

+ Target Information 2 data. This is an ASCII text, CGATS, + Argyll specific format, used to hold device value that have been + laid out in a test chart, together with each test patches location, + and estimated CIE color values for each value used for reading + validation purposes. This file is typically created using the printtarg or + filmtarg tools.
+
+

.ti3

+ Target Information 3 data. This is an ASCII text, CGATS, + Argyll specific format, used to hold device value and CIE/Spectral + value pairs, the raw information needed to create device profiles. + This file is typically created using the chartread dispread, filmread, + scanin, + fakeread or one of the conversion tools such as cb2ti3, kodak2ti3, + txt2ti3. See  TI3 file format for more detail. +

.cal

+ 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. Created by dispcal, printcal, + synthcal. See  CAL file format for more detail. +

.cht

+ Test chart recognition file. This is ASCII text Argyll specific + format, used to hold a description of a test chart, so that a raster + image of the chart can be turned into device test values by the scanin tool. .cht files are created manually (usually in + combination with scanin creating a + boilerplate file containing the recognition parameters, but not the + patch location information), or by the + printtarg tool, when creating a test print chart that will be + scanned in, rather than read by an instrument. See  CHT file format for more detail.
+

.gam

+ Gamut surface description. This is an ASCII text, CGATS, Argyll specific format, + used to hold a 3 Dimensional surface description of a color gamut. + Typical this is created using the iccgamut, + tiffgamut, or mpplu + tools. The resulting file is typically viewed using the viewgam tool to convert one or more gamuts + into a VRML file, or as input to collink, to describe a source colorspace + gamut.
+

.sp

+ Spectral illuminant description. This is an ASCII text, CGATS, Argyll specific format, + used to hold a spectral description of an illuminant. Typically it + is used to record a custom illuminant, for use in + computing Fluorescent Whitening Agent compensation for + reflective samples, as well as computing CIE tristimulus values from + spectral samples.
+

.ccmx

+ Colorimeter Correction Matrix. This is an ASCII text, CGATS, Argyll specific format, + used to hold a 3x3 correction matrix. The matrix is for a specific + display and Colorimeter, and is used to transform the instruments + XYZ values to make them better match a reference spectrometers + measurements for that display. The file contains a description of + the display, Colorimeter and reference Spectrometer. See ccxxmake for more information.
+

.ccss

+ Colorimeter Calibration Spectral Set. This is an ASCII text, CGATS, Argyll specific format, + used to hold a set of display spectral samples. For Colorimeters + that have known sensor spectral sensitivity information (such as the + i1d3 and Spyder4), this allows a calibration to be created that is + tuned for a particular display. The file contains a description of + the display, the display technology type, the type of spectrometer + used for taking the readings. See oeminst + and ccxxmake for more information.
+

CGATS

+ CGATS.5 Data Exchange Format, from the Annex J, of the ANSI + CGATS.5-1993 standard.
+ This is a general purpose ASCII file format suitable for + representing color data, and widely used to store color test values. + Argyll uses this as a base, human readable format, for a variety of + purposes.
+

ICC

+ ICC files are files that conform to the International Color + Consortium, File Format for Color profiles. The ICC Profile Format + attempts to provide a cross platform device profile format, that can + be used to translate color data created on one device into another + device's native color space. For a fuller explanation of what the + ICC Profile Format is all about, please refer to http://www.color.org, and the + profile specification. Argyll currently supports profiles that meet + the V3.4 specification. These files are commonly named with a .icm + extension on the Windows platform, .pr or .icc on + the Macintosh and other platforms. As well as device profiles, the + ICC format can also store device link profiles, abstract profiles + and named color profiles. This file is typically created using the colprof or + collink tools. A device link profile is also a way of + specifying a custom ink separation from (say) CMYK to the 6 or more + colorants used by inkjet printers.
+

MPP

+ Model based device profile format. This is an ASCII text, CGATS, Argyll specific format, + used to hold the parameters to a general model based device profile. + This is a less precise and general format than and ICC profile, but + is a compact way of representing a devices response when it has a + large number of color channels, or when very few measured data + points are available for its construction. This file is typically + created using the mppprof tool.
+

TIFF

+ Tag Image File Format (TIFF), a widely used format within the + graphic arts industries for storing image data. It handles various + forms of compression, and various colorspaces, including RGB, CMYK + and multi-channel files. See http://en.wikipedia.org/wiki/TIFF/. + Argyll makes use of this as a default raster format.
+

JPEG

+ Joint Photographic Experts Group, (JPEG), a widely used format + within the graphic arts and photographic industries for storing + image data. It handles various forms of compression, and various + colorspaces, including RGB and CMYK. See http://en.wikipedia.org/wiki/JPEG/. + Argyll makes use of this as an alternate raster format for some + tools.
+

VRML

+ Virtual Reality Modeling Language file. This is a portable way of + encoding 3 Dimensional objects (such as gamut surfaces). Typically + these can be viewed with a suitable standalone VRML viewer, or a + plug in for a web browser. VRML97 is International Standard ISO/IEC + 14772-1:1997. See http://www.vrml.org/ + for more information.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + diff --git a/doc/Fluorescent.jpg b/doc/Fluorescent.jpg new file mode 100644 index 0000000..acabf74 Binary files /dev/null and b/doc/Fluorescent.jpg differ diff --git a/doc/HCFR.jpg b/doc/HCFR.jpg new file mode 100644 index 0000000..9454842 Binary files /dev/null and b/doc/HCFR.jpg differ diff --git a/doc/HCT.jpg b/doc/HCT.jpg new file mode 100644 index 0000000..a1f1f23 Binary files /dev/null and b/doc/HCT.jpg differ diff --git a/doc/HiResLaser.jpg b/doc/HiResLaser.jpg new file mode 100644 index 0000000..66da2eb Binary files /dev/null and b/doc/HiResLaser.jpg differ diff --git a/doc/Huey.jpg b/doc/Huey.jpg new file mode 100644 index 0000000..5f25980 Binary files /dev/null and b/doc/Huey.jpg differ diff --git a/doc/Installing.html b/doc/Installing.html new file mode 100644 index 0000000..a759044 --- /dev/null +++ b/doc/Installing.html @@ -0,0 +1,49 @@ + + + + + + + Argyll Installation + + +

+ Installing the software

+
+ Argyll doesn't come with any installation programs or scripts, so + installation is a manual process. Because things are mostly + self-contained, this isn't particularly onerous. In general the + steps + are:
+
+ 1) Provide somewhere for the executables to reside
+ 2) Provide a means of the shell finding the executables
+ 3) Setup the system to be able to use instruments (USB in + particular)
+
+ Please choose from the detailed instructions below that suite your + system:
+
+ Microsoft + Windows
+ Apple OS X
+ Linux/UNIX X11
+
+
If you have a Spyder 2, Spyder 4, Xrite i1 DisplayPro or + ColorMunki Display colorimeter, please also see oeminst.
+
+


+   +
+   +
+   +
+   +

+ + diff --git a/doc/Installing_Linux.html b/doc/Installing_Linux.html new file mode 100644 index 0000000..ad2cacc --- /dev/null +++ b/doc/Installing_Linux.html @@ -0,0 +1,582 @@ + + + + + + + Argyll Installation on Linux + + +

Installing the software on Linux with X11
+

+
+ You will need to unpack the downloaded file in the location you have + chosen to hold the executable files. Typically this might be in /usr/local/, or perhaps $HOME/bin/. You would then + unpack the files using tar -zxf + archivename.tgz, which will + create a directory Argyll_VX.X.X, + where X.X.X is the version number, and the executables will be in Argyll_VX.X.X/bin You will also + have to configure your $PATH environment variable to give access to + the executables from your command line environment. The .tgz file + also contains several useful reference files (such as scanner chart + recognition templates, sample illumination spectrum etc.) in the ref + sub-directory, as well as all the current HTML documentation in a + doc sub-directory. You may want to copy things to more standard + locations such as /usr/local/bin, /usr/local/argyll/bin etc., + depending on the conventions used on your system.
+
+ Note on the system bell:
+
+ When reading strips using the Eye-One Pro or ColorMunki instrument, + the system bell is used to indicate when the instrument the ready to + be used, and to provide feedback on any problems. On some Linux + installations the system bell may be disabled. As well as checking + the terminal and GUI sound preferences, you may have to enable the + used of the PC speaker driver, which can be done by adding the + command /sbin/modprobe pcspkr to + + + + the /etc/rc.local startup + script. You may also have to run xset + + + + b 100 1000 100 in your local setup, if you are running in + an X11 environment. You can check that the system bell is operating + by doing an "echo ^G", where ^G is ctrl-G.
+
+ Note on X11 multi-monitor + setups:
+
+ When working with a multi-monitor X11 configuration, note that you + will only be able to individually calibrate monitors if the + multi-window extension you are using (if any), supports access to + the individual screen Video LUT tables that are used for + calibration. The native X11 multi-screen addressing supports this, + as does the Xinerama extension, and XRandR V1.2.
+
+ The proprietary NVidia TwinView and ATI MergeFB extensions do not + currently support access to the individual screen Video LUTs, so + calibration of each screen independently is impossible if either of + these extensions are running. You can switch to using Xinerama to + solve this problem, or you can try doing a calibration for the + screens that do have accessible Video LUTs with these proprietary + extensions, or ignore calibration and rely purely on display + profiling. Use the dispwin tool to figure out what works on your + system. The NVidia ATI binary drivers do not seem to properly + support XRandR V1.2 either, even though they claim to do so. You may + have to set the ARGYLL_IGNORE_XRANDR1_2 + environment variable if the XRandR V1.2 extension is faulty.
+
+ If these limitations trouble you, then as a valuable customer of + NVidia or AMD/ATI, perhaps you should contact them and urge them to + fix the problems with Video LUT access in their proprietary + multi-monitor extensions and XRandR implementation, bringing their + support for multi-monitors on X11 up to the same standards as other + operating systems. Ask them to add full and correct support for the + XRandR V1.2 extension.
+
+ Fixing access to Video LUTs:
+
+ Some users have noted that their default X11 installation doesn't + properly enable access to the video card Video Lookup Tables + (RAMDAC). The Video LUTs are used for display calibration purposes, + and a warning will be issues by the dispcal and dispread + tools if there is a problem with this. Without access to the + VideoLUTs, you won't be able to use display calibration.
+
+ The problem may be because certain X11 extensions aren't being + loaded by default. You may want to check that you have
+
+   Load  "extmod"
+
+ in the appropriate (or any) section of + your Xorg.conf file, to allow the XF86Video LUT + extensions to function correctly.
+
+ Another source of problems is if the display isn't configured with a + suitable visual. Typically for high quality color you need to be + using at least 24 bits per + pixel (8 Bits for each of Red, Green and Blue channels), but more + importantly the number of entries in the the VideoLUTs needs to + match the depth of the screen. So if the VideoLUTs have 256 entries + per channel, then the screen must be using 8 bits per channel to + match. Or 64 entries and 6 bits. Or 4096 entries and 12 bits, etc. + Running "dispwin -D" may give some clues as to what the nature of + the problem is. You might have to look into your xorg.conf or XRANDR + setup, or on some distributions there will be some configuration + program that will let you choose the display configuration (ie. YaST + or SaX2 on openSUSE, etc.).
+
+ Setting up instrument access:
+
+
By default most Linux based systems make devices + inaccessible to user mode programs, so it is necessary to make some + modification to your permissions so that Argyll tools are able to + access the Color Measurement Instruments. In order from newest to + oldest, the following sub-systems may need to be configured to + permit this:
+
+   No device + configuration needed when running from the console:
+
+
    Mandriva 2008.0 default + installation
+
+
  USB instruments + access using udev:
+     Ubuntu 10.04
+     Fedora + Core 8
+     Mandriva 2008.1
+     OpenSuSE 10.3
+     Ubuntu 7.1
+     Kubuntu 7.1
+     Debian 4.0
+
  USB instruments access using hotplug:
+    Red Hat 4.0
+    Fedora Core 4
+    Fedora Core 3
+    Fedora Core 2
+
+
  Serial instrument access:
+    All
+
+ NOTE: That libmtp has been known to + interfere with device access, particularly the Spyder 3. You + probably want to disable this library (look in udev).
+
+ +
+
No + device configuration needed:
+ Some systems have in place  a security configuration such that + anyone logging in at the console of a machine has access to all the + local devices.
+
+
USB + instruments access using udev:
+
+ Most recent systems + use udev to manage device names and permissions, but by default + color instruments may not be accessible to normal system users.
+ To solve this a udev rule file needs to be added that modifies the + group and permission of any Color Measurement Instruments, and you + may then need to add yourself to that group.
+
+ Copy the file usb/55-Argyll.rules from the binary or source + distribution into /etc/udev/rules.d/55-Argyll.rules + with owner root, group root, permissions 644.
+ (There may already be a file that handles some of the color + instruments as part of your installation. You need to check though + that it is up to date.)
+
+ If you are on an older system + that uses a udev that doesn't recognize the syntax used in + 55-Argyll.rules, or that doesn't have rules to create the libusb + /dev/bus/usb/00X/00Y device entries, you should install the usb/45-Argyll.rules file + instead.
+
+ On recent systems the new rules file will be notices as soon as you + plug the instrument in again.
+ On older systems you may need to run /sbin/udevtrigger,  + + + + + /sbin/udevcontrol reload_rules or  /sbin/udevstart or reboot to get + the new file noticed.
+
+ ----------------- cut here ---------------------
+ # udev rule to recognize instruments and make them accessible to + user applications.
+ # Copy this to /etc/udev/rules.d/55-Argyll.rules
+
+ # Skip all this to speed things up if it'a not a usb add.
+ ACTION!="add", GOTO="argyll_rules_end"
+ SUBSYSTEM!="usb", GOTO="argyll_rules_end"
+
+ # Recognize the color measurement devices
+
+ # Colorimtre HCFR
+ ATTRS{idVendor}=="04db", ATTRS{idProduct}=="005b", + ENV{COLOR_MEASUREMENT_DEVICE}="1"
+
+
+ # MonacoOPTIX (Same as i1 Display 1)
+ ATTRS{idVendor}=="0670", ATTRS{idProduct}=="0001", + ENV{COLOR_MEASUREMENT_DEVICE}="1"
+
+
+ # HueyL (not tested)
+ ATTRS{idVendor}=="0765", ATTRS{idProduct}=="5001", + ENV{COLOR_MEASUREMENT_DEVICE}="1"
+
+ # HueyL (not tested)
+ ATTRS{idVendor}=="0765", ATTRS{idProduct}=="5010", + ENV{COLOR_MEASUREMENT_DEVICE}="1"
+
+ # i1Display 3
+ ATTRS{idVendor}=="0765", ATTRS{idProduct}=="5020", + ENV{COLOR_MEASUREMENT_DEVICE}="1"
+
+ # ColorMunki Smile
+ ATTRS{idVendor}=="0765", ATTRS{idProduct}=="6003", + ENV{COLOR_MEASUREMENT_DEVICE}="1"
+
+ # DTP20
+ ATTRS{idVendor}=="0765", ATTRS{idProduct}=="d020", + ENV{COLOR_MEASUREMENT_DEVICE}="1"
+
+ # DTP92Q (not tested)
+ ATTRS{idVendor}=="0765", ATTRS{idProduct}=="d092", + ENV{COLOR_MEASUREMENT_DEVICE}="1"
+
+ # DTP94
+ ATTRS{idVendor}=="0765", ATTRS{idProduct}=="d094", + ENV{COLOR_MEASUREMENT_DEVICE}="1"
+
+
+ # i1Pro
+ ATTRS{idVendor}=="0971", ATTRS{idProduct}=="2000", + ENV{COLOR_MEASUREMENT_DEVICE}="1"
+
+ # i1Monitor
+ ATTRS{idVendor}=="0971", ATTRS{idProduct}=="2001", + ENV{COLOR_MEASUREMENT_DEVICE}="1"
+
+ # i1Display
+ ATTRS{idVendor}=="0971", ATTRS{idProduct}=="2003", + ENV{COLOR_MEASUREMENT_DEVICE}="1"
+
+ # i1 io table (not tested)
+ ATTRS{idVendor}=="0971", ATTRS{idProduct}=="2004", + ENV{COLOR_MEASUREMENT_DEVICE}="1"
+
+ # Huey
+ ATTRS{idVendor}=="0971", ATTRS{idProduct}=="2005", + ENV{COLOR_MEASUREMENT_DEVICE}="1"
+
+ # i1 iSis (not tested)
+ ATTRS{idVendor}=="0971", ATTRS{idProduct}=="2006", + ENV{COLOR_MEASUREMENT_DEVICE}="1"
+
+ # ColorMunki
+ ATTRS{idVendor}=="0971", ATTRS{idProduct}=="2007", + ENV{COLOR_MEASUREMENT_DEVICE}="1"
+
+
+ # Spyder 1
+ ATTRS{idVendor}=="085c", ATTRS{idProduct}=="0100", + ENV{COLOR_MEASUREMENT_DEVICE}="1"
+
+ # Spyder 2
+ ATTRS{idVendor}=="085c", ATTRS{idProduct}=="0200", + ENV{COLOR_MEASUREMENT_DEVICE}="1"
+
+ # Spyder 3
+ ATTRS{idVendor}=="085c", ATTRS{idProduct}=="0300", + ENV{COLOR_MEASUREMENT_DEVICE}="1"
+
+ # Spyder 4
+ ATTRS{idVendor}=="085c", ATTRS{idProduct}=="0400", + ENV{COLOR_MEASUREMENT_DEVICE}="1"
+
+
+ # ColorHug, old and new
+ ATTRS{idVendor}=="04d8", ATTRS{idProduct}=="f8da", + ENV{COLOR_MEASUREMENT_DEVICE}="1"
+ ATTRS{idVendor}=="273f", ATTRS{idProduct}=="1001", + ENV{COLOR_MEASUREMENT_DEVICE}="1"
+
+
+ # Let udev-acl manage these devices, if it's available
+ TEST=="/var/run/ConsoleKit/database", + ENV{COLOR_MEASUREMENT_DEVICE}=="*?", ENV{ACL_MANAGE}="1"
+
+ # Otherwise, restrict access to members of the plugdev group,
+ # which the user may have to add to the system.
+ ENV{COLOR_MEASUREMENT_DEVICE}=="*?", ENV{ACL_MANAGE}!="*?", + MODE="660", GROUP="plugdev"
+
+ # Set ID_VENDOR and ID_MODEL acording to VID and PID
+ IMPORT{program}="usb-db %p"
+
+ LABEL="argyll_rules_end"
+ ----------------- cut here ---------------------
+
+ (You may want to refer to this + document for more guidance on modifying udev rules, as well as + this.)
+
+ YOU THEN MAY NEED TO:
+
+ If your system is not using + the new ACL to manage device access for console users (the file /lib/udev/udev-acl doesn't exist + on your system), then you will need to add yourself to the plugdev group, if you are not + already a member of it. You can do this either by using a "Users and + Groups" system administration tool, or on the command line running + as root:
+
+    sudo usermod -a -G plugdev yourusernamehere
+
+ or
+     su root
+     usermod -a -G plugdev yourusernamehere
+
+ (If the usermod program isn't found as root, it might be in + /usr/sbin, ie. use /usr/sbin/usermod .... etc.
+  If usermod doesn't recognize the -a flag try "usermod -A + plugdev yourusernamehere".
+  If this doesn't work you will have to run "id yourusername" to + list the current supplemental
+  groups, and add them plus plugdev using just "usermod -G + group1,group2,... yourusername")
+
+ You may find that the plugdev + group doesn't exist on your system, and if so you will need to + create it:
+
+   sudo groupadd -r plugdev
+
+ and then add yourself to the plugdev group.
+
+ You may have to log out and then in again for the groups to become + effective.
+
+ You can check whether the instrument is being recognized and set to + the plugdev group by comparing the output of ls -l -R /dev/bus/usb without + and then with the instrument plugged in.
+
+ You can test whether your instrument is accessible by plugging it in + and then running "spotread -?" and looking for it listed after the -c option.
+   +
USB +instruments + + + + + access using hotplug:
+
+ Under much older versions of Linux, + you should look into the hotplug system configuration for USB + devices. You know you are running this because the /etc/hotplug directory exists on + your system.
+
+ Assuming we want to configure for all Argyll supported USB + instruments, copy the file usb/Argyll.usermap from the binary + or source distribution into  /etc/hotplug/usb/Argyll.usermap + with owner root, group root, permissions 644.
+
+     ----------------- cut here ---------------------
+ # hotplug device mapping to handling script.
+ # Copy this to /etc/hotplug/usb/Argyll.usermap
+ #
+ # Detect instruments by their USB VID and PID
+ #
+ # DTP20
+ Argyll 0x0003 0x0765 0xd020 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 + 0x00 0x00000000
+ #
+ # DTP92Q - not tested
+ Argyll 0x0003 0x0765 0xd092 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 + 0x00 0x00000000
+ #
+ # DTP94
+ Argyll 0x0003 0x0765 0xd094 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 + 0x00 0x00000000
+ #
+ # MonacoOPTIX (Same as i1 Display 1)
+ Argyll 0x0003 0x0670 0x0001 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 + 0x00 0x00000000
+ #
+ # i1 Display
+ Argyll 0x0003 0x0971 0x2003 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 + 0x00 0x00000000
+ #
+ # i1 Display 3
+ Argyll 0x0003 0x0765 0x5020 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 + 0x00 0x00000000
+ #
+ # i1 Monitor
+ Argyll 0x0003 0x0971 0x2001 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 + 0x00 0x00000000
+ #
+ # i1 Pro
+ Argyll 0x0003 0x0971 0x2000 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 + 0x00 0x00000000
+ #
+ # ColorMunki
+ Argyll 0x0003 0x0971 0x2007 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 + 0x00 0x00000000
+ #
+ # ColorMunki Smile
+ Argyll 0x0003 0x0765 0x6003 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 + 0x00 0x00000000
+ #
+ # Colorimtre HCFR
+ Argyll 0x0003 0x04DB 0x005B 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 + 0x00 0x00000000
+ #
+ # Spyder 2
+ Argyll 0x0003 0x085C 0x0200 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 + 0x00 0x00000000
+ #
+ # Spyder 3
+ Argyll 0x0003 0x085C 0x0300 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 + 0x00 0x00000000
+ #
+ # Spyder 4
+ Argyll 0x0003 0x085C 0x0400 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 + 0x00 0x00000000
+ #
+ # Huey
+ Argyll 0x0003 0x0971 0x2005 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 + 0x00 0x00000000
+ #
+ # ColorHug
+ Argyll 0x0003 0x04D8 0xF8DA 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 + 0x00 0x00000000
+ Argyll 0x0003 0x273F 0x1001 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 + 0x00 0x00000000
+     ----------------- cut here ---------------------
+
+  (For even older versions, append the lines above to /etc/hotplug/usb.usermap, and + you may have to run update-usb.usermap)
+
+ Then copy the file usb/Argyll from the binary or source + distribution into /etc/hotplug/usb/Argyll + with owner root, group root, permissions 744.
+
+     ----------------- cut here ---------------------
+ #!/bin/sh
+ # Copy to /etc/hotplug/usb/Argyll
+ #
+ # Argyll hotplug script. Adds the USB devices to the plugdev group.
+ if [ "${ACTION}" = "add" ] && [ -f "${DEVICE}" ]
+ then
+     chgrp plugdev "${DEVICE}"
+     chmod 660 "${DEVICE}"
+ fi
+     ----------------- cut here ---------------------
+
+ YOU THEN NEED TO:
+
+ You will then need to add + yourself to the plugdev + group, if you are not already a member of it. You can do this either + by using a "Users and Groups" system administration tool, or on the + command line running as root:
+
+    sudo usermod -a -G plugdev yourusernamehere
+
+ or
+     su root
+     usermod -a -G plugdev yourusernamehere
+
+
+ (If the usermod program isn't found as root, it might be in + /usr/sbin, ie. use /usr/sbin/usermod .... etc.
+  If usermod doesn't recognize the -a flag try "usermod -A + plugdev yourusernamehere".
+  If this doesn't work you will have to run "id yourusername" to + list the current suplemental
+  groups, and add plugdev using just "usermod -G + group1,group2,... yourusername")
+
+ You may find that the plugdev + group doesn't exist on your system, and if so you will need to + create it:
+
+   sudo groupadd -r plugdev
+
+ and then add youself to the plugdev group.
+
+ You may have to log out and then in again for the groups to become + effecive.
+
+ You can test whether your instrument is accessible by plugging it in + and then running "spotread -?" and looking for it listed after the -c option.
+  
+
Serial +instruments + + + + + access:
+
+ If you have a serial instrument then you may find that by default + you don't have permission to access the serial ports or a Serial to + USB adapter. Most systems make the serial ports available to any + user in the tty and uucp group, so the best way of + getting access to the serial ports is to add yourself to those + groups. You can do this either by using a "Users and Groups" system + administration tool, or on the command line using "usermod":
+
+     su root
+     usermod -a -G tty,uucp yourusernamehere
+
+ or
+
+    sudo usermod -a -G tty,uucp yourusernamehere
+
+ (If the usermod program isn't found as root, it might be in + /usr/sbin, ie. use /usr/sbin/usermod .... etc.
+  If usermod doesn't recognize the -a flag try "usermod -A + plugdev yourusernamehere".
+  If this doesn't work you will have to run "id yourusername" to + list the current suplemental
+  groups, and add a tty or uucp group using just "usermod -G + group1,group2,... yourusername")
+
+ You may have to log out and then in again for the group to become + effecive.
+
+

 
+  
+  
+  
+  
+  

+ + diff --git a/doc/Installing_MSWindows.html b/doc/Installing_MSWindows.html new file mode 100644 index 0000000..9079db0 --- /dev/null +++ b/doc/Installing_MSWindows.html @@ -0,0 +1,583 @@ + + + + + + + Argyll Installation on Microsoft Windows + + +

Installing the software on Microsoft Windows
+

+

Unpacking the .zip archive:

+ You will need to unzip the downloaded file in the location you have + chosen to hold the executable files (perhaps somewhere like \bin). I would NOT put them in \Program Files, since spaces in + directory or file names and command line environments are a very bad + mix, and will cause you endless problems. The archive will create a + top level directory Argyll_VX.X.X, where X.X.X is + the version number, and the executables will be in Argyll_VX.X.X\bin. +

Making the tools + accessible:

+ You should also configure your %PATH% environment variable to give + access to the executables from your command line environment.
+
+ For Windows 8, look in
+     Desktop + -> Settings -> Control Panel -> System And Security -> + System -> Advanced System Settings -> Environment Variables
+
+ For Windows 7, look in
+     Start Menu -> Control Panel -> System And + Security -> System -> Change Settings -> Advanced -> + Environment Variables
+
+ For Vista, look in
+     Start Menu -> Control Panel -> System And + Maintenance -> System -> Change Settings -> Advanced -> + Environment Variables
+
+ For XP and 2000 look in
+     Start->Settings->Control + Panel->System->Advanced->Environment Variables
+
+ For NT 4 look in
+     Start->Settings->Control + Panel->System->Environment
+
+ You want to add the directory you've chosen to your %PATH%, which is + a System Variable. Normally you would add this to the end of the + current setting, separated by a ';'. 
+
+  So if the current value of PATH is + "%SystemRoot%\system32;%SystemRoot%" and you unpacked Argyll version + 1.5.1 in d:\bin\, then you + would modify PATH to be + "%SystemRoot%\system32;%SystemRoot%;d:\bin\Argyll_V1.5.1\bin", - + i.e. you append the path to the Argyll binaries to your PATH, + separated by the ';' character. The change will take effect when you + start a new command shell, which you start from Start + Menu->Accessories->Command Prompt, or Start + Menu->Programs->Accessories->Command Prompt. You can check + that the environment variable has been set by running the command + "echo %PATH%" in the command shell.
+
+ The .zip file also contains several useful reference files (such as + scanner chart recognition templates, sample illumination spectrum + etc.) in the ref sub-directory, all the current documentation in a + doc sub-directory, and instrument USB drivers in the usb directory.
+
+ NOTE: Vista 64/Windows 7 & 8  64 bit + and Beep prompt: Microsoft (in its infinite + wisdom) has removed the built in speaker driver, and now relies on + systems having a sound card and speakers's installed and turned on + to hear system beeps. So if you're wondering where the beeps have + gone when using chartread, now you + know.
+
+ NOTE: Microsofts generic VGA Driver + does not appear to support setting the display VideoLUTs. You will + need to install a display driver for your specific display hardware + to enable this. Note that it is possible in many cases to use + Windows 7 video drivers on Windows 8 systems.
+
+

+ NOTE that if you wish to use + Argyll tools (dispwin) to control display + calibration, that you will have to disable any other calibration + loader programs.
+
+ There are other programs that will interfere with calibration + loading, such as igfxpers.exe that gets installed with nVidia + "Optimus" technology.
+ You may have to disable both the igfx tray module + (c:\windows\system32\igfxtray.exe) and the igfxpph Module + (c:\windows\system32\igfxpph.dll) in addition to the persistence + Module (c:\windows\system32\igfxpers.exe).
+
+ A good tool for this is AutoRuns. + Note that the igfxpph module may exist in several locations and you + have to disable all of them. Reboot after changing settings.
+
+
+

Serial Instruments:
+

+ If you are using a serial connected instrument, then there is + nothing special to do to enable this.
+

USB Instruments:

+ If you are using a USB connected instrument, then suitable USB drivers may need to be + installed.
+
+
Note that the Huey + and i1 Display Pro and ColorMunki Display colorimeter + appears as an HID (USB Human Interface Device Class) device, and + hence will be assigned to the default MSWindows HID driver. You + therefore don't need to install an Argyll usb driver for these + instruments, although it is possible to select the libusb0.sys + driver as an alternative to the default HID driver.
+
+ Jump to your operating system version:
+
+ Windows 8
+ Windows 7
+ Windows Vista
+ Windows XP
+ Windows 2000
+
+
Windows 8
+
+ Fresh Install of Instrument USB driver:
+
+
If you currently don't have any applications that talk to + your instrument using USB, then it is relatively simple to use the + drivers provided with Argyll, since you don't have to deal with the + instrument already having an assigned driver.
+
+ Windows 8 does not automatically pop up a "New Hardware" dialog, so + you will have to open the Device Manager manually, and you will also + have to temporarily disable UBS driver .inf signature enforcement.
+
+ To install the Argyll + driver for the first instrument:
+     Settings -> Power -> Hold Shift Key down and click + "Restart" -> Troubleshoot -> Advanced Options -> Startup + Settings -> Restart ->
+     (After Reboot) -> "Disable Driver Signature + Enforcement" (number 7 on the list)
+     (After system starts, Plug in instrument)
+     Desktop -> Settings -> Control Panel -> + Hardware and Sound -> Device Manager ->
+     Other Devices -> <instrument being + installed> -> right click -> Update Driver Software... + -> Browse my computer for driver software -> Browse...
+     -> argyll\usb + folder -> Next -> Install this driver software anyway -> + Close
+
+ On subsequent installation + of other instrument types:
+     Simply plug the instrument in. The Argyll driver + will be automatically selected.
+
+
+ Adding + Argyll drivers to existing drivers:
+
+ If you currently have applications other than Argyll accessing your + USB connected instrument, then you will have to manually install the + Argyll driver, and then switch back and forth between the Argyll and + other drivers if you want to switch between applications.
+
+ To install the Argyll + Driver:
+ Settings -> Power -> Hold + Shift Key down and click "Restart" -> Troubleshoot -> + Advanced Options -> Startup Settings -> Restart ->
+     (After Reboot) -> Disable Driver Signature + Enforcement" (number 7 on the list)
+     (After system starts, Plug in instrument)
+     Desktop -> Settings -> Control Panel -> + Hardware and Sound -> Device Manager
+     (Locate the instrument in the device list. It may + be underneath one of the top level items.)
+     Right click on instrument -> Update Driver + Software... -> let me pick from a list of device drivers on my + computer -> Have disk... -> Browse...
+     -> argyll\usb + folder -> select ArgyllCMS.inf -> Open -> OK -> Install + this driver software anyway -> Close
+
+ To switch between drivers:
+     (Plug in the instrument)
+     Desktop -> Settings -> Control Panel -> + Hardware and Sound -> Device Manager
+     (Locate the instrument in the device list. It may + be underneath one of the top level items.)
+     Right click on instrument -> Update Driver + Software... -> let me pick from a list of device drivers on my + computer
+     (Choose either the Argyll driver or another + driver from the list)
+     -> Next -> Close
+
+ Un-installing Argyll driver:
+
+ If you are updating to a new version of Argyll, that it may be + necessary to uninstall all the existing Argyll USB driver, and do a + fresh re-install to update the relevant libusb system driver and + .inf file. (This is true for updating to Argyll Version 1.5.0).
+
+     (Plug in the instrument)
+     Desktop -> Settings -> Control Panel -> + Hardware and Sound -> Device Manager
+     (Locate the instrument in the device list. It + will be underneath the Argyll LibUSB-win32 devices top level item.)
+     Right click on instrument -> Uninstall -> + click "Delete the driver software for this device" -> OK
+
+ Proceed then with either Fresh + Install of Argyll USB driver or Adding Argyll drivers to + existing drivers above.
+
+
Windows Vista & + Windows 7
+
+ Fresh Install of + Instrument USB driver:
+
+
If you currently don't have any applications that talk to + your instrument using USB, then it is relatively simple to use the + drivers provided with Argyll since you don't have to deal with the + instrument already having an assigned driver.
+
+ To install the Argyll + driver for the first instrument:
+     (Plug in instrument)
+     (Wait for the "Found New Hardware" or "Installing + new device driver software - Device driver software was not + successfully installed" popup and dismiss it)
+     Start -> Control Panel -> Hardware and + Sound -> Device Manager ->
+     Other Devices -> <instrument being + installed> -> right click -> Update Driver Software... + -> Browse my computer for driver software -> Browse...
+     -> argyll\usb + folder -> Next -> Install this driver software anyway -> + Close
+
+ On subsequent installation + of other instrument types:
+     Simply plug the instrument in. The Argyll driver + will be automatically installed.
+
+
+ Adding + Argyll drivers to existing drivers:
+
+ If you currently have applications other than Argyll accessing your + USB connected instrument, then you will have to manually install the + Argyll driver, and then switch back and forth between the Argyll and + other drivers if you want to switch between applications.
+
+ To install the Argyll + Driver:
+     (Plug in instrument)
+     Start -> Control Panel -> Hardware and + Sound -> Device Manager
+     (Locate the instrument in the device list. It may + be underneath one of the top level items.)
+     Right click on instrument -> Update Driver + Software... -> let me pick from a list of device drivers on my + computer -> Have disk... -> Browse...
+     -> argyll\usb + folder -> select ArgyllCMS.inf -> Open -> OK -> Install + this driver software anyway -> Close
+
+ To switch between drivers:
+     (Plug in the instrument)
+     Start -> Control Panel -> Hardware and + Sound -> Device Manager
+     (Locate the instrument in the device list. It may + be underneath one of the top level items.)
+     Right click on instrument -> Update Driver + Software... -> let me pick from a list of device drivers on my + computer
+     (Choose either the Argyll driver or another + driver from the list)
+     -> Next -> Close
+
+ Un-installing Argyll driver:
+
+ If you are updating to a new version of Argyll, that it may be + necessary to uninstall all the existing Argyll USB driver, and do a + fresh re-install, to update the relevant libusb system driver and + .inf file. (This is true for updating to Argyll Version 1.5.0).
+
+     (Plug in the instrument)
+     Start -> Control Panel -> Hardware and + Sound -> Device Manager
+     (Locate the instrument in the device list. It + will be underneath the Argyll LibUSB-win32 devices top level item.)
+     Right click on instrument -> Uninstall -> + click "Delete the driver software for this device" -> OK
+
+ Proceed then with either Fresh + Install of Argyll USB driver or Adding Argyll drivers to + existing drivers above.
+
+
Windows XP
+
+ Fresh Install of + Instrument USB driver:
+
+
If you currently don't have any applications that talk to + your instrument using USB, then it is relatively simple to use the + drivers provided with Argyll since you don't have to deal with the + instrument already having an assigned driver.
+
+ To install the Argyll + driver for the first instrument:
+     (Plug in instrument)
+     (Wait for the "Welcome to the Found New Hardware + Wizard" popups and dismiss it)
+      My Computer, Right Click -> Manage -> + Device Manager
+     Other Devices -> <instrument being + installed> -> right click -> Update Driver... -> No, not + this time -> Next
+     ->Install from a list or specific location + (Advanced) -> Next -> Don't search. I will choose the driver + to install -> Next
+     -> Have Disk... -> Browse -> argyll\usb folder -> + ArgyllCMS.inf -> Open -> OK -> Next -> Finish
+
+ On subsequent installation + of other instrument types:
+     (Plug the instrument in, and wait for the + "Welcome to the Found New Hardware Wizard"  to pop up.)
+     No, not this time -> Install the software + automatically (Recommended) -> Next -> Finish
+
+
+ Adding + Argyll drivers to existing drivers:
+
+ If you currently have applications other than Argyll accessing your + USB connected instrument, then you will have to manually install the + Argyll driver, and then switch back and forth between the Argyll and + other drivers if you want to switch between applications.
+
+ To install the Argyll + Driver:
+     (Plug in instrument)
+      My Computer, Right Click -> Manage -> + Device Manager
+     (Locate the instrument in the device list. It may + be underneath one of the top level items.)
+      Right click on instrument -> right click + -> Update Driver... -> No, not this time -> Next
+     ->Install from a list or specific location + (Advanced) -> Next -> Don't search. I will choose the driver + to install -> Next
+     -> Have Disk... -> Browse -> argyll\usb folder -> + ArgyllCMS.inf -> Open -> OK -> Next -> Finish
+
+ To switch between drivers:
+     (Plug in the instrument)
+     My Computer,  Right Click -> Manage -> + Device Manager
+     (Locate the instrument in the device list. It may + be underneath one of the top level items.)
+     Right click on instrument -> Update Driver... + -> No, not this time -> Next
+     ->Install from a list or specific location + (Advanced) -> Next -> Don't search. I will choose the driver + to install -> Next
+     ->let me pick from a list of device drivers on + my computer
+     (Choose either the Argyll driver or another + driver from the list)
+     -> Next -> Finish
+
+ Un-installing Argyll driver:
+
+ If you are updating to a new version of Argyll, that it may be + necessary to uninstall all the existing Argyll USB driver, and do a + fresh re-install, to update the relevant libusb system driver and + .inf file. (This is true for updating to Argyll Version 1.5.0).
+
+     (Plug in the instrument)
+    My Computer, Right Click -> Manage -> Device + Manager
+     (Locate the instrument in the device list. It + will be underneath the Argyll LibUSB-win32 devices top level item.)
+     Right click on instrument -> Uninstall -> + click "Delete the driver software for this device" -> OK
+
+   Then you will have to delete the cached copy of the old + Argyll driver .inf files, that MSWindows keeps.
+
+   cd to where Windows keeps it's cached driver information + files, ie:
+     c:
+     cd \windows\inf
+
+   identify all the system copies of the Argyll .inf files:
+
+     find /I "ArgyllCMS" oem*.inf
+
+   then delete just the files that contain "ArgyllCMS":
+
+     del /F oemXXX.inf
+     del /F oemXXY.inf
+     etc.
+
+ Proceed then with either Fresh + Install of Argyll USB driver or Adding Argyll drivers to + existing drivers above.
+
+
Windows 2000
+
+ Fresh Install of + Instrument USB driver:
+
+
If you currently don't have any applications that talk to + your instrument using USB, then it is relatively simple to use the + drivers provided with Argyll since you don't have to deal with the + instrument already having an assigned driver.
+
+ To install the Argyll + driver for the first instrument:
+     (Plug in instrument)
+     (Wait for the "Welcome to the Found New Hardware + Wizard" pops up) -> Next
+     -> Search for a suitable driver for my device + (recommended) -> Next -> Specify a location -> Next
+     -> Browse ->  argyll\usb folder -> + ArgyllCMS.inf -> Open -> OK -> Next -> Finish
+
+ On subsequent installation + of other instrument types:
+     Simply plug the instrument in. The Argyll driver + will be automatically installed.
+
+ Adding + Argyll drivers to existing drivers:
+
+ If you currently have applications other than Argyll accessing your + USB connected instrument, then you will have to manually install the + Argyll driver, and then switch back and forth between the Argyll and + other drivers if you want to switch between applications.
+
+ To install the Argyll + Driver:
+     (Plug in instrument)
+      My Computer, Right Click -> Manage -> + Device Manager
+     (Locate the instrument in the device list. It may + be underneath one of the top level items.)
+      Right click on instrument -> Properties + -> Driver -> Update Driver  this time
+     -> "Welcome to the Found New Hardware Wizard" + -> Next -> Display a list of known drivers for this device so + that I can choose a specific driver -> Next
+     -> Have Disk -> Browse -> argyll\usb folder -> + ArgyllCMS.inf -> Open -> OK -> Next -> Next -> Finish
+
+ To switch between drivers:
+     (Plug in instrument)
+      My Computer, Right Click -> Manage -> + Device Manager
+     (Locate the instrument in the device list. It may + be underneath one of the top level items.)
+      Right click on instrument -> Properties + -> Driver -> Update Driver... -> Next
+     -> Display a list of known drivers for this + device so that I can choose a specific driver -> Next
+     (Choose either the Argyll driver or another + driver from the list)
+     -> Next -> Next -> Finish
+
+ Un-installing Argyll driver:
+
+ If you are updating to a new version of Argyll, that it may be + necessary to uninstall all the existing Argyll USB driver, and do a + fresh re-install, to update the relevant libusb system driver and + .inf file. (This is true for updating to Argyll Version 1.5.0).
+
+     (Plug in the instrument)
+    My Computer, Right Click -> Manage -> Device + Manager
+     (Locate the instrument in the device list. It may + be underneath one of the top level items.)
+      Right click on instrument -> Uninstall + -> OK
+
+   Then you will have to delete the cached copy of the old + Argyll driver .inf files, that MSWindows keeps.
+
+   cd to where Windows keeps it's cached driver information + files, ie:
+     c:
+     cd \winnt\inf
+
+   identify all the system copies of the Argyll .inf files:
+
+     find /I "ArgyllCMS" oem*.inf
+
+     then delete just the files that contain "ArgyllCMS":
+
+     del /F oemXXX.inf
+     del /F oemXXY.inf
+     etc.
+
+ Proceed then with either Fresh + Install of Argyll USB driver or Adding Argyll drivers to + existing drivers above.
+
+
+ + diff --git a/doc/Installing_OSX.html b/doc/Installing_OSX.html new file mode 100644 index 0000000..d3f9057 --- /dev/null +++ b/doc/Installing_OSX.html @@ -0,0 +1,283 @@ + + + + + + + Argyll Installation on Apple OS X + + +

+Installing the software on Apple OS X
+

+
+You +will need to unpack the downloaded file in the location you have chosen +to hold the executable files. Typically this might be in /usr/bin, or perhaps $HOME/bin/.
+
+You can unpack it by control-click on the downloaded file +and “Open With” BOMArchiveHelper or Archive Utility. Drag the resulting +folder to where you want it, e.g. into your home folder (/Users/usrnam +where usrnam is your username).
+
+Alternatively you can unpack it on the command line using  the +command tar -zxf archivename.tgz, which will create a +directory Argyll_VX.X.X, where +X.X.X is the version number, and the executables will be in Argyll_VX.X.X/bin.
+
+Open a Terminal shell. This will be in +Applications->Utilities->Terminal (Dragging it to the dock is a +good idea to make it more accessible).
+
+You will have to +configure your $PATH environment variable to give access to the +executables from your command line environment, by editing your .profile file.
+You can do this using a graphical editor, by using the open command:
+
+  ~$open .profile
+
+or by using some other editor, such as vi.
+
+And add the following line to your .path file
+
+  PATH=$PATH:$HOME/Argyll_V1.1.1/bin
+
+If you are unfamiliar +with how to do this, consult an appropriate tutorial, e.g. <ShellIntro>. +The +.tgz +file +also +contains +several +useful +reference files (such as +scanner chart recognition templates, sample illumination spectrum +etc.) in the ref sub-directory, as well as +all the current documentation in a doc sub-directory.
+
+For most devices there is nothing special to do. Plug in and go. Some +devices may not work without some extra help though:
+

X-Rite +ColorMunki

+Some version of X-Rite's ColorMunki drivers released between 2009 and +2011 install an X-Rite +daemon that runs as root and grabs the device, preventing any other +programs (such as Argyll) from opening them. Latter versions seem to be +more cooperative, and don't suffer from this problem. There are three +ways of +working around this problem:
+
+1) Turn off the X-Rite service for the ColorMunki. See <http://www.xrite.com/product_overview.aspx?ID=1161&Action=support&SupportID=4980>.
+
+2) Run all Argyll programs that need to access the instrument as root. +For instance:
+
+    sudo spotread
+
+and then you will be asked for the root password.
+While these methods will work, they are incovenient.
+
+3) Alter the X-Rite drivers Daeomon so that it runs under your user +account.
+
+To do this you need to edit the script that controls the X-Rite Daemon.
+
+    cd ~
+    whoami
+    cp +/Library/LaunchDaemons/com.xrite.device.colormunki.plist temp.plist
+    open temp.plist
+
+and add one child below the root:
+
+    Item                             +Type                    +Value           +
+    UserName   +                  +string                   +myusername
+
+where "myusername" is your username shown by whoami, and save the file. +You then need +to copy the modified file back:
+
+    sudo cp temp.plist +/Library/LaunchDaemons/com.xrite.device.colormunki.plist
+
+You will then need to restart the machine for this change to take +effect, or invoke the following commands:
+
+   sudo launchctl unload +/Library/LaunchDaemons/com.xrite.device.colormunki.plist
+   sudo launchctl load +/Library/LaunchDaemons/com.xrite.device.colormunki.plist
+
+NOTE that after running Argyll +tools, you may have to turn the X-Rite service off then on again, or +disconnect and reconnect the instrument.
+
+

X-Rite +EyeOne +Pro
+

+Some version of X-Rite's EyeOne Pro drivers drivers released between +2009 and +2011 install an X-Rite +daemon that runs as root and grabs the device, preventing any other +programs (such as Argyll) from opening them. Latter versions seem to be +more cooperative, and don't suffer from this problem. There are three +ways of +working around this problem:
+
+1) Turn off the X-Rite service for the EyeOne Pro. See <http://www.xrite.com/product_overview.aspx?ID=1161&Action=support&SupportID=4980>.
+
+2) Run all Argyll programs that need to access the instrument as root. +For instance:
+
+    sudo spotread
+
+and then you will be asked for the root password.
+While these methods will work, they are incovenient.
+
+3) Alter the X-Rite drivers Daeomon so that it runs under your user +account.
+
+To do this you need to edit the script that controls the X-Rite Daemon.
+
+    cd ~
+    whoami
+    cp +/Library/LaunchDaemons/com.xrite.device.i1.plist temp.plist
+    open temp.plist
+
+and add one child below the root:
+
+    Item                             +Type                    +Value           +
+    UserName   +                  +string                   +myusername
+
+where "myusername" is your username shown by whoami, and save the file. +You then need +to copy the modified file back:
+
+    sudo cp temp.plist +/Library/LaunchDaemons/com.xrite.device.i1.plist
+
+You will then need to restart the machine for this change to take +effect, or invoke the following commands:
+
+   sudo launchctl unload +/Library/LaunchDaemons/com.xrite.device.i1.plist
+   sudo launchctl load +/Library/LaunchDaemons/com.xrite.device.i1.plist
+
+NOTE that after running Argyll +tools, you may have to turn the X-Rite service off then on again, or +disconnect and reconnect the instrument.
+
+

HCFR Colorimeter

+The default OS X class +drivers will grab this device, preventing Argyll from accessing it. To +overcome this, you need to install a codeless kernel extension if you +wish to use the HCFR colorimeter, that +prevents this from happening. From the command line you need to create +a directory called Argyll.kext somewhere convenient, and then place in +it one file called Info.plist, containing the following:
+
+    ----------------- cut here ---------------------
+   <?xml version="1.0" encoding="UTF-8"?>
+   <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST +1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+   <plist version="1.0">
+   <dict>
+       +<key>CFBundleDevelopmentRegion</key> +<string>English</string>
+       <key>CFBundleGetInfoString</key> +<string>Libusb USB device Shield</string>
+       +<key>CFBundleIdentifier</key> +<string>com.libusb.USB_Shield</string>
+       +<key>CFBundleInfoDictionaryVersion</key> +<string>6.0</string>
+       <key>CFBundleName</key> +<string>Libusb USB device Shield</string>
+       <key>CFBundlePackageType</key> +<string>KEXT</string>
+       <key>CFBundleSignature</key> +<string>????</string>
+       <key>CFBundleVersion</key> +<string>6.0</string>
+       +<key>IOKitPersonalities</key>
+       <dict>
+           +<key>HCFR</key>
+           <dict>
+               +<key>CFBundleIdentifier</key> +<string>com.apple.driver.AppleUSBComposite</string>
+               +<key>IOClass</key> +<string>AppleUSBComposite</string>
+               +<key>IOProviderClass</key> +<string>IOUSBDevice</string>
+            +   <key>idVendor</key> +<integer>1243</integer>
+             +  +<key>idProduct</key> +<integer>91</integer>
+           </dict>
+       </dict>
+       +<key>OSBundleCompatibleVersion</key> +<string>1.8</string>
+       <key>OSBundleLibraries</key>
+       <dict>
+           +<key>com.apple.kernel.iokit</key> +<string>6.0</string>
+       </dict>
+   </dict>
+   </plist>
+    ----------------- cut here ---------------------
+
+(You can also copy this from the source installation in +usb/Argyll.kext)
+
+You then need to install it by using:
+
+  sudo cp -R Argyll.kext /System/Library/Extensions
+
+supplying the appropriate root password when prompted.
+Reboot the system to activate the extension.
+
+


+

+ + diff --git a/doc/Kgraph1.jpg b/doc/Kgraph1.jpg new file mode 100644 index 0000000..9f6edf9 Binary files /dev/null and b/doc/Kgraph1.jpg differ diff --git a/doc/Kgraph2.jpg b/doc/Kgraph2.jpg new file mode 100644 index 0000000..a7d532d Binary files /dev/null and b/doc/Kgraph2.jpg differ diff --git a/doc/Kgraph3.jpg b/doc/Kgraph3.jpg new file mode 100644 index 0000000..f916558 Binary files /dev/null and b/doc/Kgraph3.jpg differ diff --git a/doc/Kgraph4.jpg b/doc/Kgraph4.jpg new file mode 100644 index 0000000..603c9bd Binary files /dev/null and b/doc/Kgraph4.jpg differ diff --git a/doc/Kgraph5.jpg b/doc/Kgraph5.jpg new file mode 100644 index 0000000..1de1b88 Binary files /dev/null and b/doc/Kgraph5.jpg differ diff --git a/doc/Kgraph6.jpg b/doc/Kgraph6.jpg new file mode 100644 index 0000000..f3981d2 Binary files /dev/null and b/doc/Kgraph6.jpg differ diff --git a/doc/Kgraph7.jpg b/doc/Kgraph7.jpg new file mode 100644 index 0000000..c2d0686 Binary files /dev/null and b/doc/Kgraph7.jpg differ diff --git a/doc/Kgraph8.jpg b/doc/Kgraph8.jpg new file mode 100644 index 0000000..1bb9569 Binary files /dev/null and b/doc/Kgraph8.jpg differ diff --git a/doc/Kparams.jpg b/doc/Kparams.jpg new file mode 100644 index 0000000..04e344b Binary files /dev/null and b/doc/Kparams.jpg differ diff --git a/doc/LSDC.jpg b/doc/LSDC.jpg new file mode 100644 index 0000000..2ad2a67 Binary files /dev/null and b/doc/LSDC.jpg differ diff --git a/doc/LabSteps.jpg b/doc/LabSteps.jpg new file mode 100644 index 0000000..d25590f Binary files /dev/null and b/doc/LabSteps.jpg differ diff --git a/doc/License.txt b/doc/License.txt new file mode 100644 index 0000000..a871fcf --- /dev/null +++ b/doc/License.txt @@ -0,0 +1,662 @@ + GNU AFFERO GENERAL PUBLIC LICENSE + Version 3, 19 November 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU Affero General Public License is a free, copyleft license for +software and other kinds of works, specifically designed to ensure +cooperation with the community in the case of network server software. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +our General Public Licenses are intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + Developers that use our General Public Licenses protect your rights +with two steps: (1) assert copyright on the software, and (2) offer +you this License which gives you legal permission to copy, distribute +and/or modify the software. + + A secondary benefit of defending all users' freedom is that +improvements made in alternate versions of the program, if they +receive widespread use, become available for other developers to +incorporate. Many developers of free software are heartened and +encouraged by the resulting cooperation. However, in the case of +software used on network servers, this result may fail to come about. +The GNU General Public License permits making a modified version and +letting the public access it on a server without ever releasing its +source code to the public. + + The GNU Affero General Public License is designed specifically to +ensure that, in such cases, the modified source code becomes available +to the community. It requires the operator of a network server to +provide the source code of the modified version running there to the +users of that server. Therefore, public use of a modified version, on +a publicly accessible server, gives the public access to the source +code of the modified version. + + An older license, called the Affero General Public License and +published by Affero, was designed to accomplish similar goals. This is +a different license, not a version of the Affero GPL, but Affero has +released a new version of the Affero GPL which permits relicensing under +this license. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU Affero General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Remote Network Interaction; Use with the GNU General Public License. + + Notwithstanding any other provision of this License, if you modify the +Program, your modified version must prominently offer all users +interacting with it remotely through a computer network (if your version +supports such interaction) an opportunity to receive the Corresponding +Source of your version by providing access to the Corresponding Source +from a network server at no charge, through some standard or customary +means of facilitating copying of software. This Corresponding Source +shall include the Corresponding Source for any work covered by version 3 +of the GNU General Public License that is incorporated pursuant to the +following paragraph. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the work with which it is combined will remain governed by version +3 of the GNU General Public License. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU Affero General Public License from time to time. Such new versions +will be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU Affero General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU Affero General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU Affero General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If your software can interact with users remotely through a computer +network, you should also make sure that it provides a way for users to +get its source. For example, if your program is a web application, its +interface could display a "Source" link that leads users to an archive +of the code. There are many ways you could offer source, and different +solutions will be better for different programs; see section 13 for the +specific requirements. + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU AGPL, see +. + diff --git a/doc/License2.txt b/doc/License2.txt new file mode 100644 index 0000000..05ca889 --- /dev/null +++ b/doc/License2.txt @@ -0,0 +1,282 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + diff --git a/doc/License3.txt b/doc/License3.txt new file mode 100644 index 0000000..94a9ed0 --- /dev/null +++ b/doc/License3.txt @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/doc/Limitations.html b/doc/Limitations.html new file mode 100644 index 0000000..f3fb811 --- /dev/null +++ b/doc/Limitations.html @@ -0,0 +1,42 @@ + + + + + + + Argyll Overview + + +

+Limitations

+Some features that have been often asked for, but aren't currently +implemented are:
+
    +
  • ICC Version 4 profile support
  • +
  • Monochrome profiling support
  • +
  • More than 4 colorant printer support
  • +
  • GUI interface
  • +
  • Support for all available instruments
  • +
+Some of these features are being worked upon, and some are beyond the +scope of a non-commercial project. The range of instruments supported +is mainly limited by the availability of information on their +interfaces, as well as the instruments themselves.
+
+The file ttbd.txt in the source distribution has a longer and more +detailed list of feature ideas.
+
+


+
+
+  +
+  +
+  + + diff --git a/doc/Makefile.am b/doc/Makefile.am new file mode 100644 index 0000000..ea48cb5 --- /dev/null +++ b/doc/Makefile.am @@ -0,0 +1,6 @@ +docdir = $(datadir)/doc/argyll + +doc_DATA = $(wildcard *.txt) $(wildcard *.html) $(wildcard *.jpg) \ + $(wildcard *.gif) + +EXTRA_DIST = $(doc_DATA) diff --git a/doc/MinorTools.html b/doc/MinorTools.html new file mode 100644 index 0000000..5e9a5c4 --- /dev/null +++ b/doc/MinorTools.html @@ -0,0 +1,64 @@ + + + + + + + + Argyll Minor Tools + + + +

+Minor tools, test frameworks

+numlib/LUtest.exe            +Test LU matrix decomposition. +
numlib/dnsqtest.exe          +Test nonlinear square system solution. +
numlib/soboltest.exe          +Test sobol sequence generator +
numlib/svdtest.exe             +Test Singular Value Decomposition code +
numlib/tpowell.exe             +Test Powell non linear minimiser code +
numlib/zbrenttest.exe          +Test 1D Brent solver +
plot/plot.exe +
icc/fbtest.exe +
icc/icclu.exe +
icc/iccrw.exe +
icc/icctest.exe +
icc/lutest.exe +
rspl/c1.exe +
rspl/revbench.exe +
rspl/t2d.exe +
rspl/tnd.exe +
rspl/trnd.exe +
imdi/ctest.exe +
imdi/greytiff.exe +
imdi/imdi_gen.exe +
imdi/itest.exe +
imdi/sort.exe +
imdi/tsort.exe +
cgats/cgats.exe +
cgats/pars.exe +
gamut/maptest.exe +
gamut/smthtest.exe +
xicc/camtest.exe +
xicc/fbview.exe +
xicc/icheck.exe +
xicc/spectest.exe +
xicc/tcheck.exe +
xicc/xcolorantslu.exe +
xicc/xfbview.exe +
spectro/dispwin.exe +
target/ifarp.exe +
target/ppoint.exe +
target/qrand.exe +
target/simplat.exe +
profile/sprof.exe +
link/monoplot.exe +
link/pathplot.exe +
  + + diff --git a/doc/Organisation.html b/doc/Organisation.html new file mode 100644 index 0000000..738b4ba --- /dev/null +++ b/doc/Organisation.html @@ -0,0 +1,230 @@ + + + + Argyll Organization + + + +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.
+
+
+
+
+
+
+
+
+
+
+ + diff --git a/doc/Overview.html b/doc/Overview.html new file mode 100644 index 0000000..373d195 --- /dev/null +++ b/doc/Overview.html @@ -0,0 +1,57 @@ + + + + + + + Argyll Overview + + +

+Overview

+Many commercial and research electronic color correction systems have +been +developed over the years, but all state-of-the-art systems are +proprietary, +and their technology is jealously guarded. This makes this interesting +subject area a difficult one to both explore, and to bridge the gap +between +theory and practice. +

Argyll was written to allow me to improve my understanding and +expertise +in the color area, and as a platform to try out ideas for alternate +approaches +to electronic color correction, as well as developing new advanced +features. +

+

I hope that by making the source code available under "Free" and +"Open +Source" licenses, that other researchers and experimenters will also +find +it of interest and value. I also hope that it may be attractive as a +software platform on which future research and advances in electronic +color correction +systems can be based. +

+

To complement this aim, I hope at some stage to turn my notes made +in +the creation of this software into a more readable +explanation of how Argyll works, and the principles on which it is +based. +

+
+
+


+
+
+  +
+  +
+  + + diff --git a/doc/Performance.html b/doc/Performance.html new file mode 100644 index 0000000..b69f5ae --- /dev/null +++ b/doc/Performance.html @@ -0,0 +1,106 @@ + + + + + + + Argyll Performance Tuning + + +

+Performance Tuning

+
+Some operations in Argyll can be particularly slow, so it is worth +examining ways of improving performance, or trading memory consumption +for performance.
+

Creating Device Links and Profiles
+

+In creating device links or the B2A tables of profiles, the execution +time is often dominated by the inversion of forward +color lookup values. An in-memory cache is employed to speed up this +operation, by keeping computed values in case they can be used more +than once. The amount of memory used for caching these values is +pre-set within the inversion code, and by default is set to use half of +the available RAM on the system, with a minimum of 50 Mbytes.
+
+The reverse cache size can be changed by setting an environment +variable +ARGYLL_REV_CACHE_MULT to a +number greater or less than than 1.0 This will multiply the size of the +cache by that number (i.e. 1.5 would increase the cache size by 50%, +0.5 would halve it).
+
+If you find that colprof +or  collink +are working very slowly, but that your CPU's are nearly idle, then this +is a sign of disk swapping, and that too much memory is being +requested.  This can be because other applications are also using +memory, or Argyll's default setting tries to use more memory than is +actually available. You can try shutting down other applications when +this happens, or you can lower +the amount of memory Argyll uses by setting ARGYLL_REV_CACHE_MULT to a value +less than 1.0 (ie. try 0.5).
+
+If you have a lot of memory available, you can try increasing the +cache size to use more of the available RAM (particularly if you get a +"Warning - Reverse Cell Cache exhausted, +processing in chunks" message during processing), but if you set it to +a value too near 2.0 you risk disk swapping, which can slow progress to +a crawl.
+
+If you have a lot of memory available, then a second adjustment that +can make a great difference to the time taken +in creating B2A tables is the resolution of the inverse lookup +acceleration grid. The finer the grid, the less searching is needed to +locate the input colorspace values that +correspond to a target output color value, but the greater the memory +used in this +structure, and the greater the setup time needed to initialize the +acceleration grid. The ARGYLL_REV_ACC_GRID_RES_MULT +environment variable can alter the default resolution by a scale +factor. A value of 0.5 for instance, would halve the resolution +(typically meaning 1/8 th. the total number of grid entries and +memory), while a value of 2.0 would double it, typically resulting in 8 +times the memory usage. Increasing the resolution too much will reduce +the available memory for the reverse cache, and greatly increase setup +time.
+
+

Setting an environment variable:

+
+To set an environment variable an MSWindows DOS shell, either use set, +e.g.;
+
+    set ARGYLL_REV_CACHE_MULT=1.5
+
+which will set the value for that session, or set it in
+
+Control Panel->System->Advanced->Environment Variables..
+
+in either user or system variables.
+
+For OS X or Linux, the exact procedure will depend on the shell you are +running, but
+is usually something like:
+
+    export ARGYLL_REV_CACHE_MULT=1.5
+or
+    set ARGYLL_REV_CACHE_MULT=1.5
+or
+    ARGYLL_REV_CACHE_MULT=1.5
+
+and may need separately exporting, something like:
+
+    export ARGYLL_REV_CACHE_MULT
+
+Generally it should be configured in the shell start-up script,  +if you +want the setting to be used
+for every session.
+
+
+ + diff --git a/doc/Q60.jpg b/doc/Q60.jpg new file mode 100644 index 0000000..1521e04 Binary files /dev/null and b/doc/Q60.jpg differ diff --git a/doc/QPcard201.jpg b/doc/QPcard201.jpg new file mode 100644 index 0000000..dbe1448 Binary files /dev/null and b/doc/QPcard201.jpg differ diff --git a/doc/QPcard202.jpg b/doc/QPcard202.jpg new file mode 100644 index 0000000..3332bdd Binary files /dev/null and b/doc/QPcard202.jpg differ diff --git a/doc/SG.jpg b/doc/SG.jpg new file mode 100644 index 0000000..7dc20e1 Binary files /dev/null and b/doc/SG.jpg differ diff --git a/doc/SG_footer.txt b/doc/SG_footer.txt new file mode 100644 index 0000000..e82fbc2 --- /dev/null +++ b/doc/SG_footer.txt @@ -0,0 +1 @@ +END_DATA diff --git a/doc/SG_header.txt b/doc/SG_header.txt new file mode 100644 index 0000000..83af2cd --- /dev/null +++ b/doc/SG_header.txt @@ -0,0 +1,12 @@ +IT8.7/2 +ORIGINATOR "Graeme Gill" +DESCRIPTOR "Header to prepend to X-Rite digital_colorchecker_sg_l_a_b.txt file" +CREATED "June 26, 2012" + +NUMBER_OF_FIELDS 4 +BEGIN_DATA_FORMAT +SAMPLE_ID LAB_L LAB_A LAB_B +END_DATA_FORMAT + +NUMBER_OF_SETS 140 +BEGIN_DATA diff --git a/doc/Scenarios.html b/doc/Scenarios.html new file mode 100644 index 0000000..3995d21 --- /dev/null +++ b/doc/Scenarios.html @@ -0,0 +1,2177 @@ + + + + Argyll Usage Scenarios + + + +

Typical usage Scenarios and Examples

+ Choose a task from the list below. For more details on alternative + options, follow the links to the individual tools being used.
+
+ Note that by default it is assumed that ICC profile have the file + extension .icm, but that on + Apple OS X and Unix/Linux platforms, the .icc extension is expected and should be used.
+

Profiling Displays

+

    Checking you can access your + display
+

+

    Adjusting and Calibrating a + displays

+

    Adjusting, calibrating and + profiling in one step
+

+

    Creating display test values

+

    Taking readings from a + display

+

    Creating a display profile

+

    Installing a display profile

+

    Expert tips when measuring displays

+

    Calibrating and profiling a display that doesn't + have VideoLUT access.

+


+ Profiling Scanners and other input devices such as + cameras
+

+

    Types of test charts

+

    Taking readings from a + scanner

+

    Creating a scanner profile

+


+ Profiling Printers

+

    Creating a print profile + test chart

+

    Printing a + print profile test chart

+

    Reading a print test chart + using an instrument

+

    Reading a print test chart + using a scanner

+

+

    Creating a printer profile
+

+

    Choosing a black generation + curve

+
+

Calibrating Printers

+

    Calibrated + print workflows

+

    Creating a + print calibration test chart

+

+

    Creating a + printer calibration
+

+

    Using a printer + calibration

+

    How profile ink limits are + handled when calibration is being used
+

+


+ Linking Profiles

+


+ Transforming colorspaces of raster files

+
+

+

Profiling Displays

+ Argyll supports adjusting, calibrating and profiling of displays + using one of a number of instruments - see instruments for a current list.  + Adjustment and calibration are prior steps to profiling, in which + the display is adjusted using it's screen controls,  and then + per channel lookup tables are created to make it meet a well behaved + response of the desired type. The  process following that of + creating a display profile is then similar to that of all other + output devices :- first a set of device colorspace test values needs + to be created to exercise the display, then these values need to be + displayed, while taking measurements of the resulting colors using + the instrument. Finally, the device value/measured color values need + to be converted into an ICC profile.
+
+

Checking you can access your display
+

+ You might first want to check that you are accessing and can + calibrate your display. You can do this using the dispwin + tool. If you just run dispwin it will create a test + window and run through a series of test colors before checking that + the VideoLUT can be accessed by the display. If you invoke the usage + for dispwin (by giving it + an unrecognized option, e.g. -?) + then it will show a list of available displays next to the -d + flag. Make sure that you are accessing the display you intend to + calibrate and profile, and that the VideoLUT is effective (the -r flag can be used to just run + the VideoLUT test). You can also try clearing the VideoLUTs using + the -c flag, and loading a + deliberately strange looking calibration strange.cal that is provided in the Argyll ref directory.
+
+ Note that calibrating and/or profiling remote displays is possible using X11 or a web + browser (see -d option of + dispcal and dispread), or by using some external program to send + test colors to a display (see -C + and -M options of dispcal + and dispread), but you may want to refer to Calibrating + + + + and profiling a display that doesn't have VideoLUT access.
+
+

Adjusting and Calibrating Displays

+ Please read What's the difference between + Calibration and Characterization ? if you are unclear as to + the difference .
+
+ The first step is to decide what the target should be for adjustment + and calibration. This boils down to three things: The desired + brightness, the desired white point, and the desired response curve. + The native brightness and white points of a display may be different + to the desired characteristics for some purposes. For instance, for + graphic arts use, it might be desirable to run with a warmer white + point of about 5000 degrees Kelvin, rather than the default display + white point of 6500 to 9000 Kelvin. Some LCD displays are too bright + to compare to printed material under available lighting, so it might + be desirable to reduce the maximum brightness.
+
+ You can run dispcal -r to check on how + your display is currently set up. (you may have to run this as dispcal +-yl + + + + + + + + + -r for an LCD display, or dispcal -yc -r for a + CRT display with most of the colorimeter instruments. If so, this + will apply to all of the following examples.)
+
+ Once this is done, dispcal can be run to + guide you through the display adjustments, and then calibrate it. By + default, the brightness and white point will be kept the same as the + devices natural brightness and white point. The default response + curve is a gamma of 2.4, except for Apple OS X systems prior to 10.6 + where a gamma of 1.8 is the default. 2.4 is close to that of  + many monitors, and close to that of the sRGB colorspace.
+
+ A typical calibration that leaves the brightness and white point + alone, might be:
+
+ dispcal -v TargetA
+
+ which will result in a "TargetA.cal" calibration file, that can then + be used during the profiling stage.
+
+ If the absolutely native response of the display is desired during + profiling, then calibration should be skipped, and the linear.cal + file from the "ref" directory used instead as the argument to the -k + flag of dispread.
+
+ Dispcal will display a test window in the middle of the + screen, and issue a series of instructions about placing the + instrument on the display. You may need to make sure that the + display cursor is not in the test window, and it may also be + necessary to disable any screensaver and powersavers before starting + the process, although both dispcal + and dispread will attempt + to do this for you. It's also highly desirable on CRT's, to clear + your screen of any white or bright background images or windows + (running your shell window with white text on a black background + helps a lot here.), or at least keep any bright areas away from the + test window, and be careful not to change anything on the display + while the readings are taken. Lots of bright images or windows can + affect the ability to measure the black point accurately, and + changing images on the display can cause inconsistency in the + readings,  and leading to poor results. LCD displays seem to be less + influenced by what else is on the screen.
+
+ If dispcal is run without + arguments, it will provide a usage screen. The -c parameter allows selecting a + communication port for an instrument, or selecting the instrument + you want to use,  and the -d option allows selecting + a target display on a multi-display system. On some multi-monitor + systems, it may not be possible to independently calibrate and + profile each display if they appear as one single screen to the + operating system, or if it is not possible to set separate video + lookup tables for each display. You can change the position and size + of the test window using the -P parameter. You can + determine how best to arrange the test window, as well as whether + each display has separate video lookup capability, by experimenting + with the dispwin tool.
+
+ For a more detailed discussion on interactively adjusting the + display controls using dispcal, + see dispcal-adjustment. Once + you have adjusted and calibrated your display, you can move on to + the next step.
+
+ When you have calibrated and profiled your display, you can keep it + calibrated using the dispcal -u + option.
+
+

Adjusting, calibrating and profiling in one + step.

+ If a simple matrix/shaper display profile is all that is desired, dispcal can be used to do this, + permitting display adjustment, calibration and profiling all in one + operation. This is done by using the dispcal -o + flag:
+
+ dispcal -v + -o TargetA
+
+ This will create both a TargetA.cal file, but also a TargetA.icm + file. See -o and -O for other variations.
+
+ For more flexibility in creating a display profile, the separate + steps of creating characterization test values using targen, reading them from the + display using dispread, and + then creating a profile using colprof + are used. The following steps illustrate this:
+

Profiling in several steps: Creating display + test values

+ If the dispcal has not been + used to create a display profile at the same time as adjustment and + calibration, then it can be used to create a suitable set of + calibration curves as the first step, or the calibration step can be + omitted, and the display cansimply be profiled.
+
+ The first step in profiling any output device, is to create a set of + device colorspace test values. The important parameters needed are: +
+
    +
  • What colorspace does the device use ?
  • +
  • How many test patches do I want to use ?
  • +
  • What information do I already have about how the device + behaves ?
  • +
+ For a display device,  the colorspace will be RGB. The number + of test patches will depend somewhat on what quality profile you + want to make, what type of profile you want to make, and how long + you are prepared to wait when testing the display.
+ At a minimum, a few hundred values are needed. A matrix/shaper type + of profile can get by with fewer test values, while a LUT based + profile will give better results if more test values are used. A + typical number might be 200-600 or so values, while 1000-2000 is not + an unreasonable number for a high quality characterization of a + display.
+
+ To assist the choice of test patch values, it can help to have a + rough idea of how the device behaves. This could be in the form of + an ICC profile of a similar device, or a lower quality, or previous + profile for that particular device. If one were going to make a very + high quality LUT based profile, then it might be worthwhile to make + up a smaller, preliminary shaper/matrix profile using a few hundred + test points, before embarking on testing the device with several + thousand.
+
+ Lets say that we ultimately want to make a profile for the device + "DisplayA", the simplest approach is to make a set of test values + that is independent of the characteristics of the particular device:
+
+ targen -v +  -d3 -f500 + DisplayA
+
+ If there is a preliminary or previous profile called "OldDisplay" + available, and we want to try creating a "pre-conditioned" set of + test values that will more efficiently sample the device response, + then the following would achieve this:
+
+
targen -v +  -d3 -f500 + -cOldDisplay.icm DisplayA
+
+ The output of targen will be the file DisplayA.ti1, + containing the device space test values, as well as expected CIE + values used for chart recognition purposes.
+
+

Profiling in several steps: Taking readings + from a display

+ First it is necessary to connect your measurement instrument to your + computer, and check which communication port it is connected to. In + the following example, it is assumed that the instrument is + connected to the default port 1, which is either the first USB + instrument found, or serial port found. Invoking dispread so as to + display the usage information (by using a flag -? or --) will list + the identified serial and USB ports, and their labels.
+
+ dispread -v + DisplayA
+
+ If we created a calibration for the display using dispcal, then we will want to use this + when we take the display readings (e.g. TargetA.cal from the + calibration example)..
+
+ dispread -v + -k TargetA.cal DisplayA
+
+ dispread will display a test window in the middle of the + screen, and issue a series of instructions about placing the + instrument on the display. You may need to make sure that the + display cursor is not in the test window, and it may also be + necessary to disable any screensaver before starting the process. + Exactly the same facilities are provided to select alternate + displays using the -d + parameter, and an alternate location and size for the test window + using the -P parameter as + with dispcal.
+

Profiling in several steps: Creating a display + profile

+ There are two basic choices of profile type for a display, a + shaper/matrix profile, or a LUT based profile. They have different + tradeoffs. A shaper/matrix profile will work well on a well behaved + display, that is one that behaves in an additive color manner, will + give very smooth looking results, and needs fewer test points to + create. A LUT based profile on the other hand, will model any + display behaviour more accurately, and can accommodate gamut mapping + and different intent tables. Often it can show some unevenness and + contouring in the results though.
+
+ To create a matrix/shaper profile, the following suffices:
+
+ colprof -v + -D"Display A" -qm + -as DisplayA
+
+ For a LUT based profile, where gamut mapping is desired, then a + source profile will need to be provided to define the source gamut. + For instance, if the display profile was likely to be linked to a + CMYK printing source profile, say "swop.icm" or "fogra39l.icm", then + the following would suffice:
+
+ colprof -v + -D"Display A" -qm + -S + fogra39l.icm -cpp -dmt DisplayA
+
+ Make sure you check the delta E report at the end of the profile + creation, to see if the profile is behaving reasonably.
+ If a calibration file was used with dispread, + then it will be converted to a vcgt tag in the profile, so that the + operating system or other system color tools load the lookup curves + into the display hardware, when the profile is used.
+

Installing a display profile

+ dispwin provides a convenient way of + installing a profile as the default system profile for the chosen + display:
+
+ dispwin -I + DisplayA.icm
+
+ This also sets the display to the calibration contained in the + profile. If you want to try out a calibration before installing the + profile, using dispwin without the -I + option will load a calibration (ICC profile or .cal file) into the + current display.
+
+ Some systems will automatically set the display to the calibration + contained in the installed profile (ie. OS X), while on other + systems (ie. MSWindows and Linux/X11) it is necessary to use some + tool to do this. On MSWindows XP you could install the + optional  Microsoft Color Control Panel Applet for Windows XP + available for download from Microsoft to do this, but NOTE however that it seems to + have a bug, in that it + sometimes associates the profiles with the wrong monitor entry. Other + display calibration tools will often install a similar tool, so + beware of there being multiple, competing programs. [ Commonly these + will be in your Start->Programs->Startup folder. ]
+ On Microsoft Vista, you need to use dispwin -L or some other tool to + load the installed profiles calibration at startup.
+
+ To use dispwin to load the installed profiles calibration to the + display, use
+
+ dispwin -L
+
+ As per usual, you can select the appropriate display using the -d flag.
+
+ This can be automated on MSWindows and X11/Linux by adding this + command to an appropriate startup script.
+ More system specific details, including how to create such startup + scripts are here.
+
+ If you are using Microsoft Vista, + there is a known bug in + Vista that resets the calibration every time a fade-in effect is + executed, which happens if you lock and unlock the computer, resume + from sleep or hibernate, or User Access Control is activated. Using + dispwin -L + may not restore the calibration, because Vista filters out setting + (what it thinks) is a calibration that is already loaded. Use dispwin -c -L + as a workaround, as this will first clear the calibration, then + re-load the current calibration.
+
+ On X11/Linux systems, you could try adding dispwin + -L to your ~/.config/autostart file, so that your window + manager automatically sets calibration when it starts. If you are + running XRandR 1.2, you might consider running the experimental dispwin -E in the background, as in its + "daemon" mode it will update the profile and calibration in response + to any changes in the the connected display.
+
+

Expert tips when measuring displays:
+

+ Sometimes it can be difficult to get good quality, consistent and + visually relevant readings from displays, due to various practical + considerations with regard to instruments and the displays + themselves. Argyll's tools have some extra options that may assist + in overcoming these problems.
+
+ If you are using an Eye-One Pro or ColorMunki spectrometer, then you + may wish to use the high resolution + spectral mode (-H). + This may be better at capturing the often narrow wavelength peaks + that are typical of display primary colors.
+
+ All instruments depend on silicon sensors, and such sensors generate + a temperature dependant level of noise ("dark noise") that is + factored out of the measurements by a dark or black instrument + calibration. The spectrometers in particular need this calibration + before commencing each set of measurements. Often an instrument will + warm up as it sits on a display, and this warming up can cause the + dark noise to increase, leading to inaccuracies in dark patch + measurements. The longer the measurement takes, the worse this + problem is likely to be. One way of addressing this is to + "acclimatise" the instrument before commencing measurements by + placing it on the screen in a powered up state, and leaving it for + some time. (Some people leave it for up to an hour to acclimatise.). + Another approach is to try and compensate + for dark calibration changes (-Ib) + by doing on the fly calibrations during the measurements, based on + the assumption that the black level of the display itself won't + change significantly.
+
+ Some displays take a long time to settle down and stabilise. The is + often the case with LCD (Liquid Crystal) displays that use + fluorescent back lights, and these sorts of displays can change in + brightness significantly with changes in temperature. One way of + addressing this is to make sure that the display is given adequate + time to warm up before measurements. Another approach is to try and + compensate for display white level  + + + + + + + + + (-Iw) changes by doing on + the fly calibrations during the measurements. Instrument black level + drift and display white level drift can be combined (-Ibw).
+
+ Colorimeter instruments make use of physical color filters that + approximate the standard observer spectral sensitivity curves. + Because these filters are not perfectly accurate, the manufacturer + calibrates the instrument for typical displays, which is why you + have to make a selection between CRT (Cathode Ray Tube) and LCD + (Liquid Crystal Display) modes. If you are measuring a display that + has primary colorants that differ significantly from those typical + displays,  (ie. you have a Wide Gamut Display), then you may + get disappointing results with a Colorimeter. One way of addressing + this problem is to use a Colorimeter + + + + + + + + Correction Matrix. These are specific to a particular + Colorimeter and Display make and model combination, although a + matrix for a different but similar type of display may give better + results than none at all. A list of contributed ccmx files is here.
+
+

Calibrating and profiling a display that + doesn't have VideoLUT access.

+

In some situation there is no access to a displays VideoLUT + hardware, and this hardware is what is usually used to implement + display calibration. This could be because the display is being + accessed via a web server, or because the driver or windowing + system doesn't support VideoLUT access.
+

+

There are two basic options in this situation:
+

+

  1) Don't attempt to calibrate, just profile the display.
+   2) Calibrate, but incorporate the calibration in some other + way in the workflow.
+

+

The first case requires nothing special - just skip calibration + (see the previous section Profiling in several + steps: Creating display test values).

+

In the second case, there are three choices:
+

+

 2a) Use dispcal to create a calibration and a quick profile + that incorporates the calibration into the profile.
+  2b) Use dispcal to create the calibration, then dispread and + colprof to create a profile, and then incorporate the calibration + into the profile using applycal.
+  2c) Use dispcal to create the calibration, then dispread and + colprof to create a profile, and then apply the calibration after + the profile in a cctiff workflow.
+

+

The first case requires nothing special, use dispcal in a normal + fashioned with the -o + option to generate a quick profile.The profile created will not contain a 'vcgt' + tag, but instead will have the calibration curves incorporated + into the profile itself. If calibration parameters are chosen that + change the displays white point or brightness, then this will + result in a slightly unusual profile that has a white point that + does not correspond with device R=G=B=1.0. Some systems may not + cope properly with this type of profile, and a general shift in + white point through such a profile can create an odd looking + display if it is applied to images but not to other elements on + the display say as GUI decoration elements or other application + windows.
+

+

In the second case, the calibration file created using dispcal + should be provided to dispread using the -K flag:
+

+

dispread -v + -K TargetA.cal DisplayA

+

Create the profile as + usual using colprof. but note that colprof will ignore the + calibration, and that no 'vcgt' tag will be added to the profile.
+ You can then use applycal to combine + the calibration into the profile. Note that the resulting profile + will be slightly unusual, since the profile is not made completely + consistent with the effects of the calibration, and the device + R=G=B=1.0 probably not longer corresponds with the PCS white or + the white point.
+

+ In the third case, the same procedure as above is used to create a + profile, but the calibration is applied in a raster transformation + workflow explicitly, e.g.:
+
+     cctiff SourceProfile.icm DisplayA.icm DisplayA.cal + infile.tif outfile.tif
+ or
+     cctiff SourceProfile.icm DisplayA.icm DisplayA.cal + infile.jpg outfile.jpg
+
+
+

Profiling Scanners and other input devices + such as cameras
+

+ Because a scanner or camera is an input device, it is necessary to + go about profiling it in quite a different way to an output device. + To profile it, a test chart is needed to exercise the input device + response, to which the CIE values for each test patch is known. + Generally standard reflection or transparency test charts are used + for this purpose.
+

Types of test charts

+ The most common and popular test chart for scanner profiling is the + IT8.7/2 chart. This is a standard format chart generally reproduced + on photographic film, containing about 264 test patches.
+ An accessible and affordable source of such targets is Wolf Faust a + www.coloraid.de.
+ Another source is LaserSoft www.silverfast.com.
+ The Kodak Q-60 Color Input Target is also a typical example:
+
+ Kodak Q60 chart image
+
+ A very simple chart that is widely available is the Macbeth + ColorChecker chart, although it contains only 24 patches and + therefore is probably not ideal for creating profiles:
+ ColorChecker 24 patch
+
+ Other popular charts are the X-Rite/GretagMacbeth ColorChecker DC + and ColorChecker + + + + + + + + + SG charts:
+
+ GretagMacbeth ColorChecker DC chart ColorChecker SG
+
+ The GretagMacbeth Eye-One Pro Scan Target 1.4 can also be used:
+
+ Eye-One Scan Target 1.4
+
+ Also supported is the HutchColor + + + + + + + + + HCT :
+
+ HutchColor HCT
+
+
+ and Christophe + + + + + + + + + Métairie's Digital TargeT 003 and Christophe + + + + + + + + + Métairie's Digital Target - 3 :
+
+ CMP_DT_003  CMP_Digital_Target-3
+
+ and the LaserSoft + + + + + + + + + Imaging DCPro Target:
+
+ LaserSoft DCPro
+      Target
+
+ The Datacolor SpyderCheckr:
+
+ Datacolor
+      SpyderCheckr
+
+ One of the QPcard's:
+ QPcard + + + 201:            QPcard + + + 202:
+
+ QPCard201        +             QPcard202
+
+

Taking readings from a scanner or camera
+

+ The test chart you are using needs to be placed on the scanner, and + the scanner needs to be configured to a suitable state, and restored + to that same state when used subsequently with the resulting + profile. For a camera, the chart needs to be lit in a controlled and + even manner using the light source that will be used for subsequent + photographs, and should be shot so as to minimise any geometric + distortion, although the scanin -p flag + may be used to compensate for some degree of distortion. As with any + color profiling task, it is important to setup a known and + repeatable image processing flow, to ensure that the resulting + profile will be usable.
+
+ The chart should be captured and saved to a TIFF format file. I will + assume the resulting file is called scanner.tif. The raster file + need only be roughly cropped so as to contain the test chart + (including the charts edges).
+
+ The second step is to extract the RGB values from the scanner.tif + file, and match then to the reference CIE values. To locate the + patch values in the scan, the scanin tool needs to be given + a template .cht file that + describes the features of the chart, and how the test patches are + labeled. Also needed is a file containing the CIE values for each of + the patches in the chart, which is typically supplied with the + chart, available from the manufacturers web site, or has been + measured using a spectrometer.
+
+
For an IT8.7/2 chart, this is the ref/it8.cht file + supplied with Argyll, and  the manufacturer will will supply + an individual or batch average file along with the chart + containing this information, or downloadable from their web site. + For instance, Kodak Q60 target reference files are here.
+ NOTE that the reference file for the IT8.7/2 chart supplied with Monaco EZcolor can be + obtained by unzipping the .mrf file. (You may have to make a copy + of the file with a .zip extension to do this.)
+
+ For the ColorChecker 24 patch chart, the ref/ColorChecker.cht file + should be used, and there is also a ref/ColorChecker.cie file provided that is based + on the manufacturers reference values for the chart. You can also + create your own reference file using an instrument and chartread, + making use of the chart reference file ref/ColorChecker.ti2:
+    chartread -n -a + ColorChecker.ti2
+ Note that due to the small number of patches, a profile created + from such a chart is not likely to be very detailed.
+
+ For the ColorChecker DC chart, the ref/ColorCheckerDC.cht file should be used, and + there will be a ColorCheckerDC reference file supplied by + X-Rite/GretagMacbeth with the chart.
+
+ The ColorChecker SG is relatively expensive, but is preferred by + many people because (like the ColorChecker and ColorCheckerDC) its + colors are composed of multiple different pigments, giving it + reflective spectra that are more representative of the real world, + unlike many other charts that are created out of combination of 3 + or 4 colorants.
+ A limited CIE reference file is available from X-Rite here, + but it is not in the usual CGATS format. To convert it to a CIE + reference file useful for scanin, + you will need to edit the X-Rite file using a plain text editor, + first deleting everything before the line starting with "A1" and + everything after "N10", then prepending this + + + + + + + + header, and appending this footer, + making sure there are no blank lines inserted in the process.
+ If you do happen to have access to a more comprehensive instrument + measurement of the ColorChecker SG, or you have measured it + yourself using a color instrument,
+ then you may + need to convert the reference information from spectral ColorCheckerSG.txt file to CIE + value ColorCheckerSG.cie + reference file, follow the following steps:
+      txt2ti3 + ColorCheckerSG.txt ColorCheckerSG
+      spec2cie + ColorCheckerSG.ti3 ColorCheckerSG.cie
+
+ For the Eye-One Pro Scan Target 1.4 chart, the ref/i1_RGB_Scan_1.4.cht + file should be used, and as there is no reference file + accompanying this chart, the chart needs to be read with an + instrument (usually the Eye-One Pro). This can be done using + chartread,  making use of the chart reference file ref/i1_RGB_Scan_1.4.ti2:
+     chartread -n -a + i1_RGB_Scan_1.4
+ and then rename the resulting i1_RGB_Scan_1.4.ti3 + file to i1_RGB_Scan_1.4.cie
+
+ For the HutchColor HCT chart, the ref/Hutchcolor.cht + file should be used, and the reference .txt file downloaded from the HutchColor website.
+
+ For the Christophe Métairie's Digital TargeT 003 chart with + 285 patches, the ref/CMP_DT_003.cht + file should be used, and the cie reference files come with the chart.
+
+ For the Christophe Métairie's Digital Target-3 chart with + 570 patches, the ref/CMP_Digital_Target-3.cht + file should be used, and the cie reference files come with the chart.
+
+ For the LaserSoft DCPro chart, the ref/LaserSoftDCPro.cht file should be used, and + reference .txt file + downloaded from the Silverfast + website.
+
+ For the Datacolor SpyderCheckr, the ref/SpyderChecker.cht file should be used, and a + reference ref/SpyderChecker.cie + file made from measuring a sample chart is also available. + Alternately you could create your own reference file by + transcribing the values + on the Datacolor website.
+
+ For the QPCard 201, the ref/QPcard_201.cht + file should be used, and a reference ref/QPcard_201.cie file made from measuring a + sample chart is also available.
+
+ For the QPCard 202, the ref/QPcard_202.cht + file should be used, and a reference ref/QPcard_202.cie file made from measuring a + sample chart is also available.
+
+
+ For any other type of chart, a chart recognition template file will + need to be created (this is beyond the scope of the current + documentation, although see  the .cht_format + + + + + + + + documentation).
+
+ To create the scanner .ti3 file, run the scanin tool as + follows (assuming an IT8 chart is being used):
+
+ scanin -v scanner.tif It8.cht It8ref.txt
+
+ "It8ref.txt" or "It8ref.cie" is assumed to be the name of the CIE + reference file supplied by the chart manufacturer. The resulting + file will be named "scanner.ti3".
+
+ scanin will process 16 bit + per component .tiff files, which (if the scanner is capable of + creating such files),  may improve the quality of the profile. +
+
+ If you have any doubts about the correctness of the chart + recognition, or the subsequent profile's delta E report is unusual, + then use the scanin diagnostic flags -dipn + and examine the diag.tif + diagnostic file, to make sure that the patches are identified and + aligned correctly. If you have problems getting good automatic + alignment, then consider doing a manual alignment by locating the + fiducial marks on your scan, and feeding them into scanin -F parameters. The fiducial marks should + be listed in a clockwise direction starting at the top left.
+

Creating a scanner or camera input profile

+ Similar to a display profile, an input profile can be either a + shaper/matrix or LUT based profile. Well behaved input devices will + probably give the best results with a shaper/matrix profile, and + this may also be the best choice if your test chart has a small or + unevenly distributed set of test patchs (ie. the IT8.7.2). If a + shaper/matrix profile is a poor fit, consider using a LUT type + profile.
+
+ When creating a LUT type profile, there is the choice of XYZ or + L*a*b* PCS (Device independent, Profile Connection Space). Often for + input devices, it is better to choose the XYZ PCS, as this may be a + better fit given that input devices are usually close to being + linearly additive in behaviour.
+
+ If the purpose of the input profile is to use it as a substitute for + a colorimeter, then the -u flag should be used to avoid + clipping values above the white point. Unless the shaper/matrix type + profile is a very good fit, it is probably advisable to use a LUT + type profile in this situation.
+
+ To create a matrix/shaper profile, the following suffices:
+
+ colprof -v + -D"Scanner A" + -qm -as scanner
+
+ For an XYZ PCS LUT based profile then the following would be used:
+
+ colprof -v + -D"Scanner A" -qm + -ax scanner
+
+ For the purposes of a poor mans colorimeter, the following would + generally be used:
+
+ colprof -v + -D"Scanner A" -qm + -ax -u scanner
+
+ Make sure you check the delta E report at the end of the profile + creation, to see if the profile is behaving reasonably.
+
+
+ If profiling a camera in RAW mode, then there may be some + advantage in creating a pure matrix only profile, in which it is + assumed that the camera response is completely linear. This may + reduce extrapolation artefacts. If setting the white point will be + done in some application, then it may also be an advantage to use + the -u flag and avoid + setting the white point to that of the profile chart:
+
+ colprof -v + -D"Camera" -qm + -am -u scanner
+
+
+
+

Profiling Printers
+

+ The overall process is to create a set of device measurement target + values, print them out, measure them, and then create an ICC profile + from the measurements. If the printer is an RGB based printer, then + the process is only slightly more complicated than profiling a + display. If the printer is CMYK based, then some additional + parameters are required to set the total ink limit (TAC) and +  black generation curve.
+

Creating a print profile test chart

+ The first step in profiling any output device, is to create a set of + device colorspace test values. The important parameters needed are:
+
    +
  • What colorspace does the device use ?
  • +
  • How many test patches do I want to use/what paper size do I + want to use ?
  • +
  • What instrument am I going to use to read the patches ?
    +
  • +
  • If it is a CMYK device, what is the total ink limit ?
    +
  • +
  • What information do I already have about how the device + behaves ?
  • +
+ Most printers running through simple drivers will appear as if they + are RGB devices. In fact there is no such thing as a real RGB + printer, since printers use white media and the colorant must + subtract from the light reflected on it to create color, but the + printer itself turns the incoming RGB into the native print + colorspace, so for this reason we will tell targen to use the "Print + RGB" colorspace, so that it knows that it's really a subtractive + media. Other drivers will drive a printer more directly, and will + expect a CMYK profile. [Currently Argyll is not capable of creating + an ICC profile for devices with more colorants than CMYK. When this + capability is introduced, it will by creating an additional + separation profile which then allows the printer to be treated as a + CMY or CMYK printer.] One way of telling what sort of profile is + expected for your device is to examine an existing profile for that + device using iccdump.
+
+ The number of test patches will depend somewhat on what quality + profile you want to make, how well behaved the printer is, as well + as the effort needed to read the number of test values. Generally it + is convenient to fill a certain paper size with the maximum number + of test values that will fit.
+
+ At a minimum, for an "RGB" device, a few hundred values are needed + (400-1000). For high quality CMYK profiles, 1000-3000 is not an + unreasonable number of patches.
+
+ To assist the determination of test patch values, it can help to + have a rough idea of how the device behaves, so that the device test + point locations can be pre-conditioned. This could be in the form of + an ICC profile of a similar device, or a lower quality, or previous + profile for that particular device. If one were going to make a very + high quality Lut based profile, then it might be worthwhile to make + up a smaller, preliminary shaper/matrix profile using a few hundred + test points, before embarking on testing the device with several + thousand.
+
+ The documentation for the targen tool + lists a table + of paper sizes and number of  patches for typical situations.
+
+ For a CMYK device, a total ink limit usually needs to be specified. + Sometimes a device will have a maximum total ink limit set by its + manufacturer or operator, and some CMYK systems (such as chemical + proofing systems) don't have any limit. Typical printing devices + such as Xerographic printers, inkjet printers and printing presses + will have a limit. The exact procedure for determining an ink limit + is outside the scope of this document, but one way of going about + this might be to generate some small (say a few hundred patches) + with targen & pritntarg with different total ink limits, and + printing them out, making the ink limit as large as possible without + striking problems that are caused by too much ink.
+
+ Generally one wants to use the maximum possible amount of ink to + maximize the gamut available on the device. For most CMYK devices, + an ink limit between 200 and 400 is usual, but and ink limit of 250% + or over is generally desirable for reasonably dense blacks and dark + saturated colors. And ink limit of less than 200% will begin to + compromise the fully saturated gamut, as secondary colors (ie + combinations of any two primary colorants) will not be able to reach + full strength.
+
+ Once an ink limit is used in printing the characterization test + chart for a device, it becomes a critical parameter in knowing what + the characterized gamut of the device is. If after printing the test + chart, a greater ink limit were to be used, the the software would + effectively be extrapolating the device behaviour at total ink + levels beyond that used in the test chart, leading to inaccuracies.
+
+ Generally in Argyll, the ink limit is established when creating the + test chart values, and then carried through the profile making + process automatically. Once the profile has been made however, the + ink limit is no longer recorded, and you, the user, will have to + keep track of it if the ICC profile is used in any program than + needs to know the usable gamut of the device.
+
+
+ Lets consider two devices in our examples, "PrinterA" which is an + "RGB" device, and "PrinterB" which is CMYK, and has a target ink + limit of 250%.
+
+ The simplest approach is to make a set of test values that is + independent of the characteristics of the particular device:
+
+ targen -v +  -d2 -f1053 + PrinterA
+
+ targen -v +  -d4 -l260 + -f1053 PrinterB
+
+ The number of patches chosen here happens to be right for an A4 + paper size being read using a Spectroscan instrument. See the table in  the targen documentation for some other + suggested numbers.
+
+ If there is a preliminary or previous profile called "OldPrinterA" + available, and we want to try creating a "pre-conditioned" set of + test values that will more efficiently sample the device response, + then the following would achieve this:
+

+ targen -v +  -d2 -f1053 + -c OldPrinterA PrinterA
+
+ targen -v +  -d4 -l260 + -f1053 -c + OldPrinterB PrinterB
+
+
+ The output of targen will be the file PrinterA.ti1 and + PrinterB.ti1 respectively, containing the device space test values, + as well as expected CIE values used for chart recognition purposes.
+
+

Printing a print profile test chart
+
+

+ The next step is turn the test values in to a PostScript or TIFF + raster test file that can printed on the device. The basic + information that needs to be supplied is the type of instrument that + will be used to read the patches, as well as the paper size it is to + be formatted for.
+
+ For an X-Rite DTP41, the following would be typical:
+
+ printtarg -v + -i41 -pA4 + PrinterA
+  
+ For a Gretag Eye-One Pro, the following would be typical:
+
+ printtarg -v + -ii1 -pA4 + PrinterA
+
+ For using with a scanner as a colorimeter, the Gretag Spectroscan + layout is suitable, but the -s flag + should be used so as to generate a layout suitable for scan + recognition, as well as generating the scan recognition template + files. (You probably want to use less patches with targen, when using the printtarg -s flag, e.g. 1026 + patches for an A4R page, etc.) The following would be typical:
+
+ printtarg -v + -s -iSS + -pA4R PrinterA
+
+ printtarg
reads the PrinterA.ti1 file, creates a + PrinterA.ti2 file containing the layout information as well as the + device values and expected CIE values, as well as a PrinterA.ps file + containing the test chart. If the -s + flag is used, one or more PrinterA.cht files is created to allow the + scanin program to recognize the chart.
+
+ To create TIFF raster files rather than PostScript, use the -t + flag.
+
+ GSview is a good program to + use to check what the PostScript file will look like, without + actually printing it out. You could also use Photoshop or ImageMagick for this purpose.
+
+ The last step is to print the chart out.
+
+ Using a suitable PostScript or raster file printing program, + downloader, print the chart. If you are not using a TIFF test chart, + and you do not have a PostScript capable printer, then an + interpreter like GhostScript or even Photoshop could be used to + rasterize the file into something that can be printed. Note that it + is important that the PostScript interpreter or TIFF printing + application and printer configuration is setup for a device + profiling run, and that any sort of color conversion of color + correction be turned off so that the device values in the PostScript + or TIFF file are sent directly to the device. If the device has a + calibration system, then it would be usual to have setup and + calibrated the device before starting the profiling run, and to + apply calibration to the chart values. If Photoshop was to be used, + then either the chart needs to be a single page, or separate .eps or + .tiff files for each page should be used, so that they can be + converted and printed one at a time (see the -e and -t + flags).
+
+

Reading a print test chart using an instrument

+ Once the test chart has been printed, the color of the patches needs + to be read using a suitable instrument.
+
+ Several different instruments are currently supported, some that + need to be used patch by patch, some read a strip at a time, and + some read a sheet at a time. See instruments + for a current list.
+
+ The instrument needs to be connected to your computer before running + the chartread command. Both serial + port and USB connected Instruments are supported. A serial port to + USB adapter might have to be used if your computer doesn't have any + serial ports, and you have a serial interface connected instrument.
+
+ If you run chartread so as to print + out its usage message (ie. by using a -? or -- + flags), then it will list any identified serial ports or USB + connected instruments, and their corresponding number for the -c option. By default, chartread will try to connect to the + first available USB instrument, or an instrument on the first serial + port.
+
+ The only arguments required is to specify the basename of the .ti2 + file. If a non-default serial port is to be used, then the -c option would also be + specified.
+
+  e.g. for a Spectroscan on the second port:
+
+ chartread -c2 + PrinterA
+
+ For a DTP41 to the default serial port:
+
+ chartread + PrinterA
+
+ chartread will interactively + prompt you through the process of reading each sheet or strip. See chartread for more details on the + responses for each type of instrument. Continue with Creating a printer profile.
+
+

Reading a print test chart using a scanner or + camera
+

+
+ Argyll supports using a scanner or even a camera as a substitute for + a colorimeter. While a scanner or camera is no replacement for a + color measurement instrument, it may give acceptable results in some + situations, and may give better results than a generic profile for a + printing device.
+
+ The main limitation of the scanner-as-colorimeter approach are:
+
+ * The scanner dynamic range and/or precision may not match the + printers or what is required for a good profile.
+ * The spectral interaction of the scanner test chart and printer + test chart with the scanner spectral response can cause color + errors.
+ * Spectral differences caused by different black amounts in the + print test chart can cause color errors.
+ * The scanner reference chart gamut may be much smaller than the + printers gamut, making the scanner profile too inaccurate to be + useful.
+
+ As well as some of the above, a camera may not be suitable if it + automatically adjusts exposure or white point when taking a picture, + and this behavior cannot be disabled.
+
+ The end result is often a profile that has a noticeable color cast, + compared to a profile created using a colorimeter or spectrometer.
+
+
+ It is assumed that you have created a scanner or camera profile + following the procedure + outline above. For best possible results it is advisable to both + profile the scanner or camera, and use it in scanning the printed + test chart, in as "raw" mode as possible (i.e. using 16 bits per + component images, if the scanner or camera is capable of doing so; + not setting white or black points, using a fixed exposure etc.). It + is generally advisable to create a LUT type input profile, and use + the -u + flag to avoid clipping scanned value whiter than the input + calibration chart.
+
+ Scan or photograph your printer chart (or charts) on the scanner or + camera previously profiled. The + + + + + + + + + scanner or camera must be configured and used exactly the same + as it was when it was profiled.
+
+ I will assume the resulting scan/photo input file is called PrinterB.tif (or PrinterB1.tif, PrinterB2.tif etc. in the case + of multiple charts). As with profiling the scanner or camera, the + raster file need only be roughly cropped so as to contain the test + chart.
+
+ The scanner recognition files created when printtarg was run is assumed to + be called PrinterB.cht. + Using the scanner profile created previously (assumed to be called scanner.icm), the printer test + chart scan patches are converted to CIE values using the scanin tool:
+
+ scanin -v -c PrinterB.tif + PrinterB.cht scanner.icm PrinterB
+
+ If there were multiple test chart pages, the results would be + accumulated page by page using the -ca + option, ie., if there were 3 pages:
+
+ scanin -v -c PrinterB1.tif + PrinterB1.cht scanner.icm PrinterB
+ scanin -v -ca PrinterB2.tif + PrinterB2.cht scanner.icm PrinterB
+ scanin -v -ca PrinterB3.tif + PrinterB3.cht scanner.icm PrinterB
+
+ Now that the PrinterB.ti3 + data has been obtained, the profile continue in the next section + with Creating a printer profile.
+
+ If you have any doubts about the correctness of the chart + recognition, or the subsequent profile's delta E report is unusual, + then use the scanin diagnostic flags -dipn + and examine the diag.tif + diagnostic file.
+

Creating a printer profile
+

+ Creating an RGB based printing profile is very similar to creating a + display device profile. For a CMYK printer, some additional + information is needed to set the black generation.
+
+ Where the resulting profile will be used conventionally (ie. using collink -s, + or cctiff or most other "dumb" CMMs) it + is important to specify that gamut mapping should be computed for + the output (B2A) perceptual and saturation tables. This is done by + specifying a device profile as the parameter to the colprof -S + flag. When you intend to create a "general use" profile, it can be a + good technique to specify the source gamut as the opposite type of + profile to that being created, i.e. if a printer profile is being + created, specify a display profile (e.g. sRGB) as the source gamut. + If a display profile is being created, then specify a printer + profile as the source (e.g. Figra, SWOP etc.).  When linking to + the profile you have created this way as the output profile, then + use perceptual intent if the source is the opposite type, and + relative colorimetric if it is the same type.
+
+ "Opposite type of profile" refers to the native gamut of the device, + and what its fundamental nature is, additive or subtractive. An + emissive display will have additive primaries (R, G & B), while + a reflective print, will have subtractive primaries (C, M, Y & + possibly others), irrespective of what colorspace the printer is + driven in (a printer might present an RGB interface, but internally + this will be converted to CMY, and it will have a CMY type of + gamut).  Because of the complimentary nature of additive and + subtractive device primary colorants, these types of devices have + the most different gamuts, and hence need the most gamut mapping to + convert from one colorspace to the other.
+
+ If you are creating a profile for a specific purpose, intending to + link it to a specific input profile, then you will get the best + results by specifying that source profile as the source gamut.
+
+ If a profile is only going to be used as an input profile, or is + going to be used with a "smart" CMM (e.g. collink + -g or -G), +then + + + + + + + + + it can save considerable processing time and space if the -b flag is + used, and the -S flag not used.
+
+ For an RGB printer intended to print RGB originals, the following + might be a typical profile usage:
+
+ colprof -v + -D"Printer A" -qm + -S sRGB.icm + -cmt -dpp + PrinterA
+
+ or if you intent to print from Fogra, SWOP or other standard CMYK + style originals:
+
+ colprof -v + -D"Printer A" -qm + -S + fogra39l.icm -cmt -dpp PrinterA
+
+ If you know what colorspace your originals are in, use that as the + argument to -S.
+
+

Choosing a black generation curve (and other + CMYK printer options)
+

+ For a CMYK printer, it would be normal to specify the type of black + generation, either as something simple, or as a specific curve. The + documentation  in colprof for the + details of the options.
+
+ Note
that making a good choice of black generation curve + can affect things such as: how robust neutrals are given printer + drift or changes in viewing lighting, how visible screening is, and + how smooth looking the B2A conversion is.
+
+ For instance, maximizing the level of K will mean that the neutral + colors are composed of greater amounts of Black ink, and black ink + retains its neutral appearance irrespective of printer behavior or + the spectrum of the illuminant used to view the print. On the other + hand, output which is dominantly from one of the color channels will + tend to emphasize the screening pattern and any unevenness (banding + etc.) of that channel, and the black channel in particular has the + highest visibility. So in practice, some balance between the levels + of the four channels is probably best, with more K if the screening + is fine and a robust neutral balance is important, or less K if the + screening is more visible and neutral balance is less critical. The + levels of K at the edges of the gamut of the device will be fixed by + the nature of the ink combinations that maximize the gamut (ie. + typically zero ink for light chromatic colors, some combination for + dark colors, and a high level of black for very dark near neutrals), + and it is also usually important to set a curve that smoothly + transitions to the K values at the gamut edges. Dramatic changes in + K imply equally dramatic changes in CMY, and these abrupt + transitions will reveal the limited precision and detail that can be + captured in a lookup table based profile, often resulting in a + "bumpy" looking output.
+
+ If you want to experiment with the various black generation + parameters, then it might be a good idea to create a preliminary + profile (using -ql -b -no, -ni and no -S), + + + + + + + + and then used xicclu to explore the + effect of the parameters.
+
+ For instance, say we have our CMYK .ti3 file PrinterB.ti3. First we make a + preliminary profile called PrinterBt:
+
+ copy PrinterB.ti3 PrinterBt.ti3      (Use + "cp" on Linux or OSX of course.)
+ colprof -v + -qm -b -cmt -dpp + PrinterBt
+
+ Then see what the minimum black level down the neutral axis can be. + Note that we need to also set any ink limits we've decided on as + well (coloprof defaulting to 10% less than the value recorded in the + .ti3 file). In this example the test chart has a 300% total ink + limit, and we've decided to use 290%:
+
+ xicclu -g -kz -l290 -fif -ir PrinterBt.icm
+
+ Which might be a graph something like this:
+
+ Graph of CMYK neutral axis with minimum K
+
+ Note  how the minimum black is zero up to 93% of the + white->black L* curve, and then jumps up to 87%. This is because + we've reached the total ink limit, and K then has to be substituted + for CMY, to keep the total under the total ink limit.
+
+ Then let's see what the maximum black level down the neutral axis + can be:
+
+ xicclu -g -kx -l290 -fif -ir PrinterBt.icm
+
+ Which might be a graph something like this:
+
+ Graph of CMYK neutral axis with maximum K
+
+ Note how the CMY values are fairly low up to 93% of the + white->black L* curve (the low levels of CMY are helping set the + neutral color), and then they jump up. This is because we've reach + the point where black on it's own, isn't as dark as the color that + can be achieved using CMY and K. Because the K has a dominant effect + on the hue of the black, the levels of CMY are often fairly volatile + in this region.
+
+ Any K curve we specify must lie between the black curves of the + above two graphs.
+
+ Let's say we'd like to chose a moderate black curve, one that aims + for about equal levels of CMY and K. We should also aim for it to be + fairly smooth, since this will minimize visual artefacts caused by + the limited fidelity that profile LUT tables are able to represent + inside the profile.
+
+ -k parameters
+
+
+ For minimum discontinuities we should aim for the curve to finish at + the point it has to reach to satisfy the total ink limit at 87% + curve and 93% black. For a first try we can simply set a straight + line to that point:
+
+ xicclu -g -kp 0 0 .93 .87 1.0 -l290 -fif -ir PrinterBt.icm
+
+ Graph of CMYK neutral axis with kp 0 0 1.0 1.0 1.0 -l290
+
+ The black "curve" hits the 93%/87% mark well, but is a bit too far + above CMY, so we'll try making the black curve concave:
+
+ xicclu -g -kp 0 0 .93 .87 + 0.65 -l290 -fif -ir PrinterBt.icm
+
+ Graph of CMYK neutral axis with -kp 0 .05 1 .9 1 -l290
+
+ This looks just about perfect, so the the curve parameters can now + be used to generate our real profile:
+
+ colprof -v + -D"Printer B" -qm + -kp 0 0 .93 + .87 0.65 -S sRGB.icm -cmt + -dpp PrinterB
+
+ and the resulting B2A table black curve can be checked using xicclu:
+
+ xicclu -g -fb -ir PrinterB.icm
+
+ sadsadas
+
+
+

+ Examples of other inkings:
+
+
A smoothed zero black inking:
+
+ xicclu -g -kp 0 .7 .93 .87 + 1.0 -l290 -fif -ir PrinterBt.icm
+
+ sadsadas
+
+ A low black inking:
+
+ xicclu -g -kp 0 0 .93 .87 + 0.15 -l290 -fif -ir PrinterBt.icm
+
+ sadsadas
+
+
+ A high black inking:
+
+ xicclu -g -kp 0 0 .93 .87 + 1.2 -l290 -fif -ir PrinterBt.icm
+
+ sadsadas
+
+ +

Overriding the ink limit
+

+ Normally the total ink limit will be read from the PrinterB.ti3 file, and will be + set at a level 10% lower than the number used in creating the test + chart values using targen -l. If you + want to override this with a lower limit, then use the -l flag.
+
+ colprof -v + -D"Printer B" -qm + -S sRGB.icm + -cmt -dpp + -kr -l290 + PrinterB
+
+ Make sure you check the delta E report at the end of the profile + creation, to see if the profile is behaving reasonably.
+
+ One way of checking that your ink limit is not too high, is to use "xicc -fif -ia" to check, by + setting different ink limits using the -l option, feeding Lab = 0 0 0 into it, and checking + the resulting  black point. Starting with the ink limit used + with targen for the test + chart, reduce it until the black point starts to be affected. If it + is immediately affected by any reduction in the ink limit, then the + black point may be improved by increasing the ink limit used to + generate the test chart and then re-print and re-measuring it, + assuming other aspects such as wetness, smudging, spreading or + drying time are not an issue.
+
+

+

Calibrating Printers
+

+ Profiling creates a + description of how a device behaves, while calibration on the other hand is + intended to change + how a device behaves. Argyll has the ability to create per-channel + device space calibration curves for print devices, that can then be + used to improve the behavior of of the device, making a subsequent + profile fit the device more easily and also allow day to day + correction of device drift without resorting to a full re-profile.
+
+ NOTE: Because calibration + adds yet another layer to the way color is processed, it is + recommended that it not be attempted until the normal profiling + workflow is established, understood and verified.
+

Calibrated print workflows

+ There are two main workflows that printer calibration curves can be + applied to:
+
+ Workflow with native calibration + capability:
+
+ Firstly the printer itself may have the capability of using per + channel calibration curves. In this situation, the calibration + process will be largely independent of profiling. Firstly the + printer is configured to have both its color management and + calibration disabled (the latter perhaps achieved by loading linear + calibration curves), and a print calibration test chart that + consists of per channel color wedges is printed. The calibration + chart is read and the resulting .ti3 file converted into calibration + curves by processing it using printcal. + The calibration is then installed into the printer. Subsequent + profiling will be performed on the calibrated printer (ie. the profile test chart + will have the calibration curves applied to it by the printer, and + the resulting ICC profile will represent the behavior of the + calibrated printer.)
+
+ Workflow without native calibration + capability:
+
+ The second workflow is one in which the printer has no calibration + capability itself. In this situation, the calibration process will + have to be applied using the ICC color management tools, so careful + coordination with profiling is needed. Firstly the printer is + configured to have its color management disabled, and a print + calibration test chart that consists of per channel color wedges is + printed. The calibration chart is converted into calibration curves + by reading it and then processing the resultant .ti3 using printcal,. During the subsequent + profiling, the + calibration curves will need to be applied to the profile test chart + in the process of using printtarg. + Once the the profile has been created, then in subsequent printing + the calibration curves will need to be applied to an image being + printed either explicitly when using cctiff to apply color profiles and calibration, OR by creating a version of the + profile that has had the calibration curves incorporated into it + using the applycal tool. + The latter is useful when some CMM (color management module) other + than cctiff is being used.
+
+ Once calibration aim targets for a particular device and mode + (screening, paper etc.) have been established, then the printer can + be re-calibrated at any time to bring its per channel behavior back + into line if it drifts, and the new calibration curves can be + installed into the printer, or re-incorporated into the profile. +   +

Creating a print calibration test chart

+ The first step is to create a print calibration test chart. Since + calibration only creates per-channel curves, only single channel + step wedges are required for the chart. The main choice is the + number of steps in each wedge. For simple fast calibrations perhaps + as few as 20 steps per channel may be enough, but for a better + quality of calibration something like 50 or more steps would be a + better choice.
+
+ Let's consider two devices in our examples, "PrinterA" which is an + "RGB" printer device, and "PrinterB" which is CMYK. In fact there is + no such thing as a real RGB printer, since printers use white media + and the colorant must subtract from the light reflected on it to + create color, but the printer itself turns the incoming RGB into the + native print colorspace, so for this reason we are careful to tell + targen to use the "Print RGB" colorspace, so that it knows to create + step wedges from media white to full colorant values.
+
+ For instance, to create a 50 steps per channel calibration test + chart for our RGB and CMYK devices, the following would be + sufficient:
+
+ targen -v +  -d2 -s50 + -e3 -f0 PrinterA_c
+
+ targen -v +  -d4 -s50 + -e4 -f0 PrinterB_c
+
+ For an outline of how to then print and read the resulting test + chart, see  Printing a print + profile test chart, and Reading + a print test chart using an instrument. Note that the printer + must be in an un-profiled and un-calibrated mode when doing this + print. Having done this, there will be a PrinterA.ti3 or + PrinterB.ti3 file containing the step wedge calibration chart + readings.
+
+ NOTE that if you are + calibrating a raw printer driver, and there is considerable dot + gain, then you may want to use the -p + parameter to adjust the test chart point distribution to spread them + more evenly in perceptual space, giving more accurate control over + the calibration. Typically this will be a value greater than one for + a device that has dot gain, e.g. values of 1.5, 2.0 or 2.5 might be + good places to start. You can do a preliminary calibration and use + the verbose output of printcal to recommend a suitable value for -p.
+

Creating a printer calibration
+

+ The printcal tool turns a calibration + chart .ti3 file into a .cal file. It has three main + operating modes:- Initial calibration, Re-Calibration, and + Verification. (A fourth mode, "Imitation" is very like Initial + Calibration, but is used for establishing a calibration target that + a similar printer can attempt to imitate.)
+
+ The distinction between Initial Calibration and Re-Calibration is + that in the initial calibration we establish the "aim points" or + response we want out of the printer after calibration. There are + three basic parameters to set this for each channel: Maximum level, + minimum level, and curve shape.
+
+ By default the maximum level will be set using a heuristic which + attempts to pick the point when there is diminishing returns for + applying more colorant. This can be overridden using the -x# percent option, where # represents the choice of + channel this will be applied to. The parameter is the percentage of + device maximum.
+
+ The minimum level defaults to 0, but can be overridden using the -n# deltaE option. A minimum of + 0 means that zero colorant will correspond to the natural media + color, but it may be desirable to set a non-pure media color using + calibration for the purposes of emulating some other media. The + parameter is in Delta E units.
+
+ The curve shape defaults to being perceptually uniform, which means + that even steps of calibrated device value result in perceptually + even color steps. In some situations it may be desirable to alter + this curve (for instance when non color managed output needs to be + sent to the calibrated printer), and a simple curve shape target can + be set using the -t# percent + parameter. This affects the output value at 50% input value, and + represents the percentage of perceptual output. By default it is 50% + perceptual output for 50% device input.
+
+ Once a device has been calibrated, it can be re-calibrated to the + same aim target.
+
+ Verification uses a calibration test chart printed through the + calibration, and compares the achieved response to the aim target.
+
+ The simplest possible way of creating the PrinterA.cal file is:
+
+   printcal -i PrinterA_c
+
+ For more detailed information, you can add the -v and -p flags:
+
+   printcal -v -p -i PrinterB_c
+
+ (You will need to select the plot window and hit a key to advance + past each plot).
+
+ For re-calibration, the name of the previous calibration file will + need to be supplied, and a new calibration
+ file will be created:
+
+   printcal -v -p -r PrinterB_c_old + PrinterB_c_new
+
+ Various aim points are normally set automatically by printcal, but these can be + overridden using the -x, -n and -t + options. e.g. say we wanted to set the maximum ink for Cyan to 80% + and Black to 95%, we might use:
+
+   printcal -v -p -i -xc 80 + -xk 95 PrinterB_c
+
+ +

Using a printer calibration

+ The resulting calibration curves can be used with the following + other Argyll tools:
+
+     printtarg     +To +apply +calibration +to +a +profile +test +chart, + + + + + + + + + and/or to have it included in .ti3 file.
+     cctiff         +To +apply +color +management +and +calibration +to +an + + + + + + + + + image file.
+     applycal     + + + + + + + + + To incorporate calibration into an ICC profile.
+     chartread   +To +override +the +calibration +assumed +when +reading +a + + + + + + + + + profile chart.
+
+
+ In a workflow with native + calibration capability, the calibration curves would be used with + printarg during subsequent profiling + so that any ink limit calculations will reflect final device values, + while not otherwise using the calibration within the ICC workflow:
+
+     printtarg -v -ii1 + -pA4 -I + PrinterA_c.cal PrinterA
+
+ This will cause the .ti2 and resulting .ti3 and ICC profiles to + contain the calibration curves, allowing all the tools to be able to + compute final device value ink limits. The calibration curves must + also of course be installed into the printer. The means to do this + is currently outside the scope of Argyll (ie. either the print + system needs to be able to understand Argyll CAL format files, or + some tool will be needed to convert Argyll CAL files into the + printer calibration format).
+
+
+ In a workflow without + native calibration capability, the calibration curves would be used + with printarg to apply + the calibration to the test patch samples during subsequent profiling, as well as embedding + it in the resulting .ti3 to allow all the tools to be able to + compute final device value ink limits:
+
+     printtarg -v -ii1 + -pA4 -K + PrinterA_c.cal PrinterA
+
+ To apply calibration to an ICC profile, so that a calibration + unaware CMM can be used:
+
+     applycal PrinterA.cal PrinterA.icm PrinterA_cal.icm
+
+ To apply color management and calibration to a raster image:
+
+     cctiff Source2Destination.icm PrinterA_c.cal infile.tif + outfile.tif
+ or
+     cctiff Source2Destination.icm PrinterA_c.cal infile.jpg + outfile.jpg
+
+
+ Another useful tool is synthcal, that + allows creating linear or synthetic calibration files for disabling + calibration or testing.
+ Similarly, fakeread also supports + applying calibration curves and embedding them in the resulting .ti3 + file
+

How profile ink limits are handled when + calibration is being used.

+ Even though the profiling process is carried out on top of the + linearized device, and the profiling is generally unaware of the + underlying non-linearized device values, an exception is made in the + calculation of ink limits during profiling. This is made possible by + including the calibration curves in the profile charts .ti2 and + subsequent .ti3 file and resulting ICC profile 'targ' text tag, by way of the printtarg -I or -K options. This is done on the assumption that the + physical quantity of ink is what's important in setting the ink + limit, and that the underlying non-linearized device values + represent such a physical quantity.
+
+
+
+

Linking Profiles

+ Two device profiles can be linked together to create a device link + profile, than encapsulates a particular device to device transform. + Often this step is not necessary, as many systems and tools will + link two device profiles "on the fly", but creating a device link + profile gives you the option of using "smart CMM" techniques, such + as true gamut mapping, improved inverse transform accuracy, tailored + black generation and ink limiting.
+
+ The overall process is to link the input space and output space + profiles using collink, creating a + device to device link profile. The device to device link profile can + then be used by cctiff (or other ICC device profile capable tools), + to color correct a raster files.
+
+ Three examples will be given here, showing the three different modes + than collink supports.
+
+ In simple mode, the two profiles are + linked together in a similar fashion to other CMMs simply using the forward + and backwards color transforms defined by the profiles. Any gamut + mapping is determined by the content of the tables within the two + profiles, together with the particular intent chosen. Typically the + same intent will be used for both the source and destination + profile:
+
+ collink -v + -qm -s -ip -op + SouceProfile.icm DestinationProfile.icm Source2Destination.icm
+
+
+ In gamut mapping mode, the + pre-computed intent mappings inside the profiles are not used, but + instead the gamut mapping between source and destination is tailored + to the specific gamuts of the two profiles, and the intent parameter + supplied to collink. + Additionally, source and destination viewing conditions should be + provided, to allow the color appearance space conversion to work as + intended. The colorimetric B2A table in the destination profile is + used, and this will determine any black generation and ink limiting:
+
+ collink -v + -qm -g -ip -cmt + -dpp MonitorSouceProfile.icm + DestinationProfile.icm Source2Destination.icm
+
+
+ In inverse output table gamut mapping mode, + the pre-computed intent mappings inside the profiles are not used, + but instead the gamut mapping between source and destination is + tailored to the specific gamuts of the two profiles, and the intent + parameter supplied to collink. + In addition, the B2A table is not + used in the destination profile, but the A2B table is instead + inverted, leading to improved transform accuracy, and in CMYK + devices, allowing the ink limiting and black generation parameters + to be set:
+
+ For a CLUT table based RGB printer destination profile, the + following would be appropriate:
+
+ collink -v + -qm -G -ip -cmt + -dpp MonitorSouceProfile.icm + RGBDestinationProfile.icm Source2Destination.icm
+
+ For a CMYK profile, the total ink limit needs to be specified (a + typical value being 10% less than the value used in creating the + device test chart), and the type of black generation also needs to + be specified:
+
+ collink -v + -qm -G -ip -cmt + -dpp -l250 + -kr MonitorSouceProfile.icm + CMYKDestinationProfile.icm Source2Destination.icm
+
+ Note that you should set the source (-c) + and destination (-d) viewing conditions + for the type of device the profile represents, and the conditions + under which it will be viewed.
+
+

Soft Proofing Link

+ Often it is desirable to get an idea what a particular devices + output will look like using a different device. Typically this might + be trying to evaluate print output using a display. Often it is + sufficient to use an absolute or relative colorimetric transform + from the print device space to the display space, but while these + provide a colorimetric preview of the result, they do not take into + account the subjective appearance differences due to the different + device conditions. It can therefore be useful to create a soft proof + appearance transform using collink:
+
+ collink -v + -qm -G -ila -cpp + -dmt -t250 CMYKDestinationProfile.icm + MonitorProfile.icm SoftProof.icm
+
+ We use the Luminance matched appearance intent, to preserve the + subjective apperance of the target device, which takes into account + the viewing conditions and assumes adaptation to the differences in + the luminence range, but otherwise not attempting to compress or + change the gamut.
+   +

+

Transforming colorspaces of raster files

+ Although a device profile or device link profile may be useful with + other programs and systems, Argyll provides the tool cctiff for directly applying a device to + device transform to a TIFF or + JPEG raster file. The cctiff + tool is capable of linking an arbitrary sequence of device profiles, + device links, abstract profiles and calibration curves. Each device + profile can be preceded by the -i + option to indicate the intent that should be used. Both 8 and 16 bit + per component files can be handled, and up to 8 color channels. The + color transform is optimized to perform the overall transformation + rapidly.
+
+ If a device link is to be used, the following is a typical example:
+
+ cctiff Source2Destination.icm + infile.tif outfile.tif
+ or
+ cctiff Source2Destination.icm + infile.jpg outfile.jpg
+
+
+
If a source and destination profile are to be used, the + following would be a typical example:
+
+ cctiff  -ip + SourceProfile.icm -ip DestinationProfile.icm + infile.tif outfile.tif
+ or
+ cctiff  -ip + SourceProfile.icm -ip DestinationProfile.icm + infile.jpg outfile.jpg
+
+
+

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + diff --git a/doc/Smile.jpg b/doc/Smile.jpg new file mode 100644 index 0000000..66a6b00 Binary files /dev/null and b/doc/Smile.jpg differ diff --git a/doc/Source.html b/doc/Source.html new file mode 100644 index 0000000..5ea423e --- /dev/null +++ b/doc/Source.html @@ -0,0 +1,219 @@ + + + + Argyll Overview + + + +

Source Code Documentation

+Some general comments about how different software works.
+
+TARGET
+
+ Nearly all current Color correction systems generate test charts +(or device characterization target charts) by laying out a regular +rectangular grid of test points in device space (Targen will do this if +you feed it a non-zero -m +option). On some consideration, this approach is far from optimal. Not +only is a regular grid inefficient in packing the multidimensional +device space but if the points are spaced evenly in device space, they +will probably not be optimal in determining the underlying device +characteristic, sampling too finely where the device behavior is +smooth, and too coarsely where the device behavior changes rapidly. +Some commercial color systems tackle +the latter problem by "pre-linearizing" the device, which amounts to +distorting +the regular device space grid points with a perceptual inverse per +device +channel lookup curve.
+
+The approach I have taken with Argyll, is a little different. Both a +device independent and device dependent approach are available. In the +device independent mode, test points are distributed so as to minimize +the distance from any point in the device space to the nearest test +chart value. When the device dependent approach is used, test points +are chosen so as to minimize the expected error between the resulting +profile and the underlying device response.
+
+For higher dimensional spaces, where the aim is to create a more +approximate device profile, I've used an "incremental far point" point +generator, that starting with a previous test point as a seed, use a +minimization algorithm to locate another point that is as far as +possible from the nearest existing test point in perceptual space, +while remaining in gamut at all tines. This means that ideally each +point "fills in" the gaps in the existing distribution.
+
+Another issue with laying test points out in regular grids, is that +this means that the device response is poorly sampled (since the grids +are usually coarse), and this can make it impossible to create detailed +device linearisation "shaper" curves from the resulting data ! Ideally, +in any colorspace (input or output), when viewed from any possible +angle, none of the test data points should appear  to line up. The +Argyll target generator seems to achieve this goal.
+
+
+target/printtarg.c:
+
+printtarg simply generates a PostScript file containing the patches +laid out for an Xrite DTP51/DTP41/SpectroScan. It allows them to be +laid out on +a choice of paper sizes, with the appropriate contrasting color spacers +between +each patch for the strip reading instruments. Unlike other charts, +Argyll +charts are generated as required, rather that being fixed. Also unlike +most +other strip reading charts, the spacers may colored, so that the +density contrast +ratio is guaranteed, even when two patches are about 50% density.
+
+Another feature is the pseudo random patch layout. This has three +purposes. One is to try and average out any variation in the device +response in relationship to the location of the patch on the paper. +Color copiers and printing presses (for instance), are notorious in +having side to side density variations.
+
+Another purpose of the random patch layout, is that it gives the +reading program a good mechanism for detecting user error. It can guess +the expected values, compare them to the readings, and complain if it +seems that the strip is probably the wrong one.
+
+The final purpose of the random patch layout is to optimize the +contrast +between patches in a strip, to improve the robustness of the strip +reading. +Using this, small charts may be even be generated without any gaps +between +the test patches.
+
+RSPL

+
+A lot of core Argyll algorithms are bound up in the RSPL (Regular +Spline) class. The RSPL class is closely related to the CLUT table +structure used in the ICC profile format, and is a general purpose way +of mapping one multi-dimensional value to another, using interpolation +to reduce the mapping function to a manageable size.
+Regular splines are not directly related to other types of splines, and +do not generally suffer from the sort of "wiggles" and "overshoot" +characteristic of other spline systems.
+
+The RSPL class adds three basic methods to the underlying data +structure:
+
+1) Interpolation
+
+2) Creation from scattered data
+
+The regular spline implementation was inspired by the following +technical reports:
+
+D.J. Bone, "Adaptive Multi-Dimensional Interpolation Using Regularized +Linear Splines," Proc. SPIE Vol. 1902, p.243-253, Nonlinear Image +Processing IV, Edward R. Dougherty; Jaakko T. Astola; Harold G. +Longbotham;(Eds)(1993).
+
+D.J. Bone, "Adaptive Colour Printer Modeling using regularized linear +splines," Proc. SPIE Vol. 1909, p. 104-115, Device-Independent Color +Imaging and Imaging Systems Integration, Ricardo J. Motta; Hapet A. +Berberian; Eds.(1993)
+
+Don Bone and Duncan Stevenson, "Modelling of Colour Hard Copy Devices +Using Regularised Linear Splines," Proceedings of the APRS workshop on +Colour Imaging and Applications, Canberra (1994)
+
+see <http://www.cmis.csiro.au/Don.Bone/>
+
+Also of interest was:
+
+"Discrete Smooth Interpolation", Jean-Laurent Mallet, ACM Transactions +on Graphics, Volume 8, Number 2, April 1989, Pages 121-144.
+
+3) Inversion
+
+Simplex interpolation is normally done in Baricentric space, where +there +is one more baricentric coordinate than dimensions, and the sum of all +the +baricentric coordinates must be 1.
+To simplify things, we work in a "Simplex parameter" space, in which +there are only <dimension> parameters, and each directly +corresponds with a cartesian coordinate, but the parameter order +corresponds with the baricentric order.
+For example, given cartesian coordinates D0, D1, D2 these should be +sorted from smallest to largest, thereby choosing a particular simplex +within a cube, +and allowing a correspondence to the parameter coordinates, ie:
+
+D1 D0 D2     Smallest -> Largest cartesian sort
+P2 P1 P0     Corresponding Parameter coordinates +(note reverse order!)
+
+B0 = P0      Conversion to Baricentric +coordinates
+B1 = P1 - P0
+B2 = P2 - P1
+B3 = 1  - P2
+
+The vertex values directly correspond to Baricentric coordinates,
+giving the usual interpolation equation of:
+
+  VV0 * B0
++ VV1 * B1
++ VV2 * B2
++ VV3 * B3
+
+where VVn is the vertex value for each of the 4 vertices of the simplex.
+
+Reversing the Parameter -> Baricentric equations gives the
+following interpolation equation using Parameter coordinates:
+
+  VV0 - VV1 * P0
++ VV1 - VV2 * P1
++ VV2 - VV3 * P2
++ VV3
+
+It is this which is used in rev.c for solving the reverse interpolation +problem. Within a simplex, only linear algebra is needed to compute +inverses. To deal with the 4D->3D nature of a CMYK profile, the SVD +(Singular Value Decomposition) approach is used to solving a CMYK for a +given CIE value, the result being the equation of the line of +solutions. The lines from adjacent simplexes form a solution locus, +that can be resolved into a single point solution once a black +generation rule is applied.
+
+Outline of inversion processing:
+
+     Basic function requirements:  exact, +auxil, locus, clip inversion.
+     Fwd cell - reverse cell list lookup
+     Basic layout di -> fdi + auxils + ink limit
+     Basic search strategy
+     Sub Simplex decomposition & properties
+     How each type of function finds solutions
+       Sub-simplex dimensionality & +dof + target dim & dof
+       Linear algebra choices.
+     How final solutions are chosen
+
+XICC

+
+    Profiling using concatenated shapers to augment thin +plate splines for per channel curves.
+
+IMDI
+
+This module generates C code routines which implement an integer +multi-channel transform. The input values are read, passed through per +channel lookup tables, a multi-dimensional interpolation table, and +then a per channel output lookup table, before being written.
+
+ MPP
+

+Outline model parameter optimization using slope accelerated error +metric, and initial parameter speedup for adjacent spectral bands etc.
+
+
+
+ + diff --git a/doc/Spyd2.jpg b/doc/Spyd2.jpg new file mode 100644 index 0000000..8f8eff5 Binary files /dev/null and b/doc/Spyd2.jpg differ diff --git a/doc/Spyd3.jpg b/doc/Spyd3.jpg new file mode 100644 index 0000000..e1ab16f Binary files /dev/null and b/doc/Spyd3.jpg differ diff --git a/doc/Spyd3x.jpg b/doc/Spyd3x.jpg new file mode 100644 index 0000000..8916915 Binary files /dev/null and b/doc/Spyd3x.jpg differ diff --git a/doc/Spyd4.jpg b/doc/Spyd4.jpg new file mode 100644 index 0000000..0d1b1b6 Binary files /dev/null and b/doc/Spyd4.jpg differ diff --git a/doc/SpyderChecker.jpg b/doc/SpyderChecker.jpg new file mode 100644 index 0000000..e50a205 Binary files /dev/null and b/doc/SpyderChecker.jpg differ diff --git a/doc/WideGamutColmters.html b/doc/WideGamutColmters.html new file mode 100644 index 0000000..67a5817 --- /dev/null +++ b/doc/WideGamutColmters.html @@ -0,0 +1,120 @@ + + + + Wide Gamut Displays & Colorimeters + + + +

Wide + Gamut Displays and Colorimeters
+

+ With the introduction of more wide color gamut displays, many people + are finding that their Colorimeter instruments don't work so well on + them. Why is this, and what can be done about it ?
+

What's the difference between a Colorimeter and a Spectrometer ?

+ Colorimeters and Spectrometers both have the same aim: to measure + tri-stimulus color values, but they go about this in two quite + different ways.
+
+ A spectrometer breaks the captured light up into a narrow series of + wavelengths, measures the response at each of the wavelengths, and + then weights and sums each wavelength response by the Standard + Observer weighting curves, to arrive at the CIE XYZ tri-stimulus + values. Because a Spectrometer computes the Standard Observer + weightings in software, the accuracy of the curves is nearly + perfect, the primary errors being due to wavelength calibration + errors, spectrum calibration errors, and the quantised nature of the + discrete wavelength bands.
+
+ A Colorimeter uses physical filters that approximate the Standard + Observer weighting curves to filter the captured light onto three + sensors, the sensor values then
+ being measured, and then multiplied by a 3x3 calibration matrix to + arrive at the CIE XYZ tri-stimulus values. The main advantage of a + Colorimeter is its simplicity, which results in a lower cost + instrument. In theory it is also possible to make a Colorimeter that + cheaply captures more light by using larger sensors, but this + possibility is rarely exploited by low cost instruments. Also due to + cost constraints, the physical filters used in these instruments may + not be a very good match to the CIE Standard Observer weightings, + and if nothing were done about it, this would result  in large + measurement errors. Because such Display Colorimeters are typically + used with additive, 3 colorant displays, it is possible to calibrate + these errors out for any particular display, and this is the purpose + of the 3x3 calibration matrix that is used by the instrument and/or + instrument drivers. Since the calibration depends on the spectral + characteristics of the display primaries, no single calibration + matrix will be perfect for all display technologies, and typically + the instruments will come with two matrices, one for "typical" CRT + (Cathode Ray Tube) type displays, and one for "typical" LCD (Liquid + Crystal) type displays. Each individual Colorimeter may have + slightly different filters to others of the same model, due to batch + variations in the filter material. If each Colorimeter is calibrated + against a reference instrument, then this source of error can also + be minimised.
+

Why don't Colorimeters work so well on Wide Gamut displays ?

+ As explained above, due to the imperfect match between the + Colorimeter filters and CIE Standard Observer weighting curves, + Colorimeters have calibration matrices that are created for + "typical" CRT or LCD displays. A Wide Gamut display by its very + nature has primaries that have narrower spectral characteristics + than typical displays, and this spectral difference exacerbates the + approximations and errors in the Colorimeter filters.
+
+ Since Spectrometers have mathematically computed weighting curves, + they are less sensitive to the spectral characteristics of the + display primary colors, and generally work better on Wide Gamut + displays.
+

What can be done about this ?

+ There are three approaches to addressing this problem:
+
+ One is to use a Spectrometer to measure Wide Gamut displays. Since + lower cost Spectrometers are now available (e.g. Color Munki + Design/Photo), this may be the best general solution, since a + Spectrometer offers a good deal more flexibility and display + technology independence than a Colorimeter. Spectrometers are more + expensive than colorimeters though, and typical low cost instruments + are not well compensated for temperature changes (making reliable + black measurement somewhat tricky), and may take longer, or be less + accurate at measuring low light levels than the best colorimeters.
+
+ The second approach is to correct the Colorimeter for the specific + type of Wide Gamut Display. Often this is what has been done when a + Colorimeter ("Puck") is supplied with a Wide Gamut display :- the + 3x3 calibration matrix inside the Colorimeter will have been "tuned" + to match the display, or the Colorimeter driver or color management + software will include an additional 3x3 correction matrix for that + Colorimeter/Display combination.
+
+ The third approach is to make a colorimeter that has filters that + are closer to the standard observer curves, reducing the calibration + needed for the instrument, and making it less dependent on the exact + type of display technology. The X-Rite i1 DisplayPro, Pantone + ColorMunki Display and possibly the Spyder 4 may have such an + improvement.
+
+ Argyll V1.3.0 has a facility to create and apply a correct matrix to Colorimeter + measurements. To create the correction matrix, the display, the + Colorimeter and a reference Spectrometer are needed. (see ccxxmake). The correction matrix can then + be used with the usual display measurement utilities (see dispcal, dispread + and spotread -X option).
+
+ Some recent colorimeters take a slightly different approach to + calibration, and rather than using pre-defined 3x3 calibration + matricies, they instead contain the spectral sensitivity curves for + each particular colorimeter (e.g. i1 DisplayPro and ColorMunki + Display, Spyder 4). It's then possible to create 3x3 calibration + matricies automatically for any display for which the spectral + characteristics are known. This makes it easy to tailor the + colorimeters measurements to a particular type of display without + having to cater for each colorimeter & display combination. ccxxmake also allows creation of these Colorimeter Calibration Spectral + Sample files.
+
+ + diff --git a/doc/YellowGreen.jpg b/doc/YellowGreen.jpg new file mode 100644 index 0000000..16f637f Binary files /dev/null and b/doc/YellowGreen.jpg differ diff --git a/doc/afiles b/doc/afiles new file mode 100644 index 0000000..b01b147 --- /dev/null +++ b/doc/afiles @@ -0,0 +1,179 @@ +afiles +DocLicense.txt +License.txt +License2.txt +License3.txt +ArgyllDoc.html +ChangesSummary.html +ColorManagement.html +cal_format.html +Compiling.html +Installing.html +Installing_MSWindows.html +Installing_OSX.html +Installing_Linux.html +File_Formats.html +MinorTools.html +Organisation.html +Overview.html +Limitations.html +Performance.html +Environment.html +Scenarios.html +FWA.html +FWA_measure.jpg +instruments.html +ArgyllFlow.jpg +ArgyllFlowThumb.jpg +DTP20.jpg +DTP22.jpg +DTP41.jpg +DTP51.jpg +DTP92.jpg +DTP94.jpg +HCFR.jpg +Huey.jpg +Smile.jpg +Spyd2.jpg +Spyd3.jpg +Spyd3x.jpg +Spyd4.jpg +i1d.jpg +i1d3_1.jpg +i1d3_2.jpg +i1m.jpg +i1p.jpg +sl.jpg +ss.jpg +mox.jpg +moxxr.jpg +Chroma4.jpg +ColorMunki.jpg +ColorMunkiCreate.jpg +i1pro2.jpg +iccgamutmapping.html +gamutmapping1.jpg +monitorcontrols.html +gamma.html +calvschar.html +WideGamutColmters.html +CrushedDisplyBlacks.html +i1proDriver.html +i1proDriver.xls +evalInputTargets.html +YellowGreen.jpg +srgbplot.gif +Source.html +average.html +applycal.html +cb2ti3.html +cctiff.html +cht_format.html +dispwin.html +dispcal.html +dispread.html +dispprofloc.html +extracticc.html +extractttag.html +synthcal.html +fakeCMY.html +fakeread.html +filmread.html +filmtarg.html +greytiff.html +iccdump.html +iccgamut.html +illumread.html +illumread_1.jpg +illumread_2.jpg +illumread_3.jpg +illumread_4.jpg +illumread_5.jpg +illumread_6.jpg +collink.html +icclu.html +kodak2ti3.html +txt2ti3.html +mppcheck.html +mpplu.html +mppprof.html +chartread.html +printtarg.html +profcheck.html +invprofcheck.html +colprof.html +printcal.html +refine.html +revfix.html +scanin.html +splitti3.html +spec2cie.html +specplot.html +spotread.html +synthread.html +targen.html +ti3_format.html +tiffgamut.html +timage.html +cube.jpg +surface.jpg +LabSteps.jpg +verify.html +viewgam.html +xicclu.html +oeminst.html +ucmm.html +Q60.jpg +DC.jpg +SG.jpg +SG_header.txt +SG_footer.txt +i1scan14.jpg +HCT.jpg +CMP_DT_003.jpg +CMP_Digital_Target-3.jpg +colorchecker.jpg +SpyderChecker.jpg +LSDC.jpg +QPcard201.jpg +QPcard202.jpg +Kgraph1.jpg +Kgraph2.jpg +Kgraph3.jpg +Kgraph4.jpg +Kgraph5.jpg +Kgraph6.jpg +Kgraph7.jpg +Kgraph8.jpg +Kparams.jpg +CRTspectrum.jpg +Fluorescent.jpg +HiResLaser.jpg +ccxxmake.html +ccmxs.html +ccmxs/DTP-94_1964_10_Dell_2408W.ccmx +ccmxs/DTP-94_1997_Shaw_Dell_2408W.ccmx +ccmxs/DTP-94_Dell_2408W.ccmx +ccmxs/DTP-94_Dell_U2410.ccmx +ccmxs/EyeOne_Display_1_NEC1990SXi.ccmx +ccmxs/EyeOne_Display_2_EIZO_S2233W.ccmx +ccmxs/EyeOne_Display_2_NEC1990SXi.ccmx +ccmxs/EyeOne_Display_LT_U2410_Standard_1931.ccmx +ccmxs/EyeOne_Display_LT_U2410_Standard_1964.ccmx +ccmxs/EyeOne_Display_LT_U2410_sRGB_1931.ccmx +ccmxs/EyeOne_Display_LT_U2410_sRGB_1964.ccmx +ccmxs/Huey_Acer_al2016w.ccmx +ccmxs/Huey_Eizo_CG243.ccmx +ccmxs/Huey_HP_compaq_6730s.ccmx +ccmxs/Huey_HP_lp2475w.ccmx +ccmxs/Huey_NEC1990SXi.ccmx +ccmxs/Huey_NEC_Spectraview_241.ccmx +ccmxs/NEC_EyeOne_Display_2_NEC2690WUXi2.ccmx +ccmxs/Spyder2_EIZO_S2433W_standard_1931.ccmx +ccmxs/Spyder2_EIZO_S2433W_standard_1964.ccmx +ccmxs/Spyder3_EIZO_S2233_standard_1964.ccmx +ccmxs/Spyder3_EIZO_S2243W_standard_1931.ccmx +ccmxs/Spyder3_HP_LP2475w.ccmx +ccmxs/Spyder3_NEC2690WUXi2.ccmx +ccmxs/Spyder3_NEC_PA301W.ccmx + diff --git a/doc/applycal.html b/doc/applycal.html new file mode 100644 index 0000000..5c5e661 --- /dev/null +++ b/doc/applycal.html @@ -0,0 +1,135 @@ + + + + applycal + + + + +

profile/applycal

+

Summary

+ Apply, re-apply or remove calibration curves to an ICC profile.
+

Usage Summary

+ usage: applycal + [-options] + [calfile.cal] inprof.icm [outprof.icm]
+  -v              +Verbose + mode
+  -a              +Apply + or re-apply calibration (default)
+  -u              +Remove + calibration
+  -c              +Check + calibration
+  calfile.cal     + Calibration + file to apply
+  inprof.icm      + ICC + profile to read
+  outprof.icm     + modified + ICC + profile to write

+
+

Usage Details
+

+ The -v flag makes applycal more verbose.
+
+ -a By + default + the calfile.cal is applied + or + re-applied to the inprof.icm, + and then written to outprof.icm.
+
+ -u This flag + causes any calibration applied to the inprof.icm + to be remove, the profile being restored to its pre-calibrated + state, + and then written to outprof.icm.
+
+ -c This flag + checks the inprof.icm and + if + verbose is on, reports whether it has had calibration applied. It + will + return status 0 if it has not been applied, 1 if it has, and 2 on + error.
+
+ calfile.cal  +must + be supplied if the calibration is being applied or re-applied.
+
+ inprof.icm  +should + be the + path to the ICC profile that will have calibration applied, + re-applied + or removed. The appropriate extension should be used for the + platform, i.e. icm for + MSWindows, and icc for OS X + or + Unix/Linux.
+
+ outprof.icm  +should + be the + path to the file that will be created to hold the modified ICC + profile. + The appropriate extension should be used for the + platform, i.e. icm for + MSWindows, and icc for OS X + or + Unix/Linux.
+
+

Discussion

+ Applycal provides a means of + using per channel calibration on devices and systems that don't + explicitly support such calibration. Once a calibration has been + created for a device (see printcal), it + needs to be then used for all subsequent profiling and printing. If + the + printing device, display or system doesn't explicitly support the + use of + calibration, then the calibration can be applied during the printing + of + profile test charts using printtarg -K, + or the reading of a display target using dispread -K, and then for + processing imagery using cctiff + or by modifying the device ICC profiles using applycal.
+
+ Applycal modifies the + appropriate input or output per-channel curves of the profile to + incorporate the per-channel calibration. To allow the calibration to + be + re-applied or removed, it first makes a copy of the uncalibrated + curves + and stores them in private tags in the profile.
+
+ NOTE that things like the + white point, black point tag, gamut tag etc. are not adjusted to account + for the calibration, nor does applycal read, add or change any + 'vcgt' tag (If a 'vcgt' tag is present and a calibration applied as + well, then both will be in effect when such a profile is installed + using typical display installation tools.)
+
+ NOTE that any calibration + embedded in the ICC profile 'targ' + tag is ignored, since it is intended for computation of final + calibrated device value ink limits, and may not represent the exact + current calibration curves.
+
+
+
+
+ + diff --git a/doc/average.html b/doc/average.html new file mode 100644 index 0000000..31adf9b --- /dev/null +++ b/doc/average.html @@ -0,0 +1,43 @@ + + + + average + + + + +

spectro/average

+

Summary

+Average or merge two or more .ti3 +measurement +files.
+

Usage

+ +usage: average [-options] input1.ti3 +input2.ti3 ... output.ti3
+ -v              +Verbose
+ -m              +Merge rather than average
+ input1.ti3      +First input file
+ input2.ti3      +Second input file
+ ...             +etc.
+ output.ti3      +Resulting averaged or merged output file
+
+
+All keywords and other table data will be taken from the first input +file. By default the input files are averaged, but they can be merged +by using the -m flag.
+
+The fields must be the same and in the same order. For averaging, the +device values must be the same and in the same order.
+
+ + diff --git a/doc/cal_format.html b/doc/cal_format.html new file mode 100644 index 0000000..3e40205 --- /dev/null +++ b/doc/cal_format.html @@ -0,0 +1,216 @@ + + + + Calibration Format File (.cal) + + + + +

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. Calibration files are created by synthcal, dispcal + and printcal.
+
+ 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.
+
+ A "DISPLAY" type device may + have a VIDEO_LUT_CALIBRATION_POSSIBLE + keyword that + must have a value of "NO" or + "YES", to indicate whether + the display has the ability to be calibrated by loading VideoLUT + values.
+
+ There shall be a keyword COLOR_REP + 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:
+
+     +Cyan +          +               + C
+     Magenta           +           M
+     Yellow     +                  + Y
+     Black    +                     + K
+     Orange    +                  + O
+     Red +                          + R
+     Green      +                  + G
+     Blue       +                    + B
+     White   +              +          W
+     Light Cyan +                 + c
+     Light +Magenta             + m
+     Light +Yellow               + y
+     Light +Black                 + k
+     Medium Cyan  +            2c
+     Medium Magenta +        + 2m
+     Medium Yellow +          2y
+     Medium Black +            2k
+     Light Light Black        1k
+
+ There may be an a prefix i + preceding the device space letter encoding, indicating that although + the space appears to be an additive space, it is in fact a + subtractive + device.
+
+ Typical values might be: "RGB" for an RGB display, "iRGB" + for an RGB printer, "CMYK" + for + a + printer, "RGB" for an RGB + scanner.
+
+ 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).
+
+ 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 I.
+
+ For an RGB device, the + following fields would be used:
+
+     RGB_I    +   + The device value input value between 0.0 and 1.0.
+     RGB_R    +  + The Red device value input value between 0.0 and 1.0.
+     RGB_G +      The Green device value input value between 0.0 + and + 1.0.
+     RGB_B +      The Blue device value input value between 0.0 + and + 1.0.
+
+ The corresponding field names for a CMYK device would be CMYK_I, CMYK_C, CMYK_M, CMYK_Y and CMYK_K, etc.
+
+ 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).
+
+ 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.
+
+ Generally any other keywords and values will be ignored.
+
+
+ + diff --git a/doc/calvschar.html b/doc/calvschar.html new file mode 100644 index 0000000..f194d79 --- /dev/null +++ b/doc/calvschar.html @@ -0,0 +1,62 @@ + + + + Calibration vs. Characterization + + + +

Calibration +vs. + + Characterization
+

+ Some of the terminology can be confusing. Many people are initially + confused about the difference between Calibration and Characterization.
+

What is Calibration ?

+ "Calibration" is a short hand Graphic Arts term for adjusting a + devices behavior to meet calibration targets.
+ Calibration is the process of modifying the color behavior of a + device. This is typically done using two mechanisms:
+     1) Changing controls or internal settings that it + has.
+     2) Applying curves to its color channels.
+
+ The idea of calibration is to put a device is a defined state with + regard to its color response. Often this is used as a day to day + means of maintaining reproducible behavior. Calibration is often the + most practical way of setting parameters such as white point and + brightness of displays. Typically calibration will be stored in + device or systems specific file formats that record the device + settings and/or per channel calibration curves.
+

What is Characterization ?

+ Characterization (or profiling) + is recording the + way a device reproduces or responds to color. Typically the result + is stored in a device ICC + profile. Such a profile does not in itself modify color in any way. + What it does is allow a system such as a CMM (Color Management + Module) or color aware application to modify color when combined + with another device profile. Only by knowing the characteristics of + two devices or colorspaces, can a way of transferring color from one + device representation to another be achieved.
+
+ Note that a characterization (profile) will only be valid for a + device if it is in the same state of calibration as it was when it + was characterized.
+

What about display calibration and profiles ?

+ In the case of display profiles there is some additional confusion + because often the calibration + information is stored in the profile + for convenience. By convention it is stored in a tag called the + 'vcgt' tag. Although it is stored in the profile, none of the normal + ICC based tools or + applications are aware of it, or do anything with it, it is just + "along for the ride". Similarly, typical display calibration tools + and applications will not be aware of, or do anything with the ICC + characterization (profile) information.
+
+
+ + diff --git a/doc/cb2ti3.html b/doc/cb2ti3.html new file mode 100644 index 0000000..d999075 --- /dev/null +++ b/doc/cb2ti3.html @@ -0,0 +1,56 @@ + + + + cb2ti3 + + + + +

profile/cb2ti3

+

Summary

+Convert Colorblind format CMY/RGB test chart information into Argyll .ti3 CGATS profile forma +files. +This allows the use of raw Colorblind profiling data, to be used for +Argyll +profile creation or validation..
+

Usage

+ cb2gcats [-v] [-l limit] inbasename outbasename
+     +-v              +  Verbose flag
+     -l +limit          Set and ink limit +(TAC) in the resulting .ti3 file
+     inbasename        Base +name for input Colorblind .CMY and input. nCIE file
+     outbasename       Base +name for output.ti3 file.

+

Examples

+Given the Colorblind files fred.CMY and fred.nCIE, and +an +ink limit of 280%, one would create the Argyll CGATs file device.ti3 +file thus:
+
+cb2ti3 -l 280 fred device
+

Comments

+This tool only handles RGB or CMY files, and nothing else.
+There is no extra output when the verbose flag is used.
+Because the two Colorblind files are specified by a basename., they +must reside in the same directory.
+
+
+
+
+
+ + diff --git a/doc/ccmxs.html b/doc/ccmxs.html new file mode 100644 index 0000000..1ceaeac --- /dev/null +++ b/doc/ccmxs.html @@ -0,0 +1,424 @@ + + + + Contributed CCMX files + + + + +

Contributed ccmx files.
+

+ ccmx files are specific to a + particular Colorimeter and Display make and model combination. You + may find though that you get some benefit from using a file for your + instrument and a similar type of display to yours.
+
+ NOTE that +these +files +have +been +contributed +by + + various Argyll users, and their usefulness to your particular + situation is up to you to + evaluate. They may or may not improve the absolute accuracy + of your colorimeter with your display.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Display/Colorimeter
+
Rebadged & came with the + display
+
DTP92 DTP94 Eye-One Display 1 Eye-One Display 2/LT
+ ColorMunki Create
+
Huey Spyder 2 Spyder 3 Colorimètre HCFR
Acer AL2016w
+

+

+

+

+
Huey_Acer_al2016w
+

+

+
Dell 2408W
+ Dell 2709W
+

+

+
DTP-94_Dell_2408W
+ DTP-94_1964_10_Dell_2408W
+ DTP-94_1997_Shaw_Dell_2408W
+

+

+

+

+

+

+
+
Dell Ultrasharp U2410
+

+

+
DTP-94_Dell_U2410
+

+
EyeOne_Display_LT_U2410_sRGB_2deg
+ EyeOne_Display_LT_U2410_sRGB_10deg
+ EyeOne_Display_LT_U2410_Standard_2deg
+ EyeOne_Display_LT_U2410_Standard_10deg
+

+

+

+

+
EIZO CG243
+

+

+

+

+

+
Huey_Eizo_CG243
+

+

+

+
EIZO S2233
+

+

+

+

+

+

+

+
Spyder3_EIZO_S2233_standard_10deg
+

+
EIZO S2233W
+

+

+

+

+
EyeOne_Display_2_EIZO_S2233W
+

+

+

+

+
EIZO S2243W
+

+

+

+

+

+

+
+ + + + + + + + +
Spyder3_EIZO_S2243W_2deg +
+

+
EIZO S2433W
+

+

+

+

+

+

+
Spyder3_EIZO_S2433W_2deg
+ Spyder2_EIZO_S2433W_10deg

+

+
HP Compaq 6730s laptop
+

+

+

+

+
Huey_HP_compaq_6730s
+

+

+
HP LP2475w Wide Gamut
+

+

+

+

+
Huey_HP_lp2475w
+
Spyder3_HP_LP2475w
+

+
NEC MultiSync LCD 1990SXi
+

+

+
EyeOne_Display_1_NEC1990SXi
+
EyeOne_Display_2_NEC1990SXi
+
Huey_NEC1990SXi
+

+

+

+
NEC MultySync LCD 2690WUXi2NEC_EyeOne_Display_2_NEC2690WUXi2
+

+

+

+

+

+
Spyder3 + _NEC2690WUXi2
+

+
NEC PA301W
+

+

+

+

+

+

+

+
Spyder3_NEC_PA301W
+

+
NEC Spectraview 241
+

+

+

+

+

+
Huey_NEC_Spectraview_241
+

+

+

+
+
+ If anyone wants to + contribute correction matrices that they've made for particular + colorimeter + display combinations, I'm happy to put them on the + website so that others can make use of them. Any ccmx files contributed for this + purpose will be assumed to have been placed in the public domain.
+
+
+   + + diff --git a/doc/ccmxs/DTP-94_1964_10_Dell_2408W.ccmx b/doc/ccmxs/DTP-94_1964_10_Dell_2408W.ccmx new file mode 100644 index 0000000..c1d0e8c --- /dev/null +++ b/doc/ccmxs/DTP-94_1964_10_Dell_2408W.ccmx @@ -0,0 +1,25 @@ +CCMX + +DESCRIPTOR "Xrite DTP94 & Dell 2408WFP" +KEYWORD "INSTRUMENT" +INSTRUMENT "1964_10 Xrite DTP94" +KEYWORD "DISPLAY" +DISPLAY "Dell 2408WFP" +KEYWORD "REFERENCE" +REFERENCE "GretagMacbeth i1 Pro" +ORIGINATOR "Argyll ccmx" +CREATED "Mon Sep 20 10:38:25 2010" +KEYWORD "COLOR_REP" +COLOR_REP "XYZ" + +NUMBER_OF_FIELDS 3 +BEGIN_DATA_FORMAT +XYZ_X XYZ_Y XYZ_Z +END_DATA_FORMAT + +NUMBER_OF_SETS 3 +BEGIN_DATA +0.83589 0.11701 0.028937 +-0.080058 1.0887 0.058441 +0.011479 -0.035708 1.0529 +END_DATA diff --git a/doc/ccmxs/DTP-94_1997_Shaw_Dell_2408W.ccmx b/doc/ccmxs/DTP-94_1997_Shaw_Dell_2408W.ccmx new file mode 100644 index 0000000..168fc51 --- /dev/null +++ b/doc/ccmxs/DTP-94_1997_Shaw_Dell_2408W.ccmx @@ -0,0 +1,25 @@ +CCMX + +DESCRIPTOR "Xrite DTP94 & Dell 2408WFP" +KEYWORD "INSTRUMENT" +INSTRUMENT "1997 Shaw Xrite DTP94" +KEYWORD "DISPLAY" +DISPLAY "Dell 2408WFP" +KEYWORD "REFERENCE" +REFERENCE "GretagMacbeth i1 Pro" +ORIGINATOR "Argyll ccmx" +CREATED "Mon Sep 20 10:41:08 2010" +KEYWORD "COLOR_REP" +COLOR_REP "XYZ" + +NUMBER_OF_FIELDS 3 +BEGIN_DATA_FORMAT +XYZ_X XYZ_Y XYZ_Z +END_DATA_FORMAT + +NUMBER_OF_SETS 3 +BEGIN_DATA +0.84519 0.048811 0.010471 +-0.057861 1.0433 0.013805 +-0.017341 0.027907 0.94117 +END_DATA diff --git a/doc/ccmxs/DTP-94_Dell_2408W.ccmx b/doc/ccmxs/DTP-94_Dell_2408W.ccmx new file mode 100644 index 0000000..bf58d48 --- /dev/null +++ b/doc/ccmxs/DTP-94_Dell_2408W.ccmx @@ -0,0 +1,25 @@ +CCMX + +DESCRIPTOR "Xrite DTP94 & Dell 2408WFP" +KEYWORD "INSTRUMENT" +INSTRUMENT "Xrite DTP94" +KEYWORD "DISPLAY" +DISPLAY "Dell 2408WFP" +KEYWORD "REFERENCE" +REFERENCE "GretagMacbeth i1 Pro" +ORIGINATOR "Argyll ccmx" +CREATED "Mon Sep 20 10:37:13 2010" +KEYWORD "COLOR_REP" +COLOR_REP "XYZ" + +NUMBER_OF_FIELDS 3 +BEGIN_DATA_FORMAT +XYZ_X XYZ_Y XYZ_Z +END_DATA_FORMAT + +NUMBER_OF_SETS 3 +BEGIN_DATA +0.86461 0.030195 0.012871 +-0.069159 1.0244 0.017185 +-0.010324 0.011396 0.96486 +END_DATA diff --git a/doc/ccmxs/DTP-94_Dell_U2410.ccmx b/doc/ccmxs/DTP-94_Dell_U2410.ccmx new file mode 100644 index 0000000..0d7c610 --- /dev/null +++ b/doc/ccmxs/DTP-94_Dell_U2410.ccmx @@ -0,0 +1,25 @@ +CCMX + +DESCRIPTOR "Xrite DTP94 & Dell U2410" +KEYWORD "INSTRUMENT" +INSTRUMENT "Xrite DTP94" +KEYWORD "DISPLAY" +DISPLAY "Dell U2410" +KEYWORD "REFERENCE" +REFERENCE "GretagMacbeth i1 Pro prd.de ccmx" +ORIGINATOR "Argyll ccmx" +CREATED "Tue May 17 19:18:08 2011" +KEYWORD "COLOR_REP" +COLOR_REP "XYZ" + +NUMBER_OF_FIELDS 3 +BEGIN_DATA_FORMAT +XYZ_X XYZ_Y XYZ_Z +END_DATA_FORMAT + +NUMBER_OF_SETS 3 +BEGIN_DATA +0.936109 0.022419 0.014533 +-0.038308 1.014059 0.010001 +-0.012576 0.010240 1.005667 +END_DATA diff --git a/doc/ccmxs/EyeOne_Display_1_NEC1990SXi.ccmx b/doc/ccmxs/EyeOne_Display_1_NEC1990SXi.ccmx new file mode 100644 index 0000000..b8d3072 --- /dev/null +++ b/doc/ccmxs/EyeOne_Display_1_NEC1990SXi.ccmx @@ -0,0 +1,25 @@ +CCMX + +DESCRIPTOR "GretagMacbeth i1 Display & NEC MultiSync LCD 1990SXi" +KEYWORD "INSTRUMENT" +INSTRUMENT "GretagMacbeth i1 Display" +KEYWORD "DISPLAY" +DISPLAY "NEC MultiSync LCD 1990SXi" +KEYWORD "REFERENCE" +REFERENCE "GretagMacbeth i1 Pro" +ORIGINATOR "Argyll ccmx" +CREATED "Thu Sep 09 17:46:39 2010" +KEYWORD "COLOR_REP" +COLOR_REP "XYZ" + +NUMBER_OF_FIELDS 3 +BEGIN_DATA_FORMAT +XYZ_X XYZ_Y XYZ_Z +END_DATA_FORMAT + +NUMBER_OF_SETS 3 +BEGIN_DATA +1.0193 -0.022377 0.014860 +0.017260 0.95636 2.3599e-003 +8.5413e-003 -9.3046e-003 1.0208 +END_DATA diff --git a/doc/ccmxs/EyeOne_Display_2_EIZO_S2233W.ccmx b/doc/ccmxs/EyeOne_Display_2_EIZO_S2233W.ccmx new file mode 100644 index 0000000..c3f9d80 --- /dev/null +++ b/doc/ccmxs/EyeOne_Display_2_EIZO_S2233W.ccmx @@ -0,0 +1,25 @@ +CCMX + +DESCRIPTOR "GretagMacbeth i1 Display & Eizo FlexScan S2233W 1680x1050" +KEYWORD "INSTRUMENT" +INSTRUMENT "GretagMacbeth i1 Display" +KEYWORD "DISPLAY" +DISPLAY "Eizo FlexScan S2233W 1680x1050" +KEYWORD "REFERENCE" +REFERENCE "GretagMacbeth i1 Pro" +ORIGINATOR "Argyll ccmx" +CREATED "Mon Oct 11 16:13:03 2010" +KEYWORD "COLOR_REP" +COLOR_REP "XYZ" + +NUMBER_OF_FIELDS 3 +BEGIN_DATA_FORMAT +XYZ_X XYZ_Y XYZ_Z +END_DATA_FORMAT + +NUMBER_OF_SETS 3 +BEGIN_DATA +1.0610 -0.045412 0.010132 +0.010992 0.96393 -5.6546e-03 +-0.015770 0.034683 1.0333 +END_DATA diff --git a/doc/ccmxs/EyeOne_Display_2_NEC1990SXi.ccmx b/doc/ccmxs/EyeOne_Display_2_NEC1990SXi.ccmx new file mode 100644 index 0000000..c70758e --- /dev/null +++ b/doc/ccmxs/EyeOne_Display_2_NEC1990SXi.ccmx @@ -0,0 +1,25 @@ +CCMX + +DESCRIPTOR "GretagMacbeth i1 Display & NEC MultiSync LCD 1990SXi" +KEYWORD "INSTRUMENT" +INSTRUMENT "GretagMacbeth i1 Display" +KEYWORD "DISPLAY" +DISPLAY "NEC MultiSync LCD 1990SXi" +KEYWORD "REFERENCE" +REFERENCE "GretagMacbeth i1 Pro" +ORIGINATOR "Argyll ccmx" +CREATED "Thu Sep 09 17:56:02 2010" +KEYWORD "COLOR_REP" +COLOR_REP "XYZ" + +NUMBER_OF_FIELDS 3 +BEGIN_DATA_FORMAT +XYZ_X XYZ_Y XYZ_Z +END_DATA_FORMAT + +NUMBER_OF_SETS 3 +BEGIN_DATA +0.95118 -5.5218e-003 0.013440 +-0.010828 0.94247 3.0624e-003 +9.7395e-003 -0.013508 0.98334 +END_DATA diff --git a/doc/ccmxs/EyeOne_Display_LT_U2410_Standard_1931.ccmx b/doc/ccmxs/EyeOne_Display_LT_U2410_Standard_1931.ccmx new file mode 100644 index 0000000..4500b0e --- /dev/null +++ b/doc/ccmxs/EyeOne_Display_LT_U2410_Standard_1931.ccmx @@ -0,0 +1,25 @@ +CCMX + +DESCRIPTOR "Native gamut, CIE 1931 observer, Reference spectro: ColorMunki" +KEYWORD "INSTRUMENT" +INSTRUMENT "GretagMacbeth i1 Display" +KEYWORD "DISPLAY" +DISPLAY "Dell U2410" +KEYWORD "REFERENCE" +REFERENCE "X-Rite ColorMunki" +ORIGINATOR "Argyll ccmx" +CREATED "Sun Oct 03 00:38:56 2010" +KEYWORD "COLOR_REP" +COLOR_REP "XYZ" + +NUMBER_OF_FIELDS 3 +BEGIN_DATA_FORMAT +XYZ_X XYZ_Y XYZ_Z +END_DATA_FORMAT + +NUMBER_OF_SETS 3 +BEGIN_DATA +0.88951 -0.036475 0.032403 +0.013090 0.88419 0.010053 +-9.3198e-003 0.026884 0.95894 +END_DATA diff --git a/doc/ccmxs/EyeOne_Display_LT_U2410_Standard_1964.ccmx b/doc/ccmxs/EyeOne_Display_LT_U2410_Standard_1964.ccmx new file mode 100644 index 0000000..1d8e082 --- /dev/null +++ b/doc/ccmxs/EyeOne_Display_LT_U2410_Standard_1964.ccmx @@ -0,0 +1,25 @@ +CCMX + +DESCRIPTOR "Native gamut, CIE 1964 observer, Reference spectro: ColorMunki" +KEYWORD "INSTRUMENT" +INSTRUMENT "GretagMacbeth i1 Display (CIE 1964 10 degree observer)" +KEYWORD "DISPLAY" +DISPLAY "Dell U2410" +KEYWORD "REFERENCE" +REFERENCE "X-Rite ColorMunki" +ORIGINATOR "Argyll ccmx" +CREATED "Sun Oct 03 00:42:36 2010" +KEYWORD "COLOR_REP" +COLOR_REP "XYZ" + +NUMBER_OF_FIELDS 3 +BEGIN_DATA_FORMAT +XYZ_X XYZ_Y XYZ_Z +END_DATA_FORMAT + +NUMBER_OF_SETS 3 +BEGIN_DATA +0.86409 0.046894 0.035027 +8.6952e-003 0.95117 0.036360 +5.7496e-003 -8.8727e-003 1.0383 +END_DATA diff --git a/doc/ccmxs/EyeOne_Display_LT_U2410_sRGB_1931.ccmx b/doc/ccmxs/EyeOne_Display_LT_U2410_sRGB_1931.ccmx new file mode 100644 index 0000000..e6be5d5 --- /dev/null +++ b/doc/ccmxs/EyeOne_Display_LT_U2410_sRGB_1931.ccmx @@ -0,0 +1,25 @@ +CCMX + +DESCRIPTOR "Emulated sRGB gamut, CIE 1964 observer, Reference spectro: ColorMunki" +KEYWORD "INSTRUMENT" +INSTRUMENT "GretagMacbeth i1 Display" +KEYWORD "DISPLAY" +DISPLAY "Dell U2410" +KEYWORD "REFERENCE" +REFERENCE "X-Rite ColorMunki" +ORIGINATOR "Argyll ccmx" +CREATED "Sun Oct 03 00:46:11 2010" +KEYWORD "COLOR_REP" +COLOR_REP "XYZ" + +NUMBER_OF_FIELDS 3 +BEGIN_DATA_FORMAT +XYZ_X XYZ_Y XYZ_Z +END_DATA_FORMAT + +NUMBER_OF_SETS 3 +BEGIN_DATA +0.89191 -0.027759 0.025810 +0.010695 0.90054 9.3429e-005 +-0.016307 0.034060 0.96249 +END_DATA diff --git a/doc/ccmxs/EyeOne_Display_LT_U2410_sRGB_1964.ccmx b/doc/ccmxs/EyeOne_Display_LT_U2410_sRGB_1964.ccmx new file mode 100644 index 0000000..1de91c9 --- /dev/null +++ b/doc/ccmxs/EyeOne_Display_LT_U2410_sRGB_1964.ccmx @@ -0,0 +1,25 @@ +CCMX + +DESCRIPTOR "Emulated sRGB gamut, CIE 1964 observer, Reference spectro: ColorMunki" +KEYWORD "INSTRUMENT" +INSTRUMENT "GretagMacbeth i1 Display (CIE 1964 10 degree observer)" +KEYWORD "DISPLAY" +DISPLAY "Dell U2410" +KEYWORD "REFERENCE" +REFERENCE "X-Rite ColorMunki" +ORIGINATOR "Argyll ccmx" +CREATED "Sun Oct 03 00:49:29 2010" +KEYWORD "COLOR_REP" +COLOR_REP "XYZ" + +NUMBER_OF_FIELDS 3 +BEGIN_DATA_FORMAT +XYZ_X XYZ_Y XYZ_Z +END_DATA_FORMAT + +NUMBER_OF_SETS 3 +BEGIN_DATA +0.86736 0.046873 0.035348 +0.013981 0.95224 0.034689 +2.8361e-003 -4.8598e-003 1.0424 +END_DATA diff --git a/doc/ccmxs/Huey_Acer_al2016w.ccmx b/doc/ccmxs/Huey_Acer_al2016w.ccmx new file mode 100644 index 0000000..288a230 --- /dev/null +++ b/doc/ccmxs/Huey_Acer_al2016w.ccmx @@ -0,0 +1,25 @@ +CCMX + +DESCRIPTOR "GretagMacbeth Huey & Screen 1, Output DVI-0 at 0, 0, width 1680, height 1050" +KEYWORD "INSTRUMENT" +INSTRUMENT "GretagMacbeth Huey" +KEYWORD "DISPLAY" +DISPLAY "Screen 1, Output DVI-0 at 0, 0, width 1680, height 1050" +KEYWORD "REFERENCE" +REFERENCE "X-Rite ColorMunki" +ORIGINATOR "Argyll ccmx" +CREATED "Sun Sep 12 17:27:22 2010" +KEYWORD "COLOR_REP" +COLOR_REP "XYZ" + +NUMBER_OF_FIELDS 3 +BEGIN_DATA_FORMAT +XYZ_X XYZ_Y XYZ_Z +END_DATA_FORMAT + +NUMBER_OF_SETS 3 +BEGIN_DATA +0.93560 -0.019669 -7.1772e-04 +0.019205 0.88201 -1.7456e-03 +1.4914e-03 -1.1984e-03 0.89885 +END_DATA diff --git a/doc/ccmxs/Huey_Eizo_CG243.ccmx b/doc/ccmxs/Huey_Eizo_CG243.ccmx new file mode 100644 index 0000000..29e21bd --- /dev/null +++ b/doc/ccmxs/Huey_Eizo_CG243.ccmx @@ -0,0 +1,25 @@ +CCMX + +DESCRIPTOR "Eizo CG243" +KEYWORD "INSTRUMENT" +INSTRUMENT "GretagMacbeth Huey" +KEYWORD "DISPLAY" +DISPLAY "Eizo CG243" +KEYWORD "REFERENCE" +REFERENCE "GretagMacbeth i1 Pro" +ORIGINATOR "Argyll ccmx" +CREATED "Mon Mar 07 10:40:28 2011" +KEYWORD "COLOR_REP" +COLOR_REP "XYZ" + +NUMBER_OF_FIELDS 3 +BEGIN_DATA_FORMAT +XYZ_X XYZ_Y XYZ_Z +END_DATA_FORMAT + +NUMBER_OF_SETS 3 +BEGIN_DATA +0.84312 -0.016137 0.028123 +0.033176 0.82353 -4.9480e-003 +-0.011411 0.024250 0.94937 +END_DATA diff --git a/doc/ccmxs/Huey_HP_compaq_6730s.ccmx b/doc/ccmxs/Huey_HP_compaq_6730s.ccmx new file mode 100644 index 0000000..26f11ae --- /dev/null +++ b/doc/ccmxs/Huey_HP_compaq_6730s.ccmx @@ -0,0 +1,25 @@ +CCMX + +DESCRIPTOR "GretagMacbeth Huey & Screen 1, Output LVDS1 at 0, 0, width 1280, height 800" +KEYWORD "INSTRUMENT" +INSTRUMENT "GretagMacbeth Huey" +KEYWORD "DISPLAY" +DISPLAY "Screen 1, Output LVDS1 at 0, 0, width 1280, height 800" +KEYWORD "REFERENCE" +REFERENCE "X-Rite ColorMunki" +ORIGINATOR "Argyll ccmx" +CREATED "Sun Sep 12 16:15:40 2010" +KEYWORD "COLOR_REP" +COLOR_REP "XYZ" + +NUMBER_OF_FIELDS 3 +BEGIN_DATA_FORMAT +XYZ_X XYZ_Y XYZ_Z +END_DATA_FORMAT + +NUMBER_OF_SETS 3 +BEGIN_DATA +0.90072 4.7979e-05 0.018055 +-0.020339 0.93625 3.1028e-03 +-6.8272e-04 -1.7912e-03 0.99187 +END_DATA diff --git a/doc/ccmxs/Huey_HP_lp2475w.ccmx b/doc/ccmxs/Huey_HP_lp2475w.ccmx new file mode 100644 index 0000000..c33ee75 --- /dev/null +++ b/doc/ccmxs/Huey_HP_lp2475w.ccmx @@ -0,0 +1,25 @@ +CCMX + +DESCRIPTOR "GretagMacbeth Huey & Screen 1, Output HDMI2 at 0, 0, width 1920, height 1200" +KEYWORD "INSTRUMENT" +INSTRUMENT "GretagMacbeth Huey" +KEYWORD "DISPLAY" +DISPLAY "Screen 1, Output HDMI2 at 0, 0, width 1920, height 1200" +KEYWORD "REFERENCE" +REFERENCE "X-Rite ColorMunki" +ORIGINATOR "Argyll ccmx" +CREATED "Sun Sep 12 16:41:53 2010" +KEYWORD "COLOR_REP" +COLOR_REP "XYZ" + +NUMBER_OF_FIELDS 3 +BEGIN_DATA_FORMAT +XYZ_X XYZ_Y XYZ_Z +END_DATA_FORMAT + +NUMBER_OF_SETS 3 +BEGIN_DATA +0.92211 -0.025380 0.014354 +0.040892 0.86304 -4.6763e-03 +-0.018470 0.041757 0.93443 +END_DATA diff --git a/doc/ccmxs/Huey_NEC1990SXi.ccmx b/doc/ccmxs/Huey_NEC1990SXi.ccmx new file mode 100644 index 0000000..97f8d8a --- /dev/null +++ b/doc/ccmxs/Huey_NEC1990SXi.ccmx @@ -0,0 +1,25 @@ +CCMX + +DESCRIPTOR "GretagMacbeth Huey & NEC MultiSync LCD 1990SXi" +KEYWORD "INSTRUMENT" +INSTRUMENT "GretagMacbeth Huey" +KEYWORD "DISPLAY" +DISPLAY "NEC MultiSync LCD 1990SXi" +KEYWORD "REFERENCE" +REFERENCE "GretagMacbeth i1 Pro" +ORIGINATOR "Argyll ccmx" +CREATED "Thu Sep 09 18:03:01 2010" +KEYWORD "COLOR_REP" +COLOR_REP "XYZ" + +NUMBER_OF_FIELDS 3 +BEGIN_DATA_FORMAT +XYZ_X XYZ_Y XYZ_Z +END_DATA_FORMAT + +NUMBER_OF_SETS 3 +BEGIN_DATA +1.0456 -0.050500 4.6236e-003 +-3.3083e-003 0.98878 -0.012307 +0.014538 -0.023853 1.0341 +END_DATA diff --git a/doc/ccmxs/Huey_NEC_Spectraview_241.ccmx b/doc/ccmxs/Huey_NEC_Spectraview_241.ccmx new file mode 100644 index 0000000..f7341da --- /dev/null +++ b/doc/ccmxs/Huey_NEC_Spectraview_241.ccmx @@ -0,0 +1,25 @@ +CCMX + +DESCRIPTOR "Spectraview241" +KEYWORD "INSTRUMENT" +INSTRUMENT "GretagMacbeth Huey" +KEYWORD "DISPLAY" +DISPLAY "NEC Spectraview 241" +KEYWORD "REFERENCE" +REFERENCE "GretagMacbeth i1 Pro" +ORIGINATOR "Argyll ccmx" +CREATED "Thu Mar 03 11:12:44 2011" +KEYWORD "COLOR_REP" +COLOR_REP "XYZ" + +NUMBER_OF_FIELDS 3 +BEGIN_DATA_FORMAT +XYZ_X XYZ_Y XYZ_Z +END_DATA_FORMAT + +NUMBER_OF_SETS 3 +BEGIN_DATA +0.84308 -0.012484 0.028477 +0.023148 0.83371 -3.9284e-003 +-0.013409 0.025818 0.94938 +END_DATA diff --git a/doc/ccmxs/NEC_EyeOne_Display_2_NEC2690WUXi2.ccmx b/doc/ccmxs/NEC_EyeOne_Display_2_NEC2690WUXi2.ccmx new file mode 100644 index 0000000..a6c29fc --- /dev/null +++ b/doc/ccmxs/NEC_EyeOne_Display_2_NEC2690WUXi2.ccmx @@ -0,0 +1,25 @@ +CCMX + +DESCRIPTOR "GretagMacbeth i1 Display & NEC MultiSync LCD2690WUXi2" +KEYWORD "INSTRUMENT" +INSTRUMENT "GretagMacbeth i1 Display" +KEYWORD "DISPLAY" +DISPLAY "NEC MultiSync LCD2690WUXi2" +KEYWORD "REFERENCE" +REFERENCE "GretagMacbeth i1 Pro" +ORIGINATOR "Argyll ccmx" +CREATED "Sat Sep 11 19:53:24 2010" +KEYWORD "COLOR_REP" +COLOR_REP "XYZ" + +NUMBER_OF_FIELDS 3 +BEGIN_DATA_FORMAT +XYZ_X XYZ_Y XYZ_Z +END_DATA_FORMAT + +NUMBER_OF_SETS 3 +BEGIN_DATA +0.91203 -0.015033 0.014040 +2.3004e-004 0.89781 5.1274e-004 +-0.014259 0.026863 0.93352 +END_DATA diff --git a/doc/ccmxs/Spyder2_EIZO_S2433W_standard_1931.ccmx b/doc/ccmxs/Spyder2_EIZO_S2433W_standard_1931.ccmx new file mode 100644 index 0000000..0cbe855 --- /dev/null +++ b/doc/ccmxs/Spyder2_EIZO_S2433W_standard_1931.ccmx @@ -0,0 +1,25 @@ +CCMX + +DESCRIPTOR "ColorVision Spyder2 & EIZO_S2433W" +KEYWORD "INSTRUMENT" +INSTRUMENT "ColorVision Spyder2" +KEYWORD "DISPLAY" +DISPLAY "EIZO_S2433W" +KEYWORD "REFERENCE" +REFERENCE "GretagMacbeth i1 Pro" +ORIGINATOR "Argyll ccmx" +CREATED "Fri Nov 19 15:57:46 2010" +KEYWORD "COLOR_REP" +COLOR_REP "XYZ" + +NUMBER_OF_FIELDS 3 +BEGIN_DATA_FORMAT +XYZ_X XYZ_Y XYZ_Z +END_DATA_FORMAT + +NUMBER_OF_SETS 3 +BEGIN_DATA +1.1862 0.027113 0.025124 +-8.2603e-003 1.2120 0.015153 +0.10617 -0.23223 1.3005 +END_DATA diff --git a/doc/ccmxs/Spyder2_EIZO_S2433W_standard_1964.ccmx b/doc/ccmxs/Spyder2_EIZO_S2433W_standard_1964.ccmx new file mode 100644 index 0000000..d1960b3 --- /dev/null +++ b/doc/ccmxs/Spyder2_EIZO_S2433W_standard_1964.ccmx @@ -0,0 +1,25 @@ +CCMX + +DESCRIPTOR "ColorVision Spyder2 (CIE 1964 10 degree observer) & EIZO_S2433W" +KEYWORD "INSTRUMENT" +INSTRUMENT "ColorVision Spyder2 (CIE 1964 10 degree observer)" +KEYWORD "DISPLAY" +DISPLAY "EIZO_S2433W" +KEYWORD "REFERENCE" +REFERENCE "GretagMacbeth i1 Pro" +ORIGINATOR "Argyll ccmx" +CREATED "Sun Oct 31 22:09:52 2010" +KEYWORD "COLOR_REP" +COLOR_REP "XYZ" + +NUMBER_OF_FIELDS 3 +BEGIN_DATA_FORMAT +XYZ_X XYZ_Y XYZ_Z +END_DATA_FORMAT + +NUMBER_OF_SETS 3 +BEGIN_DATA +1.1215 0.13625 0.039510 +-0.026007 1.2650 0.068299 +0.14057 -0.29555 1.3623 +END_DATA diff --git a/doc/ccmxs/Spyder3_EIZO_S2233_standard_1964.ccmx b/doc/ccmxs/Spyder3_EIZO_S2233_standard_1964.ccmx new file mode 100644 index 0000000..214a680 --- /dev/null +++ b/doc/ccmxs/Spyder3_EIZO_S2233_standard_1964.ccmx @@ -0,0 +1,25 @@ +CCMX + +DESCRIPTOR "Datacolor Spyder3 (CIE 1964 10 degree observer) & EIZO S2233" +KEYWORD "INSTRUMENT" +INSTRUMENT "Datacolor Spyder3 (CIE 1964 10 degree observer)" +KEYWORD "DISPLAY" +DISPLAY "EIZO S2233" +KEYWORD "REFERENCE" +REFERENCE "GretagMacbeth i1 Pro" +ORIGINATOR "Argyll ccmx" +CREATED "Mon Nov 15 23:15:33 2010" +KEYWORD "COLOR_REP" +COLOR_REP "XYZ" + +NUMBER_OF_FIELDS 3 +BEGIN_DATA_FORMAT +XYZ_X XYZ_Y XYZ_Z +END_DATA_FORMAT + +NUMBER_OF_SETS 3 +BEGIN_DATA +0.81240 0.11317 0.056264 +-0.058301 1.0547 0.059013 +0.068682 -0.28738 1.1497 +END_DATA diff --git a/doc/ccmxs/Spyder3_EIZO_S2243W_standard_1931.ccmx b/doc/ccmxs/Spyder3_EIZO_S2243W_standard_1931.ccmx new file mode 100644 index 0000000..7fbf60b --- /dev/null +++ b/doc/ccmxs/Spyder3_EIZO_S2243W_standard_1931.ccmx @@ -0,0 +1,25 @@ +CCMX + +DESCRIPTOR "Datacolor Spyder3 & EIZO S2243W" +KEYWORD "INSTRUMENT" +INSTRUMENT "Datacolor Spyder3" +KEYWORD "DISPLAY" +DISPLAY "EIZO S2243W" +KEYWORD "REFERENCE" +REFERENCE "X-Rite ColorMunki" +ORIGINATOR "Argyll ccmx" +CREATED "Thu Nov 25 19:28:17 2010" +KEYWORD "COLOR_REP" +COLOR_REP "XYZ" + +NUMBER_OF_FIELDS 3 +BEGIN_DATA_FORMAT +XYZ_X XYZ_Y XYZ_Z +END_DATA_FORMAT + +NUMBER_OF_SETS 3 +BEGIN_DATA +0.95589 0.019068 0.017652 +-2.3435e-003 0.97122 -4.2447e-003 +2.9065e-003 -4.1199e-004 1.0474 +END_DATA diff --git a/doc/ccmxs/Spyder3_HP_LP2475w.ccmx b/doc/ccmxs/Spyder3_HP_LP2475w.ccmx new file mode 100644 index 0000000..40e990c --- /dev/null +++ b/doc/ccmxs/Spyder3_HP_LP2475w.ccmx @@ -0,0 +1,25 @@ +CCMX + +DESCRIPTOR "Datacolor Spyder3 & HP LP2475w" +KEYWORD "INSTRUMENT" +INSTRUMENT "Datacolor Spyder3" +KEYWORD "DISPLAY" +DISPLAY "HP LP2475w" +KEYWORD "REFERENCE" +REFERENCE "GretagMacbeth i1 Pro" +ORIGINATOR "Argyll ccmx" +CREATED "Mon Sep 13 23:44:09 2010" +KEYWORD "COLOR_REP" +COLOR_REP "XYZ" + +NUMBER_OF_FIELDS 3 +BEGIN_DATA_FORMAT +XYZ_X XYZ_Y XYZ_Z +END_DATA_FORMAT + +NUMBER_OF_SETS 3 +BEGIN_DATA +0.92077 0.050783 -0.010618 +6.1547e-003 0.89775 5.5560e-003 +0.028303 -0.16027 0.87261 +END_DATA diff --git a/doc/ccmxs/Spyder3_NEC2690WUXi2.ccmx b/doc/ccmxs/Spyder3_NEC2690WUXi2.ccmx new file mode 100644 index 0000000..2a663bc --- /dev/null +++ b/doc/ccmxs/Spyder3_NEC2690WUXi2.ccmx @@ -0,0 +1,25 @@ +CCMX + +DESCRIPTOR "Datacolor Spyder3 & NEC MultiSync LCD2690WUXi2" +KEYWORD "INSTRUMENT" +INSTRUMENT "Datacolor Spyder3" +KEYWORD "DISPLAY" +DISPLAY "NEC MultiSync LCD2690WUXi2" +KEYWORD "REFERENCE" +REFERENCE "GretagMacbeth i1 Pro" +ORIGINATOR "Argyll ccmx" +CREATED "Sat Sep 11 17:42:33 2010" +KEYWORD "COLOR_REP" +COLOR_REP "XYZ" + +NUMBER_OF_FIELDS 3 +BEGIN_DATA_FORMAT +XYZ_X XYZ_Y XYZ_Z +END_DATA_FORMAT + +NUMBER_OF_SETS 3 +BEGIN_DATA +1.0956 0.012843 2.0372e-004 +0.013872 1.0803 7.7446e-003 +0.032831 -0.15950 1.0888 +END_DATA diff --git a/doc/ccmxs/Spyder3_NEC_PA301W.ccmx b/doc/ccmxs/Spyder3_NEC_PA301W.ccmx new file mode 100644 index 0000000..b0dd777 --- /dev/null +++ b/doc/ccmxs/Spyder3_NEC_PA301W.ccmx @@ -0,0 +1,25 @@ +CCMX + +DESCRIPTOR "Spyder3 & NEC PA301W" +KEYWORD "INSTRUMENT" +INSTRUMENT "Spyder3" +KEYWORD "DISPLAY" +DISPLAY "NEC WA301P" +KEYWORD "REFERENCE" +REFERENCE "NEC factory read of primaries; monitor is new" +ORIGINATOR "DC" +CREATED "Sun 06 Jan 2013 19:50 " +KEYWORD "COLOR_REP" +COLOR_REP "XYZ" + +NUMBER_OF_FIELDS 3 +BEGIN_DATA_FORMAT +XYZ_X XYZ_Y XYZ_Z +END_DATA_FORMAT + +NUMBER_OF_SETS 3 +BEGIN_DATA +1.03390 -0.00402 0.00022 +0.01819 0.98822 0.00145 +-0.00899 0.04468 1.02205 +END_DATA diff --git a/doc/cctiff.html b/doc/cctiff.html new file mode 100644 index 0000000..c19d5c5 --- /dev/null +++ b/doc/cctiff.html @@ -0,0 +1,351 @@ + + + + cctiff + + + + +

imdi/cctiff

+

Summary

+ Color convert a TIFF or JPEG file using a sequence of compatible ICC + device profiles, abstract profiles, device link profiles and + calibration files. The sequence may be zero length, facilitating + format conversion and ICC profile embedding without otherwise + altering the pixel values.
+

Usage
+

+ cctiff [-options] { [-i intent] profile.icm | [-d dir] + calibration.cal ...} infile.tif + + outfile.tif
+
+  -v            +    + +    Verbose
+  -c            +    + +    Combine linearisation curves into one transform
+  -p            +    + +    Use slow precise floating point conversion, rather + than fast integer routines.
+  -k            +    + +    Check fast result against precise, and report + differences.
+
 -r n       +           Override + the default CLUT resolution
+
 -t n       +           Choose + output encoding from 1..n
+  -f [T|J]             + Set output format to Tiff or Jpeg (Default is same as input)
+  -q quality           + Set JPEG quality 1..100 (Default 80)
+
 -a +            +        Read and Write planes > 4 as + alpha planes
+
 -I                   +Ignore + + any file or profile colorspace mismatches
+  -D                   +Don't + + append or set the output TIFF description
+
+

+  
-e profile.[icm + | tiff | jpg]  Optionally embed a profile in the destination + TIFF or JPEG file.
+                           + +
This + may be an ICC file or TIFF or JPEG file with embedded profile.
+
+                       +Then + + for each profile in the linked sequence:
+
  -i intent       +      Profile intent
+         +                 p = + perceptual, r = relative colorimetric,
+                 +    + +     s = saturation, a = absolute colorimetric
+
  + -o order      +         n = normal (priority: lut + > matrix > monochrome)
+                         +r + + = reverse (priority: monochrome > matrix > lut)

+   profile.[icm | tiff | jpg]  A Device, Link or + Abstract profile. This may be an ICC file
+                         +(May + + be embedded profile in TIFF or JPEG file)
+
                      +or + + each calibration file in sequence:
+
  -d dir       +         Calibration direction
+         +                 f = + forward cal. (default), b = backwards cal.

+   calibration.cal       + + A calibration file.

+
+              +                +             +     Then finally:
+  infile.tif       +    A TIFF + or JPEG Raster file that + will be the input raster to be transformed.
+  outfile.tif     +     A TIFF or JPEG + Raster file created from the input raster, using the given color + transform.

+

+ Examples

+
+ Convert an RGB file to a CMYK file using perceptual intent:
+
+     cctiff -ip sRGB.icm -i cmyk.icm rgbinfile.tif + cmykoutfile.tif
+
+ Same as above, but use the source file embedded profile, and embed + the resulting colorspace profile in the output:
+
+     cctiff -e cmyk.icm -ip rgbfile.tif -ip + cmyk.icm  rgbinfile.tif cmyout.tif
+
+ Convert a raster file using a device link:
+
+     cctiff devicelink.icm infile.tif outfile.tif
+
+ Convert an RGB source to CMYK via an abstract adjustment, and then + convert the CMYK to CMYK using a device link, also apply CMYK + calibration:
+
+     cctiff -ir sRGB.icm abstract.icm -ir CMYK.icm + devlink.icm CMYKcal.cal infile.tif outfile.tif
+
+ Convert an RGB source file into a CIELab raster file:
+
+     cctiff -t1 -ir sRGB.icm rgbfile.tif labfile.tif
+

Comments
+

+ The -v + flag reports extra information about the ICC profile.
+
+ The + -c, -p, -k and -r + options are intended to aid debugging.
+
+ -t Some colorspaces can be + encoded in more than one way. If there is a choice, the choice + should be specified the -t + parameter. If this parameter is not given, then cctiff will print + the possible choices and choose the default. For TIFF LAB output + there are two choices 1 for + CIELab encoding (Default), and 2 + for ICCLab encoding. For JPEG RGB output there are two choices: 1 for YCbCr encoding with + sub-sampled Cb and Cr (Default)\n", and 2 RGB encoding which does not use sub sampling. For + JPEG CMYK output there are two choices: 1 for YCCK encoding with sub-sampled C and C + (Default)\n", and 2 CMYK + encoding which does not use sub sampling
+
+ -f By default the output raster + file format will be the same as the input, and the -f parameter will override this. + -f T will select TIFF format output, and -f J will select JPEG format output.
+
+ -q JPEG raster files use lossy + compression, and the -q + parameter controls how much compression is used in creating a JPEG + output file. The value can be between 1 and 100, with 1 being the + lowest quality and highest compression, and 100 being the highest + quality and lowest compression. The default value is 80.
+
+ Normally + colorspaces that have more than 4 channels will be read and written + as multichannel TIFF files. These are not handled well by all + applications, so the -a + option causes extra channels above 4 to be stored as alpha planes, + providing more flexibility in using such files.
+
+ The -I flag + causes any mismatch between the color spaces of the image files and + each profile in the sequence to be ignored. The results might be + unpredictable unless you know exactly what you are doing.
+
+ The -D flag + stops the description tag being set or appended to by cctiff.
+
+ The -e profile.[icm | tiff | jpg] option allows an ICC + profile to be embedded in the destination TIFF or JPEG + file. The profile may either be an ICC file or a TIFF or + JPEG file with embedded profile.
+
+ Following these global options, you should specify the chain of + profiles and calibrations you want to apply. Each link of the chain + consists of the (optional) intent to be used for device profiles and + the filename of the profile, or the optional direction to be used + for the calibration and the filename of the calibration. The first + profile or calibrations input colorspace must be compatible with the + input TIFF file, and each profile or calibration output space must + be compatible with the next profile or calibrations input space. An + error will result if this is not the case.
+
+
The -i parameters selects the + intent for the following device profile. Normally the same intent + should be used for all device profiles, but other combinations + allow special uses such as mixed proofing workflows.
+
+ The -o + parameter changes the order the profiles tags are searched in. A + profile is allowed to contain more than the minimum number of + elements or table needed to describe a certain transform, and may + contain redundant descriptions.  By default, lut based table + information will be used first if present, followed by + matrix/shaper information, and only using monochrome information + if it is all that is present. -o r reverses this order.
+
+ The file that will be the source of the ICC + profile. This can be either an ICC profile or a TIFF or JPEG file + that contains an embedded profile. Typically the first profile in + the chain might be taken from an embedded profile from the source + TIFF or JPEG file.
+
+ The -d + parameters selects the direction for the following calibration. + The default direction is the normal forward calibration, but if + -db is used, then a backwards (inverse) calibration will be + applied.
+
+ The file that will be the source calibration. + This will be an Argyll .cal + format file.
+
+
+ The second last argument should be the name of the + source TIFF or JPEG file that is to be processed.
+
+ The last argument should be the name of the + destination TIFF or JPEG file to hold the results.
+
+ cctiff uses very fast + integer conversion routines to process the raster. Both 8 and 16 bit + per component files can be handled, and up to 8 color channels (The + limit can be lifted to 15 re-compiling). JPEG files with no more + than 8 bit per component can be handled.
+
+
+
+
+
+ + diff --git a/doc/ccxxmake.html b/doc/ccxxmake.html new file mode 100644 index 0000000..c4d8059 --- /dev/null +++ b/doc/ccxxmake.html @@ -0,0 +1,954 @@ + + + + ccxxmake + + + + +

spectro/ccxxmake

+

Summary

+ For Colorimeters that rely on a calibration matrix, ccxxmake allows creation of a + correction matrix file (ccmx) + for a particular Colorimeter & + Display combination, by making use a reference Spectrometer or Colorimeter + instrument. This can then be used to improve the accuracy of + subsequent measurements with that Colorimeter on that Display by + using it with the dispcal, dispread and spotread + -X option. A ccmx file can also be installed, + and will then appear in the available display type selection (-y + option). See Wide Gamut Displays + and Colorimeters for more information on why this may be + useful. [ Note that to make + use of a colorimeter as a CCMX reference, you will have to + provide two .ti3 files rather than using interactive measurement- + see -f. ]
+
+ For Colorimeters that have sensor spectral sensitivity calibration + information built into them  (ie. the X-Rite i1d3, and + DataColor Spyder4), ccxxmake allows a creation of a + calibration spectral sample (ccss) + for a particular Display, + by making use a reference Spectrometer + instrument. This can then be used to improve the accuracy of + subsequent measurements on that Display using such Colorimeters, by + using it with the dispcal, dispread and spotread + -X option, or it can be installed, and + will then appear in the available display type selection (-y + option).
+
+ The instrument manufacturer may supply spectral sample files (see oeminst).
+
+ There is a list of contributed ccmx (Colorimeter Correction + Matrix) files.
+

Usage Summary

+ ccxxmake [-options] + correction.ccmx
+
 -v              + + + + + + + + + + + + + +       Verbose mode
+   -S                                         +Create +CCSS +rather + + + + + + + + + + + + + + than CCMX
+   -f file1.ti3[,file2.ti3] +                +Create +from +one +or +two + + + + + + + + + + + + + + .ti3 files rather than measure.
+  -display + + + + + + + + + + + + + + displayname  [X11 only] Choose X11 display name
+  -d + n[,m] +              + [X11 only] Choose the display from the following list (default 1),
+                        +and +optionally +choose +a +different +display +m + + + + + + + + + + + + + + for VideoLUT access.
+  -d + + + + + + + + + + + + + + n                  +Choose +the +display +from +the +following +list + + + + + + + + + + + + + + (default 1)
+  -dweb[:port]          + + + + + + + + + + + + + + + + + + Display via a web server at port (default 8080)
+  -p                    + + + + + + + + + + + + + + Use telephoto mode (ie. for a projector) (if available)
+   -y X +                +  + + + + + + + + + + + + + + Display type - instrument specific list to choose from. (CCMX)
+  -P + + + + + + + + + + + + + + ho,vo,ss[,vs]      Position test + window and scale it
+                        +ho,vi: +0.0 += +left/top, +0.5 += +center, + + + + + + + + + + + + + + 1.0 = right/bottom etc.
+                        +ss: +0.5 += +half, +1.0 += +normal, + + + + + + + + + + + + + + 2.0 = double etc.
+                        + + + + + + + + ss,vs: = optional horizontal, vertical scale.
+  -F +                    + + + + + + + + + + + + + + Fill whole screen with black background
+  -n              +      +[X11 +only] +Don't +set +override +redirect +on + + + + + + + + + + + + + + test window
+
 -N                    + + + + + + + + + + + + + + Disable initial calibration of instrument if possible
+
 -H +                    + + + + + + + + + + + + + + Use high resolution spectrum mode (if available)
+  -C + + + + + + + + + + + + + + "command"          + Invoke shell "command" each time a color is set
+
 -o + observ        +      Choose CIE Observer for CCMX spectral + data:
+             +              1931_2
(def.), 1964_10, S&B 1955_2, shaw, + J&V 1978_2
+
 -s steps              +Override +default +patch +sequence + + + + + + + + + + + + + + combination steps (default 3)
+  -W + + + + + + + + + + + + + + n|h|x              +Override +serial +port +flow +control: +n += + + + + + + + + + + + + + + none, h = HW, x = Xon/Xoff
+  -D [level] +            Print + debug diagnostics to stderr
+
 -E "description"      +Override +the +default +overall + + + + + + + + + + + + + + escription
+  -I + "displayname"      Set display make and model + description
+  
-T + + + + + + + + + + + + + + "displaytech"      Set display technology description + (ie. CRT, LCD etc.)
+  -U c                  + + Set UI selection character(s)
+  -Y + r|n           + + + + + + + + + +      Override refresh, non-refresh display + mode
+  -YA +              +      Use non-adaptive integration time mode + (if available).
+  correction.ccmxcalibration.ccss
+                  +       File to save result to.

+

Usage Details and Discussion

+ The -v flag causes extra information to be + printed out during chartread operation.
+
+ -S By + default a Colorimeter Correction Matrix (CCMX) will be created from both Colorimeter and Spectrometer readings, which + allows correction for errors with a particular Colorimeter and + Display combination. If the -S + flag is used, then instead a Colorimeter Calibration Spectral Set (CCSS) file is created from just + the Spectrometer readings, + that allows calibrating any suitable Colorimeter to the Display.
+
+ -f file1.ti3[,file2.ti3] + By default ccxxmake creates a CCMX file by displaying test + patches on the screen, and then prompting you to measure them + interactively with the two instruments. An alternative is to create + a small number of test values using targen suitable for display profiling (or use the ref/ccxx.ti1 file provided with + ArgyllCMS), and then measure them with the two instruments using dispread to create a reference + and target .ti3 files, and then provide the two files as arguments + to ccxxmake -f. Normally + the reference file will be created using a spectral instrument and + you will want to use the -s + flag with dispread for this. If you want to use a colorimeter as a + reference instrument, then make sure that it is the first file + provided to the ccxxmake -f + option. The filenames should be concatenated with a "," separator without spaces. + You will also have to supply a display name using the -I option and/or technology + description using -T.
+ When creating a CCSS file, + only spectral readings from the display measured with the reference + instrument are needed, and a single .ti3 file should be provided.
+
+ When running on a UNIX based system that used + the X11 Windowing System, ccxxmake will by default use the + $DISPLAY environment variable to determine which display and screen + to read from. This can be overridden by supplying an X11 display + name to the -display + option. Note that if Xinerama is active, you can't select the screen + using $DISPLAY or -display, you have to select it using the -d parameter.
+
+ By default the main display will be the location of + the test window. If the system has more than one display or screen, + an alternate display/screen can be selected with the -d parameter. If you invoke ccxxmake + so as to display the usage information (i.e. "dispcal -?" or + "dispcal --"), then the discovered displays/screens will be listed. + Multiple displays may not be listed, if they appear as a single + display to the operating system (ie. the multi-display support is + hidden in the video card driver). On UNIX based system that used the + X11 Windowing System, the -d + parameter will override the screen specified by the $DISPLAY or + parameter.
+
+ Because of the difficulty cause by TwinView and + MergedFB in X11 based systems, you can optionally specify a separate + display number after the display that is going to be used to present + test patches, for accessing the VideoLUT hardware. This must be + specified as a single string, e.g. -d + + + + + + + + + + + + + + 1,2 . Some experimentation may be needed using dispwin on such systems, to discover what + screen has access to the VideoLUT hardware, and which screens the + test patches appear on.
+
+ -dweb or + -dweb:port starts a + standalone web server on your machine, which then allows a local or + remote web browser to display the the color test patches. By default + port 8080 is used, but this + can be overridden by appending a : + and the port number i.e. -dweb:8001. + The URL will be http:// + then name of the machine or its I.P. address followed by a colon and + the port number - e.g something like http://192.168.0.1:8080. If you use the verbose + option (-v) then a likely + URL will be printed once the server is started, or you could run ipconfig (MSWin) or /sbin/ifconfig (Linux or OS X) + and identify an internet address for your machine that way.
+
+ The -p flag + allows measuring in telephoto mode, using instruments that support + this mode, e.g. the ColorMunki. Telephoto mode is one for taking + emissive measurements from a distance (ie. telespectometer, + tele-colorimeter) mode, and typically would be used for measuring + projector type displays. If a device does not support a specific + telephoto mode, then the normal emissive mode may be suitable for + measuring projectors.
+
+ The -y + flag allows setting the Display Type used as a base for color + correction matrix CCMX creation. Only base calibration display types + will be listed. The selection typically determines two aspects of of + the instrument operation: 1) + It may set the measuring mode to suite refresh or non-refresh displays. + Typically only LCD (Liquid Crystal) displays have a non-refresh + nature. 2) It may select an + instrument internal calibration matrix suitable for a particular + display type. The selections available depends on the type and model + of instrument, and a list of the options for the discovered + instruments will be shown in the usage + information. For more details on what particular instruments support + and how this works, see Operation of + particular instruments. Any CCMX created will work on top of + the selected Display Type, so to be valid, the same Display Type + must be selected whenever the CCMX is used with this instrument. + Installed CCMX files will automatically select the appropriate base + type.
+
+ The -P + parameter allows you to position and size the test patch window. By + default it is places in the center of the screen, and sized + appropriately for the type of instrument. The ho and vo values govern the horizontal + and vertical offset respectively. A value of 0.0 positions the + window to the far left or top of the screen, a value of 0.5 + positions it in the center of the screen (the default), and 1.0 + positions it to the far right or bottom of the screen. If three + parameters are provided, then the ss + parameter is a scale factor for the test window size. A value of 0.5 + for instance, would produce a half sized window. A value of 2.0 will + produce a double size window. If four parameters are provided, then + the last two set independent horizontal and vertical scaling + factors. Note that the ho,vo,ss or ho,vo,hs,vs numbers must be + specified as a single string (no space between the numbers and the + comma). For example, to create a double sized test window at the top + right of the screen, use -P 1,0,2 + . To create a window twice as wide as high: -P 1,0,2,1.
+
+ The -F + flag causes the while screen behind the test window to be masked + with black. This can aid black accuracy when measuring CRT displays + or projectors.
+
+ -n When + running on a UNIX based system that used the X11 Windowing System, dispcal + normally selects the override redirect so that the test window will + appear above any other windows on the display. On some systems this + can interfere with window manager operation, and the -n + option turns this behaviour off.
+
+ -N Any + instrument that requires regular calibration will ask for + calibration on initial start-up. Sometimes this can be awkward if + the instrument is being mounted in some sort of measuring jig, or + annoying if several sets of readings are being taken in quick + succession. The -N + suppresses this initial calibration if a valid and not timed out + previous calibration is recorded in the instrument or on the host + computer. It is advisable to only use this option on the second and + subsequent measurements in a single session.
+
+ The -H + option on high resolution spectral mode, if the instrument supports + it, such as the Eye-One Pro. See Operation + + + + + + + + + + + + + of particular instruments for more details. This may give + better accuracy for display measurements.
+
+ The -C "command" option allows a + method of relaying each test value to some other display than that + on the system running dispcal (for instance, a photo frame, PDA + screen etc.), by causing the given command to be invoked to the + shell, with six arguments. The first three arguments are the RGB + test color as integers in the range 0 to 255, the second three + parameters are the RGB test color as floating point numbers in the + range 0.0 to 1.0. The script or tool should relay the given color to + the screen in some manner (e.g. by generating a raster file of the + given color and sending it to the display being profiled), before + returning. Note that a test window will also be created on the + system running dispread.
+
+ (CCMX creation) The -o flag allows + specifying a tristimulus observer, and is used to compute + tristimulus values from spectral readings.  The following + choices are available:
+   1931_2 selects the standard CIE 1931 2 degree + observer. The default.
+   1964_10 selects the standard CIE 1964 10 degree + observer.
+   1955_2 selects the Stiles and Birch 1955 2 degree + observer
+   1978_2 selects the Judd and Voss 1978 2 degree + observer
+   shaw selects the Shaw and Fairchild 1997 2 degree + observer
+
+ The -s steps + parameter overrides the default number of test patch combination + steps used in measuring a colorimeter & display combination.  The steps are those out + of every combination of R,G & B values of the given number of + steps that have at least one colorant at 100%. So 2 steps gives 7 + test patches, 3 gives 19, 4 gives 37, 5 gives 61, 6 gives 91 etc. + Note that typically this won't make much difference to the resulting + calibration, since it depends primarily on the underlying spectral + characteristics of the display.
+
+ The -W n|h|x + parameter overrides the default serial communications flow control + setting. The value n turns + all flow control off, h + sets hardware handshaking, and x + sets Xon/Xoff handshaking. This commend may be useful in workaround + serial communications issues with some systems and cables.
+
+ The -D flag causes communications and other + instrument diagnostics to be printed to stdout. A level can be set + between 1 .. 9, that may give progressively more verbose + information, depending on the instrument. This can be useful in + tracking down why an instrument can't connect.
+
+ The -E parameter allows overriding the ccmx/ccss files overall + description tag. Normally this is not necessary. With most command + line shells, it will be necessary to enclose the parameter with + double quotes, so that spaces and other special characters are + included in the parameter, and not mistaken for the start of another + flag, or as a final command line parameter.
+
+ The -I parameter allows setting of the + display description string in the resulting ccmx/ccss file. Since the + default display description is probably very generic, it is highly recommended that a + description of the make and model of the display be provided here, + or set a display technology description using -T (see below). The default or + given display description will be printed before the menu. With most + command line shells, it will be necessary to enclose the parameter + with double quotes, so that spaces and other special characters are + included in the parameter, and not mistaken for the start of another + flag, or as a final command line parameters.
+
+ The -T parameter allows setting of the + display technology description string in the resulting ccmx/ccss file. The + applicability of the calibration mainly depends on the technology + type of the display, so a description of the technology (ie. "CRT", + "LCD", "LCD + backlight type + LCD type",  etc.) is highly recommended, because it + can make the calibration more widely usable. With most command line + shells, it will be necessary to enclose the parameter with double + quotes, so that spaces and other special characters are included in + the parameter, and not mistaken for the start of another flag, or as + a final command line parameters.
+
+ The -U parameter allows setting of the user + interface selection character this display type can be selected by, + if installed. This character will only be used if there is no clash + with any preceding selections. Characters in the range 0-9, A-Z a-z + can be used.
+
+ The -Y r and + + + + + + + + + -Y n options overrides the refresh display mode set by the -y display type + selection, with -Y r + forcing refresh display mode, and -Y n forcing a non-refresh + display mode. Not all instruments support a display measurement + refresh mode, or the ability to override the mode set by the display + type selection.
+
+ The -Y A + option uses a non-adaptive integration time emission measurement + mode, if the instrument supports it, such as the Eye-One Pro or + ColorMunki. By default an adaptive integration time measurement mode + will be used for emission measurements, but some instruments support + a fixed integration time mode that can be used with display devices. + This may give increased consistency and faster measurement times, + but may also give less accurate low level readings.
+
+ The correction.ccmx is the name of the file to save + the resulting Colorimeter + Correction Matrix to. It is best to give it a short but + informative name that includes the Colorimeter model and the display + make and model. By convention it should have a .ccmx file extension.
+
+ The correction.ccss is the name of the file to save + the resulting Colorimeter + Calibration Spectral Samples to. It is best to give it a short + but informative name that includes the display technology or model. + By convention it should have a .ccss + file extension.
+
+ If you are going to use the same CCMX or CCSS file all the time, + then you may want to set the ARGYLL_COLMTER_CAL_SPEC_SET + environment variable.
+
+
+

Instrument Communications:

+ Unlike the other measurement utilities, ccxxmake doesn't connect to the instrument until it + is about to make a measurement. This allows for the possibility of + using a different instrument for each measurement.
+
+ It will display a menu:
+
+ Press 1 .. 4:
+ 1) Select an instrument, Currently 1 'usb:/bus4/dev2/ (GretagMacbeth + i1 Pro)'
+ 2) Measure test patches with current instrument
+ 3) [ Compute Colorimeter Correction Matrix & save it ]
+ 4) Exit
+
+ For creating a CCMX there are two measurements to be made, after + which the correction matrix can be computed and saved. Before each + measurement, the instrument may need calibrating. For creating a + CCSS a single measurement is needed.
+
+  A spectral measurement using a spectral instrument is always + needed.
+
+  A measurement using the Colorimeter that the correction matrix + is being created for is needed in the case of creating a CCMX, but not needed when creating a CCSS.
+
+ There will be a message before the menu indicating which of the + measurements has been completed.
+
+
+

Display Setup:

+ Because ccmx/ccss is measuring spectral matching, the exact levels + of each channel is not important, so the display settings or + calibration state shouldn't make any difference to the result, as + long as it is the same for the readings of both instruments. + Similarly, the number and variety of test patches shouldn't make a + huge difference, as long as there is at least Red, Green, Blue and + White test patches.
+  
+
+
+
+
+
+
+
+
+
+
+
+
+ + diff --git a/doc/chartread.html b/doc/chartread.html new file mode 100644 index 0000000..18d0144 --- /dev/null +++ b/doc/chartread.html @@ -0,0 +1,499 @@ + + + + chartread + + + + +

spectro/chartread

+

Summary

+ Read a printer test chart using an instrument, to create a .ti3 data file. The type of + instrument is determined by the communication port selected.
+
+ chartread can also be used + to read transmission values, and to read display values manually.
+

Usage

+ chartread [-options] + outfile
+  -v             +  +  +Verbose + + + mode
+  -c listno      +     Set communication port from the following + list (default 1)
+  -t              +   +Use +transmission + + + measurement mode
+
 -d +                 +Use +display +measurement + + + mode (white Y relative results)
+  
-y X +               + + + Display type - instrument specific list to choose from.
+  -e                 +Use +emissive  +measurement + + + mode (absolute results)
+
 -p +                 +Measure +patch +by + + + patch rather than strip
+   -x [lx]            +Take +external +values, + + + either L*a*b* (-xl) or XYZ (-xx).
+  -n             +  +  +Don't + + + save spectral information (default saves spectral)
+
 -l +             +     Save CIE as D50 L*a*b* rather than XYZ
+
 -L +             +     Save CIE as D50 L*a*b* as well as XYZ
+  -r                 +Resume +reading +partly + + + read chart
+  -I + file.cal        Override + calibration info from .ti2 in resulting .ti3
+  
-F filter          + + + Set filter configuration:
+   + n                  + + + None
+   + p                  + + + Polarising filter
+   + 6                  + + + D65
+   + u                  + + + U.V. Cut

+  -N +              +    Disable initial calibration of instrument unless + essential
+
 -B +              +    Disable auto bi-directional strip recognition
+  -H +              +    Use high resolution spectrum mode (if available)
+
 -X file.ccmx          + + + + Apply Colorimeter Correction Matrix
+  -X + file.ccss          +Use +Colorimeter +Calibration +Spectral +Samples + + + + for calibration
+  -Q observ      +        Choose CIE Observer for + spectral data or CCSS instrument:
+             + + + +             
1931_2 (def.), 1964_10, S&B 1955_2, shaw, + J&V 1978_2
+  -T ratio           +Modify +strip +patch + + + consistency tolerance by ratio (if available)
+
 -S                 +Suppress +wrong +strip + + + & unexpected value warnings
+  -W n|h|x           +Override + + + serial port flow control: n = none, h = HW, x = Xon/Xoff
+  -D [level] +         Print debug + diagnostics to stderr
+  inoutfile         + + +  Base name for input[.ti2]/output[.ti3] file

+

Usage Details

+ The -v flag causes extra information to be + printed out during chartread operation.
+
+ Normally instruments are connected via a serial + communication port, and the port used should be selected by + supplying the correct parameter to the -c flag. If you + invoke chartread so as to + display the usage information (i.e. "chartread -?" or "chartread + --"), then the discovered serial ports will be listed on Windows and + Mac OSX systems.
+
+ If using an Xrite DTP41T, and printing onto + transparent or back lit media, use the -t flag to operate + the instrument in transparency mode. If using a Spectrolino or + Eye-One Pro (handheld), this triggers a fake transparency mode, that + uses a separate backlight (such as a light box). The  + instrument will be used to calibrate the level of backlight, and use + this to compute the transparency of the test chart samples. Note + that for good transparency values, the backlight level needs to be + neither too bright not too dark, should ideally be incandescent + rather than fluorescent (since fluorescent lights often have big + dips in their spectrum), and ideally should be of uniform brightness + over the measurement area. If using the SpectroScanT, the -t flag operates the instrument + in transparency mode, each reading being manually triggered.
+
+ The -d flag + allows measuring in display mode using instruments that support this + mode, with the brightness normalized to the white patch value in the + test chart. While the brightness values are then relative to the + white, the readings are otherwise absolute. This corresponds to the + raw ICC absolute readings created by dispread, + and is the mode that should be used for creating a normal display + ICC profile using manual, spot by spot readings. This can be useful + if the display cannot be driven directly by the computer, but can be + made manually to display the test charts.
+
+   The -y + flag allows setting the Display Type. The selection typically + determines two aspects of of the instrument operation: 1) It may set the measuring mode + to suite refresh or non-refresh displays. + Typically only LCD (Liquid Crystal) displays have a non-refresh + nature. 2) It may select an + instrument calibration matrix suitable for a particular display + type. The selections available depends on the type and model of + instrument, and a list of the options for the discovered instruments + will be shown in the usage + information. For more details on what particular instruments support + and how this works, see Operation of + particular instruments. 3) Any installed CCSS files + (if applicable), or CCMX files. These files are typically created + using ccxxmake, and installed using oeminst. The default and Base Calibration + types will be indicated in the usage.
+
+ If using an instrument that supports an emissive + measurement mode (such as the Spectrolino), then the -e flag enables this measurement + mode, and the values recorded will be absolute XYZ values. This can + be used for media such as backlit film, measuring it on a lightbox, + so as to capture the actual illumination characteristics of that + particular media. An adaptive integration time will be used in + devices that support it.
+
+ The -p + flag causes chartread to use a spot read mode for an instrument, + even if it is capable of faster chart reading modes such as strip + reading. This can be useful if strip measurement patch recognition + is not reliable for certain media.
+
+ The -x + flag causes chartread to expect values to be entered for each + reading, rather than using an instrument to do the + measurements.  This mode is ideal if your instrument is not + supported by Argyll. Either XYZ or L*a*b* values can be entered, + depending on what option follows -l, -lx to specify XYZ values, or -ll to specify L*a*b* values. + XYZ values are expected to be scaled to a maximum of 100. It is + possible to navigate about the test values being measured, so as to + do them in any order, as well as re-do values, in case of any + mistakes.
+
+ -n By + default spectral information as well as D50 standard observer XYZ + values will be recorded for each test patch, when such readings are + available from a device. The spectral readings allow for choosing a + non-standard viewing illuminant, a non-standard observer model, or + the use of the Fluorescent Paper Whitener Additive compensation when + creating the profile. If the spectral readings are not needed, then + prinread operation can be speeded up by specifying the -n + flag.
+
+ -l By + default D50 standard observer XYZ values will be recorded for each + test patch, but if the -l flag is used, D50 + L*a*b* values will be recorded instead.
+
+ -L By + default D50 standard observer XYZ values will be recorded for each + test patch, but if the -L flag is used, XYZ and D50 L*a*b* values will + be recorded.
+
+ -r By + default chartread reads the chart from scratch each time. When + reading a chart using a strip instrument or patch by patch you can + choose to finish chartread without reading all the patches, and + whatever patches have been read will be saved to the output .ti3 + file. You can then resume + reading the patches by using the -r + flag, in which case chartread will read the .ti3 file and set the + patches to those previously read values, allowing any unread patches + to then be read, or to re-read previously read patches.
+
+ -I file.cal  Normally per + channel calibration curves are added to the .ti2 file using the printtarg -K or -I options, so that they will be + passed on to the .ti3 file by  chartread, so that colprof + is able to correctly compute total ink limits. Where the calibration + is being applied in a workflow with native calibration capability though, it is + sometimes convenient to re-use a profile chart with different + calibration curves without going through the process of using printtarg to re-create it. This + would mean though, that the calibration information and subsequent + ink limit calculations wouldn't be accurate. To overcome this and + allow such a scenario, the chartread + + -I parameter allows overriding the .ti2 calibration curves + placed in the resulting .ti3 file with the actual calibration that + was used for that particular print.
+
+ The -F options allows configuring the + instrument to have a particular filter fitted to it. Some + instruments (i.e. the Gretag Spectrolino) allow the fitting of + various filters, such as a polarizing filter, D65 illuminant + simulation, or Ultra Violet Cut filter, and this option allows the + instrument to be configured appropriately.
+
+ -N Any + instrument that requires regular calibration will ask for + calibration on initial start-up. Sometimes this can be awkward if + the instrument is being mounted in some sort of measuring jig, or + annoying if several sets of readings are being taken in quick + succession. The -N + suppresses this initial calibration if a valid and not timed out + previous calibration is recorded in the instrument or on the host + computer. It is advisable to only use this option on the second and + subsequent measurements in a single session.
+
+ -B Some + strip instruments (i.e.. Eye-One Pro, Color Munki) when used with + Argyll will automatically recognize a strip when read in the reverse + direction by matching the patch readings against their expected + values. If the randomized patch layout has not been used, or the + expected values are not known accurately enough, this may cause + erroneous reverse recognition, so the -B flag + allows this to be turned off, forcing strips to only be read in the + forward direction.
+
+ The -H + option turns on high resolution spectral mode, if the instrument + supports it. See Operation of particular + instruments for more details.
+
+ The -X file.ccmx option reads + a Colorimeter Correction Matrix + from the given file, and applies it to the colorimeter instruments + readings. This can improve a colorimeters accuracy for a particular + type of display. A list of contributed ccmx files is here.
+
+ The -X file.ccss option reads + a Colorimeter Calibration + Spectral Sample from the given file, and uses it to set the + colorimeter instruments calibration. This will only work with + colorimeters that rely on sensor spectral sensitivity calibration + information (ie. the X-Rite i1d3, + or the DataColor Spyder4).This +can +improve +a + + + colorimeters accuracy for a particular type of display.
+
+ The -T ratio + argument modifies the patch consistency tolerance threshold for some + strip reading instruments (ie. the Eye-One Pro). In recognizing + patches in a strip, an instrument may take multiple readings as the + strip is read, and then divide the readings up into each patch. It + may then check the consistency of the multiple readings + corresponding to each patch, and reject the measurement if they are + too inconsistent. For some media (ie. a coarser screens, fabric + etc.) the default tolerance may be unreasonably tight, so the -T ratio argument can be used to + modify this criteria. To loosen the tolerance, use a number greater + than 1.0 (ie. 1.5, 2.0).
+
+ The -Q flag allows specifying a tristimulus + observer for a colorimeter when using CCSS instrument calibration + capability. The following choices are available:
+   1931_2 selects the standard CIE 1931 2 degree + observer. The default.
+   1964_10 selects the standard CIE 1964 10 degree + observer.
+   1955_2 selects the Stiles and Birch 1955 2 degree + observer
+   1978_2 selects the Judd and Voss 1978 2 degree + observer
+   shaw selects the Shaw and Fairchild 1997 2 degree + observer
+
+ The -S flag causes the normal "wrong strip" + and "unexpected value" warnings to be suppressed. There may be a lot + of these warnings if the expected patch value in the .ti2 file is in + fact far from the values actually being measured. It is probably + advisable to also use the -B + flag if warnings are turned off, since many warnings indicate that + the expected values are not to be relied on. With warnings + suppressed, greater care must be taken to read the correct strip.
+
+ The -W n|h|x + parameter overrides the default serial communications flow control + setting. The value n turns + all flow control off, h + sets hardware handshaking, and x + sets Xon/Xoff handshaking. This commend may be useful in workaround + serial communications issues with some systems and cables.
+
+ The -D flag causes communications and other + instrument diagnostics to be printed to stdout. A level can be set + between 1 .. 9, that may give progressively more verbose + information, depending on the instrument. This can be useful in + tracking down why an instrument can't connect.
+
+ The inoutfile parameters should be the + base name of the .ti2 file, and chartread will output an .ti3 that + has the same basename and the .ti3 extension. If the incoming .ti2 + file contains per-channel calibration curves, these will be passed + through to the .ti3 so that accurate ink limits can be computed + during profiling.
+
+
+

Discussion

+ For information about the operation of different instruments, see Operation of particular instruments.
+
+
+ + diff --git a/doc/cht_format.html b/doc/cht_format.html new file mode 100644 index 0000000..1e02db1 --- /dev/null +++ b/doc/cht_format.html @@ -0,0 +1,576 @@ + + + + Scan Recognition Format File (.cht) + + + + +

Description of the .cht format

+[This is a rather inflexible format, that should really be replaced +with a CGATS style file.]
+
+The .cht format file is used +to hold the image recognition information that allows the scanin program to align the input image with +the specified sample boxes.
+
+A raw .cht file can be +produced by running scanin +with the -g option, although this will +then need +cleaning up manually, using a text editor. The cleanup consists of +deleting +any unwanted reference lines from the XLIST and YLISTs, adding the the +sample +box references, and possibly adding the expected sample values.
+
+The .cht image recognition +file is usually set up to recognized a scanned test chart that includes +the edges of the chart itself, not +a cropped version of the chart that excludes the edges of the chart +itself. This is to allow scanin +to be used with scans that have just be roughly cropped, without +requiring that a scan be treated in detail with an application such as +Adobe Photoshop.
+
+The keywords and associated data must be used in the following order: BOXES, +BOX_SHRINK, REF_ROTATION, XLIST, YLIST +and EXPECTED.
+
+The physical units used for boxes and edge lists are arbitrary units +(i.e. +pixels as generated by scanin -g, but could be mm, inches etc. if +created + some other way), the only requirement is that the sample box +definitions need to agree with the X/YLIST definitions. Typically if a +scanned chart is used to build the reference, the units will be pixels +of the scanned chart.
+
+The BOXES keyword introduces the list of diagnostic and sample +boxes. +The integer following this keyword must be the total number of +diagnostic +and sample boxes, but not +including any fiducual marks. The lines following the BOXES keyword must +then +contain +the fiducial mark, diagnostic or sample box definitions. Each box +definition line +consists +of 11 space separated parameters, and can generate a grid of sample or +diagnostic +boxes:
+
+    kl lxs lxe lys lye w h xo yo xi yi
+
+with the following usage:
+
+    kl is a key letter.
+
+        F +is used to define four fiducial mZarks that may be used for manual +alignment of an image to the target. The four marks are nominally a +top left mark, a top right mark, bottom right mark and a bottom left +mark. The parameters are labeled as follows:

+       
F _ _ x0 y0 x1 y1 x2 y2 +x3 y3
+
+       
Where the first two +parameters are not used, and a '_' character should be used as +a place holder, and the follows the X and Y coordinates for the four +fiducial marks. Typically fiducial marks are chosen +to be at the corners of the overall bounding box, or at corner cross +marks on the chart etc. Fiducial marks may be omitted, but in this case +manual alignment cannot be used.
+
+        D is used for a diagnostic +box which will show up in the diagnostic raster output, but is not used +as +a sample box.  The label information can be arbitrary.
+    
+        X is used for a sequence +of boxes in which the X label comes first in the concatenated sample +box label.
+        
+        Y is used for a sequence +of boxes in which the Y label comes first in the concatenated sample +box label.
+
+        Boxes are created incrementing in +the X direction fastest, and the Y direction slowest.
+
+    lxs is the X axis starting label. This is +generally a letter or number, and it will be incremented appropriately +to reach lxe
+
+    lxe is the X axis ending label. When the X +label reaches this this value (inclusively), the iteration in the X +direction will reset.
+
+    lys is the Y axis starting label. This is +generally a letter or number, and it will be incremented appropriately +to reach lye
+
+    lye is the Y axis ending label. When the Y +label reaches this this value (inclusively), the iteration through the +boxes will end.
+
+    The X & Y labels will be concatenated to form +the sample box label.
+
+    A sample label that consists of the character '_' is +treated as a null label (useful for an array that only iterates in one +direction).
+
+    w, h are the width and height of each +box in the array.
+
+    xo, yo are the origin of the top +left +of the array.
+
+    xi, yi are the increments between +each +box in the array.
+
+A blank line should follow the last box definition line.
+
+The keyword BOX_SHRINK marks the definition of how much each +sample +box should be shrunk on each edge before sampling the pixel values. +This +allows the sample boxes to be defined at their edges, while allowing a +safety +margin for the pixels actually sampled. The units are the same +arbitrary units +used for the sample box definitions.
+
+A blank line should follow this keyword.
+
+The optional REF_ROTATION keyword indicates the rotation in +radians +clockwise of the reference image when the edge lists were generated. +This +amount of rotation is undone to the image before applying the sample +box +location information. The rotation is about the origin +(the +origin is assumed to be upper left corner). If omitted, the reference +rotation +is assumed to be 0.0
+
+A blank line should follow this keyword.
+
+The XLIST is a list of vertical edge reference "ticks", along +the +X axis. Ticks are just edge transitions, typically being each edge of +the sample boxes, but should include edges of any features that have +significant width and a length that is at least 50% of the available +space. It is these edge ticks that are used to locate the reference +cells position within the input raster. The integer after the keyword +"XLIST" is the number of entries +in +the list. The first number in the column is the offset of the tick from +the +origin, the second number is used to improve the correlation by +representing +the strength of that "tick" relative to the strongest tick which will +have +a value 1.0. Strength is measured by the relative length of the edge.
+
+The third number represents the relative number of times this "tick" is +crossed by lines in the other direction. A line is regarded as crossing +if part of it is closer to the "tick" line that half the distance to +the next tick line. The number is normalized so that the largest +crossing count has a weight of +1.0. This may be set to 1.0 if it is not known or easily computed.
+
+A blank line should follow the last XLIST edge definition.
+
+The YLIST is same format and details as the XLIST, used +for +horizontal edges.
+
+The EXPECTED keyword introduces an optional list of approximate +expected +sample +box color values, allowing better identification of the possible +rotation +of a chart, particularly if it has no asymmetric patch shapes or +locations +in the chart. Following the keyword should either be XYZ or LAB, +depending on the color space used to describe the reference values, +then +an integer indicating the number of entries in the list.
+
+Each following expected color entry consists of four values. The first +is +the sample box label, which should correspond to one of those defined +by +the BOXES entry above. It is an error if no corresponding box +has +been defined. The remaining three values are the approximate XYZ or +L*a*b* +color value expected for that sample box. The XYZ values are assumed to +be +scaled to a maximum Y value of 100. An expected color value doesn't +have +to be provided for every defined sample box, nor is it expected to be +accurate - it just has to represent the approximate expected color. +(Actual chart reference values are provided as a separate CGATS file to +scanin).
+
+A blank line should follow the last EXPECTED box value.
+
+
+

+The following is an example .cht file, suitable for a typical Q60 IT8 +scan target.
+
+ BOXES 290
+  F _ _ _ _ 1 1  615.5 1.5  615 409
+  D ALL ALL _ _ 615 409 1 1 0 0
+  D MARK MARK _ _ 14 14 1 1 0 0
+  Y 01 22 A L 25.625 25.625 26.625 26.625 25.625 25.625
+  X GS00 GS23 _ _ 25.625 51.25 0.0 358.75 25.625 0.0
+
+BOX_SHRINK 3.0
+
+REF_ROTATION -0.002006
+
+XLIST 32
+  1.799625 1.000000 0.312500
+  27.064987 0.874039 0.750000
+  52.592403 0.133439 0.687500
+  78.196610 0.264191 0.687500
+  104.117756 0.165427 0.937500
+  129.377994 0.844432 0.937500
+  155.144274 0.501218 0.875000
+  180.839181 0.491428 0.937500
+  206.359758 0.212384 0.937500
+  232.038808 0.851851 0.937500
+  257.854725 0.162956 0.625000
+  283.552463 0.101243 0.812500
+  300.534000 0.024750 0.812500
+  309.507688 0.093829 1.000000
+  334.711314 0.856821 1.000000
+  360.428194 0.787677 1.000000
+  385.849730 0.748130 0.937500
+  386.650071 0.039487 0.687500
+  394.630372 0.024725 0.687500
+  411.835654 0.802501 0.750000
+  414.017731 0.041974 0.937500
+  437.133504 0.674062 0.937500
+  437.975355 0.103714 1.000000
+  462.938460 0.671643 1.000000
+  463.880560 0.093836 0.937500
+  488.517995 0.679022 1.000000
+  514.338544 0.760511 1.000000
+  540.037492 0.111108 0.625000
+  565.856396 0.133330 0.562500
+  591.114717 0.565475 0.562500
+  603.447516 0.032097 0.312500
+  615.984915 0.829608 0.250000
+
+YLIST 22
+  2.477956 0.993407 0.142857
+  12.988903 0.016393 0.190476
+  14.739109 0.036082 0.190476
+  26.746171 0.911487 0.428571
+  52.537114 0.303282 0.904762
+  78.060317 0.585303 0.857143
+  103.498271 0.606862 0.761905
+  128.994535 0.567266 0.761905
+  154.483041 0.550814 0.714286
+  179.935985 0.623055 0.666667
+  205.552940 0.350826 0.714286
+  212.051372 0.016393 0.714286
+  231.153547 0.824618 0.857143
+  256.697418 0.744268 0.952381
+  282.145841 0.736126 0.904762
+  307.899015 0.536075 0.952381
+  333.262903 0.903282 0.809524
+  340.217754 0.019722 0.190476
+  344.988867 0.019671 0.095238
+  346.988885 0.018032 0.095238
+  358.840278 0.999967 1.000000
+  409.201393 1.000000 0.000000
+
+EXPECTED XYZ 264
+  A1    3.85 3.22 1.9
+  A2    4.89 3.27 1.6
+  A3    5.87 3.31 1.33
+  A4    6.3 3.38 1.19
+  A5    13.01 11.44 7.64
+  A6    16.14 11.99 6.81
+  A7    19.35 12.41 6.06
+  A8    20.41 11.97 5.3
+  A9    43.5 42.81 32.65
+  A10   45.58 42.37 30.95
+  A11   48.99 43.2 29.9
+  A12   50.73 44.02 29.96
+  A13   74.46 78.76 66.06
+  A14   75.66 76.42 64.08
+  A15   78.36 81.34 65.41
+  A16   70.52 73.3 59.16
+  A17   74.98 75.98 60.69
+  A18   72.85 77.3 60.25
+  A19   73.09 75.52 64.54
+  B1    3.47 3.08 1.41
+  B2    4.41 3.25 0.9
+  B3    5.04 3.23 0.58
+  B4    5.19 3.11 0.47
+  B5    13.36 11.59 5.56
+  B6    15.97 12.03 3.69
+  B7    19.2 12.49 2.2
+  B8    19.73 11.52 1.17
+  B9    42.19 41.84 29.34
+  B10   44.83 42.17 25.93
+  B11   48.06 42.9 23.01
+  B12   49.63 43.08 21.34
+  B13   66.21 72.54 64.61
+  B14   70.16 67.1 60.33
+  B15   75.46 78.69 51.58
+  B16   57.47 59.58 47.66
+  B17   68.33 66.45 49.05
+  B18   63.89 70.29 51.3
+  B19   61.12 62.16 59.79
+  C1    4.97 4.75 1.98
+  C2    5.18 4.65 1.23
+  C3    5.51 4.58 0.71
+  C4    5.77 4.61 0.67
+  C5    24.57 23.44 10.14
+  C6    28.1 24.64 5.22
+  C7    31.15 25.28 2.2
+  C8    30.85 23.68 1.35
+  C9    49.16 49.36 32.37
+  C10   51.72 50.72 26.53
+  C11   55.24 53.14 21.93
+  C12   56.87 53.62 18.46
+  C13   57.68 65.65 62.7
+  C14   63.46 56.66 55.49
+  C15   73 76.11 40.78
+  C16   44.73 46.38 36.8
+  C17   60.64 55.73 38.1
+  C18   52.15 60.27 41.5
+  C19   48.13 49.18 54.38
+  D1    4.19 4.41 1.93
+  D2    4.48 4.72 1.24
+  D3    4.55 4.78 0.8
+  D4    4.32 4.53 0.78
+  D5    27.33 28.55 12.95
+  D6    28.68 30.04 7.25
+  D7    29.51 31.01 3.41
+  D8    27.55 28.44 1.83
+  D9    56.06 58.19 38.21
+  D10   56.03 58.46 30.02
+  D11   56.2 59.33 24.44
+  D12   56.19 59.41 19.14
+  D13   48.21 57.42 59.53
+  D14   58.18 49.14 51.36
+  D15   70.98 73.73 33.63
+  D16   34.31 35.73 28.22
+  D17   54.27 47.53 29.58
+  D18   41.67 50.64 32.28
+  D19   36.95 37.82 48.09
+  E1    4.15 4.75 2.03
+  E2    4 4.98 1.37
+  E3    3.3 4.49 0.86
+  E4    3.11 4.3 0.86
+  E5    13.11 14.9 7.06
+  E6    12.26 15.23 4.18
+  E7    11.53 15.57 2.27
+  E8    9.69 13.74 1.51
+  E9    39.15 42.08 27.33
+  E10   37.43 41.51 22.23
+  E11   36.99 42.5 18.85
+  E12   36.4 42.58 16.27
+  E13   39.97 49.81 56.15
+  E14   52.08 41.07 46.36
+  E15   68.71 70.76 26.45
+  E16   25.7 26.97 21.28
+  E17   48.53 40.6 22
+  E18   31.62 40.82 23.35
+  E19   31.19 31.19 43.4
+  F1    1.51 1.91 1.06
+  F2    1.29 2.04 0.98
+  F3    1.16 2.09 0.82
+  F4    1.14 2.04 0.8
+  F5    6.53 8.25 5.13
+  F6    5.61 8.66 4.38
+  F7    4.6 8.77 3.7
+  F8    3.45 7.63 2.78
+  F9    37.8 41.07 30.91
+  F10   35.92 40.76 29.03
+  F11   35.42 41.99 29.07
+  F12   34 41.8 28
+  F13   32.13 42.12 51.99
+  F14   45.72 33.34 40.77
+  F15   66.26 67.29 19.65
+  F16   17.02 18.07 14.4
+  F17   41.59 32.53 15.16
+  F18   26.26 35.26 18.81
+  F19   24.3 23.6 37.48
+  G1    2.31 3 2.27
+  G2    2 3.21 2.58
+  G3    1.66 3.21 2.75
+  G4    1.58 3.03 2.6
+  G5    8.99 11.08 8.79
+  G6    7.68 11.3 9.56
+  G7    6.52 11.5 10.2
+  G8    5.5 10.85 10.55
+  G9    38.29 41.75 33.45
+  G10   35.83 41.16 34.11
+  G11   34.56 41.83 35.63
+  G12   33.69 42.14 36.7
+  G13   25.95 35.68 48
+  G14   40.6 27.62 36.14
+  G15   63.72 63.63 14.35
+  G16   10.85 11.82 9.58
+  G17   37.23 27.64 11.62
+  G18   20.28 28.97 14.15
+  G19   17.7 16.74 31.7
+  H1    2.56 3.04 2.92
+  H2    2.34 3.2 4.12
+  H3    2.12 3.28 5.43
+  H4    2.06 3.18 5.29
+  H5    10.07 11.6 11.24
+  H6    9.01 11.68 14.81
+  H7    8.22 12 19.42
+  H8    7.25 11.55 21.45
+  H9    39.25 42.31 36.81
+  H10   37.58 41.85 40.37
+  H11   37.16 43.07 45.79
+  H12   36.27 43.78 49.47
+  H13   21.47 30.78 44.22
+  H14   36.49 23.35 32.38
+  H15   61.58 60.55 10.95
+  H16   8.21 8.71 6.91
+  H17   33.04 23.26 8.38
+  H18   16.22 24.35 10.41
+  H19   12.86 11.84 26.82
+  I1    4.22 4.44 5.28
+  I2    4.35 4.48 8.36
+  I3    4.4 4.44 11.94
+  I4    4.48 4.58 12.17
+  I5    15.15 15.78 15.23
+  I6    14.56 15.12 19.52
+  I7    14.37 14.81 24.48
+  I8    14.11 14.76 30.03
+  I9    41.03 42.58 36.94
+  I10   40.85 42.23 40.73
+  I11   40.86 42.33 45.05
+  I12   41.31 42.73 47.77
+  I13   17.26 25.93 40.23
+  I14   32.66 19.63 28.81
+  I15   59.37 57.18 7.79
+  I16   4.97 5.32 4.32
+  I17   28.62 18.88 5.48
+  I18   11.58 18.98 7.25
+  I19   9.58 8.34 22.87
+  I20   0.45 0.4 0.33
+  I21   2.28 1.78 0.98
+  I22   2.37 1.95 0.85
+  J1    2.15 1.9 2.6
+  J2    2.57 2 4.72
+  J3    2.93 1.95 8.1
+  J4    3.15 1.92 10.76
+  J5    11.73 11.6 11.81
+  J6    12.98 11.93 16.19
+  J7    13.91 12.07 20.95
+  J8    14.01 11.59 24.35
+  J9    40.75 41.22 36.34
+  J10   41.26 41.07 39.74
+  J11   42.63 41.68 44.51
+  J12   44.02 41.78 49.25
+  J13   13.82 21.69 35.98
+  J14   28.87 16.33 25.08
+  J15   56.04 52.29 4.97
+  J16   2.46 2.63 2.29
+  J17   24.04 14.75 3.15
+  J18   8.12 14.49 4.55
+  J19   5.98 4.79 17.76
+  J20   8.26 5.37 1.04
+  J21   11.52 7.81 1.62
+  J22   14.67 10.72 2.6
+  K1    5.63 4.7 4.86
+  K2    6.74 4.58 7.23
+  K3    8.04 4.48 9.73
+  K4    9.39 4.76 11.79
+  K5    16.66 15.39 14.44
+  K6    18.72 15.18 18.23
+  K7    21.56 15.5 22.97
+  K8    23 15.02 25.37
+  K9    42.5 42.02 36.05
+  K10   44.55 41.63 39.71
+  K11   47.19 41.96 44.03
+  K12   49.9 43.14 47.21
+  K13   10.61 17.44 31.24
+  K14   24.84 13.19 21
+  K15   53.12 48.05 3.19
+  K16   1.05 1.14 1.13
+  K17   19.93 11.34 1.67
+  K18   5.3 10.47 2.73
+  K19   3.95 2.76 13.94
+  K20   30.61 26.43 11.04
+  K21   34.91 29.6 11.78
+  K22   38.95 34.57 18.4
+  L1    3.88 3.12 2.32
+  L2    4.93 3.2 2.69
+  L3    5.75 3.14 3.02
+  L4    7.31 3.79 3.4
+  L5    13.29 11.54 9.39
+  L6    16.22 11.73 10.32
+  L7    19.95 12.08 12.06
+  L8    20.79 11.31 12.01
+  L9    43.22 42.09 33.78
+  L10   45.52 41.88 34.65
+  L11   49.04 42.87 35.98
+  L12   51.03 43.83 37.78
+  L13   7.45 12.77 25.59
+  L14   21.26 10.76 17.73
+  L15   49.45 43.12 2.14
+  L16   0.47 0.49 0.5
+  L17   16.04 8.49 0.78
+  L18   2.91 6.5 1.39
+  L19   2.5 1.45 10.28
+  L20   38.7 33.98 20.86
+  L21   39.36 35.23 21.23
+  L22   41.36 38.77 23.51
+  GS0    79.47 82.51 69.04
+  GS1    72.62 74.94 59.17
+  GS2    63.15 65.11 51.57
+  GS3    54.72 56.51 45.03
+  GS4    48.1 49.81 39.24
+  GS5    42.22 43.64 34.45
+  GS6    37.33 38.7 30.5
+  GS7    32.38 33.61 26.11
+  GS8    27.56 28.7 22.11
+  GS9    22.5 23.4 17.99
+  GS10   18.77 19.55 14.83
+  GS11   15.48 16.08 12.04
+  GS12   12.69 13.29 9.98
+  GS13   10.35 10.81 7.97
+  GS14   8.39 8.77 6.37
+  GS15   6.45 6.79 4.97
+  GS16   4.95 5.18 3.7
+  GS17   3.58 3.82 2.76
+  GS18   2.76 2.89 2.06
+  GS19   1.97 2.08 1.45
+  GS20   1.22 1.31 0.98
+  GS21   1 1.05 0.74
+  GS22   0.87 0.89 0.65
+  GS23   0.34 0.32 0.32
+
+

+
+

+
+ + diff --git a/doc/collink.html b/doc/collink.html new file mode 100644 index 0000000..0b94bc7 --- /dev/null +++ b/doc/collink.html @@ -0,0 +1,1059 @@ + + + + collink + + + + +

link/collink

+

Summary

+ Link two ICC device profiles to create an ICC device link profile.
+
+ collink takes two device ICC profiles, and links them + together, either in a simple fashion using the standard ICC forward + and reverse tables of the specified intent, or using color + appearance space and true gamut mapping, together with possibly + inverting the forward profile,  to allow black ink regeneration + or to retain the source black characteristic from the source + profile.
+

Usage Summary

+ collink [-options] srcprofile dstprofile + linkedprofile
+  -v                 + + + Verbose
+
 -A "manufacturer"  Set the manufacturer + description string
+  -M "model" +         Set the model + description string
+  -D "description"   Set the profile + Description string  (Default "inoutfile")
+  -C "copyright"     Set the + copyright string

+  -V                 +Verify +existing + + + profile, rather than link (Debug option)
+  -q lmhu      +       Quality - Low, Medium (def), + High, Ultra
+  -r res             +Override +clut + + + res. set by -q
+  -n                 +Don't +preserve + + + device curves in result
+  -f +           +       Special :- Force neutral colors + to be K only output.
+
 -fk +           +      Special :- Force K only neutral colors + to be K only output
+
 -fcmy +           +    Special :- Force 100% C,M or Y only to stay pure
+  -F +           +       Special :- Force all colors to be + K only output.
+  -p aprof.icm       +Include + + + abstract profile in link
+  -s                 +Simple +Mode + + + (default)
+  -g [src.gam]       + Gamut Mapping Mode [optional source image gamut]
+  -G [src.gam]       +Gamut + + + Mapping Mode using inverse outprofile A2B [optional source + gamut]
+
+      Simple Mode Options:
+  -i in_intent      p = + perceptual, r = relative colorimetric,
+                +    +s + + + = saturation, a = absolute colorimetric
+  -o out_intent     p = + perceptual, r = relative colorimetric,
+                +    +s + + + = saturation, a = absolute colorimetric
+
+      Mapping Mode Options:
+  -i intent      + set linking intent from the following choice:
+               +a +- + + + Absolute Colorimetric (in Jab) [ICC Absolute Colorimetric]
+              +aw +- + + + Absolute Colorimetric (in Jab) with scaling to fit white point
+
             +aa +- + + + Absolute Appearance
+               +r +- + + + White Point Matched Appearance [ICC Relative Colorimetric]
+              +la +- + + + Luminance matched Appearance
+               +p +- + + + Perceptual (Preferred) [ICC Perceptual]
+
             +pa + + + - Perceptual Appearance
+              +ms +- + + + Saturation
+               +s +- + + + Enhanced Saturation [ICC Saturation]
+              +al +- + + + Absolute Colorimetric (Lab)
+  -w [J,a,b]     Use forced + whitepoint hack [optional color to map the white to]
+  -c viewcond    set source viewing + conditions for CIECAM02,
+                +   +either + + + an enumerated choice, or a parameter
+  -d viewcond    set destination + viewing conditions for CIECAM02,
+                +   +either + + + an enumerated choice, or a parameter:value change
+
  +             pp - Practical + Reflection Print (ISO-3664 P2)
+         +  +  + + +   pe - Print evaluation environment (CIE 116-1995)
+
        +  +  + + +   pc - Critical print evaluation environment (ISO-3664 P1)
+    +            mt - Monitor in + typical work environment
+           +  +  + + + mb - Monitor in bright work environment
+       +         md - Monitor in darkened work + environment
+       +         jm - Projector in dim + environment
+       +         jd - Projector in dark + environment
+        +       pcd - Photo CD - original scene + outdoors
+       +         ob - Original scene - Bright + Outdoors
+       +         cx - Cut Sheet Transparencies + on a viewing box
+           +s:surround +n + + + = auto, a = average, m = dim, d = dark,
+                +  +    + + + c = transparency (default average)
+           +w:X:Y:Z       +Adapted + + + white point as XYZ (default media white)
+           +w:x:y         +Adapted + + + white point as x, y
+           +a:adaptation  +Adaptatation + + + luminance in cd.m^2 (default 50.0)
+           +b:background  +Background +% + + + of image luminance (default 20)
+           l:scenewhite  + Scene white in cd.m^2 if surround = auto (default 250)
+
          +f:flare       +Flare +light + + + % of image luminance (default 1)
+           +f:X:Y:Z       +Flare + + + color as XYZ (default media white)
+           +f:x:y         +Flare + + + color as x, y
+  -t tlimit          +set +source + + + total ink limit, 0 - 400% (estimate by default)
+  -T klimit          +set +source + + + total ink limit, 0 - 100% (estimate by default)
+
+        Inverse outprofile A2B Options:
+  -k tezhxr   +      CMYK Black generation
+                +   +t + + + = transfer K from source to destination, e = retain K of + destination B2A table
+                +   +z + + + = zero K, h = 0.5 K, x = maximum K, r = ramp K (default)
+  -k p stle stpo enpo + enle shape
+                +   +p + + + = black level generation curve parameters
+  -k q stle0 stpo0 + enpo0 enle0 shape0 stle2 stpo2 enpo2 enle2 shape2
+                +   +q + + + = transfer source K to dual curve limits
+  -K parameters      + Same as -k, but target is K locus rather than K value itself
+  -l tlimit          +set +destination + + + total ink limit, 0 - 400% (estimate by default)
+  -L klimit          +set +destination + + + total ink limit, 0 - 100% (estimate by default)
+
  -P +                 +Create +gamut + + + gammap_p.wrl and gammap_s.wrl diagostics
+
+
 srcprofile         +source +ICC + + + profile. A TIFF + + + or JPEG file with embedded profile may be used here.
+   dstprofile         +destination +ICC + + + profile. A TIFF or JPEG file with embedded + profile may be used here.
+  linkedprofile      + resulting device link profile
+

Usage Details and Discussion

+ -v Turns on verbose mode. Gives progress + information as the profile is created. Since gamut map mode inverse + profile linking can take a long time to perform, this is often + useful.
+
+ The -A parameter allows setting of the + device manufacturer description tag. This parameter may not be + relevant for a link profile, but if used should be a string that + identifies the manufacturer of the primary device used in the link. + With most command line shells, it will be necessary to enclose the + parameter with double quotes, so that spaces and other special + characters are included in the parameter, and not mistaken for the + start of another flag, or as a final command line parameters. By + default no manufacturer description string tag will be generated for + the profile.
+
+ The -M parameter allows setting of the + device mode description tag. This parameter may not be relevant for + a link profile, but if used should be a string that identifies the + particular model of primary device used in the link. With most + command line shells, it will be necessary to enclose the parameter + with double quotes, so that spaces and other special characters are + included in the parameter, and not mistaken for the start of another + flag, or as a final command line parameters. By default no model + description string tag will be generated for the profile.
+
+ The -D parameter allows setting of the + profile description tag. The parameter should be a string that + describes the profile. On many systems, it will be this string that + will be used to identify the profile from a list of possible + profiles. With most command line shells, it will be necessary to + enclose the parameter with double quotes, so that spaces and other + special characters are included in the parameter, and not mistaken + for the start of another flag, or as a final command line parameter. + Many programs that deal with ICC profiles use the description tag to + identify a profile, rather than the profile filename, so using a + descriptive string is important in being able to find a profile. By + default, the base name of the resulting profile will be used as the + description.
+
+ The -C parameter allows setting of the + profile copyright tag. The parameter should be a string that + describes the copyright (if any) claimed on the profile being + generated.. With most command line shells, it will be necessary to + enclose the parameter with double quotes, so that spaces and other + special characters are included in the parameter, and not mistaken + for the start of another flag, or as a final command line + parameters. By default a generic copyright string will be generated + for the profile.
+
+
+ -V Verifies an existing profile. This is + really a debugging option. It is only useful if all the linking + parameters are identical to those used during the creation of the + profile being verified.
+
+ -q [lmhu]       Quality + - Low, Medium (def), High, Ultra
+ -r res        +  +  + + +  Override clut res. set by -q
+
+ This sets the basic quality of the resulting link, by choosing the + resolution of various tables in the resulting profile, as well as + the resolution of other temporary tables used in creating the link. + The -r flag allows overriding the resolution set by the -q + option, for the ICC profile CLUT multi-dimensional interpolation + table. It is highly recommended that -qm be used as a starting point, and other settings + only tried after this has been evaluated. -qu should almost never be used, except to prove + that it should almost never be used.
+
+ Normally the per channel device curves in the source + and destination profiles are preserved in the resulting device link + profile, but the -n option disables this. This can be useful + if the device linearisation curves are inappropriate in nature.
+
+ The -f option is a special purpose flag + useful only for 3 or 4 component (RGB, CMY or CMYK) source to CMYK + destination linking, that causes the destination to be K only for neutral axis input. + Neutral axis input is assumed for R=G=B or C=M=Y input values. So as + to get a smooth mapping from the source to the K only destination, + by default the gamut mapping will be adjusted to target the + destination K only black, and Perceptual gamut mapping will be + selected along with maximum K inking. If other options are selected + that conflict with achieving a smooth mapping, warnings messages + will be emitted.
+
+ The -F option is a special purpose flag + useful only mapping to a CMYK destination, that causes the + destination to be converted to K only monochrome. So as to get a + smooth mapping from the source to the K only destination, by default + the gamut mapping will be adjusted to target the destination K only + black, and Perceptual gamut mapping will be selected along with + maximum K inking. If other options are selected that conflict with + achieving a smooth mapping, warnings messages will be emitted.
+
+  The -fk option is a special purpose + flag useful only for CMYK source to CMYK destination linking, that + causes K only source values to map to K only destination values. + This is often useful in re-targeting CMYK material while preserving + K only text and graphics. So as to get a smooth mapping from the + source to the K only destination, by default the gamut mapping will + be adjusted to assume K only black source to destination K only + black for K only values, and Perceptual gamut mapping will be + selected along with a black generation rule (-kt) that preserves the black + level from source to destination. If other options are selected that + conflict with achieving a smooth mapping, warnings messages will be + emitted.
+
+  The -fcmy options are special + purpose flags useful only for CMY or CMYK source to CMY or CMYK + destination linking. The cmy + flags may be used independently or in combination (ie. -fc, -fm, -fy, -fcm, -fcy, -fmy, -fcmy) + or combined with the -fk + option.  These flags ensure that the pure 100% primary colorant + source values map to 100% pure colorant destination values, and may + be useful in some situations where CMYK material is being + re-targeted. Note that + forcing the 100% colorant values to map this way largely works + against the aims of color management in preserving colors + appearance.  So as to get a smooth mapping from the source + to  destination, by default the gamut mapping will a Saturation + intent with 100 percept alignment of the selected C, M and/or Y cusp + values. A Saturation intent is often what is desired in such CMYK to + CMYK re-renderings, as it makes best use of the (usually quite + similar sized) destination gamut. If other options are selected that + conflict with achieving a smooth mapping, warnings messages will be + emitted.
+
+ The -p option alows specifying an abstract + profile be applied between the source and destination profiles. An + abstract profile is a way of specifying a color adjustment in a + device independent way. The abstract profile might have been created + using one of the tweak + tools, such as refine.
+
+ The basic linking style is chosen by using the -s (default), + -g or -G flags. The three behaviors are:
+
+  -s   Simple mode. No gamut + mapping is performed, the selected intent AtoB and BtoA tables are + simply concatenated to create the output link, with the gamut + mapping behavior being determined solely by the BtoA table. The -i + and -o options allow selection of the source and destination ICC + intents. This is typically how other CMS do ICC linking. Details.
+
+  -g   Gamut mapping mode. In + this mode, the absolute colorimetric AtoB and BtoA tables are used + to perform the link, and the intermediate linking color space is + (generally) the CIECAM02 Jab appearance space. The source and + destination viewing conditions can be selected using the -c + and -d options. A gamut mapping is performed between the two + spaces, using  the intent selected by the -i option. + There is an optional argument, which is a source gamut to use + instead of that of the source profile. This is to allow optimizing + the gamut mapping to a source gamut of  a particular image, + which can give slightly better results that gamut mapping from the + gamut of the source colorspace. Such a source image gamut can be + created using the tiffgamut tool. + More  details about gamut mapping mode.
+
+  -G  Use the gamut mapped, inverse + AtoB table linking method. This is generally the most accurate, + smooth and flexible linking method, but takes the longest to + perform. The gamut mapping mode  (-g) options -i, -c, -d, -k + and -l are effective when this method is selected. There is + an optional argument, which is a source gamut to use instead of that + of the source profile. This is to allow optimizing the gamut mapping + to a source gamut of  a particular image, which can give + slightly better results that gamut mapping from the gamut of the + source colorspace. Such a source image gamut can be created using + the tiffgamut tool. More details about the gamut mapping, inverse AtoB mode.
+
+ The gamut provided to the -g + or -G flag should be in the + same colorspace that collink + is using internally to connect the two profiles. For all intents + except the last one (no. 7), + + + the space should be Jab appearance space, with the viewing + conditions generally being those of the source profile viewing + conditions. The source profile will normally be the one used to + create a source image gamut using tiffgamut.
+  
+ Simple mode gamut mapping options:
+
+       -i in_intent  +  +  + + +  p = perceptual, r = relative colorimetric,
+               +               s + = saturation, a = absolute colorimetric
+       -o out_intent +    p = perceptual, r = relative + colorimetric,
+               +               s + = saturation, a = absolute colorimetric
+
+ These two options simply select the appropriate ICC table, according + to desired intent. Generally, it is a good idea to use the same + intent for both source and destination. Not all ICC profiles support + all four intents.
+
+ Gamut mapping mode options:
+
+  -i intent
+
+ Select the gamut mapping intent. In gamut mapping mode there is only + a single overall intent. The intent is selected using the 1 two + letter option parameter, the standard ICC profile being a subset of + the available selections.
+
+
The a intent, Absolute + Colorimetric, is intended to reproduce colors exactly, + irrespective of the white point of the each medium. This is done + using CIECAM02 Jab appearance colorspace by forcing the source and + destination to have a common white point (but other aspects of the + individual viewing conditions are active), and colors are mapped + directly from source to destination, clipping any out of gamut + colors to the closest match. This is equivalent to the ICC Absolute Colorimetric intent, + and is often used for proofing purposes.
+
+ The aw + intent, Absolute Colorimetric with scaling to fit white point, is + very similar to the a + intent, except that it will scale the source colorspace down in + order to make sure that the source white point isn't clipped by + the gamut of the destination. This might be used in some print + proofing situations where the source white is lightly lighter than + the destination white (as an alternative to using the -w flag), or it may be useful in some soft + proofing situations where the differences in white point of the + display destination would cause clipping of the source white + point.  When the -v flag is on, the scaling + factor used will be displayed during execution.
+
+ The aa + intent, Absolute Appearance, simply maps the Jab colors directly + from source to destination, clipping any out of gamut colors to + the closest match. This attempts to match the exact appearance of + colors as closely as possible, but may not exactly map the white + point of the source to the destination, depending on how different + the viewing conditions are.
+
+ The r + intent is like Absolute Appearance mode, but maps the white point + from source to destination precisely, and otherwise maps the Jab + colors directly from source to destination, clipping any out of + gamut colors to the closest match. This is equivalent to the ICC Relative Colorimetric intent.
+
+ The la + intent, Luminance matched appearance, linearly compresses or + expands the the luminance axis to match the source to the + destination space, while not otherwise altering the gamut, + clipping any out of gamut colors to the closest match. This is + often useful for appearance based soft proofing.
+
+ The  p + intent, Perceptual, uses "knee" type 3 Dimensional compression to + make the source gamut fit within the destination gamut. As much as + possible, clipping is avoided, hues and the overall appearance is + maintained. The white point is mapped precisely from source to + destination.This is equivalent to the ICC Perceptual intent.
+
+ The  pa + intent, Perceptual Appearance uses "knee" type 3 Dimensional + compression to make the source gamut fit within the destination + gamut. As much as possible, clipping is avoided, hues and the + overall appearance is maintained. The white point is not mapped from source to + destination, allowing the apperance parameters to alter the + chromatic mapping.
+
+ The ms + intent, Saturation, uses 3 Dimensional compression and expansion to try and + make the source gamut exactly match the destination gamut, and + also favours higher saturation over hue or lightness preservation. + The white point is mapped precisely from source to destination.
+
+ The s intent, Enhanced Saturation, + uses the same basic gamut mapping as ms, Saturation, but increases saturation slightly + in highly saturated areas of the gamut. This is equivalent to the + ICC Saturation intent. + The white point is mapped precisely from source to destination.
+
+ The al + intent, Absolute Appearance (Lab), is similar to intent a, but L*a*b* colorspace is + used rather than CIECAM02 Jab appearance space. This often leads + to poor reproduction of blue and red hues, but can be useful as a + reference mapping.
+
+
+ The -w flag forces the white points to be + mapped from source to destination, irrespective of the intent + chosen. This is useful if absolute intent is being used, and the two + media white points should match, but don't quite due to measurement + error.
+ The -w flag can optionally be followed by three numbers, + that specify a color that white should be mapped to. This will be in + the colorspace used during linking (typically Jab space, which has + similar characteristics to L*a*b* space). This options can be useful + in fine tuning paper emulation in absolute colorimetric mapping + mode.
+
+ The -c and -d + options allow specification of the viewing conditions for the source + and destination colorspaces respectively. The viewing condition + information is used to map the profile PCS (Profile Connection + Space, which us either XYZ or L*a*b*) color into appearance space + (CIECAM02), which is a better colorspace to do gamut mapping in. The + viewing conditions allow the conversion into appearance space to + take account of how color will be seen under particular viewing + conditions.
+ Viewing conditions can be specified in two basic ways. One is to + select from the list of "pre canned", enumerated viewing conditions, + choosing one that is closest to the conditions that are appropriate + for the media type and situation. Alternatively, the viewing + conditions parameters can be specified in detail individually. If + both methods are used, them the chosen enumerated condition will be + used as a base, and its parameters will then be individually + overridden.
+
+ The -t tlimit parameter sets the + total ink limit (TAC, Total Area Coverage) for a CMYK source + profile, as a total percentage from 0% to 400%. This affects the + gamut assumed for the source profile. By default, a total ink limit + will be estimated from the source profile B2A table.
+
+ The -T klimit parameter sets the + black channel ink limit for a CMYK source profile, as a total + percentage from 0% to 100%. This affects the gamut assumed for the + source profile. By default, a black ink limit will be estimated from + the source profile B2A table.
+
+
+ Inverse outprofile A2B Options:
+
+ When the -G flag is used, the A2B table is inverted "on the + fly", allowing various additional choices as to what device values + are used to reproduce a particular color. (If the -G flag is + not used, then such decisions are encoded in the B2A table in the + profile, and cannot be altered during linking).
+
+ -k parameter sets the target level of black + (K) when creating a B2A CMYK output tables. This is often called a + black level, a black inking rule, black generation, or under color + removal.  These set the target black level:
+
+ -kz selects minimum black (0.0)
+ -kh selects a black level value of 0.5
+ -kx selects the maximum possible black (1.0)
+ -kr selects a linear level ramp, starting at minimum black + for highlight, and maximum black for shadow (equivalent to -kp 0 0 1 + 1 1). This is the default.
+ -kt, will preserve the black amount from the source (CMYK) + profile to the destination  (CMYK) profile as much as possible. + This may be most useful in creating a CMYK to CMYK conversion + between two different press conditions, while preserving as much as + possible the  black only use for text etc. in anything + converted. Note that if the source black point is darker than the + destination, composite black will still be generated for K only + input. The -fk option can + be used to avoid this behavior.
+ -ke, will preserve the black amount from the destination + profile B2A table (CMYK).
+
+ -k p stle stpo enpo enle shape  allows + an arbitrary black locus ramp to be defined, consisting of a + starting value (stle) for highlights, a breakpoint L value (stpo) + where it starts to transition to the shadow level, an end breakpoint + L (enpo) where it flattens out again, and the finishing black level + (enle) for the shadows. There is also a curve parameter, that + modifies the transition from stle to enle to either be concave + (ie.  the transition starts gradually and and finished more + abruptly) using values 0.0-1.0, with 0.0 being most concave, or + convex (the transition starts more abruptly but finishes gradually), + using values 1.0-2.0, with 2.0 being the most convex.
+
+ Typical black value generation curve with parameters something like: + -kp 0 .1 .9 1 .5
+
+          1.0 K   | +          enpo
+                  +|      +   + + +    _______  enle
+                  +|      +  + + +    /
+                  +|     +   + + +   /
+                  +|      +  + + +  /
+                  +|      +  + + + /
+            + stle  | ------/
+             +      +-------------------
+          0.0 K  + 0.0    + stpo        1.0
+                +White              + + + Black
+
+
For minimum sensitivity of printed output to the lighting + spectrum, it currently seems best to use the maximum possible black, + but other black generation levels (ie. 0.3 to 0.5) may well be + preferred if one wants to minimize the noisy appearance of black on + an inkjet device, or if the banding behaviour or other rendering + flaws of the printer is to be minimized.
+
+ Note that the black level curve is applied throughout the gamut, + resulting in GCR (Grey Component Replacement). There is no facility + to restrict black to just neutral colors, hence UCR is not currently + supported.
+
+ -k q stle0 stpo0 enpo0 enle0 shape0 stle2 stpo2 + enpo2 enle2 shape2 is a combination of the -kt and -kp + functionality, with the black being preserved in CMYK to CMYK + linking, with the output black constrained to be between the first + and second set of curve parameters.
+
+ The xicclu tool can be used to plot out + the resulting black level for a given set of parameters, by using + the -g flag of a profile already + created from the same .ti3 file.
+
+ -K parameters. + Any of the -k options above + can use the -K version, in + which rather than a black value target being defined by the inking + rule, a black locus + target is defined. For each lookup, the minimum possible black level + and the maximum possible black level is determined, the former + corresponding to a locus target value of 0, and the latter + corresponding to a locus target value of 1. For instance, at the + white point, no black will be used in the output, even if the black + locus specifies a maximum (since the maximum amount of black that + can be used to print white is actually zero). Similarly, at the + black point, black may well be used, even if the black locus + specifies zero black (since a certain amount of black is needed to + achieve the desired density of color).
+
+ The -l tlimit parameter sets the + total ink limit (TAC, Total Area Coverage) for the CMYK separation, + as a total percentage from 0% to 400%. This affects the gamut + assumed for the destination profile, as well as the ink limit in the + generated device link. The limit value should generally be set a + little below the value used in the test chart generation, to avoid + the very edges of the gamut. If the test chart ink limit has been + chosen to be a little beyond an acceptable level, then this number + should be the acceptable level. Although limits can be set below + 200%, this will generally restrict the color gamut noticeably, as + fully saturated secondary colors will not be reproduced. Values are + between 220% and 300% for typical printing devices. By default, a + total ink limit will be estimated from the destination profile B2A + table. The ink limit will be in final calibrated device values if + the profile includes calibration information.
+
+ The -L klimit parameter sets the + black channel ink limit for the CMYK separation, as a total + percentage from 0% to 100%. This affects the gamut assumed for the + source profile, as well as the ink limit in the generated device + link. For printing press like devices, this can be used to prevent + the black channel screening pattern "filling in". Typical values + might be from 95% to 99%. By default, a black ink limit will be + estimated from the source profile B2A table. The ink limit will be + in final calibrated device values if the profile includes + calibration information.
+
+ The -P option causes a diagnostic 3D + VRML plots to be created that + illustrate the gamut mapping generated.
+
+ The inprofile argument specifies the + source profile. This is the color space/device we are attempting to + emulate in the overall conversion. A TIFF or JPEG file with + embedded profile may be used here.
+
+ The outprofile argument specifies the + destination profile. This is the device we are actually displaying + on or printing to. A TIFF or JPEG file with embedded profile + may be used here.
+
+ The linkedprofile argument specifies + the resulting device link profile. This profile will contain the + color transform from the source space to destination space.
+
+ For information on typical usage, see the Typical + + + Usage Scenarios page.
+
+
+
+
+
+
+
+
+
+
+ + diff --git a/doc/colorchecker.jpg b/doc/colorchecker.jpg new file mode 100644 index 0000000..464dd11 Binary files /dev/null and b/doc/colorchecker.jpg differ diff --git a/doc/colprof.html b/doc/colprof.html new file mode 100644 index 0000000..de9d5c2 --- /dev/null +++ b/doc/colprof.html @@ -0,0 +1,1559 @@ + + + + colprof + + + + +

profile/colprof

+

Summary

+ Create an ICC profile from + the .ti3 test chart patch + values.
+

Usage Summary

+  colprof [-options] inoutfile
+  -v         + + + + + + + + + + + +         Verbose mode
+  -A "manufacturer"  Set the + manufacturer description string
+  -M "model" +         Set the model + description string
+  -D "description"   Set the + profile Description string  (Default "inoutfile")
+  -C "copyright"     Set the + copyright string
+  -Z tmnb   +          Attributes: + Transparency, Matte, Negative, BlackAndWhite
+
 -Z prsa  + +           Default + intent: Perceptual, Rel. Colorimetric, Saturation, Abs. + Colorimetric
+
 -q lmhu +            Quality - Low, + Medium (def), High, Ultra
+  -b [lmhun]       +   Low quality B2A table - or specific B2A quality or none + for input device
+  -y         + + + + + + + + + + + +         Verify A2B profile
+  -ni        + + + + + + + + + + + +         Don't create input (Device) shaper + curves
+
 -np +                + Don't create input (Device) grid position curves
+
 -no        + + + + + + + + + + + +         Don't create output (PCS) shaper + curves
+
 -nc +                + Don't put the input .ti3 data in the profile
+
 -k zhxr  +           Black generation: z = zero K,
+             +  +  +  +    +h += +0.5 +K +(def), +x += + + + + + + + + + + + + max K, r = ramp K
+  -k p stle stpo enpo enle shape
+             +  +  +  +    +stle: +K +level +at +White +0.0 + + + + + + + + + + + + - 1.0
+             +  +  +  +  +  +stpo: +start +point +of +transition +Wh + + + + + + + + + + + + 0.0 - Bk 1.0
+             +  +  +  +  +  +enpo: +End +point +of +transition +Wh + + + + + + + + + + + + 0.0 - Bk 1.0
+             +  +  +  +  +  +enle: +K +level +at +Black + + + + + + + + + + + + 0.0 - 1.0
+             +  +  +  +  +  +shape: +1.0 += +straight, +0.0-1.0 +concave, + + + + + + + + + + + + 1.0-2.0 convex
+  -K parameters      + + + Same as -k, but target is K locus rather than K value itself
+  -l tlimit     +      override CMYK total ink limit, 0 - 400% + (default from .ti3)
+  -L klimit     +      override black ink limit, 0 - 100% (default + from .ti3)
+  -a lxXgsmGS        + Algorithm type override
+             +  +  +  +  +  +l += +Lab +cLUT +(def.), + + + + + + + + + + + + x = XYZ cLUT, X = display XYZ cLUT + matrix
+             +  +  +  +  +  +g += +gamma+matrix, +s += + + + + + + + + + + + + shaper+matrix, m = matrix only,
+             +  +  +  +  +  +G += +single +gamma+matrix, +S += + + + + + + + + + + + + single shaper+matrix
+  -u         +  +  +  +  + + + + If input profile, auto scale WP to allow extrapolation

+
 -uc +             +    If input profile, clip cLUT values above WP
+
 
-U scale +           If input + profile, scale media white point by scale
+
 -R                 +Restrict +white +<= +1.0, +black +and + + + + + + + + + + + + primaries to be +ve
+
 -f [illum] +         Use Fluorescent + Whitening Agent compensation [opt. simulated inst. illum.:
+                       + + M0, M1, M2,
A, + C, D50 (def.), D50M2, D65, F5, F8, F10 or file.sp ]
+
 -i illum   + +         Choose illuminant for + computation of CIE XYZ from spectral data & FWA:
+             +  +  +  +  +  +A, +C, +D50 +(def.), +D50M2, + + D65, F5, F8, F10 or file.sp

+  -o observ      +     Choose CIE Observer for spectral data:
+             + + + + + + + + + + + +           1931_2
(def.), + 1964_10, S&B 1955_2, shaw, J&V 1978_2
+  -r avgdev       +    Average deviation of device+instrument readings as + a percentage (default 0.5%)
+  -s src.icc         +Apply +gamut +mapping +to +output +profile +perceptual +B2A +table +for + + + + + + + + + + + + given source
+  -S src.icc         + + + + + + + + + + + + Apply gamut mapping to output profile perceptual and saturation + B2A table
+  -nP                + + + + + + + + + + + + Use colormetric source gamut to make output profile perceptual + table
+  -nS                + + + + + + + + + + + + Use colormetric source gamut to make output profile saturation + table
+  -g src.gam +         Use source image + gamut as well for output profile gamut mapping
+  -p aprof.icm,...   Incorporate + abstract profile(s) into output tables
+  -t intent  +         Override gamut + mapping intent for output profile perceptual table:
+  -T intent          + + + + + + + + + + + + Override gamut mapping intent for output profile saturation + table:
+
      +             + a - Absolute Colorimetric (in Jab) [ICC Absolute Colorimetric]
+           +        aw - Absolute Colorimetric + (in Jab) with scaling to fit white point
+            +       aa - Absolute Appearance
+             +       r - White Point Matched + Appearance [ICC Relative Colorimetric]
+            +       la - Luminance matched Appearance
+              +      p - Perceptual (Preferred) [ICC + Perceptual]
+
                 + + + + + + + + + + + + pa - Perceptual Appearance
+
        + + + + + + + + + + + +          ms - Saturation
+            +        s - Enhanced Saturation [ICC + Saturation]
+             +      al - Absolute Colorimetric (Lab)

+  -c viewcond        + + + + + + + + + + + + set input viewing conditions for output profile CIECAM02 gamut + mapping,
+                       + + + + + + + + + + + + either an enumerated choice, or a parameter
+  -d viewcond        + + + + + + + + + + + + set output viewing conditions for output profile CIECAM02, gamut + mapping
+                       + + + + + + + + + + + + either an enumerated choice, or a parameter:value change
+                       + + + + + + + + + + + + Also sets out of gamut clipping CAM space.
+                       + + + + + + + + + + + + Enumerated Viewing Conditions:
+
            +      pp - Practical Reflection Print (ISO-3664 + P2)
+             +      pe - Print evaluation environment (CIE + 116-1995)
+
        +          pc - Critical print evaluation + environment (ISO-3664 P1)
+
        +          mt - Monitor in typical work + environment
+                +   mb - Monitor in bright work environment
+               +    md - Monitor in darkened work environment
+                +   jm - Projector in dim environment
+              +     jd - Projector in dark environment
+             +     pcd - Photo CD - original scene outdoors
+              +     ob - Original scene - Bright Outdoors
+               +    cx - Cut Sheet Transparencies on a viewing box

+                   +       s:surround n = auto, a = average, m = + dim, d = dark,
+                  + + + + + + + + + + + +                +    c = transparency (default average)
+                   +       + w:X:Y:Z       Adapted white point + as XYZ (default media white)
+               +           + w:x:y         Adapted + white point as x, y
+                   +       a:adaptation  Adaptatation + luminance in cd.m^2 (default 50.0)
+                   +       b:background  Background % + of image luminance (default 20)
+              +            l:scenewhite  + Scene white in cd.m^2 if surround = auto (default 250)
+                   +       + f:flare       Flare light % of + image luminance (default 1)
+                   +       + f:X:Y:Z       Flare color as XYZ + (default media white)
+                   +       + f:x:y         Flare + color as x, y
+  -P +                   + + + + + + + + + + + + Create gamut gammap_p.wrl and gammap_s.wrl diagostics
+
 -O outputfile        +Override + + + + + + + + + + + + the default output filename & extension.
+
 inoutfile +            Base name for + input.ti3/output.icc file
+

Options
+

+ -v  Turn on verbose mode. Gives progress + information as the profile is created. Since colprof can take a long + time to generate, this is often useful to monitor progress. If used + in combination with the -y flag, the error of each test + point to the resulting profile will be printed out.
+
+ The -A parameter allows setting of the + device manufacturer description tag. The parameter should be a + string that identifies the manufacturer of the device being + profiled. With most command line shells, it will be necessary to + enclose the parameter with double quotes, so that spaces and other + special characters are included in the parameter, and not mistaken + for the start of another flag, or as a final command line + parameters. By default no manufacturer description string tag will + be generated for the profile.
+
+ The -M parameter allows setting of the + device mode description tag. The parameter should be a string that + identifies the particular model of device being profiled. With most + command line shells, it will be necessary to enclose the parameter + with double quotes, so that spaces and other special characters are + included in the parameter, and not mistaken for the start of another + flag, or as a final command line parameters. By default no model + description string tag will be generated for the profile.
+
+ The -D parameter allows setting of the + profile description tag. The parameter should be a string that + describes the device and profile. On many systems, it will be this + string that will be used to identify the profile from a list of + possible profiles. With most command line shells, it will be + necessary to enclose the parameter with double quotes, so that + spaces and other special characters are included in the parameter, + and not mistaken for the start of another flag, or as a final + command line parameter. Many programs that deal with ICC profiles + use the description tag to identify a profile, rather than the + profile filename, so using a descriptive string is important in + being able to find a profile. By default, the base name of the + resulting profile will be used as the description.
+
+ The -C parameter allows setting of the + profile copyright tag. The parameter should be a string that + describes the copyright (if any) claimed on the profile being + generated.. With most command line shells, it will be necessary to + enclose the parameter with double quotes, so that spaces and other + special characters are included in the parameter, and not mistaken + for the start of another flag, or as a final command line + parameters. By default a generic copyright string will be generated + for the profile.
+
+ The -Z parameter allows setting of the + profile attribute flags. There are four flags: t to set Transparency, the + default being Reflective; m + to set Matte, the default is Glossy; n to set Negative, the default is Positive; b to set BlackAndWhite, the + default is Color.
+
+ The -Z parameter allows setting of the + profile default intent. The default intent can be one of the four + standard intents: p to set + Perceptual, r to set + Relative Colorimetric, s to + set Saturation, and a to + set Absolute colorimetric.
+
+ The -q parameter sets the level of effort + and/or detail in the resulting profile. For table based profiles + ("cLUT" profiles), it sets the main lookup table size, and hence + detail in the resulting profile. For matrix profiles it sets the per + channel curve detail level and fitting "effort". It is highly recommended that + -qm be used as a starting + point, and other settings only tried after this has been evaluated. + NOTE that -qu is a test mode, and + shouldn't be used, except to prove that it is not worth using.
+
+ The -b flag overrides the -q + parameter, and sets the lut resolution for the BtoA (inverse) to a + low value. The creation of the B2A table is fairly time consuming, + and if the profile is only going to be used by targen, or if it will only be used as an + input space profile, or if it will only be linked as an output + profile using Argyll's collink tool + using the -G option (inverse AtoB option), then a high + detail BtoA table is not required, and some time and profile space + can be saved. If the profile is to be used as an output space + profile with another CMS, or is going to be linked using the simple + (-s) or mapping mode (-g) options, then a good quality B2A table is + needed, and the -b flag should NOT + be set. Optionally, a specific B2A table quality can be set.
+
+ For input devices,  the presence of a B2A table is not + mandatory, and it can be omitted entirely from the profile by using + -bn. Note that input + profiles and matrix profiles will only contain a colorimetric intent + table or matrix.
+
+ The -y flag does a verification check on + the AtoB profile. This is done by comparing what CIE colors the + profile predicts for the test chart test patches, and comparing them + to the actual values. A summary of the average and maximum Lab delta + E's will be printed out if this flag is set. If the -v flag + is also set, then information for each patch will also be printed.
+
+ Normally cLUT + base profiles are generated with three major elements:- per device + channel (shaper) input curves, the multi-dimensional lut table, and + per PCS channel (shaper) output curves. The  Using the -ni + flag disables the creation of the per device channel curves, while + using the -no flag disables the creation of the per PCS + channel curves.
+ For cLUT based profiles, the input curves that are written to the + profile are composed of two components, a shape to best match the + detailed shape of the device behavior, and a shape to distribute the + input values evenly across the LUT input indexes. The -no flag disables the former, + while the -np flag disables + the latter.
+
+ -nc Normally +the + + + + + + + + + + + + device and CIE/spectral sample data and calibration curves used to + create a profile is stored in the 'targ' + text tag in the resulting ICC profile. To suppress this and make the + resulting profile smaller, use the -nc + + + + + + + + + + + flag. Note that this + will then preclude final calibrated device value ink limits from + being computed for the resulting profile in subsequent use (ie. collink, xicclu + etc.).
+
+ -k parameter sets the target level of black + (K) when creating a B2A CMYK output tables. This is often called a + black level, a black inking rule, black generation, or under color + removal.  These set the target black level.
+
+  Possible arguments to the -k flag are:
+
+ -kz selects minimum black (0.0)
+ -kh selects a black value of 0.5
+ -kx selects the maximum possible black (1.0)
+ -kr selects a linear black ramp, starting at minimum black + for highlight, and maximum black for shadow (equivalent to -kp 0 0 1 + 1 1). This is the default.
+
+ -k p stle stpo enpo enle shape  allows + an arbitrary black value ramp to be defined, consisting of a + starting value (stle) for highlights, a breakpoint L value (stpo) + where it starts to transition to the shadow level, an end breakpoint + L (enpo) where it flattens out again, and the finishing black level + (enle) for the shadows. There is also a curve parameter, that + modifies the transition from stle to enle to either be concave + (ie.  the transition starts gradually and and finished more + abruptly) using values 0.0-1.0, with 0.0 being most concave, or + convex (the transition starts more abruptly but finishes gradually), + using values 1.0-2.0, with 2.0 being the most convex.
+
+ Typical black value generation curve with parameters something like: + -kp 0 .1 .9 1 .5
+
+          1.0 K   | +          enpo
+                  + + + + + + + + + + + + |           +  _______  enle
+                  + + + + + + + + + + + + |           /
+                  + + + + + + + + + + + + |          /
+                  + + + + + + + + + + + + |         /
+                  + + + + + + + + + + + + |        /
+            + stle  | ------/
+             +      +-------------------
+          0.0 K  + 0.0    + stpo        1.0
+                +White              + + + + + + + + + + + + Black
+

+ For minimum sensitivity of printed output to the lighting spectrum, + it currently seems best to use the maximum possible black, but other + black generation levels (ie. 0.3 to 0.5) may well be preferred if + one wants to minimize the noisy appearance of black on an inkjet + device, or if the banding behaviour or other rendering flaws of the + printer is to be minimized.
+
+ Note that the black level curve is applied throughout the gamut, + resulting in GCR (Grey Component Replacement). There is no facility + to restrict black to just neutral colors, hence UCR is not currently + supported.
+  
+ The xicclu tool can be used to plot out + the resulting black level for a given set of parameters, by using + the -g flag of a profile already + created from the same .ti3 file.
+
+ -K parameters. + Any of the -k options above + can use the -K version, in + which rather than a black value target being defined by the inking + rule, a black locus + target is defined. For each lookup, the minimum possible black level + and the maximum possible black level is determined, the former + corresponding to a locus target of 0, and the latter corresponding + to a locus target of 1. For instance, at the white point, no black + will be used in the output, even if the black locus specifies a + maximum (since the maximum amount of black that can be used to print + white is actually zero). Similarly, at the black point, black may + well be used, even if the black locus specifies zero black (since a + certain amount of black is needed to achieve the desired density of + color).
+
+ The -l tlimit parameter sets the + total ink limit (TAC, Total Area Coverage) for the CMYK separation, + as a total percentage from 0% to 400%, and overrides any ink limit + specified in the .ti3 file. The limit value should generally be set + a little below the value used in the test chart generation, to avoid + the very edges of the gamut. If the test chart ink limit has been + chosen to be a little beyond an acceptable level, then this number + should be the acceptable level. Although limits can be set below + 200%, this will generally restrict the color gamut noticeably, as + fully saturated secondary colors will not be reproduced. Values are + between 220% and 300% for typical printing devices. Ink limits will + be in the final calibrated device values if the .ti3 includes the calibration + table.
+
+ The -L klimit parameter sets the + black channel ink limit for the CMYK separation, as a total + percentage from 0% to 100%. For printing press like devices, this + can be used to prevent the black channel screening pattern "filling + in". Typical values might be from 95% to 99%. Note that with the + current implementation this can slow down the creation of the + profile quite noticeably, so do not use -L unless you really need to. Ink limits will be in + the final calibrated device values if the .ti3 includes the calibration table.
+
+ The -a parameter allows choosing an + alternate profile type.
+
+ By default (equivalent to -al) profile creates a cLUT based table profile with a + PCS (Profile Connection Space) of L*a*b*, which generally gives the + most accurate results, and allows for the four different rendering + intents that ICC profiles can support.
+
+ A cLUT base table profile using a PCS of XYZ can be created if -ax + is used, and this may have the advantage of better accuracy for + additive type devices (displays, scanners, cameras etc.), may avoid + clipping for displays with a colorant chromaticity that can't be + encoded in L*a*b* PCS space, and may give a more accurate white + point for input devices by avoiding clipping of values above the + white point that can occur in L*a*b* based cLUT input profiles. By + default cLUT XYZ PCS Display profiles will also have a set of dummy + matrix tags included in them, for better compatibility with other + systems. The dummy matrix deliberately interchanges Red, Green and + Blue channels, so that it is obvious if the cLUT tables are not + being used. If it is important for both the cLUT and matrix be + accurate, use -aX, which + will create shaper/matrix tags.
+
+ For RGB input or display profiles, a simpler type of profile using + either a gamma curves or a general shaper curves, combined with a + matrix can be created, although such a profile cannot support + perceptual or saturation intents. Gamma curve and matrix profiles + can be created by specifying -ag or -aG, the former + creating three independent gamma curves, one for each device + channel, and the latter creating one common curve for all the device + channels. The latter may be needed with certain applications that + will not accept different gamma curves for each channel. General + shaper curve and matrix profiles (which are superior to gamma curve + profiles) can be created by specifying -as or -aS, + the former creating three independent shaper curves, one for each + device channel, and the latter creating one common curve for all the + device channels. The latter may be needed with certain applications + that will not accept different shaper curves for each channel.
+
+ The -am option will create + a matrix profile with linear (i.e. gamma = 1.0) curves. This may be + useful in creating a profile for a device that is known to have a + perfectly linear response, such as a camera in RAW mode.
+
+ -u: Input + profiles will normally be created such that the white patch of the + test chart will be mapped to perfect white when used with any of the + non-absolute colorimetric intents. This is the expected behavior for + input profiles. If such a profile is then used with a sample that + has a lighter color than the original test chart, then a cLUT + profile will clip the value, since it cannot be represented in the + lut table. Using the -u flag causes the media white point to + be automatically scaled (using the same type of scaling as the -U scale option) to avoid + clipping values up to full device white. This flag can be useful + when an input profile is needed for using a scanner as a "poor mans" + colorimeter, or if the white point of the test chart doesn't + represent the white points of media that will be used in practice, + and that white point adjustment will be done individually in some + downstream application.
+
+ -uc: For + input profiles it is sometimes desirable that any highlights + brighter than the white point, map exactly to white, and this option + post processes the cLUT entries to ensure this is the case. Note + that due to the finite nature of the cLUT grid, this may affect the + accuracy of colors near the light surface of the device gamut.
+
+ -U scale: Input profiles + will normally be created such that the white patch of the test chart + will be mapped to perfect white when used with any of the + non-absolute colorimetric intents. This is the expected behavior for + input profiles. Sometimes the test chart white is not quite the same + as the media being converted through the input profile, and it may + be desirable in these cases to adjust the input profile white point + to compensate for this. This can happen in the case of a camera + profile, where the test chart is not perfectly exposed. The -U parameter allows this. If the + media converted is a little darker than the test chart white, then + use a scale factor slightly less than 1.0 to make sure that the + media white comes out as white on conversion (ie. try 0.9 for + instance). If the media is a little lighter than the test chart + white and is "blowing out" the highlights, try a value slightly + greater than 1.0 (ie. try 1.1 for instance). The -u option sets the scale + automatically to accomodate a perfect white, but -U scale can be used on top of + this automatic scaling.
+
+ -R: Normally the white point, black point and primary + locations (for matrix profiles) are computed so as to create + profiles that best match the sample data provided. Some programs are + not happy with the resulting locations if they have negative XYZ + values, or if the white point has a Y value > 1. The -R option restricts the white, + black and primary values, so as to work with these programs, but + this will reduce the accuracy of the profile.
+
+ The -f flag enables Fluorescent Whitening + Agent (FWA) compensation. This only works if spectral data is + available and, the instrument is not UV filtered.  FWA + compensation adjusts the spectral samples so that they appear to + have been measured using an illuminant that has a different level of + Ultra Violet to the one the instrument actually used in the + measurement. There are two ways this can be used:
+
+ The first and most common is to use the -f flag with the -i + illuminant parameter, to make the color values more accurately + reflect their appearance under the viewing illuminant. This will + work accurately if you specify the actual illuminant spectrum you are using to view the + print, using the -i flag. If you are + doing proofing, you need to apply this to both your source profile, and + your destination profile. Note that it is not sufficient to + specify an illuminant with the same white point as the one you are + using, you should specify the spectrum of the illuminant you are actually using for the + proofing, including its Ultra + + + + + + + + + + + + Violet spectral content, otherwise FWA compensation won't + work properly. This means you ideally need to measure your + illuminant spectrum using an instrument that can measure down to + 300nm. Such instruments are not easy to come by. The best + alternative is to use the illumread + utility, which uses an indirect means of measuring an illuminant and + estimating its UV content. Another alternative is to simply try + different illuminant spectra in the ref directory, and see if one gives you the result + you are after, although this will be fairly a tedious approach. The + ref/D50_X.X.sp set of illuminant spectra are the D50 spectrum with + different levels of U.V. added or subtracted, ref/D50_1.0.sp being + the standard D50 illuminant, and may be somewhere to start.
+  [Note: Generally using -f + with the standard (-i) D50 illuminant spectrum will predict + that the device will produce bluer output than the default of not + FWA compensation. This is because most instruments use an + incandescent illuminant (A type illuminant), which has lower + relative levels of UV than D50, so the FWA compensation simulates + the effect of the greater UV in the D50. Also note that in an + absolute colorimetric color transformation, the more a profile + predicts the output device will have blue output, the yellower the + result will be, as the overall color correction compensates for the + blueness. The opposite will happen for an input profile.]
+
+ The second way of using the -f flag is to provide it with a + instrument simulation illuminant spectrum parameter, in addition to + the default D50 or -i parameter  CIE XYZ  + calculation illuminant. This more complicated scenario + simulates the measurement of the spectral reflectance of the samples + under a particular instrument illuminant, then computes the CIE XYZ + values of that reflectance spectrum under the default D50 or -i + parameter illuminant. This is not used to give a more + accurate real world result, but to provide simulations of various + standardized measurement conditions. For instance, to reproduce ISO + 13655:2009 M2 measurement conditions, the -f D50M2 could be + used (together with the default -i D50 setting). There are + shortcuts provided for ISO 13655:2009 conditions:
+
+     -f M0    +     equivalent to    -f A
+     -f M1        + equivalent to    -f D50
+     -f M2        + equivalent to    -f D50M2
+

+  Note that using -f M2 + gives a result that is comparable to that of a U.V. cut filter + instrument. See also the discussion About + Fluorescent Whitening Agent compensation.
+
+ The -i parameter allows specifying a + standard or custom illumination spectrum, applied to spectral .ti3 + data to compute PCS (Profile Connection Space) tristimulus values. A, + D50, D65, F5, F8, F10 are a + selection of standard illuminant spectrums, with D50 being + the default. If a filename is specified instead, it will be assumed + to be an Argyll specific .sp + custom spectrum file. This only works if spectral data is available. + Illuminant details are:
+
+         A   CIE + tungsten filament lamp 2848K
+         D50 CIE daylight 5000K
+         D65 CIE daylight 6500K
+         F5  CIE Fluorescent + 6350K, CRI 72
+         F8  CIE Fluorescent + 5000K, CRI 95
+         F10 CIE Fluorescent + 5000K, CRI 81
+
+ Custom illuminants are most often used when a  viewing booth or + other known viewing conditions is going to be used to view results. + Other illuminant reference files could be created using a suitable + measuring instrument such as a spectrolino, or an eyeone using spotread, although such instruments do + not themselves provide the necessary response down to Ultra Violet + that is needed for accurate operation of Fluorescent Whitening Agent + compensation. The best way of measuring a custom illuminant is to + use illumread, since it uses a special + method to estimate the illuminant UV in a way that complements FWA + compensation. (See the discussion above for the -f flag).
+
+ Note that if an illuminant other than D50 is chosen, the resulting + ICC profile will not be standard, and may not work perfectly with + other profiles that that use  the standard ICC D50 illuminant, + particularly if the absolute rendering intent is used. Profiles + should generally be linked with other profiles that have the same + illuminant and observer.
+
+ The -o flag allows specifying a tristimulus + observer, and is used to compute tristimulus values. The following + choices are available:
+   1931_2 selects the standard CIE 1931 2 degree + observer. The default.
+   1964_10 selects the standard CIE 1964 10 degree + observer.
+   1955_2 selects the Stiles and Birch 1955 2 degree + observer
+   1978_2 selects the Judd and Voss 1978 2 degree + observer
+   shaw selects the Shaw and Fairchild 1997 2 degree + observer
+
+ Note that if an observer other than 1931 2 degree is chosen, the + resulting ICC profile will not be standard, and cannot be freely + interchanged with other profiles that that use the standard 1931 2 + degree observer. Profiles should only be linked with other profiles + that have the same illuminant and observer. The 1978_2 + observer or shaw observer + may give slightly better results than the 1931_2 observer.
+
+
+ The -r parameter specifies the average + deviation of device+instrument readings from the perfect, noiseless + values as a percentage. Knowing the uncertainty in the reproduction + and test patch reading can allow the profiling process to be + optimized in determining the behaviour of the underlying system. The + lower the uncertainty, the more each individual test reading can be + relied on to infer the underlying systems color behaviour at that + point in the device space. Conversely, the higher the uncertainty, + the less the individual readings can be relied upon, and the more + the collective response will have to be used. In effect, the higher + the uncertainty, the more the input test patch values will be + smoothed in determining the devices response. If the perfect, + noiseless test patch values had a uniformly distributed error of +/- + 1.0% added to them, then this would be an average deviation of 0.5%. + If the perfect, noiseless test patch values had a normally + distributed  error with a standard deviation of 1% added to + them, then this would correspond to an average deviation of 0.564%. + For a lower quality instrument (less than say a Gretag Spectrolino + or Xrite DTP41), or a more variable device (such as a xerographic + print engine, rather than a good quality inkjet), then you might be + advised to increase the -r + parameter above its default value (double or perhaps 4x would be + good starting values.)
+
+ -s + -S  In order to generate perceptual and saturation + intent B2A tables for output profiles, it is necessary to specify at + least one profile to define what source gamut should be used in the + source to destination gamut mapping. [For more information on why a source gamut is + needed, see About ICC profiles and + Gamut Mapping] The -S parameter is used to do this, + and doing so causes perceptual and saturation tables to be + generated. If only a perceptual intent is needed, then the -s + flag can be used, and the saturation intent will use the same table + as the perceptual intent. Note that a input, output, display or + device colororspace profile should be specified, not a non-device + colorspace, device link, abstract or named color profile.
+ If no source gamut is specified for a cLUT Display profile, then an + ICC Version 2.2.0 profile will be created with only an A2B0 and B2A0 + tag. If a source gamut is specified, then an ICC Version 2.4.0 + profile will be created with a full complement of B2A tags to + support all intents. The source gamut is created from the + corresponding intent table of the provided profile to the output + table being created. A TIFF or JPEG file containing an embedded ICC + profile may be supplied as the argument.
+ Note that input profiles and + matrix profiles will only contain a colorimetric intent table or + matrix, and hence the -s + and -S option is not + relevant.
+
+ -nP: + Normally when a source profile is provided to define the source + gamut for the output profile perceptual table gamut mapping, the + perceptual source table is used to determine this gamut. This is + because some profile have gamut transformations in their perceptual + A2B tables that is not in the colorimetric A2B table, and this needs + to be taken into account in creating the perceptual B2A table, so + that when the two profiles are linked together with the perceptual + intent, the gamut mapping works as intended. The -nP option causes the source + gamut to be taken from the source profile colorimetric table + instead, causing the perceptual gamut mapping created for the + perceptual table to be from the natural source colorspace gamut to + the output space gamut.
+
+ -nS: + Normally when a source profile is provided to define the source + gamut for the output profile saturation table gamut mapping, the + saturation source table is used to determine this gamut. This is + because some profile have gamut transformations in their saturation + A2B tables that is not in the colorimetric A2B table, and this needs + to be taken into account in creating the saturation B2A table, so + that when the two profiles are linked together with the saturation + intent, the gamut mapping works as intended. The -nS option causes the source + gamut to be taken from the source profile colorimetric table + instead, causing the saturation gamut mapping created for the + saturation table to be from the natural source colorspace gamut to + the output space gamut.
+
+ The -g flag + and its argument allow the use of a specific source gamut instead of + that of the source profile. This is to allow optimizing the gamut + mapping to a source gamut of  a particular image, which can + give slightly better results that gamut mapping from the gamut of + the source colorspace. Such a source image gamut can be created + using the tiffgamut tool. The gamut + provided to the -g flag should be in the same + colorspace that colprof is + using internally to connect the two profiles. For all intents except + the last one (no. 7), the + space should be Jab appearance space, with the viewing conditions + generally being those of the input profile viewing conditions. The + input profile will normally be the one used to create a source image + gamut using tiffgamut.
+
+ The -p option allows specifying one + or more abstract profiles that will be applied to the output tables, + after any gamut mapping. An abstract profile is a way of specifying + a color adjustment in a device independent way. The abstract profile + might have been created using one of the tweak tools, such as refine.
+ If a single abstract profile is specified, then it will be applied + to all the output tables (colorimetric, perceptual and saturation). + To specify different abstract profiles for each output table, use a + contiguous comma separated list of filenames. Omit a filename + between the commas if no abstract profile is to be applied to a + table. For instance: -p + colabst.icm,percabst.icm,satabst.icm for three different + abstract transforms, or: -p + ,percabst.icm, for just a perceptual table abstract + transform.
+
+ One strategy for getting the best perceptual results with output + profile when using ICC profiles with systems that don't accept + device link profiles, is as follows: Specify a gamut mapping profile + of opposite type to the type of device being profiled, and when + linking, use the relative colorimetric intent if the two profiles + are of the same type, and perceptual intent if the two profiles are + of the opposite type. For instance, if you are creating a CMYK + output profile, specify an RGB profile for the -s or -S + parameter. If linking that profile with a CMYK source profile, use + relative colorimetric intent, or if linking with an RGB profile, use + the perceptual intent. Conversely, if creating an RGB output + profile, specify a CMYK profile for the -s or -S + parameter, and if linking that profile with an RGB source profile, + use relative colorimetric intent, or if linking with a CMYK profile, + use the perceptual intent.
+
+ (Note that the perceptual and saturation table gamut mapping doesn't + make any allowance for the application of the abstract profile. This + is a bug.)
+
+ Normally, the gamut mapping used + in creating the perceptual and saturation intent tables for output + profiles is set to perceptual and saturation gamut mapping (as would + be expected), but it is possible to override this default selection + for each intent using the -t and -T flags. The -t + flag can be used to set the gamut mapping for the perceptual table, + and the -T flag can be used to set the gamut mapping for the + saturation table. A more detailed description of the different + intents is given in collink. Note that + selecting any of the absolute intents will probably not function as + expected, since the perceptual and saturation tables are inherently + relative colorimetric in nature.
+
+ Since appearance space is + used in the gamut mapping (just as it is in + collink), the viewing conditions for the source and + destination colorspaces should really be specified. The source + colorspace is the profile specified with the -s or -S + flag, and the destination is the profile being created. The -c + and -d options allow specification of their respective, + associated viewing conditions. The viewing condition information is + used to map the profile PCS (Profile Connection Space, which us + either XYZ or L*a*b*) color into appearance space (CIECAM02), which + is a better colorspace to do gamut mapping in. The viewing + conditions allow the conversion into appearance space to take + account of how color will be seen under particular viewing + conditions.
+
+ Viewing conditions can be specified in two basic ways. One is to + select from the list of "pre canned", enumerated viewing conditions, + choosing one that is closest to the conditions that are appropriate + for the media type and situation. Alternatively, the viewing + conditions parameters can be specified individually. If both methods + are used, them the chosen enumerated condition will be used as a + base, and its parameters will then be individually overridden.
+
+ Appearance space is also used to provide a space to map any + remaining out of gamut colors (after a possible gamut mapping has + been applied) into the device gamut.
+
+ The -P option causes diagnostic 3D VRML plots to be created that + illustrate the gamut mappings generated for the perceptual and + saturation intent tables.
+
+ The -O + parameter allows the output file name & extension to be + specified independently of the final parameter basename. Note that + the full filename must be specified, including the extension.
+
+ The final parameter is the file base name for the + .ti3 input test point data, and + the resulting ICC output + profile (.icm extension on the MSWindows platform, .icc on Apple or + Unix platforms). The -O + parameter will override this default. +

Discussion

+ Note that monochrome profiling isn't currently supported. It may be + supported sometime in the future.
+
+ If the -v flag is used (verbose), then at the end of + creating a profile, the maximum and average fit error of the input + points to the resulting profile will be reported. This is a good + guide as to whether things have gone smoothly in creating a profile. + Depending on the type of device, and the consistency of the + readings, average errors of 5 or less, and maximum errors of 15 or + less would normally be expected. If errors are grossly higher than + this, then this is an indication that something is seriously wrong + with the device testing, or profile creation.
+
+ Given a .ti3 file from a display device that contains calibration + curves (generated by dispcal, passed + through dispread) and the calibration + indicates that the VideoLUTs are accessible for the device, then colprof will convert the + calibration into a vcgt tag + in the resulting profile so that the operating system tools can + configure the display hardware appropriately, whenever the profile + is used. If the VideoLUTs are not marked as being accessible, colprof will do nothing with the + calibration curves. In this case, to apply calibration, the curves + have to be incorporated in the subsequent workflow, either by + incorporating them into the profile using applycal, or including them after the + profile in a cctiff profile chain.
+
+ Given a .ti3 file from a print device that contains the per-channel + calibration information (generated by printcal, + passed through printtarg and chartread), colprof will save this along with the .ti3 file in + the 'targ' text tag in the + profile, so that + subsequent evaluation of ink limits can compute the final calibrated + device values.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + diff --git a/doc/cube.jpg b/doc/cube.jpg new file mode 100644 index 0000000..929273c Binary files /dev/null and b/doc/cube.jpg differ diff --git a/doc/dispcal.html b/doc/dispcal.html new file mode 100644 index 0000000..7327c8f --- /dev/null +++ b/doc/dispcal.html @@ -0,0 +1,2256 @@ + + + + dispcal + + + + +

spectro/dispcal

+

Summary

+ Given calibration target information [white point, maximum + brightness, and response curve ("gamma")], display a series of test + patches on the display, and using the colorimetric values read, + create a calibration lookup tables that make the display meet the + desired target. The type of instrument is determined by the + communication port selected. Emission and display measurement + instruments are supported.
+

Usage

+ dispcal + [-options] inoutfile
+  -v [n] +               + + + + + + + + + + + + + + + + + + + + Verbose mode
+
 -display displayname [X11 only] Choose X11 display + name
+
 -d n[,m] +             + [X11 only]Choose the display from the following list (default + 1),
+                       +and +optionally +choose +a +different +display +m +for + + + + + + + + + + + + + + + + + + + + VideoLUT access.

+  -d n                 +Choose +the +display +from +the +following +list +(default + + + + + + + + + + + + + + + + + + + + 1)
+  -dweb[:port]         + + + + + + + + + + + + + + + + + + + Display via a web server at port (default 8080)
+   -c + + + + + + + + + + + + + + + + + + + + listno     +        Set communication port from + the following list (default 1)
+
 -r +              +      Report on the calibrated display then + exit
+
 -R +              +      Report on the uncalibrated display then + exit
+  -m +              +      Skip adjustment of the monitor + controls
+   -o [profile.icm]     Create + fast matrix/shaper profile [different filename to outfile.icm]
+  -O description       + + + + + + + + + + + + + + + + + + + + Fast ICC Profile Description string (Default "outfile")
+  -u                   +Update +previous +calibration +and +(if +-o +used) +ICC + + + + + + + + + + + + + + + + + + + + profile VideoLUTs

+  -q [lmh]             + + + + + + + + + + + + + + + + + + + + Quality - Low, Medium (def), High
+  -p                   + + + + + + + + + Use telephoto mode (ie. for a projector) (if available)
+  
-y X +                 + + + + + + + + + + + + + + + + + + + + Display type - instrument specific list to choose from.
+
 -t [temp]            +White +Daylight +locus +target, +optional +target +temperaturee +in + + + + + + + + + + + + + + + + + + + + deg. K (deflt.)
+
 -T [temp]            +White +Black +Body +locus +target, +optional +target +temperaturee + + + + + + + + + + + + + + + + + + + + in deg. K
+  -w x,y               + + + + + + + + + + + + + + + + + + + + Set the target white point as chromaticity coordinates
+  -b bright            + + + + + + + + + + + + + + + + + + + + Set the target white brightness in cd/m^2
+  -g gamma             + + + + + + + + + + + + + + + + + + + + Set the target response curve gamma (Def. 2.4)
+                       + + + + + + + + + + + + + + + + + + + + Use "-gl" for L*a*b* curve
+                + + + + + + + + + + + + + + + + + + + +        Use "-gs" for sRGB curve
+                       +Use +"-g709" +for +REC +709 +curve +(should +use + + + + + + + + + + + + + + + + + + + + -a as well!)
+                       + + + + + + + + + + + + + + + + + + + + Use "-g240" for SMPTE 240M curve
(should use -a as well!)
+                       + + + + + + + + + + + + + + + + + + + + Use "-G2.4 -f0" for BT.1886                                           + + + + + + + + + + + + +
+  -G gamma +             + Set the target response curve actual technical gamma
+  -f [degree]          +Amount +of +black +level +accounted +for +with +output + + + + + + + + + + + + + + + + + + + + offset (default all output offset)
+  -a ambient           + + + + + + + + + + + + + + + + + + + + Use viewing condition adjustment for ambient in Lux
+
 -k factor +            + Amount to try and correct black point hue. Default 1.0, LCD + default 0.0
+
 -A rate +              + Rate of blending from neutral to black point. Default 4.0
+  -B bkbright          + + + + + + + + + + + + + + + + + + + + Set the target black brightness in cd/m^2
+  -e [n]               + + + + + + + + + + + + + + + + + + + + Run n verify passes on final curves
+
 -E +                   + + + + + + + + + + + + + + + + + + + + Run only verify pass on installed calibration curves
+  -P + ho,vo,ss[,vs]     Position test window + and scale it
+                       +ho,vi: +0.0 += +left/top, +0.5 += +center, +1.0 + + + + + + + + + + + + + + + + + + + + = right/bottom etc.
+                       +ss: +0.5 += +half, +1.0 += +normal, +2.0 + + + + + + + + + + + + + + + + + + + + = double etc.
+
                      + + + + + + + ss,vs: = optional horizontal, vertical scale.
+  -F +                   + + + + + + + + + + + + + + + + + + + + Fill whole screen with black background
+  -n              +     +[X11 +only] +Don't +set +override +redirect +on + + + + + + + + + + + + + + + + + + + + test window
+
 -J +              +      Run instrument calibration first
+
 -N                   + + + + + + + + + + + + + + + + + + + + Disable initial calibration of instrument if possible
+  -H +              +      Use high resolution spectrum mode (if + available)
+

+  
-X file.ccmx         + + + + + + + + + + + + + + + + + + + + Apply Colorimeter Correction Matrix
+  -X + file.ccss          +Use +Colorimeter +Calibration + + + + + + + + + + + + + + + + + + + + Spectral Samples for calibration
+
 -Q observ        +     Choose CIE Observer for spectrometer or CCSS + colorimeter data:
+             + + + + + + + + + + + + + + + + + + + +           1931_2
(def.), 1964_10, S&B 1955_2, shaw, + J&V 1978_2, 1964_10c
+  -I b|w               + + + + + + + + + + + + + + + + + + + + Drift compensation, Black: -Ib, White: -Iw, Both: -Ibw
+
 -Y A +             +     Use non-adaptive integration time mode (if + available).
+  -C "command" +         Invoke shell + "command" each time a color is set
+  -M "command" +         Invoke shell + "command" each time a color is measured
+  -W n|h|x             +Override +serial +port +flow +control: +n += +none, + + + + + + + + + + + + + + + + + + + + h = HW, x = Xon/Xoff
+  -D [level]           + + + + + + + + + + + + + + + + + + + + Print debug diagnostics to stderr
+  inoutfile            + + + + + + + + + + + + + + + + + + + + Base name for created + or updated .cal  and .icm output files
+
+

Comments
+

+ This is the tool is used for adjusting and calibrating a display to + reach specified target behaviour, and optionally profiling it.  + For best results on a CRT, you should run this against a neutral + grey desktop background, and avoid having any bright images or + windows on the screen at the time you run dispcal. You could also + use the -B option to black + the whole screen out, although this will make it impossible to + control dispcal unless you have more than one display.
+
+ The -v flag reports progress information, + as well as other statistics about the progress of calibration. A + numerical argument greater than 1 gives greater verbosity.
+
+ When running on a UNIX based system that used + the X11 Windowing System, dispcal will by default use the + $DISPLAY environment variable to determine which local or remote + display and screen to read from. This can be overridden by supplying + an X11 display name to the -display + option. Note that if Xinerama is active, you can't select the screen + using $DISPLAY or -display, you have to select it using the -d parameter.
+
+ By default the main display will be the location of + the test window. If the system has more than one display or screen, + an alternate display/screen can be selected with the -d parameter. If you invoke dispcal so as to display the + usage information (i.e. "dispcal -?" or "dispcal --"), then the + discovered displays/screens will be listed. Multiple displays may + not be listed, if they appear as a single display to the operating + system (ie. the multi-display support is hidden in the video card + driver). On UNIX based system that used the X11 Windowing System, + the -d parameter will + override the screen specified by the $DISPLAY or parameter.
+
+ Note that if VideoLUTs for a + display are not accessible (i.e. no hardware calibration + capability), dispcal will + will issue a warning, but continue creating a calibration based on + the display "as-is" rather than its native response. See the -o flag for an explanation of the + implications of having no access to the VideoLUTs.
+
+ On X11 the inability to access VideoLUTs could be because you are + trying to access a remote display, and the remote display doesn't + support the XF86VidMode extension, or perhaps you are running + multiple monitors using NVidia TwinView, or MergedFB, and trying to + access anything other than the primary monitor. TwinView and + MergedFB don't properly support the XF86VidMode extension for + multiple displays. You can use dispwin -r + to test whether the VideoLUTs are accessible for a particular + display. See also below, on how to select a different display for + VideoLUT access. Also note that dispcal will fail if the Visual + depth doesn't match the VideoLUT depth. Typically the VideoLUTs have + 256 entries per color component, so the Visual generally needs to be + 24 bits, 8 bits per color component.
+
+ Because of the difficulty cause by TwinView and + MergedFB in X11 based systems, you can optionally specify a separate + display number after the display that is going to be used to present + test patches, for accessing the VideoLUT hardware. This must be + specified as a single string, e.g. -d + + + + + + + + + + + + + + + + + + + + 1,2 . Some experimentation may be needed using dispwin on such systems, to discover what + screen has access to the VideoLUT hardware, and which screens the + test patches appear on. You may be able to calibrate one screen, and + then share the calibration with another screen. Profiling can be + done independently to calibration on each screen.
+
+ -dweb or + -dweb:port starts a + standalone web server on your machine, which then allows a local or + remote web browser to display the the color test patches. By default + port 8080 is used, but this + can be overridden by appending a : + and the port number i.e. -dweb:8001. + The URL will be http:// + then name of the machine or its I.P. address followed by a colon and + the port number - e.g something like http://192.168.0.1:8080. If you use the verbose + option (-v) then a likely + URL will be printed once the server is started, or you could run ipconfig (MSWin) or /sbin/ifconfig (Linux or OS X) + and identify an internet address for your machine that way. JavaScript + needs to be enabled in your web browser for this to work.
+
+ Note that if you use this method of displaying test patches, that + there is no access to the display VideoLUTs and that the colors will + be displayed with 8 bit per component precision, and any + screen-saver or power-saver will not be disabled. You will also be + at the mercy of any color management applied by the web browser, and + may have to carefully review and configure such color management. + See the -o flag for an explanation of the + implications of having no access to the VideoLUTs.
+
+ -c The + instrument is assumed to communicate through a USB or serial + communication port, and the port can be selected with the -c + option, if the instrument is not connected to the first port. If you + invoke dispcal so as to + display the usage information (i.e. "dispcal -?" or "dispcal --"), + then the discovered USB and serial ports will be listed. On + UNIX/Linux, a list of all possible serial ports are shown, but not + all of them may actually be present on your system.
+
+ The -r and + -R flags + perform a quick measurement of current display behaviour, reports + and then exits. If the -r + flag is used the measurement are taken using the currently loaded + calibration (Video LUT) curves. If -R + is use, then the uncalibrated ("raw" or "native") behaviour is + measured. Reported are:
+
+     Black Brightness in cd/m^2
+     White Brightness in cd/m^2
+     The approximate Gamma
+     The white point x,y chromaticity co-ordinates
+     The correlated color temperature in Kelvin, and + the CIEDE200 to the Black Body locus.
+     The correlated Daylight temperature in Kelvin, + and the CIEDE200 to the Daylight locus.
+     The visual color temperature in Kelvin, and the + CIEDE200 to the Black Body locus.
+     The visual Daylight temperature in Kelvin, and + the CIEDE200 to the Daylight locus.
+     The visual color temperature in Kelvin
+ (for -R "raw":)
+     The apparent VideoLUT entry number of significant + bits.
+
+ Note that the correlated color temperature is the temperature of a + black body radiator that has the closest color to the white point + measured using the traditional CIE 1960 UCS space color difference + formula. The correlated daylight temperature is a similar thing, + except the CIE daylight locus is used. The visual color temperature + values are calculated similarly to the correlated color + temperatures, but using the modern CIEDE2000 color difference + formula to calculate a better visual approximation to the closest + temperature to the displays white point. There will be no difference + between the UCS and CIEDE2000 temperatures if the display white + point actually lies on the particular locus.
+
+ The -m + option skips the usual process of adjusting the display monitor + contrast, brightness and white point controls, and skips straight to + calibration.
+
+ -o [profile.icm] Normally dispcal creates just a + calibration file, which can then be used for subsequent + characterization using dispread and + profiling using colprof. If the -o flag is used, dispcal will also create a + shaper/matrix profile. By default it will create a profile named inoutfile.icm, but a differently + named file can be created or updated by specifying the name after + the -o flag. If the -u flag is used with -o, then the ICC profile vcgt calibration curves will be + updated.
+
+ Note that if VideoLUT access is not possible for the display, that + hardware calibration is not possible. dispcal will create + calibration curves anyway with a warning, and if a profile is + created, it will not contain a 'vcgt' tag, but instead will have the + calibration curves incorporated into the profile itself. If + calibration parameters are chosen that change the displays white + point or brightness, then this will result in a slightly unusual + profile that has a white point that does not correspond with + R=G=B=1.0. Some systems may not cope properly with this type of + profile. See the tutorial for a + further explanation.
+
+ The -O parameter allows setting of the + shaper/matrix profile description tag. The parameter should be a + string that describes the device and profile. With most command line + shells, it will be necessary to enclose the parameter with double + quotes, so that spaces and other special characters are included in + the parameter, and not mistaken for the start of another flag, or as + a final command line parameter. Many programs that deal with ICC + profiles use the description tag to identify a profile, rather than + the profile filename, so using a descriptive string is important in + being able to find a profile. By default, the profile file name will + be used as the description.
+
+ -u Normally + dispcal creates a new + calibration file and optional profile, based on the requested + targets and the response of the display. This can take a fair amount + of time, particularly if a high quality level has been selected, so + to speed up the process of keeping a display in calibration the -u flag can be used. This uses + the same calibration targets as the previous calibration but does a + smaller number of refinement passes, enough to improve the accuracy + of the calibration to account for drift in the device. If the -o flag is used as well, then + the ICC profile will have + its vcgt tag updated with the new calibration. This keeps the + profile up to date with the display. Normally dispcal -u will use the same + quality level that was specified in the previous calibration, but + this can be overridden using the -q + flag. Any options that attempt to change the calibration target (ie. + white point, brightness, gamma etc.) will be ignored. Adjustment of + the display monitor controls is skipped. A profile cannot be updated + if the display does not support hardware calibration (no VideoLUT + access).
+
+   Quality - Low, Medium (def), High. The -q flag determines how much time + and effort to go to in calibrating the display. The higher the + quality, the more test readings will be done, the more refinement + passes will be done, the tighter will be the accuracy tolerance, and + the more detailed will be the calibration of the display. The result + will ultimately be limited by the accuracy of the instrument, the + repeatability of the display and instrument, and the resolution of + the Video Lookup table entries and Digital or Analogue output + (RAMDAC).
+
+ The -p flag + allows measuring in telephoto mode, using instruments that support + this mode, e.g. the ColorMunki. Telephoto mode is one for taking + emissive measurements from a distance (ie. telespectometer, + tele-colorimeter) mode, and typically would be used for measuring + projector type displays. If a device does not support a specific + telephoto mode, then the normal emissive mode may be suitable for + measuring projectors.
+
+   The -y + flag allows setting the Display Type. The selection typically + determines two aspects of of the instrument operation: 1) It may set the measuring mode + to suite refresh or non-refresh displays. + Typically only LCD (Liquid Crystal) displays have a non-refresh + nature. 2) It may select an + instrument calibration matrix suitable for a particular display + type. The selections available depends on the type and model of + instrument, and a list of the options for the discovered instruments + will be shown in the usage + information. For more details on what particular instruments support + and how this works, see Operation of + particular instruments. 3) Any installed CCSS files + (if applicable), or CCMX files. These files are typically created + using ccxxmake, + and installed using oeminst. The + default and Base Calibration types will be indicated in the usage.
+
+ -t Set the target white point + locus to the equivalent of a Daylight spectrum of the given + temperature in degrees Kelvin. By default the white point target + will be the native white of the display, and it's color temperature + and delta E to the daylight spectrum locus will be shown during + monitor adjustment, and adjustments will be recommended to put the + display white point directly on the Daylight locus. If a Daylight + color temperature is given as an argument to -t, then this will become the + target of the adjustment, and the recommended adjustments will be + those needed to make the monitor white point meet the target. + Typical  values might be 5000 for matching printed output, or + 6500, which gives a brighter, bluer look. A white point temperature + different to that native to the display may limit the maximum + brightness possible.
+
+ -T  Same functionality as + the -t option, except the + white point locus will be the Black Body, or Planckian locus, rather + than the Daylight locus. While these two white point loci are quite + close, they are subtly different. If a temperature is given as an + argument, this will become the Black Body target temperature during + adjustment.
+
+ -w  An + alternative to specifying a  white point target in Daylight or + Black Body degrees Kevin, is to specify it in chromaticity + co-ordinates. This allows the white point to be a color other than + one on the Daylight or Black Body. Note that the x,y numbers must be + specified as a single string (no space between the numbers and the + comma).
+
+ -b  Set + the target brightness of white in cd/m^2. If this number cannot be + reached, the brightest output possible is chosen, consistent with + matching the white point target. Note that many of the instruments + are not particularly accurate when assessing the absolute display + brightness in cd/m^2. NOTE + that some LCD screens behave a little strangely near their absolute + white point, and may therefore exhibit odd behavior at values just + below white. It may be advisable in such cases to set a brightness + slightly less than the maximum such a display is capable of.
+
+ -g gamma  +Set + + + + + + + + + + + + + + + + + + + + the target response curve gamma. This is normally an exponential + curve (output = input ^gamma), and defaults to 2.4 on MSWindows and + Macintosh OS X 10.6 or latter and Linux/Unix (which is typical of a + CRT type displays real response), and 1.8 on a Macintosh (prior to + OS X 10.6). Four pre-defined curves can be used as well: the sRGB + colorspace response curve, which is an exponent curve with a + straight segment at the dark end and an overall response of + approximately gamma 2.2 (-gs), +the + + + + + + + + + + + + + + + + + + + + L* curve, which is the response of the CIE L*a*b* perceptual + colorspace (-gl). the REC + 709 video standard response curve (-g709) + and the SMPTE 240M video standard response curve (-g240)
+
+ Note that a real display + can't reproduce any of these ideal curves, since it will have a + non-zero black point, whereas all the ideal curves assume zero light + at zero input. In the case of a gamma curve target, dispcal uses an + actual technical power curve shape that aims for the same relative + output at 50% input as the ideal gamma power curve. To allow for the + non-zero black level of a real display, by default dispcal will offset the target + curve values so that zero input gives the actual black level of the + display (output offset). This ensures that the target curve better + corresponds to the typical natural behavior of displays, but it may + not be the most visually even progression from display minimum, but + this behavior can be changed using the -f option (see below).
+
+ Also note that many color + spaces are encoded with, and labelled as having a gamma of + approximately 2.2 (ie. sRGB, + REC 709, SMPTE 240M, Macintosh OS X 10.6), but are actually intended + to be displayed on a display with a typical CRT gamma of 2.4 viewed in a darkened + environment. This is because this 2.2 + gamma is a source gamma encoding in bright viewing conditions such + as a television studio, while typical display viewing conditions are + quite dark by comparison, and a contrast expansion of (approx.) + gamma 1.1 is desirable to make the images look as intended. So if + you are displaying images encoded to the sRGB standard, or + displaying video through the calibration, just setting the gamma + curve to sRGB or REC 709 (respectively) is probably not what you want! What you + probably want to do, is to set the gamma curve to about gamma 2.4, + so that the contrast range is expanded appropriately, or alternatively + use sRGB or REC 709 or a gamm of 2.2 but also use the -a + parameter to specify the actual ambient viewing conditions, so that + dispcal can make an + appropriate contrast enhancement. If your instrument is capable of + measuring ambient light levels, then you can do so during the + interactive display control adjustment. See + <http://www.color.org/sRGB.xalter> for details of how sRGB is + intended to be used.
+
+ It is hard to know whether Apple Macintosh computers prior to OS X + 10.6 should also have such an adjustment, since it is not really + possible to know whether colors labelled as being in such a + colorspace are actually encoded in that gamma with the expectation + that they will be displayed on a display with that actual response, + or whether they are intended to be displayed on a display that + contrast expands by a power 1.1.  Both situations might be the + case, depending on how source material is created!
+
+ -G gamma  +As + + + + + + + + + + + + + + + + + + + + explained above, the gamma value provided to the -g option is used to set and + actual response curve that makes an allowance for the non-zero black + of the actual display, and will have the same relative output at 50% + input as the ideal gamma power curve, and so best matches typical + expectations. The -G option + is an alternative that allows the actual + power to be specified instead, meaning that when combined with the + displays non-zero black value, the response at 50% input will + probably not match that of the ideal power curve with that gamma + value.
+
+ -f [degree]: + As explained in for the -g + and -G options, real + displays do not have a zero black response, while all the target + response curves do, so this has to be allowed for in some way. The + default way of handling this (equivalent to -f 1.0)  is to + allow for this at the output of the ideal response curve, by + offsetting and scaling the output values. This defined a curve that will match the responses + that many other systems provide and may be a better match to the + natural response of the display, but will give a less visually even + response from black. The + other alternative is to offset and scale the input values into the + ideal response curve so that zero input gives the actual non-zero + display response. This ensures the most visually even progression + from display minimum, but might be hard to achieve since it is + different to the naturally response of a display. A subtlety is to + provide a split between how much of the offset is accounted for as + input to the ideal response curve, and how much is accounted for at + the output, and this can be done by providing a parameter -f degree, where the degree is + 0.0 accounts for it all as input offset, and 1.0 accounts for all of + it as output offset. If -f + is used without a specified degree, a degree of 0.0 is assumed, the + opposite of the default. Note + that using all input offset (degree == 0.0) is equivalent to the use + of the BT.1886 transfer + function.
+
+ -a ambient: + As explained for the -g + parameter, often colors are encoded in a situation with viewing + conditions that are quite different to the viewing conditions of a + typical display, with the expectation that this difference in + viewing conditions will be allowed for in the way the display is + calibrated. The -a option + is a way of doing this. By default dispcal + will not make any allowances for viewing conditions, but will + calibrate to the specified response curve, but if the -a option is used, or the + ambient level is measured during the interactive display controls + portion of the calibration, an appropriate viewing conditions + adjustment will be performed. For a gamma value or sRGB, the + original viewing conditions will be assumed to be that of the sRGB + standard viewing conditions, while for REC 709 and SMPTE 240M they + will be assumed to be television studio viewing conditions. By + specifying or measuring the ambient lighting for your display, a + viewing conditions adjustment based on the CIECAM02 color appearance + model will be made for the brightness of  your display and the + contrast it makes with your ambient light levels.
+
+ -k factor: + Normally this will be set automatically, based on the measured black + level of the display. A -k + factor of 1.0 will make all colors down the neutral axis (R=G=B) + have the same hue as the chosen white point. Near the black point, + red, green or blue can only be added, not subtracted from zero, so + the process of making the near black colors have the desired hue, + will lighten them to some + extent. For a device with a good contrast ratio or a black point + that has nearly the same hue as the white, this should not affect + the contrast ration too severely. If the device contrast ratio is + not so good, and the native black hue is noticeably different to + that of the chosen white point (which is often the case for LCD type displays, or CRT type displays with one + channel which has a poor level of black), this could have a + noticeably detrimental effect on an already limited contrast ratio, + and result in a black that is not as good as it can be, and a lower + -k factor should be used. -k values can range between 0.0 + (no correction of black) to 1.0 (full correction of black). If less + than full correction is chosen, then the resulting calibration + curves will have the target white point down most of the curve, but + will then blend over to the native or compromise black point that is + blacker, but not of the right hue. The rate of this blend can be + controlled with the -A + parameter (see below).
+
+ -A rate:  +If + + + + + + + + + + + + + + + + + + + + the black point is not being set completely to the same hue as the + white point (ie. because the -k + factor is less than 1.0), then the resulting calibration curves will + have the target white point down most of the curve, but will then + blend over to the native or compromise black point that is blacker, + but not of the right hue. The rate of this blend can be controlled + with the -A parameter. The + default value 4.0, which results in a target that switches from the + white point target to the black, moderately close to the black + point. While this typically gives a good visual result with the + target neutral hue being maintained to the point where the crossover + to the black hue is not visible, it may be asking too much of some + displays (typically LCD type displays), and there may be some visual + effects due to inconsistent color with viewing angle. For this + situation a smaller value may give a better visual result (e.g. try + values of 3.0 or 2.0. A value of 1.0 will set a pure linear blend + from white point to black point). If there is too much coloration + near black, try a larger value, e.g. 6.0 or 8.0.
+
+ -B  Set + the target brightness of black in cd/m^2. Setting too high a value + may give strange results as it interacts with trying to achieve the + target "advertised" gamma curve shape. You could try using -f 1 if + this causes a problem.
+
+ -e [n] Run n verify passes on the final + curves. This is an extra set of instrument readings, that can be + used to estimate how well the device will match the targets with the + computed calibration curves. Note that the usefulness of the + verification is sometimes limited by the repeatability of the device + & instrument readings. This is often evident for CRT displays, + which (due to their refresh rate) flicker. More than one + verification pass can be done by providing the parameter n, and by then comparing the + successive verifications, some idea of the repeatability can be + ascertained. The verification uses a fixed number of semi-random + test values to test the calibration.
+
+ -E Run + verify pass on the display as it is currently setup (currently + installed LUT curves). This will use the usual input parameters to + establish the expected (target) characteristic. Note that if the initial + calibration was modified due to it being out of gamut of the + display, verify will show the resulting discrepancy. You can use dispwin to load a .cal file into the display + before running dispcal -E. + Note that if you set an Ambient light level interactively during the + calibration, you need to enter the same number that was measured and + set using the -a parameter + for verify.
+
+ The -P + parameter allows you to position and size the test patch window. By + default it is places in the center of the screen, and sized + appropriately for the type of instrument. The ho and vo values govern the horizontal + and vertical offset respectively. A value of 0.0 positions the + window to the far left or top of the screen, a value of 0.5 + positions it in the center of the screen (the default), and 1.0 + positions it to the far right or bottom of the screen. If three + parameters are provided, then the ss + parameter is a scale factor for the test window size. A value of 0.5 + for instance, would produce a half sized window. A value of 2.0 will + produce a double size window. If four parameters are provided, then + the last two set independent horizontal and vertical scaling + factors. Note that the ho,vo,ss or ho,vo,hs,vs numbers must be + specified as a single string (no space between the numbers and the + comma). For example, to create a double sized test window at the top + right of the screen, use -P 1,0,2 + . To create a window twice as wide as high: -P 1,0,2,1.
+
+ The -F + flag causes the while screen behind the test window to be masked + with black. This can aid black accuracy when measuring CRT displays + or projectors.
+
+ -n When + running on a UNIX based system that used the X11 Windowing System, dispcal + normally selects the override redirect so that the test window will + appear above any other windows on the display. On some systems this + can interfere with window manager operation, and the -n + option turns this behaviour off.
+
+ The -J + option runs through the black and sensor relative calibration + routines for the Xrite DTP92 and DTP94 instruments, the black level + calibration for the Eye-One Display 1, and a CRT frequency + calibration for the Eye-One Display 2. For the black calibration the + instrument should be placed on an opaque, black surface, and any + stray light should be avoided by placing something opaque over the + instrument. If a Spectrolino is being used, then a white and black + calibration will always be performed before the instrument can be + placed on the display, unless the -N + flag is used. Generally it is not necessary to do a calibration + every time an instrument is used, just now and again. There is also + no point in doing  a CRT frequency calibration, as this will be + done automatically at the commencement of patch reading, and will be + lost between runs.
+
+ -N Any + instrument that requires regular calibration will ask for + calibration on initial start-up. Sometimes this can be awkward if + the instrument is being mounted in some sort of measuring jig, or + annoying if several sets of readings are being taken in quick + succession. The -N + suppresses this initial calibration if a valid and not timed out + previous calibration is recorded in the instrument or on the host + computer. It is advisable to only use this option on the second and + subsequent measurements in a single session.
+
+ The -H + option turns on high resolution spectral mode, if the instrument + supports it, such as the Eye-One Pro. See Operation of particular instruments + for more details. This may give better accuracy for display + measurements.
+
+ The -X file.ccmx option reads + a Colorimeter Correction Matrix + from the given file, and applies it to the colorimeter instruments + readings. This can improve a colorimeters accuracy for a particular + type of display. A list of contributed ccmx files is here.
+
+ The -X file.ccss option reads + a Colorimeter Calibration + Spectral Sample from the given file, and uses it to set the + colorimeter instruments calibration. This will only work with + colorimeters that rely on sensor spectral sensitivity calibration + information (ie. the X-Rite i1d3, + or the DataColor Spyder4).This +can +improve +a + + + + + + + + + + + + + + + + + + + + colorimeters accuracy for a particular type of display.
+
+ The -Q flag allows specifying a tristimulus + observer, and is used to compute PCS (Profile Connection Space) + tristimulus values from spectral readings or using a colorimeter + that has CCSS capability. The following choices are available:
+   1931_2 selects the standard CIE 1931 2 degree + observer. The default.
+   1964_10 selects the standard CIE 1964 10 degree + observer.
+   1955_2 selects the Stiles and Birch 1955 2 degree + observer
+   1978_2 selects the Judd and Voss 1978 2 degree + observer
+   shaw selects the Shaw and Fairchild 1997 2 degree + observer
+   1964_10c selects a version of the CIE 1964 10 degree + observer that has been adjusted using a 3x3 matrix to better agree + with the 1931 2 degree observer.
+
+ NOTE that if you select + anything other than the default 1931 2 degree observer, that the Y + values will not be cd/m^2, due to the Y curve not being the CIE 1924 + photopic V(λ) luminosity function.
+
+ The -I b|w options invoke + instrument black level, and display white level compensation + (respectively). Instrument black level drift compensation attempts + to combat instrument black calibration drift by using a display + black test patch as a reference. If an instrument is not + acclimatised sufficiently to the measurement conditions, changes in + temperature can affect the black readings. Display white level drift + compensation attempts to combat changes in display brightness as it + warms up by measuring a white patch every so often, and using it to + normalise all the other readings. If just instrument black drift + compensation is needed, use -Ib. + If just display white level compensation is needed, use -Iw. If both are needed, use -Ibw or -Iwb.
+
+ The -Y A + option uses a non-adaptive integration time emission measurement + mode, if the instrument supports it, such as the Eye-One Pro or + ColorMunki. By default an adaptive integration time measurement mode + will be used for emission measurements, but some instruments support + a fixed integration time mode that can be used with display devices. + This may give increased consistency and faster measurement times, + but may also give less accurate low level readings.
+
+ The -C "command" option allows a + method of relaying each test value to some other display than that + on the system running dispcal (for instance, a photo frame, PDA + screen etc.), by causing the given command to be invoked to the + shell, with six arguments. The first three arguments are the RGB + test color as integers in the range 0 to 255, the second three + parameters are the RGB test color as floating point numbers in the + range 0.0 to 1.0. The script or tool should relay the given color to + the screen in some manner (e.g. by generating a raster file of the + given color and sending it to the display being profiled), before + returning. Note that a test window will also be created on the + system running dispread.
+
+ The -M "command" option allows a + method of gathering each test value from some external source, such + as an instrument that is not directly supported by Argyll. The given + command is involked to the shell, with six arguments. The first + three arguments are the RGB test color as integers in the range 0 to + 255, the second three parameters are the RGB test color as floating + point numbers in the range 0.0 to 1.0. The script or tool should + create a file called "command.meas" + that contains the XYZ values for the given RGB (or measured from the + test window) in cd/m^2 as three numbers separated by spaces, before + returning. If the command returns a non-zero return value, dispcal + will abort. Note that a test window will also be created on the + system running dispcal.
+
+ The -W n|h|x + parameter overrides the default serial communications flow control + setting. The value n turns + all flow control off, h + sets hardware handshaking, and x + sets Xon/Xoff handshaking. This commend may be useful in workaround + serial communications issues with some systems and cables.
+
+ The -D flag causes communications and other + instrument diagnostics to be printed to stdout. A level can be set + between 1 .. 9, that may give progressively more verbose + information, depending on the instrument. This can be useful in + tracking down why an instrument can't connect.
+
+ inoutfile + The final parameter on the command line is the base filename for the + .cal file and the optional ICC + profile. Normally this will be created (or an existing file will be + overwritten). If the -u + flag is used, then these files will be updated. If a different ICC + profile name needs to be specified, do so as an argument to the -o flag.
+
+ NOTE that on an X11 system, + if the environment variable ARGYLL_IGNORE_XRANDR1_2 + is set (ie. set it to "yes"), then the presence of the XRandR 1.2 + extension will be ignored, and other extensions such as Xinerama and + XF86VidMode extension will be used. This may be a way to work around + buggy XRandR 1.2 implementations.
+
+
+

Discussion and guide to display control + adjustment:

+
+ The adjustment of the display controls (brightness, contrast, R, G + & B channel controls etc.) is very dependent on the particular + monitor. Different types and brands of monitors will have different + controls, or controls that operate in different ways. Some displays + have almost no user controls, and so you may well be best skipping + display adjustment, and going straight to calibration.
+
+ Almost all LCD displays lack a real contrast control. Those that do present such a + control generally fake it by adjusting the video signal. For this + reason it is usually best to set an LCD's contrast control at its neutral setting (ie. the + setting at which it doesn't change the video signal). Unfortunately, + it can be hard to know what this neutral setting is. On some + displays it is 50%, others 75%. If the LCD display has a "reset to + factory defaults" mode, then try using this first, as a way of + setting the contrast + control to neutral. The LCD brightness + control generally adjusts the level of backlighting the display + gets, which affects the maximum brightness, and also tends to raise + or lower the black level in proportion, without changing the + displays response curve shape or overall contrast ratio. If your LCD + display has a backlight + control as well as a brightness + control, then the brightness control is also probably being faked, + and you are probably better off setting it to it's neutral setting, + and using the backlight + control in place of brightness + in the following adjustments.
+
+ Some high end displays have the ability to mimic various standard + colorspaces such as sRGB or AdobeRGB. You could choose to calibrate + and profile the display in such an emulation mode, although you + probably don't want to fight the emulations white point and gamma. + To get the best out of such a display you really want to choose it's + "Native Gamut" setting, whatever that is called. Note that some + people have reported bad experiences in trying to use "6-axis custom + controls" on displays such as the Dell U2410, so attempting to use + such a mode should be approached with caution. Ideally such a mode + should be used to give just the underlying native display response, + but the settings to achieve this may be very difficult to determine, + and/or it may not be possible, depending on how such a mode distorts + the RGB signals.
+
+ On CRT based displays, the brightness + control generally adjusts the black level of the display (sometimes + called the offset), and as + a side effect, tends to change the maximum brightness too. A CRT contrast control generally + adjusts the maximum brightness (sometimes called gain) without affecting the + black level a great deal. On a CRT both the brightness and contrast controls will tend to + affect the shape or gamma of the display response curve.
+
+ Many displays have some sort of color temperature adjustment. This + may be in the form of some pre-set color temperatures, or in the + form of individual Red, Green and Blue channel gain adjustments. + Some CRT displays also have R, G & B channel offset adjustments + that will affect the color temperatures near black, as well as + affect the individual channels curve shape. The color temperature + adjustment will generally affect the maximum brightness, and may + also affect the black level and the shape of the display response + curves.
+
+ Some special (expensive) LCD displays may have a white point + adjustment that changes the color of the backlight. If you do not + have one of these types of LCD displays, then attempting to change + the white point of the display (even if it appears to have a "white point selection" or R/G/B "gain" controls") may not be a good idea, as once + again these controls are probably being faked by manipulating the + signal levels. Even if you do manage to change the white point + significantly, it may do things like change the mid tone color too + dramatically, or create a display response that is hard to correct + with calibration, or results in side effects such as quantization + (banding) or other undesirable effects. You may have to try out + various controls (and your aim points for the display calibration), + to decide what is reasonable to attempt on an LCD display.
+
+ Due to the variety of controls as well as the interaction between + them, it can be an iterative process to arrive at a good monitor + set-up, before proceeding on to calibrating and profiling a display. + For this reason, dispcal + offers a menu of adjustment modes, so that the user can + interactively and iteratively adjust the display controls to meet + the desired targets.
+
+   1) Black level (CRT: Brightness)
+   2) White point (Color temperature, R,G,B, Gain/Contrast)
+   3) White level (CRT: Gain/Contrast, LCD: + Brightness/Backlight)
+   4) Black point (R,G,B, Offset/Brightness)
+   5) Check all
+   6) Measure and set ambient for viewing condition adjustment
+   7) Continue on to calibration
+   8) Exit
+
+ There are four basic adjustment modes. Normally one would proceed + through them in the order above, then perhaps repeat the first + adjustment, before checking the overall settings. The White point + and White level modes operate slightly differently, depending on + whether a white target point has been set using the -t -T or -w options, and on whether a + brightness target has been set using the -b option.
+
+
+ The first mode lets you adjust the black level of a CRT display. + Given the current white level, it calculates a value that should + produce a 1% display brightness if the black level is set correctly. + After doing some initial measurements, it will show the target + brightness value (in cd/m^2) on one line, and then underneath it + will show continuously updated readings from the display. The left + most character will switch from '\' to '/' or back again each time a + reading is updated. Some instruments can be quite slow in measuring + dark colors, and it's best to wait for a reading update before + changing the controls more than once. Underneath the target value is + displayed the current reading, and to the right of this is a '+', + '-' or '=' symbol, which gives a hint as to which way to adjust the + brightness control to improve the match to the target.
+
+   Adjust CRT brightness to get target level. + Press space when done.
+      Target + 0.60
+   / Current 0.68  + -

+
+ Once happy with the adjustment, press space to go back to the menu.
+
+
+ The second mode lets you adjust the color of the white point of the + display. If a target white point has been set, it will show the + target brightness value (in cd/m^2) on one line, together with the + target chromaticity co-ordinates for the white point, and then + underneath it will show continuously updated readings from the + display. The left most character will switch from '\' to '/' or back + again each time a reading is updated. Underneath the target + brightness value is displayed the current reading, and then the + current chromaticity co-ordinate values. To the right of this is the + current delta E of the white point from the target, and further to + the right are hints '+', '-' or '='  as to which direction to + adjust the individual Red, Green and Blue gain settings to move the + white point in the direction of the target, and reduce the delta E. + If the symbol is doubled, then this channel will have the greatest + effect. If you do not have individual channel gain controls, then + try choosing amongst color temperature pre-sets, to find one with + the lowest delta E. Depending on the stability of the display, the + coarseness of the controls, and the repeatability of the instrument, + you may not be able to get a perfectly zero delta E.
+
+    Adjust R,G & B gain to get + target x,y. Press space when done.
+      Target B 60.00, x 0.3451, y 0.3516
+   / Current B 60.05, x 0.3426, y 0.3506  DE  + 1.4  R+  G+  B--

+
+ If you did not set a white point target, then the information shown + is a little different - it will show the initial white point value, + as well as the color temperature, and the CIEDE2000 of the white + point to either the Daylight or Black Body locus (depending on + whether the -T flag was + set). The constantly updated values show the same thing, and the + Red, Green and Blue control hints show the direction to adjust the + controls to place the white point on the locus. The control that + will have the most direct effect on the color temperature will be + the Blue, while the Green will most directly move the white point + towards or away from the locus, thereby reducing the delta E of the + white point to the locus (but there is interaction).
+
+ Adjust R,G & B gain to desired white point. + Press space when done.
+   Initial B 47.25, x + 0.3417, y 0.3456, CDT 5113 DE  6.9
+ \ Current B 47.38, x 0.3420, + y 0.3460  CDT 5104 DE  6.7  R-- G+  B-

+
+  The brightness value is just there as a guide to what effect + the adjustment is having on the overall brightness. Usually the + white level brightness is adjusted using the next adjustment mode. + Once happy with the adjustment, press space to go back to the menu.
+
+
+ The third mode lets you adjust the brightness of white on the + display. If you set a target brightness using the -b + parameter, it will show the target brightness value (in cd/m^2) on + one line, and then underneath it will show continuously updated + readings from the display. The left most character will switch from + '\' to '/' or back again each time a reading is updated. Underneath + the target value is displayed the current reading, and to the right + of this is a '+', '-' or '=' symbol, which gives a hint as to which + way to adjust the CRT contrast or LCD brightness control to improve + the match to the target.
+
+    Adjust CRT Contrast or LCD + Brightness to get target level. Press space when done.
+      Target 60.00
+   / Current 59.96  +

+
+ If you did not set a brightness target, it will show the initial + brightness as the target, and the current brightness, which you can + then set any way you want:
+
+ Adjust CRT Contrast or LCD Brightness to desired + level. Press space when done.
+   Initial 47.32
+ / Current 47.54

+
+ Once happy with the adjustment, press space to go back to the menu.
+
+
+ The fourth mode lets you adjust the color of the black point of the + display, if the display has Red, Green and Blue channel offset + controls. It will show the target 1% brightness value (in cd/m^2) on + one line, together with the target chromaticity co-ordinates for the + black point, and then underneath it will show continuously updated + readings from the display. The left most character will switch from + '\' to '/' or back again each time a reading is updated. Underneath + the target brightness value is displayed the current reading, and + then the current chromaticity co-ordinate values. To the right of + this is the current delta E of the black point from the target, and + further to the right are hints '+', '-' or '='  as to which + direction to adjust the individual Red, Green and Blue offset + settings to move the black point in the right direction. If the + symbol is doubled, then this channel will have the greatest effect. +
+
+   Adjust R,G & B offsets to get target x,y. + Press space when done.
+      Target B 0.60, x 0.3451, y 0.3516
+   \ Current B 0.62, x 0.2782, y 0.2331  DE  + 10.3  R+  G++ B-

+
+ The 1%  brightness value is just there as a guide to what + effect the adjustment is having on the 1% brightness level. The + combined channel offsets may have an effect on this in combination + with the CRT brightness control. Press space to go back to the menu.
+
+
+ The fifth selection checks on the overall settings.  If targets + have been set, it will be like:
+
+   Target Brightness = 50.00, Current = 47.44, + error = -5.1%
+   Target 50% Level  = 10.32, Current =  8.10, + error = -4.4%
+   Target Near Black =  0.47, Current =  0.68, + error =  0.4%
+   Target white = x 0.3458, y 0.3586, Current = x 0.3420, y + 0.3454, error =  7.55 DE
+   Target black = x 0.3458, y 0.3586, Current = x 0.2908, y + 0.2270, error = 29.69 DE

+
+ or if no targets are set:
+
+   Current Brightness = 46.28
+   Target 50% + Level  = 10.07, Current =  7.52, error = -5.5%
+   Target Near Black + =  0.46, Current =  0.46, error = -0.0%
+   Current white = x + 0.3439, y 0.3466, VCT 5098K DE  3.0
+   Target black = x + 0.3439, y 0.3466, Current = x 0.3093, y 0.2165, error = 30.30 DE

+
+ and will then go back to the menu.
+
+ The sixth selection 6) + allows the reading of you ambient lighting conditions if your + instrument supports such a mode. Doing so will enable the -a option to compensate for your + viewing conditions in the subsequent calibration. See -a.
+
+ Once  you're happy with the display set-up, you can either + proceed on to the rest of the calibration by selecting 7), or exit and re-start by + selecting 8). You might + want to re-start if you want to change the calibration targets.
+
+
+

Other caveats:

+ NOTE that some LCD screens + behave a little strangely near their absolute white point, and may + therefore exhibit odd behavior at values just below white. It may be + advisable in such cases to set a brightness slightly less than the + maximum such a display is capable of.
+
+ The program attempts to stop any screensaver or powersaver from + interfering with the measurements, but this may not be effective on + some systems, so it may be necessary to manually disable the + screensaver and/or powersaver before commencing the calibration with + a large number of patches.
+
+ The calibration tables produced maintain the maximum level of + precision available on a system. If the display has VideoLUTs + available (Video Lookup Tables that the frame buffer values pass + through on their way to the display) and thier outputs are better + than 8 bits per component, then the resulting curves can reflect + this, although few current operating systems and/or display cards + actually support better than 8 bit per component output.
+
+ If calibration curves are created for a display in which VideoLUTs + are not available, then the resulting calibration file will be + marked to indicate this, and a subsequent profile created with the + calibration will not have the calibration converted to the 'vcgt' + tag, since such a tag can't be loaded into the displays VideoLUTs.
+
+ If communications break down with a USB connected instrument, you + may have to unplug it, and plug it in again to recover operation.
+
+ Some systems (Apple OSX in particular) have a special set of user + interface controls ("Universal Access") that allows altering the + display in ways designed to assist visually impaired users, by + increasing contrast etc. This will interfere badly with any attempts + to calibrate or profile such a system, and must be turned off in + order to do so. Note that certain magic keyboard sequences can turn + this on by accident.
+
+
+
+
+
+ + diff --git a/doc/dispprofloc.html b/doc/dispprofloc.html new file mode 100644 index 0000000..b583914 --- /dev/null +++ b/doc/dispprofloc.html @@ -0,0 +1,313 @@ + + + + + Display profile locations + + +

Where display profiles are stored, and how to load them + automatically.
+

+
+ Installing a display profile for your monitor is very operating + system + dependent, which is why dispin -I is a + good way of taking care of all these details. On some systems it is + not + the operating system itself that + supports display profiles, but individual applications, or helper + programs.
+
+ Please choose from the detailed instructions below that suite your + system:
+
+ Microsoft + Windows
+ Apple OS X
+ Linux/UNIX X11

+
+
On Microsoft Windows, display + profiles are typically in one of the + following directories:
+

    MS Windows Me and 98: C:\Windows\System\Color
+

+

    MS Windows NT: + C:\Winnt\system32\spool\drivers\color +

+

    MS Window 2000, XP, Vista and 7: + C:\Windows\system32\spool\drivers\color

+

An alternative to using dispwin + -I + to install your display profiles, + is to use the Display + Property dialog, advanced settings, Color management tab, and + locate + the profile and install it there. This in + itself does not cause the profile to be made use of anywhere in + your + system.
+

+

If you are using Adobe Photoshop on your system, then you can + tell + it to use your monitor profile by editing the appropriate registry + key, + typically "My + Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Adobe\Color\Monitor\Monitor0", + to + contain the name of the display profile, and then restart + Photoshop + This is the simplest way of ensuring that the Adobe calibration + loader + tool Adobe Gamma loads the video hardware lookup tables from the + vcgt tag, and + uses the profile as its display profile.
+

+

The adobe gamma tool can be told to use your profile, but the + procedure is slightly tricky: Open adobe gamma from photoshop (in + the + Help->Color Management... menu item), select "Open Adobe + Gamma", and + select the "Load.." button. Select your profile and "Open". Select + "OK" + in the Adobe Gamma, it will then ask you to save it's modified + version + of your profile under a different name. Chose a name for the + modified + profile, and save it. Exit from Photoshop. Copy the profile you + want to + use, over the modified profile that you saved in Adobe Gamma. (If + you + don't do the last step, the profile Photoshop will be using will + have + been modified in strange ways from what you intended.)
+

+

Installing a profile on Microsoft Windows generally doesn't mean + that the profiles calibration will be automatically loaded into a + display on startup. A separated tool is usually needed to achiev + this.
+

+

Some Microsoft Windows applications may come with + "Gamma/VCGT/RAMDAC/Video LUT" + loader tools, consult their documentation and check your Start + Menu + Startup folders. If you don't want to use any of these 3rd party + tools, you can also use the dispwin + tool to do this for you, as it takes either a .cal or ICC + file + as an argument. The xcalib + tool could also be used.
+

+

To add a startup item that will load a profiles calibration into + the + display using dispwin, + use the + following + instructions:
+

+

On the task bar, right click and + select + "Properties", then select the "Advanced" tab, then click "Add..". + then + browse till you locate dispwin.exe. In the box containing the path + to + dispwin.exe, add a space + then + the option -L, eg:
+

+

    c:\bin\argyll\dispwin -L

+

If you don't want to use the default + installed profile, you could explicitly set the calibration file + to use + as an argument:

+

    c:\bin\argyll\dispwin + c:\myprofiles\mydisplay.icm
+

+

Click "Next >", select the + "Startup" + folder, then name the item (ie. + "Argyll Calibration Loader"), then press "Finish".
+
+ You can test it out by simply navigating the "Start" menu to the + "Startup" folder and selecting the item you've just created. If + you + want to alter any of the details, navigate to the item again and + right + click it, and select "Properties". More than one startup item can + be + created to set the calibration for more than one display. You may + want + to cut and paste the "Target" line to a normal Command Prompt + shell to + check that it works as expected, as it is impossible to catch + error + messages in the startup.
+

+ Microsoft Windows XP has an + optional Microsoft Color Control Panel Applet for Windows XP + available for + download from + Microsoft, which handles installation and registering of the a + display + profile, and will also automatically set the display calibration on + system startup. The applet is started from the control panel, and + first + you have to "Install..." the profile in the Profiles tab, then associate it + with + the display in the Devices + tab, but NOTE that it seems + to + have a bug, in that it + sometimes associates the profiles with the wrong monitor entry!
+
+ On + Microsoft Vista you can set + the display profile in + Control Panel -> Hardware and Sound + -> Color Management, as an alternative to dispwin -I. In Devices  +you select "Use my settings for this +device", and then add the profile you've created. +Unfortunately + though, it doesn't use the 'vcgt' + calibration curves on system startup, so a tool such as dispwin will still have to be + used + to do this. Note that currently Vista also has a bug that causes the calibration + curves to be reset whenever the User Account Dialog (and similar) is + displayed. This problem can only be worked around manually, by + re-running the startup item whenever this happens. Note that due to + the + details of this bug it is necessary to actually reset the + calibration + to something else before re-setting it. This can be done quite + conveniently in dispwin by adding the -c + flag: e.g.: c:\bin\argyll\dispwin + -c + -L
+
+ On + Microsoft Windows 7 you can + set + the display profile by opening the Color + Management control by clicking the Start + button and then clicking Control Panel. + In the search box, type color management, + and then click Color Management. + Make sure the correct display device is selected in "Device:", and + then tick the "Use my settings for this device" box. Select "Add..." + and then "Browse..." to locate and load the profile. (Alternately + you can use the normal file browser to locate the profile, and then + right click on it and select "Install Profile". In the Color Manager + "Add..." dialog you can then select it.). Make sure that the new + profile has been marked "(default)" if you want it to be + automatically used for your display.
+
+ By default Windows 7 seems to automatically load the default display + profiles calibration on startup, but needs to be told to do this at + all other times by changing the system defaults, or if some 3rd + party tool to load display calibration has been installed. This can + be done by logging on with a user account that has administrative + privileges, then opening the Color Management + (see above), and then select the "Advanced" + tab, and then "Change system defaults...", then + select the "Advanced" + tab, and select/un-select the "Use Windows display calibration" + check box. (You could use dispwin + -I as an alternative to this if you really wanted.)
+
+  
+
On Apple OSX, the display + profile are in one of the following + locations:
+
+     /Network/Library/ColorSync/Profiles
+     /System/Library/Colorsync/Profiles
+     /Library/ColorSync/Profiles
+     ~/Library/ColorSync/Profiles
+
+ Note though that  /System/Library/Colorsync/Profiles is only + for + profiles supplied by Apple. You can use dispwin + -S  to select the appropriate scope when installing a + profile + using dispwin -I. You can use the + "System + Preferences->Displays->Color" tool to check that the profile + has been installed correctly. Note that the contents of + the description tag (the argument to the -D + flag used with the colprof + tool) will be used to identify the profile.
+
+
On Linux and other Unix style systems, there is no + universally agreed location for ICC profiles yet, + although the following locations have been suggested at various + times:
+
+     /usr/share/color/icc
+     /usr/local/share/color/icc
+     ~/.color/icc
+
+ although particular applications may use their own locations, such + as:
+
+     /usr/local/share/Scribus/profiles
+
+ Argyll dispwin follows uses the ucmm scheme for storing user and system + display + profiles, and when a display is set to use a profile correctly, it + will + follow this + convention to make it available to applications.
+   
+ If you want the display calibration to be loaded, you should + consider + installing a tool to do so at startup, such as dispwin + or xcalib.
+
+ Using dispwin the currently installed + profile for a particular display can be loaded using the -L option of dispwin:
+
+     dispwin -L
+
+
which will both upload the installed profile into the root + window _ICC_PROFILE property, and also load it into the display + VideoLUTs.
+
+ You can use the dispwin -d parameter + in + the usual way to select other + displays to store or load the calibration using the _ICC_PROFILE + property.
+
+ To do this when you start your X11 server, you could put the above + command in your .xinitrc + file + in your home directory for each screen.
+
+
+ + diff --git a/doc/dispread.html b/doc/dispread.html new file mode 100644 index 0000000..e1ce861 --- /dev/null +++ b/doc/dispread.html @@ -0,0 +1,926 @@ + + + + dispread + + + + +

spectro/dispread 

+

Summary

+ Display test patches on a monitor, read the colorimetric value + result with the colorimeter, and create the chart readings file. The + type of instrument is determined by the communication port selected. + Emission and display measurement instruments are supported.
+
+ If you want to read a display manually rather than automatically, + see chartread and the -d option.
+

Usage

+ dispread [-options] + inoutfile
+  -v              + + + + + + + + + + + + + +      Verbose mode
+  
-display displayname [X11 only] Choose X11 display + name
+
 -d n[,m] +             + [X11 only]Choose the display from the following list (default + 1),
+                       +and +optionally +choose +a +different +display +m + + + + + + + + + + + + + + for VideoLUT access.

+  -d n                 +Choose +the +display +from +the +following +list + + + + + + + + + + + + + + (default 1)
+
 -dweb[:port]         + + + + + + + + + + + + + + + + Display via a web server at port (default 8080)
+  -c listno +            Set + communication port from the following list (default 1)
+
 -p                   + + + + + + + + + + + + + + Use telephoto mode (ie. for a projector) (if available)
+   -y X +                 +Display + + + + + + + + + + + + + + + type - instrument specific list to choose from.
+  -k + file.cal          + + + + + + + + + + + + + + Load calibration file into display while reading
+
 -K + file.cal          +Apply + + + + + + + + + + + + + + calibration file to test values while reading
+  -s              + + + + + + + + + + + + + +      Save spectral information (default don't + save)
+
 -P ho,vo,ss[,vs]     Position + test window and scale it
+                       +ho,vi: +0.0 += +left/top, +0.5 += +center, + + + + + + + + + + + + + + 1.0 = right/bottom etc.
+                       +ss: +0.5 += +half, +1.0 += +normal, + + + + + + + + + + + + + + 2.0 = double etc.
+
                      + + + + + + + ss,vs: = optional horizontal, vertical scale.
+  -F +                   + + + + + + + + + + + + + + Fill whole screen with black background
+  -n              +     +[X11 +only] +Don't +set +override +redirect + + + + + + + + + + + + + + on test window
+
 -J +              + + + + + + + + + + + + + +      Run calibration first
+  -N                   + + + + + + + + + + + + + + Disable initial calibration of instrument if possible
+
 -H +              +      Use high resolution spectrum mode (if + available)
+  -w +                   +Disable +normalisation +of +white +to +Y += + + + + + + + + + + + + + + 100

+   -X file.ccmx         + + + + + + + + + + + + + + Apply Colorimeter Correction Matrix
+  -X + file.ccss          +Use +Colorimeter +Calibration + + + + + + + + + + + + + + Spectral Samples for calibration
+
 -Q observ        +     Choose CIE Observer for spectrometer or CCSS + colorimeter data:
+             + + + + + + + + + + + + + +           1931_2
(def.), 1964_10, S&B 1955_2, shaw, + J&V 1978_2, 1964_10c
+  -I b|w               +Drift +compensation, +Black: +-Ib, +White: +-Iw, +Both: + + + + + + + + + + + + + + -Ibw
+
 -Y A +                 + + + + + Use non-adaptive integration time mode (if available).
+  -C "command" +         Invoke shell + "command" each time a color is set
+
 -M "command" +         Invoke shell + "command" each time a color is measured
+  -W n|h|x             +Override +serial +port +flow +control: +n += + + + + + + + + + + + + + + none, h = HW, x = Xon/Xoff
+  -D [level] +           Print debug + diagnostics to stderr
+  inoutfile            + + + + + + + + + + + + + + Base name for input[.ti1]/output[.ti3] file.
+

+ Examples
+
+ dispread -c1 -i92 mycrt
+

Comments
+

+ This is the tool for exercising a display, in order to measure its + color characteristics. The device test colors are defined by the + outfile.ti1 file, while the resulting device+colorimetric and + optional spectral readings are stored in the outfile.ti3 file. + Display calibration curves can be applied during the measurements, + and the curves included in the resulting .ti3 data file using the -kflag. See dispcal for information on how  to + calibrate the display before profiling it. For best results, you + should run this against a neutral grey desktop background, and avoid + having any bright images or windows on the screen at the time you + run it.
+
+ The -v flag reports progress information.
+
+ -display: + When running on a UNIX based system that used the X11 Windowing + System, dispread will by default use the $DISPLAY + environment variable to determine which display and screen to read + from. This can be overridden by supplying an X11 display name to the + -display option. Note that + if Xinerama is active, you can't select the screen using $DISPLAY or + -display, you have to select it using the -d parameter.
+
+ -d: By + default the main display will be the location of the test window. If + the system has more than one display or screen, an alternate + display/screen can be selected with the -d parameter. If you invoke dispread so as to display the + usage information (i.e. "dispread -?" or "dispread --"), then the + discovered displays/screens will be listed. Multiple displays may + not be listed, if they appear as a single display to the operating + system (ie. the multi-display support is hidden in the video card + driver). On UNIX based system that used the X11 Windowing System, + the -d parameter will + override the screen specified by the $DISPLAY or -display parameter.
+
+ On X11 the inability to access VideoLUTs could be because you are + trying to access a remote display, and the remote display doesn't + support the XF86VidMode extension, or perhaps you are running + multiple monitors using NVidia TwinView, or MergedFB, and trying to + access anything other than the primary monitor. TwinView and + MergedFB don't properly support the XF86VidMode extension for + multiple displays. You can use dispwin -r + to test whether the VideoLUTs are accessible for a particular + display. See also below, on how to select a different display for + VideoLUT access. Also note that dispcal will fail if the Visual + depth doesn't match the VideoLUT depth. Typically the VideoLUTs have + 256 entries per color component, so the Visual generally needs to be + 24 bits, 8 bits per color component.
+
+ Because of the difficulty cause by TwinView and + MergedFB in X11 based systems, you can optionally specify a separate + display number after the display that is going to be used to present + test patches, for accessing the VideoLUT hardware. This must be + specified as a single string, e.g. -d + + + + + + + + + + + + + + 1,2 . Some experimentation may be needed using dispwin on such systems, to discover what + screen has access to the VideoLUT hardware, and which screens the + test patches appear on. You may be able to calibrate one screen, and + then share the calibration with another screen. Profiling can be + done independently to calibration.
+
+ -dweb or + -dweb:port starts a + standalone web server on your machine, which then allows a local or + remote web browser to display the the color test patches. By default + port 8080 is used, but this + can be overridden by appending a : + and the port number i.e. -dweb:8001. + The URL will be http:// + then name of the machine or its I.P. address followed by a colon and + the port number - e.g something like http://192.168.0.1:8080. If you use the verbose + option (-v) then a likely + URL will be printed once the server is started, or you could run ipconfig (MSWin) or /sbin/ifconfig (Linux or OS X) + and identify an internet address for your machine that way. + JavaScript needs to be enabled in your web browser for this + to work.
+
+ Note that if you use this method of displaying test patches, that + there is no access to the display VideoLUTs and that the colors will + be displayed with 8 bit per component precision, and any + screen-saver or power-saver will not be disabled. You will also be + at the mercy of any color management applied by the web browser, and + may have to carefully review and configure such color management. + See the -o flag for an explanation of + the implications of having no access to the VideoLUTs.
+
+ -c: The + instrument is assumed to communicate through a USB or serial + communication port, and the port can be selected with the -c + option, if the instrument is not connected to the first port. If you + invoke dispread so as to + display the usage information (i.e. "dispread -?" or "dispread --"), + then the discovered USB and serial ports will be listed. On + UNIX/Linux, a list of all possible serial ports are shown, but not + all of them may actually be present on your system.
+
+ The -p flag + allows measuring in telephoto mode, using instruments that support + this mode, e.g. the ColorMunki. Telephoto mode is one for taking + emissive measurements from a distance (ie. telespectometer, + tele-colorimeter) mode, and typically would be used for measuring + projector type displays. If a device does not support a specific + telephoto mode, then the normal emissive mode may be suitable for + measuring projectors.
+
+ The -y flag + allows setting the Display Type. The selection typically determines + two aspects of of the instrument operation: 1) It may set the measuring mode + to suite refresh or non-refresh displays. + Typically only LCD (Liquid Crystal) displays have a non-refresh + nature. 2) It may select an + instrument calibration matrix suitable for a particular display + type. The selections available depends on the type and model of + instrument, and a list of the options for the discovered instruments + will be shown in the usage + information. For more details on what particular instruments support + and how this works, see Operation of + particular instruments. 3) Any installed CCSS files + (if applicable), or CCMX files. These files are typically created + using ccxxmake, + and installed using oeminst. The + default and Base Calibration types will be indicated in the usage.
+
+ -s: By + default only the colorimetric information (XYZ value) will be saved, + but for instruments that support spectral readings (such as the + Gretag Spectrolino), the -s option will save the spectral + readings to the .ti3 file as well.
+
+ -k: If a + display video lookup table calibration .cal file is provided, it will + be loaded into the display ViedoLUTs + while the measurements are being taken, thereby being applied to the + measurement values, and the calibration will also included in the + resulting .ti3 data file, so that colprof + can include it as a vcgt + tag in the resulting profile. This is the normal way to profile a calibrated display. The + calibration file has usually been created using dispcal. If a calibration file is not + created, then the display will be read in whatever calibration state + it is in. If the calibration file indicates that the displays + VideoLUTs are not accessible, or if they prove not to be accessible, + then dispread will switch to -K + mode (see below). NOTE that + the calibration is loaded into the display hardware just before the + instrument starts measurement, after the test window first appears.
+
+ -K: If a + display video lookup table calibration .cal file is provided, it will + be applied to the test values for each measurement, and also + included in the resulting .ti3 data file, so that colprof can include it as a vcgt tag in the resulting + profile. This is NOT + normally the best way to profile a calibrated display, since the + frame buffer may have lower precision than the VideoLUTs output + values.
+
+ The -P + parameter allows you to position and size the test patch window. By + default it is places in the center of the screen, and sized + appropriately for the type of instrument. The ho and vo values govern the horizontal + and vertical offset respectively. A value of 0.0 positions the + window to the far left or top of the screen, a value of 0.5 + positions it in the center of the screen (the default), and 1.0 + positions it to the far right or bottom of the screen. If three + parameters are provided, then the ss + parameter is a scale factor for the test window size. A value of 0.5 + for instance, would produce a half sized window. A value of 2.0 will + produce a double size window. If four parameters are provided, then + the last two set independent horizontal and vertical scaling + factors. Note that the ho,vo,ss or ho,vo,hs,vs numbers must be + specified as a single string (no space between the numbers and the + comma). For example, to create a double sized test window at the top + right of the screen, use -P 1,0,2 + . To create a window twice as wide as high: -P 1,0,2,1.
+
+ The -F + flag causes the while screen behind the test window to be masked + with black. This can aid black accuracy when measuring CRT displays + or projectors.
+
+ -n: When + running on a UNIX based system that used the X11 Windowing System, dispread + normally selects the override redirect so that the test window will + appear above any other windows on the display. On some systems this + can interfere with window manager operation, and the -n + option turns this behaviour off.
+
+ The -J + option runs through the black and sensor relative calibration + routines for the Xrite DTP92 and DTP94 instrument, the black level + calibration for the Eye-One Display 1, and a CRT frequency + calibration for the Eye-One Display 2. For the black calibration the + instrument should be placed on an opaque, black surface, and any + stray light should be avoided by placing something opaque over the + instrument. If a Spectrolino is being used, then a white and black + calibration will always be performed before the instrument can be + placed on the display, unless the -N flag is used. + Generally it is not necessary to do a calibration every time an + instrument is used, just now and again. There is no point in + doing  a CRT frequency calibration, as this will be done + automatically at the commencement of patch reading.
+
+ -N Any + instrument that requires regular calibration will ask for + calibration on initial start-up. Sometimes this can be awkward if + the instrument is being mounted in some sort of measuring jig, or + annoying if several sets of readings are being taken in quick + succession. The -N + suppresses this initial calibration if a valid and not timed out + previous calibration is recorded in the instrument or on the host + computer. It is advisable to only use this option on the second and + subsequent measurements in a single session.
+
+ The -H + option turns on high resolution spectral mode, if the instrument + supports it. See Operation of particular + instruments for more details. This may give better accuracy + for display measurements.
+
+ The -w flag disables the normalisation of + the white patch value to 100.0, resulting in values that are in + cd/m^2. This is mainly for diagnostic purposes.
+
+ The -X file.ccmx option reads + a Colorimeter Correction Matrix + from the given file, and applies it to the colorimeter instruments + readings. This can improve a colorimeters accuracy for a particular + type of display. A list of contributed ccmx files is here.
+
+ The -X file.ccss option reads + a Colorimeter Calibration + Spectral Sample from the given file, and uses it to set the + colorimeter instruments calibration. This will only work with + colorimeters that rely on sensor spectral sensitivity calibration + information (ie. the X-Rite i1d3, + or the DataColor Spyder4).This +can +improve +a + + + + + + + + + + + + + + colorimeters accuracy for a particular type of display.
+
+ The -Q flag allows specifying a tristimulus + observer, and is used to compute PCS (Profile Connection Space) + tristimulus values from spectral readings or using a colorimeter + that has CCSS capability. The following choices are available:
+   1931_2 selects the standard CIE 1931 2 degree + observer. The default.
+   1964_10 selects the standard CIE 1964 10 degree + observer.
+   1955_2 selects the Stiles and Birch 1955 2 degree + observer
+   1978_2 selects the Judd and Voss 1978 2 degree + observer
+   shaw selects the Shaw and Fairchild 1997 2 degree + observer
+   1964_10c selects a version of the CIE 1964 10 degree + observer that has been adjusted using a 3x3 matrix to better agree + with the 1931 2 degree observer.
+
+ NOTE that if you select + anything other than the default 1931 2 degree observer, that the Y + values will not be cd/m^2, due to the Y curve not being the CIE 1924 + photopic V(λ) luminosity function.
+
+ The -I b|w options invoke + instrument black level, and display white level compensation + (respectively). Instrument black level drift compensation attempts + to combat instrument black calibration drift by using a display + black test patch as a reference. If an instrument is not + acclimatised sufficiently to the measurement conditions, changes in + temperature can affect the black readings. Display white level drift + compensation attempts to combat changes in display brightness as it + warms up by measuring a white patch every so often, and using it to + normalise all the other readings. If just instrument black drift + compensation is needed, use -Ib. + If just display white level compensation is needed, use -Iw. If both are needed, use -Ibw or -Iwb.
+
+
The -Y A + option uses a non-adaptive integration time emission measurement + mode, if the instrument supports it, such as the Eye-One Pro or + ColorMunki. By default an adaptive integration time measurement mode + will be used for emission measurements, but some instruments support + a fixed integration time mode that can be used with display devices. + This may give increased consistency and faster measurement times, + but may also give less accurate low level readings.
+
+
The -C + "command" option allows a + method of relaying each test value to some other display than that + on the system running dispread (for instance, a photo frame, PDA + screen etc.), by causing the given command to be invoked to the + shell, with six arguments. The first three arguments are the RGB + test color as integers in the range 0 to 255, the second three + parameters are the RGB test color as floating point numbers in the + range 0.0 to 1.0. The script or tool should relay the given color to + the screen in some manner (e.g. by generating a raster file of the + given color and sending it to the display being profiled), before + returning. Note that a test window will also be created on the + system running dispread.
+
+ The -M "command" option allows a + method of gathering each test value from some external source, such + as an instrument that is not directly supported by Argyll. The given + command is involked to the shell, with six arguments. The first + three arguments are the RGB test color as integers in the range 0 to + 255, the second three parameters are the RGB test color as floating + point numbers in the range 0.0 to 1.0. The script or tool should + create a file called "command.meas" + that contains the XYZ values for the given RGB (or measured from the + test window) in cd/m^2 as three numbers separated by spaces, before + returning. If the command returns a non-zero return value, dispread + will abort. Note that a test window will also be created on the + system running dispread.
+
+ The -W n|h|x + parameter overrides the default serial communications flow control + setting. The value n turns + all flow control off, h + sets hardware handshaking, and x + sets Xon/Xoff handshaking. This commend may be useful in workaround + serial communications issues with some systems and cables.
+
+ The -D flag causes communications and other + instrument diagnostics to be printed to stdout. A level can be set + between 1 .. 9, that may give progressively more verbose + information, depending on the instrument. This can be useful in + tracking down why an instrument can't connect.
+
+ The final parameter on the command line is the + base filename for the .ti1 + input file, and the .ti3 + output file. dispread will add the .ti1 and .ti3 extensions + automatically.
+
+ NOTE that on an X11 system, + if the environment variable ARGYLL_IGNORE_XRANDR1_2 + is set (ie. set it to "yes"), then the presence of the XRandR 1.2 + extension will be ignored, and other extensions such as Xinerama and + XF86VidMode extension will be used. This may be a way to work around + buggy XRandR 1.2 implementations.
+
+

+ If a large number of patches is being read, the screensaver on many + systems can interfere with the operation of dispread. It is + therefore advisable in these cases to manually turn off the + screensaver before commencing the measurements.
+
+ If communications break down with a USB connected instrument, you + may have to unplug it, and plug it in again to recover.
+
+ Some systems (Apple OSX in particular) have a special set of user + interface controls ("Universal Access") that allows altering the + display in ways designed to assist visually impaired users, by + increasing contrast etc. This will interfere badly with any attempts + to calibrate or profile such a system, and must be turned off in + order to do so. Note that certain magic keyboard sequences can turn + this on by accident.
+
+
+
+ + diff --git a/doc/dispwin.html b/doc/dispwin.html new file mode 100644 index 0000000..a07d50f --- /dev/null +++ b/doc/dispwin.html @@ -0,0 +1,593 @@ + + + + dispwin + + + + +

spectro/dispwin

+

Summary

+ This tool has several different but related functions. When given as + a file argument an ICC profile containing vcgt "gamma" curves, or an + Argyll video calibration .cal file, it will load that calibration + into the chosen display. It can also install or uninstall a profile + in the system for the chosen display, or set the display calibration + to that in the currently installed system profile. By default it + displays a test window the same as that used by dispcal and + dispread, to test this functionality. It can also be used to test + the ability to load video card LUT curves to each display, and to + test how the console Bell will sound when used with some instruments + (ie. Eye-One Pro).
+
+ [Note that in OS X 10.7 Lion, changes to the default system profile + permissions mean that you can't set a calibration persistently when + the default system profile is being used, unless you run as root + (ie. use sudo). Note that you do not + need to run as root to install a user profile (-Su, the default + install type.)]
+

Usage

+ dispwin + [options] [calfile]
+  -v              +     +Verbose + + + + + + + + mode
+
 -display displayname [X11 only] Choose X11 display name
+
 -d n[,m] +             + [X11 only] Choose the + display from the following list (default 1),
+                       +and +optionally + + + + + + + + choose a different display m for Video LUT access.
+
 -d n                 +[Not +X11] + + + + + + + + Choose the display from the following list (default 1)
+
 -dweb[:port]         + + + + + + Display via a web server at port (default 8080)
+  -P + ho,vo,ss[,vs]     Position test window + and scale it
+                       +ho,vi: +0.0 + + + + + + + + = left/top, 0.5 = center, 1.0 = right/bottom etc.
+                       +ss: +0.5 + + + + + + + + = half, 1.0 = normal, 2.0 = double etc.
+                       + + + + ss,vs: = optional horizontal, vertical scale.
+  
-F +                   +Fill +whole + + + + + + + + screen with black background
+  -i +              +      Run forever with random values
+  -G filename +          Display RGB + colors from CGATS file
+  
-m +              +      Manually step through colors
+  -r                   +Test +just + + + + + + + + video LUT loading & Beeps
+
 -n +                   +Test +native + + + + + + + + display values (rather than through Video LUT)
+  -s filename.cal      +Save +the + + + + + + + + currently loaded Video LUT to 'filename'
+
 -c +                   +Load +a + + + + + + + + linear display calibration (clear calibration)
+
 -V +                   +Verify +that + + + + + + + + calfile/profile cal. is currently loaded in LUT
+
 -I +                   + + + + + + + + Install profile for display and use it's calibration
+
 -U +                   + + + + + + + + Un-install profile for display
+  -S d                 +Specify +the + + + + + + + + install/uninstall scope for OS X [nlu] or Vista [lu]
+                       +d +is + + + + + + + + one of: n = network, l = local system, u = user (default)
+
 -L +                   + + + + + + + + Load installed profiles cal. into Video LUT
+
 -E +                   + + + + + + + + [X11 only] Run in daemon + loader mode for given X11 server
+
 -D [level]           +Print +debug + + + + + + + + diagnostics to stderr
+  
calfile              +Load +display + + + + + + + + calibration (.cal or .icm) into + LUT, and exit.
+
+

Comments
+

+ The -v flag makes the program more + verbose..
+
+ display: + When running on a UNIX based system that used the X11 Windowing + System, dispwin will by default use the $DISPLAY environment + variable to determine which display and screen to read from. This + can be overridden by supplying an X11 display name to the -display option. Note that if + Xinerama is active, you can't select the screen using $DISPLAY or + -display, you have to select it using the -d parameter.
+
+ -d: By + default the location of the test window will be the main display. If + the system has more than one display or screen, an alternate + display/screen can be selected with the -d parameter. If you invoke dispwin so as to display the + usage information (i.e. "dispcal -?" or "dispcal --"), then the + discovered displays/screens will be listed. Multiple displays may + not be listed if they appear as a single display to the operating + system (ie. the multi-display support is hidden in the video card + driver). On UNIX based system that used the X11 Windowing System, + the -d parameter will + override the screen specified by the $DISPLAY or -display parameter.
+
+ Note that if VideoLUTs for a + display are not accessible (i.e. no hardware calibration + capability), dispwin will + will issue a warning or fail when it attempts to access them.
+
+ On X11 the inability to access VideoLUTs could be because you are + trying to access a remote display, and the remote display doesn't + support the XF86VidMode extension, or perhaps you are running + multiple monitors using NVidia TwinView, or MergedFB, and trying to + access anything other than the primary monitor. TwinView and + MergedFB don't properly support the XF86VidMode extension for + multiple displays. You can use dispwin -r + to test whether the VideoLUTs are accessible for a particular + display. See also below, on how to select a different display for + VideoLUT access. Also note that dispcal will fail if the Visual + depth doesn't match the VideoLUT depth. Typically the VideoLUTs have + 256 entries per color component, so the Visual generally needs to be + 24 bits, 8 bits per color component.
+
+ -d n[,m]Because +of +the + + + + + + + + difficulty cause by TwinView and MergedFB in X11 based systems, you + can optionally specify a separate display number after the display + that is going to be used to present test patches, for accessing the + VideoLUT hardware. This must be specified as a single string, e.g. -d 1,2 . Some experimentation + may be needed on such systems, to discover what screen has access to + the VideoLUT hardware, and which screens the test patches appear on. + You may be able to calibrate one screen, and then share the + calibration with another screen. Profiling can be done independently + to calibration.
+
+ -dweb or + -dweb:port starts a + standalone web server on your machine, which then allows a local or + remote web browser to display the the color test patches. By default + port 8080 is used, but this + can be overridden by appending a : + and the port number i.e. -dweb:8001. + The URL will be http:// + then name of the machine or its I.P. address followed by a colon and + the port number - e.g something like http://192.168.0.1:8080. If you use the verbose + option (-v) then a likely + URL will be printed once the server is started, or you could run ipconfig (MSWin) or /sbin/ifconfig (Linux or OS X) + and identify an internet address for your machine that way. JavaScript + needs to be enabled in your web browser for this to work.
+
+ Note that if you use this method of accessing a display, that there + is no access to the display Video Lookup tables, and that any + operation that depends on accessing the VideoLUTs will either + generate a warning or fail.
+
+ The -P + parameter allows you to position and size the test patch window. By + default it is places in the center of the screen, and sized + appropriately for the type of instrument. The ho and vo values govern the horizontal + and vertical offset respectively. A value of 0.0 positions the + window to the far left or top of the screen, a value of 0.5 + positions it in the center of the screen (the default), and 1.0 + positions it to the far right or bottom of the screen. If three + parameters are provided, then the ss + parameter is a scale factor for the test window size. A value of 0.5 + for instance, would produce a half sized window. A value of 2.0 will + produce a double size window. If four parameters are provided, then + the last two set independent horizontal and vertical scaling + factors. Note that the ho,vo,ss or ho,vo,hs,vs numbers must be + specified as a single string (no space between the numbers and the + comma). For example, to create a double sized test window at the top + right of the screen, use -P 1,0,2 + . To create a window twice as wide as high: -P 1,0,2,1.
+
+ The -F + flag causes the while screen behind the test window to be masked + with black. This can aid black accuracy when measuring CRT displays + or projectors.
+
+ By default dispwin will put + a test window on the selected display, and display some test colors, + before darkening  then brightening the screen by loading video + LUT values, test the bell sounds, then restore the original values + and exit.
+
+ If the -i + flag is set, then dispwin + will display the preset sequence, then random test colors forever.
+
+ If the -G + parameter is set, then dispwin + will display the sequence of RGB color in the supplied CGATS file, + e.g. a .ti1 file. Typically this might the used with the -m option to manually measure a + set of test patches.
+
+ If the -m + flag is set, then dispwin + will display the preset sequence then exits, but advances manually + after each return key.
+
+ If the -r + flag is set, then dispwin + will test just the loading of video LUT values by first darkening, + then lightening the screen, before exiting.
+
+ If the -n + flag is set, then dispwin + will display the colors directly on the display, rather than having + the color values translated through the currently loaded Video LUTs.
+
+ If a -s filename.cal option is + used, then rather than displaying a test window, dispwin will save the currently + loaded calibration curves to the given calibration file. Note that + other functions such as clearing or loading a calibration can be + performed after this action.
+
+ If a -c + flag is used, then rather than displaying a test window, dispwin will load the selected + display with a linear set of Video LUT curves, effectively clearing + the calibration, and will then exit. Note that other functions such + as loading a calibration can be performed after this action.
+
+ If a -V + flag is used, then rather than loading the calibration specified as + the final argument, the currently loaded calibration will be + verified as being the same as the given calibration file. If this is + combined with the -L flag, the currently + loaded calibration will be verified as being the same as the + installed system profile for the display.
+
+ -I: The ICC + profile specified as the final argument will be installed as the + default operating system profile for the chosen display, and the + display calibration will be set to the calibration tag ('vcgt' tag, + if any) in that profile.. On MSWindows and OS X this means that the + profile will be copied to the appropriate color profile directory + and registered with the operating system. For Linux X11 systems, the + profile will be installed using the ucmm + convention, and the X11 _ICC_PROFILE property in the root window, + and also the the XrandR 1.2 X11 _ICC_PROFILE output property on + systems that are running XrandR 1.2 or later. The latter is + following this convention + for allowing applications to locate the display profile for a + particular X11 display, and expands it to accomodate XrandR 1.2. + Note that for X11 systems, the properties are not persistent, and + will need to be loaded each time the X11 server is started (see the + -L flag).
+
+ -U: The ICC + profile specified as the final argument will be un-installed as the + default operating system profile for the chosen display. The display + calibration will remain unchanged.
+
+ -S d: Some + systems have more than one profile scope that an installed profile + will apply to, and this parameter allows overriding the default user + scope. On OS X, there is a choice of three scopes: n: for network scope, if people + are sharing profiles over a network, l: local system scope, which installs the profile + for all users of a system, and the default u, which covers just the user + installing the profile. On Linux or Microsoft Vista, just the local + system l and user u scope are available. Note that + you may need to run dispwin with elevated privileges(sudo) to be + able to successfully use network or local system scope. This option + also applies to uninstalling a profile. Note that to install a user + profile for the root account, you will have to login as root (sudo + will not achieve this).
+
+ -L: This + option fetches the current installed system profile for the chosen + display, and sets the display to the calibration tag ('vcgt' tag, if + any) in the profile. This is a convenient way of initializing the + display on system startup from the installed display profile, if the + system doesn't not do this automatically .
+
+ -E: Daemon + mode (experimental). When running on a UNIX based system that used + the X11 Windowing System, this option runs dispwin in a "daemon" + mode where it monitors the given X11 server, waiting for any changes + in monitors that may require loading a matching ICC profile (ie. + such as re-configuring, plugging in a different monitor etc.)  + This only works if XRandR 1.2 is available on the server. By default + dispwin runs silently, and will not terminate. If the -v option is given, it will emit + messages to stdout to show what it is doing. When it is first + invoked, it will load the installed profiles of all the screens of + the given X11 server.
+
+ The -D flag causes diagnostics to be printed + to stdout. A level can be set between 1 .. 9, that may give + progressively more verbose information. This can be useful in + tracking down why an operation fails.
+
+ The final optional parameter on the command line + is the name of an ICC profile that contains a Video LUT vcgt tag, or an Argyll .cal format display calibration. If + this parameter is provided, then the selected display will be loaded + with the given calibration. If the -V + flag was given, then it is verified that this calibration is the + currently loaded one.  This may be useful in initializing a + system to the current calibration on system startup, although a + better way may be to install the profile (-I option), and then just use -L. Note that the vcgt tag + interpretation within Argyll is consistent with that of the + originators of the tag. Other ICC profile vcgt implementations may + not be so consistent.
+
+ NOTE that on an X11 system, + if the environment variable ARGYLL_IGNORE_XRANDR1_2 + is set (ie. set it to "yes"), then the presence of the XRandR 1.2 + extension will be ignored, and other extensions such as Xinerama and + XF86VidMode extension will be used. This may be a way to work around + buggy XRandR 1.2 implementations.
+
+ NOTE
on MSWin systems that you will have to disable any + other calibration installer program if you want to be able to + control calibration using dispwin. Note also that there are other + programs that will interfere with calibration loading, such as + igfxpers.exe that gets installed with nVidia "Optimus" technology.
+
+
+
+
+ + diff --git a/doc/evalInputTargets.html b/doc/evalInputTargets.html new file mode 100644 index 0000000..91a38f1 --- /dev/null +++ b/doc/evalInputTargets.html @@ -0,0 +1,61 @@ + + + + Evauating Input Targets + + + + +

Evaluating +input targets
+

+There are a variety of color profiling targets available for +characterizing input targets, and it is sometimes hard to decide which +one will be best for your particular purpose. Listed here are some +criteria to evaluate:
+

Color gamut

+The resulting profile will only be accurate between or near the color +values contained on the chart. This means that if the colors you are +actually processing with your device go outside the gamut of your test +chart, the color values will have been extrapolated by the profile, and +are therefore likely to be not very accurate.
+

Color Resolution

+The profile will be most accurate for colors that are near those +contained on the chart. This means that the more closely and evenly +spaced within the color gamut the value of
+the test chart are, the more accurate overall the chart will be. So +typically the greater the number of test values, the better.
+

Dynamic range and White point

+Similar to color gamut, the profile will only be accurate over the +range of lightness levels exercised by the chart. At the dark end the +ideal black test value will be a light trap. At the white end the ideal +white test value would be the perfect 100% reflective diffuser. In +practice there is another consideration, which is that by default the +white point of the profile is set by the white value of the test chart, +and any values over this may be clipped by the profile. So ideally the +white patches should represent the white value of the work you will be +using the input device for.
+

Spectral similarity

+One of the fundamental problems with colorimetrically characterizing +input devices, is that typically input devices don't have the same +spectral sensitivity as a human observer. This means that it "sees" +color differently, and that there is no way to perfectly compensate for +this in a device profile. [There will be some spectral values that look +the same to the device but appear different to us, and visa-versa.] A +colorimetric profile will best compensate for such differences when the +target test colors have the same spectral reflectance characteristics +as the the intended work. What this translates to is that you will get +best results when the test chart uses a similar printing process to +whatever work you will be using the input device for. So if you are +intending to scan photographic prints, you should use a photographic +based test chart. If you were scanning artworks, then you should use a +test chart that has pigments that are similar to paint used on such +artworks, etc. When characterizing camera's, an additional source of +spectral differences is the illuminating light source used. Once again, +it will be best to choose a light source to characterize the camera +that is going to be most similar to the light source you will typically +shoot photographs under.
+
+ + diff --git a/doc/extracticc.html b/doc/extracticc.html new file mode 100644 index 0000000..73e572b --- /dev/null +++ b/doc/extracticc.html @@ -0,0 +1,40 @@ + + + + extracticc + + + + +

xicc/extracticc

+

Summary

+ Extract an embedded ICC profile from a TIFF or JPEG raster file.
+

Usage Summary

+ usage: extracticc  + [-v] infile.tif/jpg outfile.icm
+ -v            + Verbose

+

+

Usage Details and Discussion
+

+ The -v flag may give extra information.
+
+ infile.tif/jpg    + should be the path to the TIFF or JPEG image file that contains the + embedded + ICC profile
+
+ outfile.icm  should be + the + path to the file that will be created to hold the ICC profile + extract + from the TIFF or JPEG file. The appropriate extension should be used + for the + platform, i.e. icm for + MSWindows, and icc for OS X + or + Unix/Linux.
+ + diff --git a/doc/extractttag.html b/doc/extractttag.html new file mode 100644 index 0000000..90174b4 --- /dev/null +++ b/doc/extractttag.html @@ -0,0 +1,43 @@ + + + + extractttag + + + + +

xicc/extractttag

+

Summary

+Extract a text tag (ie. CGATS +.ti3 data or CAL) from an ICC profile. +

Usage Summary

+usage: extractttag  +[-v] infile.icm outfile
+ -v            +Verbose
+ -t tag        Extract this tag +rather than default 'targ'
+ -c            +Extract calibration file from 'targ' tag

+

+

Usage Details and Discussion
+

+The -v flag may give extra information.
+
+infile.icm    +should be the path to the ICC profile
+
+outfile  should be the +path to the file that will be created to hold the contents of the text +tag. The appropriate extension should be used for the contents of the +tag (ie. .ti3 for the  +for the +'targ' tag, .cal for a +calibration, etc.).
+ + diff --git a/doc/fakeCMY.html b/doc/fakeCMY.html new file mode 100644 index 0000000..3122073 --- /dev/null +++ b/doc/fakeCMY.html @@ -0,0 +1,73 @@ + + + + + + + + fakeread + + +

xicc/fakeCMY

+

Summary

+Using a CMYK ICC profile, create a +.ti3 file containing device CMY to +colorimetric +values. This can then be used to create a CMY profile, that can be +linked +with the original CMYK profile to form a CMY to CMYK separation +transform. +

Usage

+fakeCMY [optionscmykprofile.icm fakecmy.ti3 +
+ -v                +Verbose mode
+ -r res            +Set the resolution of the resulting .ti3 +file (default 3).
+ -l tlimit         +Set a total ink limit, 0 .. 400%  (estimate by default)
+ -l klimit         +Set a black ink limit, 0 .. 100%  (estimate by default)
+ profile.icm       +CMYK  ICC input profile to +use
+ outfile.ti3       +Name for output .ti3 file

+  +

Comments

+This tool is a means of producing a CMY to CMYK separation. A fake +CMY profile is created from the output of fakeCMY, and this is then +linked to +the original CMYK profile using collink, to +create +a separation containing the desired black generation.
+ + diff --git a/doc/fakeread.html b/doc/fakeread.html new file mode 100644 index 0000000..aa2847c --- /dev/null +++ b/doc/fakeread.html @@ -0,0 +1,248 @@ + + + + fakeread + + + + +

spectro/fakeread

+

Summary

+Simulate the measurement of a devices response, using an existing +device profile, or measured test point data set. The device profile can +be either +an ICC or MPP profile, or the data set can be a +.ti3 file. A device link +separation or color space conversion can be applied before the +print/measure simulation.
+

Usage

+fakeread [-v] [-s] [separation.icm] profile.[icm|mpp|ti3] inoutfile
+ -v                +  +      Verbose mode
+ -s                +  +      Lookup MPP spectral values
+ -p                        +Use +separation profile
+ -l                        +Output +Lab rather than XYZ
+ -k +file.cal               +Apply +calibration (after sep.) and include in .ti3
+ -i +file.cal               +Include +calibration in .ti3 (but don't apply it)
+
 -r +level                  +Add +average random deviation of <level>% to input device values +(after sep. & cal.)
+ -0 +pow                    +Apply +power to input device chanel 0-9 (after sep. cal. & rand.)
+  +-R +level                  +Add +average random deviation of <level>% to output PCS values
+
 -u +      +                 +Make +random deviations have uniform distributions rather than normal
+ -S +seed                   +Set +random seed
+
 -b +L,a,b                  +Scale +black point to target Lab value
+ -I +intent                 +r = relative colorimetric, a = absolute (default)
+
 [separation.icm]          +Device +link separation profile
+ profile.[icm|mpp|ti3]     ICC, MPP +or .ti3 +profile/file to use
+  +inoutfile           +  +    Base name for +input[.ti1]/output[.ti3] file

+
+Examples

+
+fakeread profile.icm testvalues
+fakeread -p separation.icm profile.icm testvalues
+

Comments
+

+The -v flag does nothing at +the moment.
+The -s flag works only with +MPP profiles that contain spectral model +information.
+The -p flag enables a device +to device value conversion before +converting to expected PCS values.
+The -l flag causes the CIE +output values to be L*a*b* rather than the +default XYZ values.
+
+The -k file.cal parameter specifies a printer +calibration file created by printcal, and +the supplied calibration curves will be applied to the chart device +values after any separation. This allows emulating a system that uses +per device channel calibration. The calibration curves will also be +included in +the resulting .ti3 file, so that they can be passed through to the ICC +profile allowing accurate computation of ink +limits.
+
+ The -i file.cal parameter specifies a printer +calibration file created by printcal, +and the calibration curves will be +included in the included in +the resulting .ti3 file, so that they can be passed through to the ICC +profile, to allow accurate computation of ink limits. +The calibration is not applied +to tchart values. Note that if +the supplied ICC profile contains calibration curves, that these will +be included in the resulting .ti3 by default.
+
+The -r parameter is a way of +simulating instability in the behaviour of +the simulated +printing system. The parameter supplied to the flag will be used to +scale a random offset added to the device values (after any separation +and calibration is applied). The offset will be a normally distributed +error with an +average deviation of level%. A typically value supplied +might be 1.0 to simulate 1% randomness.
+
+The -0, -1, -2 .. -9 +parameters are a way of simulating changes in the +behaviour of the simulated printing system. The parameter supplied to +the flag will be used to modify the device values (after any +separation, calibration and device randomness +is applied) by raising them to the power of the parameter. This applies +a transfer curve to the simulated device response.
+
+The -R parameter is a way of +simulating instability in the behaviour of +the simulated +measuring system. The parameter supplied to the flag will be used to +scale a random offset added to the PCS values. The offset will be a +normally distributed error with an average deviation of level%. A +typically value supplied +might be 1.0 to simulate 1% randomness.
+
+The -u flag changes the +distribution of the random offsets applied using the -r or -R flags, from the default standard +deviation, to a uniform deviation distribution. The level is still +specified as an average deviation.
+
+The -S parameter lets a +particular random seed be used when generating random offsets, so that +the randomness can be made repeatable. Normally a different seed will +be used for each run.
+
+The -b parameter is a way of +simulating devices that have a different black point to the profile +used. This only works if an ICC profile is used, and scales the black +point to the parameter value. This will be done in XYZ space by +default, and in L*a*b* space if the -l +flag is used.
+
+The -I parameter allows +changing the intent used in looking up the ICC profile colors to +relative colorimetric. This would not be used if you intend +to make a profile from the resulting .ti3 file, since profiles are +always made from absolute colorimetric measurement values. Note that +this flag does nothing if the profile is an MPP or .ti3 file.
+
+Fakeread is useful in creating artificial test value for testing colprof, as well as providing one path for +turning an MPP profile into an ICC profile. If a .ti3 file is +specified instead of an ICC or MPP profile, +then the closest matching measured points in the ..ti3 are substituted +for the test values in the .ti1 +file on +output. If the .ti1 +file is a monochrome test file with a White device value, then an RGB ICC profile, MPP or .ti3 may be used, and the White +values will be translated to equal RGB values. If the .ti1 +file is a monochrome test file with a Black device value, then a CMYK ICC profile, MPP or .ti3 may be used, and the Black +values will be translated to equal CMY = 0, K = grey values. Note that +any calibration within a supplied ICC profile is not applied during the +conversion, although it will be included in the .ti3 output (see -k and -i flags for how apply calibration +curves during the conversion and/or include +a specific calibration curves in the output).
+
+If a separation device profile is provided (e.g. from CMY -> CMYK, +or perhaps CMYK->CMYK, to simulate a color correction step before +"printing"), then this will be applied to the .ti1 device values, +before converting the the device values into .ti3 PCS values.
+
+
+
+ + diff --git a/doc/filmread.html b/doc/filmread.html new file mode 100644 index 0000000..2109b99 --- /dev/null +++ b/doc/filmread.html @@ -0,0 +1,55 @@ + + + + filmread + + + + +

spectro/filmread

+

Summary

+Read film colorimetric values using a Gretag SpectroScanT spectrometer.
+

Usage

+filmread [-v] [-s] [-c +comport] outfile
+ -v             +Verbose mode
+ -s             +Gather spectral data also
+  +
-c listno      Set communication +port from the following list (default 1)
+ outfile        +Base +name for input[.ti2]/output[.ti3] file

+

Comments

+This tool allows reading of film test patches, one at a time using +the +transparent mode of the Gretag SpectroscanT.
+
+The instrument is assumed to communicate through a +serial +communication port, and the port can be selected with the -c +option, +if the instrument is not connected to the first port. If you invoke filmread so as to display the usage +information (i.e. "filmread -?" or "filmread --"), then the discovered +serial ports will be listed on Windows and Mac OSX systems.
+
+
+
+
+
+
+ + diff --git a/doc/filmtarg.html b/doc/filmtarg.html new file mode 100644 index 0000000..ba1c060 --- /dev/null +++ b/doc/filmtarg.html @@ -0,0 +1,78 @@ + + + + filmtarg + + + + +

target/filmtarg

+

Summary

+Create film recorder TIFF files from an Argyll .ti1 device +test values.
+

Usage

+filmtarg [-v] [-r] [-g +gamma] [-f format] basename
+
+ -v            +Verbose mode
+ + -r            +Don't randomise patch location
+  -g +gamma      Gamma correction / linearization
+  -f +format     Select format from:
+ +                        +Acad_Full       [3656 x 2664]
+ +                        +Acad_Half       [1828 x 1332]
+ +                        +Cscope_Full    [3656 x 3112]
+ +                        +Cscope_Half    [1828 x 1556]
+ +                        +FullAp_Full     [4096 x 3112]
+ +                        +FullAp_Half    [2048 x 1556]
+ +                        +Vista_Full      [4096 x 6144]
+ +                        +Vista_Half      [2048 x 3072]
+  basename      Base +name for input[.ti1]/output[.ti2] and output TIFF files.
+

Comments

+The TIFF files will have a name "basename.XXXX.tiff", where XXXX is the +patch number.
+The TIFF files generate are 16 bit, RGB files.
+
+
+ + diff --git a/doc/gamma.html b/doc/gamma.html new file mode 100644 index 0000000..2a9cec3 --- /dev/null +++ b/doc/gamma.html @@ -0,0 +1,64 @@ + + + + About Gamma + + + +

About Gamma

+When calibrating display devices, the notion of "gamma value" quickly +becomes a topic for discussion. Various numbers are often bandied about +as if they have a well known and accepted meaning, but it turns out +that gamma values are not a very precise way of specifying real world +device behavior at all.
+
+A "gamma" curve is typically thought of as an ideal power curve, but no +real world device has the necessary zero output at zero input to be +able to match such a curve, and in general a display may not exactly +reproduce an idealized power curve shape at all. The consequence of +this is that there are countless ways of matching a real world curve +with the ideal gamma power one, and each different method of matching +will result in a different notional gamma value.
+
+Argyll's approximate specification and reading is simply the gamma of +the ideal curve that matches the real 50% stimulus relative-to-white +output level. I think this is a reasonable (robust and simple) +approximation, +because it matches the overall impression of brightness for an image. A +more sophisticated approximation that could be adopted would be to +locate the idea power curve that minimizes the total delta E of some +collection of test values, but there are still many details that the +final result will depend on, such as what distribution of test values +should be used, what delta E measure should be used, and how can a +delta E be computed if the colorimetric behavior of the device is not +known ? Some approaches do things such as minimize the sum of the +squares of the output value discrepancy for linearly sampled input +values, and while this is mathematically elegant, it is hard to justify +the choice of device space as the metric.
+
+There are many other ways in which it could be done, and any such +approximation may have a quite different numerical value, even though +the visual result is very similar. This is because the numerical power +value is very sensitive to what's happening near zero, the very point +that is non-ideal. Consider the sRGB curve for instance. It's +technically composed of a power curve segment with a power of 2.4, but +when combined with its linear segment near zero, has an overall curve +best approximated by a power curve of gamma 2.2. Matching the 50% +stimulus would result in yet another slightly different approximation +value of about 2.224. All these different gamma values represent curves +that are very visually similar.
+
+Plot of sRGB curve vs. power of 2.224
+
+The result of this ambiguity about what gamma values mean when applied +to real world curves, is that it shouldn't be expected that there are +going to be good matches between various gamma numbers, even for curves +that are very visually similar, unless the precise method of matching +the ideal gamma curve to the real world curve is known.
+
+
+ + diff --git a/doc/gamutmapping1.jpg b/doc/gamutmapping1.jpg new file mode 100644 index 0000000..e962666 Binary files /dev/null and b/doc/gamutmapping1.jpg differ diff --git a/doc/greytiff.html b/doc/greytiff.html new file mode 100644 index 0000000..caccece --- /dev/null +++ b/doc/greytiff.html @@ -0,0 +1,96 @@ + + + + greytiff + + + + +

imdi/greytiff

+

Summary

+Convert a TIFF file to monochrome colorimetrically, using an ICC device +profile.
+

Usage
+

+greytiff [-options] profile.icm infile.tif +outfile.tif
+ -v            +       Verbose
+ -p            +       Use slow +precise floating point conversion, rather than fast integer routines.
+
 -j +           +       Use CIECAM02 space for removing color, +rather than default L*a*b* space.
+  profile.icm         Profile +to define the colorspace of the
TIFF +Raster file.
+  infile.tif          +A TIFF +Raster file that will be the input raster to be transformed.
+  outfile.tif     +    A TIFF +Raster file created from the input raster, that will have had the color +removed.

+
+Examples

+
+greytiff sRGB.icm infile.tif outfile.tif
+

Comments
+

+ The -v flag reports extra information about the ICC +profile.
+ The -p +option is intended to aid debugging.
+ The -j +option uses CIECAM02 colorspace to remove the color in. This may +produce better subjective results for images with highly chromatic +colors.
+The second last argument should be the name of the +TIFF file that is to be processed.
+The last argument should be the name of the TIFF file +to hold the results.
+
+
+
+
+
+
+ + diff --git a/doc/i1d.jpg b/doc/i1d.jpg new file mode 100644 index 0000000..e7cc159 Binary files /dev/null and b/doc/i1d.jpg differ diff --git a/doc/i1d3_1.jpg b/doc/i1d3_1.jpg new file mode 100644 index 0000000..afb77a3 Binary files /dev/null and b/doc/i1d3_1.jpg differ diff --git a/doc/i1d3_2.jpg b/doc/i1d3_2.jpg new file mode 100644 index 0000000..306f830 Binary files /dev/null and b/doc/i1d3_2.jpg differ diff --git a/doc/i1m.jpg b/doc/i1m.jpg new file mode 100644 index 0000000..efbf55f Binary files /dev/null and b/doc/i1m.jpg differ diff --git a/doc/i1p.jpg b/doc/i1p.jpg new file mode 100644 index 0000000..7e59c06 Binary files /dev/null and b/doc/i1p.jpg differ diff --git a/doc/i1pro2.jpg b/doc/i1pro2.jpg new file mode 100644 index 0000000..8b3cbec Binary files /dev/null and b/doc/i1pro2.jpg differ diff --git a/doc/i1proDriver.html b/doc/i1proDriver.html new file mode 100644 index 0000000..0894f59 --- /dev/null +++ b/doc/i1proDriver.html @@ -0,0 +1,157 @@ + + + + The i1pro Driver + + + + +

How can I +have confidence in the i1pro Driver ?
+

+A question that has been asked is : "You've +written your own driver for the Eye-One Pro. How can I have confidence +that the measurements are accurate, and will match those made with the +original manufacturers driver ?"
+
+This is a quite reasonable question. The following attempts to answer +it.
+

Why does Argyll use it's own +i1pro driver ?

+Primarily because the Original Manufacturers Driver (OMD) isn't +available for all the platforms that ArgyllCMS supports (Linux in +particular). A side benefit is that it's possible to tweak many of the +driver parameters for slightly better results and more flexibility. It +has also helped in understanding the characteristics and limitations of +such instruments.
+

Does it match the OMD ?

+In principle the behaviour should be very similar. While the Argyll +driver has been written from scratch, it does use exactly the same +calibration values from
+inside the instrument, and attempts to use the calibration values and +process the raw instrument readings in an equivalent manner to that of +the OMD.
+
+But the proof of the pudding is in the measuring, so to actually verify +this, the following experiment was conducted:
+
+The Argyll version used was V1.2.0
+
+The Macbeth 24 patch ColorChecker was used as a sample target. For each +patch (and the calibration tile), the following steps were performed:
+
+1) Place the instrument on the calibration tile.
+
+2) Use Argyll spotread to calibrate the Argyll driver.
+
+3) Change drivers to the OMD.
+
+4) Use the OMD to calibrate the instrument.
+
+5) Move the instrument to the patch on the ColorChecker.
+
+6) Read the color using the OMD.
+
+7) Change the back to the Argyll driver.
+
+8) Using the calibration made in step 2), read the color using Argyll.
+
+Each calibration or reading was performed 15 seconds from the previous +one, to put the instrument lamp in a repeatable state.
+The instrument was kept in exactly the same position for calibration +and patch measurement with the two drivers.
+(The whole idea is to reduce all other sources of error, other than the +driver itself.)
+
+This measurement was repeated just once for each patch + the +calibration tile. This was done in one run, and the readings were not +specially selected.
+

Results:

+The following D50 L*a*b* values were recorded for each measurement:
+
+A)    The OMD internally calculated L*a*b* value
+B)    The L*a*b* value calculated by Argyll from the OMD +spectral values.
+C)    The L*a*b* value calculated from the Argyll measured +spectral values.
+D)    The L*a*b* value calculated from the Argyll +Hi-Resolution mode measured spectral values.
+
+A is compare to B, to check +that the spectral to standard observer calculations are equivalent.
+
+    The result was an average Delta E (CIE76) of 0.006, +with a maximum of 0.012.
+
+    This shows that there is very close agreement in the +way spectral values are converted to XYZ and L*a*b*.
+
+B is compared to C to check +that the Argyll driver behaves the same as the OMD.
+
+    The result was an average Delta E (CIE76) of 0.028, +with a maximum of 0.051.
+
+    This shows that the OMD and Argyll driver are in +close agreement in spectral measurement.
+    This error is an order of magnitude smaller than +uniformity induced errors typical in the media being measured.
+
+A is compared to C to check +that the Argyll driver and spectral to XYZ differences don't compound.
+
+    The result was an average +Delta E (CIE76) of 0.026, with +a maximum of 0.048.
+
+    Rather than compounding, any spectral to XYZ +differences tend to cancel +out slightly. This is the bottom line +experimental difference between +the two drivers. The actual underlying difference may in fact be less +than this, but it would be necessary to do multiple test runs to +filter out experimental error.
+
+C is compare to D to check +that the Argyll Hi-Resolution mode is behaving reasonably.
+
+    The result was an average Delta E (CIE76) of 0.158, +with a maximum of 0.353.
+
+    Because the ColorChecker samples have relatively +smooth reflectance spectra, it can be expected that
+    the normal and Hi-Res mode results should be fairly +similar. And indeed, this is the case. The biggest
+    differences are for patches +with the largest spectral transitions in them, which is to be expected +as the
+    Hi-Res measurement more +closely follows the spectral shape, while the differences for +spectrally flat
+    patches is neglegable, since both can follow the +spectral shape well.
+
+Example Yellow-Green Patch, Hi-Res & Normal spectrum:
+Yellow-Green patch, Hi-Res vs. Normal
+
+

Conclusions:

+The experimental average difference of 0.026 +Delta E76 shown above provides evidence that despite using a completely +different instrument driver to that supplied with the instrument, the +ArgyllCMS Eye-One pro measurement values have comparable accuracy, and +can be relied upon to match measurements made using the original +manufactures driver.
+

Raw Data:

+The raw data is available in this spread +sheet.
+
+
+
+
+
+
+ + diff --git a/doc/i1proDriver.xls b/doc/i1proDriver.xls new file mode 100644 index 0000000..ca1cdf5 Binary files /dev/null and b/doc/i1proDriver.xls differ diff --git a/doc/i1scan14.jpg b/doc/i1scan14.jpg new file mode 100644 index 0000000..94b68fb Binary files /dev/null and b/doc/i1scan14.jpg differ diff --git a/doc/iccdump.html b/doc/iccdump.html new file mode 100644 index 0000000..8be51f3 --- /dev/null +++ b/doc/iccdump.html @@ -0,0 +1,52 @@ + + + + iccdump + + + + +

icclib/iccdump

+
+Dump the contents of an ICC profile as human readable text.
+

Usage

+ iccdump [-v level] +[-t tagname] [-s] infile
+ -v +level      Verbose level 1-3 (default 2)
+ -t +tag        Dump this tag only (can +be used multiple times)
+ -s            +Search for embedded profile
+  infile       ICC profile

+

Examples

+iccdump sRGB.icm
+
+iccdump -v3 -t rTRC sRGB.icm
+

Comments

+This tool will dump the contents of the header, and each known type +of tag within the ICC profile. For more detail on each tag, the -v flag +should be used, typically with verbose level 3.
+
+The -s flag causes iccdump to +do a brute force search for any embedded +profiles within the file, and dumps them all. This won't work if the +profile data is +segmented or compressed.
+
+The -t parameter may be used +multiple times, to dump just specific tags, e.g. iccdump -v3 -t clrt -t clot devicelink.icm
+
+
+
+ + diff --git a/doc/iccgamut.html b/doc/iccgamut.html new file mode 100644 index 0000000..6d2f5ba --- /dev/null +++ b/doc/iccgamut.html @@ -0,0 +1,334 @@ + + + + iccgamut + + + + +

xicc/iccgamut

+
+ Create a gamut file or VRML file  of the color gamut of an ICC + profile.
+ iccgamut allows creation of + gamut files from the forward or backwards + table of an ICC profile, in Lab or CIECAM02 Jab colorspace, and can + also + representing the gamut as a VRML file.
+

Usage
+

+ iccgamut [-options] profile
+  -v            + Verbose
+  -d + sres       Surface + resolution details 1.0 - 50.0
+  -w            +emit + VRML .wrl file as well as CGATS .gam file
+  -n            +Don't + add VRML axes or white/black point
+  -k            +Add + VRML markers for prim. & sec. "cusp" points
+  -f + function   f = + forward*, b = backwards
+   +
-i + intent     p = + perceptual, r = relative colorimetric,
+                +s + = saturation, a = absolute (default), d = profile default

+  -o + order      n = normal + (priority: lut > matrix > monochrome)
+                +r + = reverse (priority: monochrome > + matrix > lut)
+
 -p oride      l + = + Lab_PCS (default), j = CIECAM02 Appearance Jab
+  -l + tlimit     set total + ink limit, 0 - 400% (estimate by default)
+  -L + klimit     set black ink + limit, 0 - 100% (estimate by default)
+  -c + viewcond   set + viewing conditions for CIECAM02,
+                +either + an enumerated choice, or a series of + parameters:value changes
+
  +           pp - Practical Reflection + Print + (ISO-3664 P2)
+         +  +   pe - Print evaluation environment (CIE 116-1995)
+
        +  +   pc - Critical print evaluation environment (ISO-3664 P1)
+       +  +     mt - Monitor in typical work environment
+         +  +   mb - Monitor in bright work environment
+       +   +     md - Monitor in darkened work + environment
+       +   +     jm - Projector in dim environment
+       +   +     jd - Projector in dark environment
+      +   +     pcd - Photo CD - original scene + outdoors
+       +   +     ob - Original scene - Bright Outdoors
+       +   +     cx - Cut Sheet Transparencies on a viewing + box

+          +s:surround   + n = auto, a = average, m = dim, d = dark,
+                +  +      c = transparency (default average)
+          +w:X:Y:Z      + Adapted white point + as XYZ (default media white)
+          +w:x:y        + Adapted white point as + x, y
+          +a:adaptation + Adaptation luminance in cd.m^2 (default 50.0)
+          +b:background +Background + % of image luminance (default 20)
+          l:scenewhite Scene + white in + cd.m^2 if surround = auto (default 250)
+
         +f:flare      + Flare + light % of image luminance (default 1)
+          +f:X:Y:Z      + Flare color as + XYZ (default media white)
+          +f:x:y        + Flare color as x, y
+  -s             +Create + special cube surface topology plot
+
profile       +    The + name of the ICC + profile, as well as the basename of the gamut [.gam] and/or VRML [.wrl] file.
+
+

Comments

+ The parameters are all those that control which table in the ICC + profile to use, as well as what color space to convert it to.
+
+ The -v flag dumps out the ICC profile header information. + Using -v -w will also print the gamut volume in + cubic L*a*b* units.
+
+ The -d parameter controls the level of detail displayed in + the + surface. The parameter roughly corresponds to a deltaE value, so + smaller + values give greater detail. The default value is around 10, and is a + good + place to start. Small values may take a lot of time to generate, and + will + produce big files.
+
+ The -w flag causes a VRML file to be produced, as well as a + gamut file.
+
+ The -n flag suppresses the L*a*b* axes being created in + the VRML.
+
+ The -k flag adds markers + for + each of the primary and secondary "cusp" points (Red, Yellow, Green, + Cyan, Blue & Magenta). No markers will be displayed if the cusps + cannot be determined.
+
+ The -f parameter allows choosing the ICC table to be used + in + plotting the gamut. The backwards tables generally incorporate gamut + compression, and therefore don't reflect the native capabilities of + the + device.
+
+ The -i flag selects the intent transform used for a lut + based + profile. It also selects between relative and absolute colorimetric + for + non-lut base profiles. Note that anything other than colorimetric + may + not represent the + native capabilities of the device. The default intent will be + absolute + colorimetic for L*a*b* output, and CIECAM02 appearance for Jab + output.
+
+ An ICC profile is allowed to contain more than the minimum number of + elements or table needed to describe a certain transform, and may + contain redundant descriptions.  By default, lut based table + information will be used first if present, followed by matrix/shaper + information, and only using + monochrome information if it is all that is present. The -o + flag, + reverses this order.   
+
+ -p: By default the gamut + will + be created in L*a*b* colorspace. If  -pj is selected, then CIECAM02 + appearance space Jab will be used for the output, and the viewing + conditions will be taken into account. Jab space is what is normally + needed to be compatible with the default intents used in colprof.
+
Note that the CIECAM02 output space selection by default uses + the colorimetric transform of the profile resulting in the + appearance + of the native device, but that the perceptual or + saturation transforms may be used by selecting them using the -i parameter, which may give a + different result with some profiles. This may be desirable if an + image + is to be transformed through the perceptual or saturation tables of + a + profile as part of a link with an Argyll generated output profile, + since it will then represent the apparent gamut of the image when + subject to these tables. If the absolute colorimetric intent is + chosen + using -ia in combinations + with + -pj, then  Jab with + a fixed white reference is used, which emulates an absolute CIECAM02 + Jab + appearance space.
+
+ The -l parameter allows setting a total ink limit (TAC) for + printing + devices. If a device has a total ink limit, and hasn't been + characterised with device values above this limit, then plotting the + gamut in these areas will almost certainly be misleading. tables. By + default, a total ink limit will + be estimated from the profile tables. The ink limit + will be in final calibrated device values if the profile includes + calibration information.
+
+ The -L parameter allows setting a black ink limit for + printing + devices. If a device is to be used with a black ink limit, then it + is + useful to evaluate + the gamut with the limit in place. By default, a black ink limit + will + be estimated from the profile tables. The ink limit + will be in final calibrated device values if the profile includes + calibration information.
+
+ The -c parameter allows setting the CIECAM02 viewing + conditions, + either by choosing a typical viewing environment, or controlling + particular viewing condition parameters.
+
+ The -s flag creates a + special + hyper-cube surface plot that is artificially colored. This can be + useful for identifying the topology of the black ink color response.
+

Example
+

+ To create a view in L*a*b* of the absolute gamut of a CMYK file with + an + ink limit of 260%, one might use:
+
+     iccgamut -w + -ff + -ia -l260 profile.icm
+
+ and the resulting files will be profile.gam and profile.wrl.
+
+
+
+
+
+
+
+
+ + diff --git a/doc/iccgamutmapping.html b/doc/iccgamutmapping.html new file mode 100644 index 0000000..d180372 --- /dev/null +++ b/doc/iccgamutmapping.html @@ -0,0 +1,163 @@ + + + + About ICC profiles and Gamut Mapping + + + +

About ICC profiles and Gamut Mapping

+

How ICC profiles support different intents

+cLUT (Color Lookup Table) based ICC profiles support multiple intents by having a table for each +intent. In a typical device cLUT profile, there are up to 6 cLUT's, +three for input (AtoB tables, that convert from device space to PCS +(Profile connection space)), and three for output (BtoA tables, that +convert from PCS to device space). The tables allow the use of +different color transforms, each transform being tailored for a +different effect:
+
+AtoB0, BtoA0:   Perceptual
+AtoB1, BtoA1:   Colorimetric
+AtoB2, BtoA2:   Saturation
+
+The colorimetric intent is meant to convey the exact device color +behaviour, without any gamut mapping. Typically it is used to store the +devices behaviour (characterization), and is also used where exact +color reproduction is required, such as for proofing. The Colorimetric +tables double up for both relative colorimetric and +absolute colorimetric with the application of a white point restoration.
+
+The Perceptual and Saturation tables are meant to contain gamut mapping +combined with the device characterization. The allowance for this in +both the AtoB direction, as well as the BtoA direction permits a +profile to gamut map from the device gamut to some intermediate gamut, +and then from the intermediate gamut to the device gamut.
+
+[Note that Shaper/Matrix profiles are always Colorimetric intent, since +there is only a single transformation, and it does not have the +necessary flexibility to accommodate gamut mapping.]
+

ICC Version 2 behaviour
+

+Apart from defining the general purpose of the different tables, the +ICC Version 2 specification doesn't specify exactly how they are to +achieve this, so it is up to the profile maker to make a choice in this +regard. There is no common gamut boundary specified for the PCS, and +such an approach limits the achievable intents in any case (see ICC +Version 4 behaviour for an explanation why).
+
+What I've chosen to do with Argyll profiles, is to make all the AtoB +tables the same as colorimetric. This means that the conversion used +for the source profile is always colorimetric, and also means that the +source gamut seen by the destination profile is the source colorspace +gamut. This means that the gamut mapping is done solely in the BtoA +tables, +and that their task is to map the source colorspace gamut to the +destination colorspace gamut. So to construct the perceptual and +saturation intent mapping tables, a source profile or source gamut +needs to be specified, so that a gamut mapping can be constructed.
+
+The advantages of this approach is that the behaviour is precisely +defined, a full range of gamut mapping options is available, and +compatibility with matrix profiles (which do not have gamut mapping +transforms) and other foreign profiles can be assured, by simply using +such profiles as colorimetric sources. The main disadvantage is that +the gamut mapping will only operate exactly as intended when the +profile is linked with the source profile it was setup for. This is +really a fundamental limitation of the idea of having pre-computed +gamut mapping color transforms, that the ICC profile format was +intended to support.
+
+Some non-Argyll profile have gamut mapping transforms in their +Perceptual and Saturation A2B tables, and this means that the apparent +gamut of a source through these tables may be different to the actual +device gamut. To accommodate using these profiles with CMM's (Color +Management Modules) that do not permit the separate choice of intent +tables for the source and destination profiles, Argyll will by default +use the gamut defined by the source profile perceptual table to +create the gamut mapping of the destination perceptual table, and the +source saturation table to make the destination saturation table. Note +that this can affect the exact nature of the gamut mapping, the +distortion of the source gamut changing the apparent relationship +between it and the destination gamut - see "ICC Version 4 behavior" for +an illustration of the kind of changes this causes. [This default can +be overridden though using the colprof -nP and -nS flags.]
+

ICC Version 4 behaviour

+(Note that Argyll does not currently support ICC V4)
+
+By default, ICC Version 4 profile operate exactly the same as the ICC +V2 profile in regard to gamut mapping. A slight adjustment was made to +the permitted tag contents, to allow things like Display profiles to +contain the full range of AtoB and BtoA tables, so that they could also +be gamut mapped. But an optional part of ICCV4, is to use the Profile Reference Medium Gamut +(PRMG) as an +intermediate gamut boundary between the source colorspace, and the +destination colorspace. If this option is used, then an additional tag +in the ICCV4 profile indicates that this is the case. This then solves +the problem of the gamut mapping having to know the source and +destination gamuts to operate. Instead, the gamut mapping is split into +two parts, the first where the source gamut to RMG is done by the AtoB +tables, and then the RMG to destination gamut is done by the BtoA +tables. Profiles can therefore be mix and matches, while retaining true +gamut mapping.
+
+This approach has a number of drawbacks though. One is that the colors +get gamut mapped twice. Gamut mapping is sometimes not very precise, +and the geometry of the transforms may not cancel out, especially since +different profile vendors may choose different algorithms in their +gamut mapping. By "cancel out", I mean that even if you were linking +the same source colorspace to the same destination colorspace, the +gamut may be expanded (say) in the process of mapping to the PRMG, and +then compressed again in mapping from the RMG to the device space, and +these expansions and compressions may not quite match. Given that the +PRMG is a relatively large gamut, larger than many real devices actual +behavior, this sort of expansion and re-compression will be the normal +thing.
+
+The chief drawback, is that only one (non colorimetric) intent can +really be supported, that of saturation.
+
+The typically expected behaviour of perceptual intent gamut mapping, is +to +compress any areas of the source gamut that lie outside the destination +gamut, but for areas that fall within the destination gamut, change +them as little as possible, consistent with keeping smooth and +proportional with respect to the compressed colors. This preserves the +source "look" as much as +possible, while ensuring that out of gamut colors are smoothly brought +within the destination gamut.
+
+Typical behavior of a saturation intent, is (at least), to not only +compress out of gamut source colors to fit within the destination, but +to expand any source boundary that falls within the destination gamut +outwards match the destination gamut. Some practical saturation gamut +mappings may go further than this, and expand a little beyond the +destination gamut to ensure fully saturated boundary colors, and also +enhance the saturation of all colors mapped through it.
+
+ By mapping the source gamut to +the RMG in the A2B, all information about what areas of the source +gamut are +inside or outside of the destination gamut are lost, so the destination +gamut mapping can not known which colors may be left unchanged, and +which really need compressing. All it can do is map the RMG to match +the destination gamut, +thereby effecting a saturation style intent.
+
+Once again, this is a fundamental limitation of using pre-computed +gamut mappings. The only effective way of overcoming such limitations +is to move to a more active color management architecture, in which +gamut mappings are computed at link time, to accommodate the actual +source and destination gamuts.
+
+
+Illustration of perceptual and saturation gamut mapping.
+
+
+
+
+
+ + diff --git a/doc/icclu.html b/doc/icclu.html new file mode 100644 index 0000000..9a95fbf --- /dev/null +++ b/doc/icclu.html @@ -0,0 +1,119 @@ + + + + icclu + + + + +

icclib/icclu

+

Summary

+Lookup individual color values through any ICC profile table, either +interactively, or as a batch.
+

Usage summary
+

+icclu [-v level] [-f func] +[-i intent] [-o order] profile
+ -v level +     Verbosity level 0 - +2 (default = 1)
+ -f function   f = forward, b = +backwards, g = +gamut, p = preview
+ -i intent     p = +perceptual, r = relative colorimetric,
+               +s = saturation, a = absolute
+ -p oride      x = +XYZ_PCS, l = Lab_PCS, y = Yxy,
+ -o order      n = +normal +(priority: lut > matrix > monochrome)
+               +r = reverse (priority: monochrome > matrix > +lut)
+ -s scale      Scale +device range 0.0 - scale rather than 0.0 - 1.0

+
+The colors to be translated should be fed into standard input,
+one input color per line, white space separated.
+A line starting with a # will be ignored.
+A line not starting with a number will terminate the program.
+

+

Flags and Parameters

+The -v parameter sets the level of verbosity. +Default is level 1, which repeats each input value, the colorspaces of +input and output, the type of conversion algorithm used, and if the +result was clipped. Level 2 adds prints extra information about the +profile before doing the conversions. Level 0 turns off all verbosity, +just outputting the results of each conversion. Use the latter to +capture batch output ready for further processing.
+
+The -f flag selects which type of table or conversion is to be +used.
+
+The -i flag selects the intent for a lut based profile.
+
+Normally the native PCS (Profile Connection Space) of a device or +abstract profile is used, but the -p flag
+allows this to be overridden, and XYZ, L*a*b* or Yxy space to be used.
+
+A profile is allowed to contain more than the minimum number of +elements or table needed to
+describe a certain transform, and may contain redundant descriptions. + By default, lut based
+table information will be used first if present, followed by +matrix/shaper information, and
+only using monochrome information if it is all that is present. -o +r reverses this order.
+
+Usually device values are processed and displayed using a normalized +value range between 0.0 and 1.0
+Sometimes other systems scale them to some other range (such as 100 or +255) due to an underlying
+binary representation. The -s +flag lets you input and display such data in its normal range. For +instance,
+if your device values have a range between 0 and 255, use -s 255.
+

Usage Details and Discussion

+Typical usage for an output profile might be:
+
+    icclu -ff -ip profile.icm
+
+Normally the program is interactive, allowing the user to type in input +color values, each number separated by a space, and the resulting +output +color being looked up and displayed after pressing return. To batch +process +a group of color values, prepare a text file containing each input +value on +a separate line, and use the input indirection facilities of your +command +line shell to redirect this input file into the standard input of +icclu. +The output can be captured to a file by redirecting standard output to +a file. In most shells this would be done something like this:
+
+    icclu -ff -ip profile.icm < inputvalues.txt > +outputvalues.txt
+
+
+
+
+
+ + diff --git a/doc/illumread.html b/doc/illumread.html new file mode 100644 index 0000000..03b5648 --- /dev/null +++ b/doc/illumread.html @@ -0,0 +1,319 @@ + + + + illumread + + + + +

spectro/illumread

+

Summary

+ Use an instrument or instruments to measure an illuminant spectrum, + including estimate + its Ultra Violet content. A combination of direct illumination + readings + and readings from a piece of paper having some FWA content are used + for + this. (If the UV content is not needed, or a suitable instrument is + not + available, then spotread should be used + instead.)
+

Usage Summary

+ illumread [-options] + illuminant.sp
+  -v              +  +     Verbose mode

+  -S +              +  +     Plot + the readings in a graph window.
+  -c comport            +Set + COM port, 1..4 + (default 1)

+
 -N                    +Disable + initial calibration of instrument if possible
+  -H +              +      + Use high resolution spectrum mode (if + available)
+
 -W n|h|x              +Override + serial port flow control: n = none, h = HW, x = Xon/Xoff
+  -D [level] +            + Print + debug diagnostics to stderr
+   + illuminant.sp         +File + to save measurement to
+

+

Usage Details and Discussion

+ illumread uses a suitable instrument to read an illuminant + spectrum, and uses an indirect method to estimate the Ultra Violet + content of the illuminant, so as to provide better accuracy with FWA + compensation. An instrument or combination of instruments + capable + of spectral measurement of both + emissive measurement and reflective measurement without a U.V. + filter + is required for this.
+
+ The -v flag causes extra information to be + printed out during + chartread operation.
+
+ The -S flag enables the plotting of the + spectral + reflectance/transmittance values. You must select the plot window + and + strike a key + in it to continue with another measurement.
+
+ The instrument is assumed to communicate through a + USB or serial communication port, and the initial port can be + selected + with the + -c + option, + if the instrument is not connected to the first port. If you invoke + illumread + so as to display the usage + information (i.e. "illumread -?" or "illumread --"), then the + discovered + USB and serial ports will be listed. On + UNIX/Linux, a list of all possible serial ports are shown, but not + all + of them may + actually be present on your system.
+
+ -N Any + instrument that requires regular calibration will ask for + calibration on initial start-up. Sometimes this can be awkward if + the instrument is being mounted in some sort of measuring jig, or + annoying if several sets of readings are being taken in quick + succession. The -N + suppresses this initial calibration if a valid and not timed out + previous calibration is recorded in the instrument or on the host + computer. It is advisable to only use this option on the second and + subsequent measurements in a single session.
+
+ The -H + option + turns on high resolution spectral mode, if the instrument supports + it. + See Operation of particular instruments + for more details.
+
+ The -W n|h|x + parameter overrides the default serial communications + flow control setting. The value n + turns all flow control off, h + sets hardware handshaking, and x + sets Xon/Xoff handshaking. This commend may be useful in workaround + serial communications issues with some systems and cables.
+
+ The -D flag causes communications + and other instrument diagnostics to be printed to stdout. A level + can + be set between 1 .. 9, that may give progressively more verbose + information, depending on the instrument. This can be useful in + tracking + down why an instrument can't connect.
+
+ The illuminant.sp is + the name of the file to save the resulting illuminant spectrum to. + The + format used is .sp.
+
+

+ Unlike the other measurement utilities, illumread doesn't connect to the + instrument until it is about to make a measurement. This allows for + the + possibility of using a different instrument for each measurement.
+
+ It will display a menu:
+
+ Press 1 .. 6
+ 1) Measure direct illuminant
+ 2) Measure illuminant reflected from paper
+ 3) Measure paper
+ 4) Select another instrument, Currently 1 'usb:/bus4/dev2/ + (GretagMacbeth i1 Pro)'
+ 5) Compute illuminant spectrum, average result with 0 previous + readings + & save it
+ 6) Compute illuminant spectrum from this reading & save result
+ 7) Exit
+
+ There are three measurements to be made, after which the illuminant + can + be computed and saved. Before each measurement, the instrument may + need + calibrating.
+
+ The first measurement needs a spectral instrument capable of reading + in + an ambient or emissive mode. For instance, a Spectrolino, Eye-One + Pro + or ColorMunki would be suitable instruments.
+
+ The second measurement needs a spectral instrument capable of + reading + in an projector or emissive mode. For instance, a Spectrolino, + Eye-One + Pro or ColorMunki would be suitable instruments.
+
+ The third measurement needs a spectral instrument capable of reading + in + reflective mode with UV included. For instance, a Spectrolino, + Eye-One + Pro, DTP20, DTP22 or  DTP41 would be suitable instruments, as + long + as they are not fitted with UV filters.
+
+ To be able to estimate the level of Ultra Violet (UV) light in the + illuminant, a reasonable sized piece of white paper needs to be + used. + The paper should have some noticeable level of FWA (Fluorescent + Whitener Additive, or Optical Brightening Agents) in it, so that it + responds to UV light. A piece of cheap copier paper is ideal, since + cheap paper is typically whitened with large amounts of FWA. If the + paper is thin (less than 160 gsm) then two or three sheets should be + used to prevent any background showing through. [If the intention is + to + use the illuminant spectrum for proofing to a particular paper, then + an + alternative might be to use a piece of the intended paper for this + purpose. It's unclear which may give a better result.]
+
+ The first measurement 1), + is + to use either the ambient or emissive measurement mode to measure + the + illumination directly.
+
+
If the instrument supports an + ambient + measurement capability, then it will be used. If the insrument + does not + have an ambient mode, then an emissive measurement mode can be + used, + although typically many illuminants are too bright to directly + point + the instrument at. A work-around is to reflect the illuminant from + a + spectrally flat white surface. A good candidate for this is a + piece of + white, fine textured polystyrene foam. [The suitability of a + reflector + can be checked using spotread -S + to check that the reflection characteristic is close to flat.]
+
+ Measuring AmbientMeasuring Ambient  Measuring Ambient
+
+
+ The second measurement 2), + is + to measure the illuminant after it has reflected from the paper.
+
+
This is done by placing the paper + such + that it is uniformly illuminated with reasonable brightness, and + then + placing the instrument so that it receives the reflected light + from the + paper. This is typically achieved by placing the instrument close + to + the paper at about 45º, so that it's aperture has a clear + view of + the illuminated paper, but avoiding shadowing the region that is + in + view.
+
+ Measuring via
+        PaperMeasuring via Paper
+
+
+ The third measurement 3), + is + to measure the paper directly using the instrument reflective mode + measurement.
+
Measuring Paper
+
+ If a different instrument is needed, use 4) to select from the available + instruments attached to your computer.
+
+ Once these three measurements have been made, then the illuminant + readings spectrum + can be computed and save using 6), + or a series of readings can be made with each reading being averages + with the previous readings before saving it by using 5). Note that the averaged + readings + will be weighted by their absolute intensities, and that while the + direct and indirect illumination needs measuring for each reading, + the + same paper measurement can be used each time.
+
+ If plotting is enabled, a plot of the + measured (black) and with estimated UV (red) is plotted. This is + followed by a plot showing measured paper reflectance (black) and + the + FWA calculated paper reflectance (red).
+
+
+ Illumread can then be terminated using 7).
+
+
+
+
+
+
+
+
+
+
+
+ + diff --git a/doc/illumread_1.jpg b/doc/illumread_1.jpg new file mode 100644 index 0000000..97b5382 Binary files /dev/null and b/doc/illumread_1.jpg differ diff --git a/doc/illumread_2.jpg b/doc/illumread_2.jpg new file mode 100644 index 0000000..6fef757 Binary files /dev/null and b/doc/illumread_2.jpg differ diff --git a/doc/illumread_3.jpg b/doc/illumread_3.jpg new file mode 100644 index 0000000..fcab321 Binary files /dev/null and b/doc/illumread_3.jpg differ diff --git a/doc/illumread_4.jpg b/doc/illumread_4.jpg new file mode 100644 index 0000000..6c955c0 Binary files /dev/null and b/doc/illumread_4.jpg differ diff --git a/doc/illumread_5.jpg b/doc/illumread_5.jpg new file mode 100644 index 0000000..5462e8f Binary files /dev/null and b/doc/illumread_5.jpg differ diff --git a/doc/illumread_6.jpg b/doc/illumread_6.jpg new file mode 100644 index 0000000..a91a63e Binary files /dev/null and b/doc/illumread_6.jpg differ diff --git a/doc/instruments.html b/doc/instruments.html new file mode 100644 index 0000000..896c0e5 --- /dev/null +++ b/doc/instruments.html @@ -0,0 +1,2214 @@ + + + + Operation of particular instruments + + + +

Operation of particular instruments

+ Please note that instruments are + being driven by ArgyllCMS drivers, and that any problems or + queries regarding instrument
+ operation
should be + directed to the Argyll's author(s) or the Argyll mailing list, and + not to any other party.
+
+ The following instruments are directly supported:
+ (Please note the installation instructions for each + platform - they contain important information for getting your + instruments working.)
+
+ X-Rite:
+     DTP20 "Pulse"  +                             + + + + + + + + + + + + + + + + + + + + + + - "swipe" type reflective spectrometer, that can be used untethered.
+     DTP22 Digital Swatchbook            + + + + + + + + + + + + + + + + + + + + + + - spot type reflective spectrometer.
+     DTP41                                         + + + + + + + + + + + + + + + + + + + + + + - spot and strip reading reflective spectrometer.
+     DTP41T       +            +                      + + + + + + + + + + + + + + + + + + + + + + - spot and strip reading reflective/transmissive spectrometer.
+     DTP51                                         + + + + + + + + + + + + + + + + + + + + + + - strip reading reflective colorimeter.
+     DTP92                                         + + + + + + + + + + + + + + + + + + + + + + - CRT display colorimeter.
+     DTP94 "Optix + + + + + + + + + + + + + + + + + + + + + + XR" or "Optix XR2" or "Optix Pro"- display colorimeter.
+     + + + + + + + + + + + + + + + + + + + + + + ColorMunki + Design or Photo  +          - spot and "swipe" + reflective/emissive spectrometer (UV cut only).
+     ColorMunki Create or Smile   +          - display + colorimeter. (Similar to an Eye-One Display 2)
+     Lenovo W     +                   +               - built in laptop + Huey display colorimeter.
+     Eye-One Display 3   +                   +     - i1 DisplayPro and ColorMunki Display
+             +             +             +             +           [ The OEM + i1Display Pro and
+             +             +             +             +              + NEC SpectraSensor Pro are also reported to work.]
+     Eye-One Pro2 +                   +              - spot and + "swipe" reflective/emissive spectrometer.
+
+ Gretag-Macbeth (now X-Rite):
+     Spectrolino       +                   +           - spot reflective/emissive + spectrometer
+     SpectroScan       +                   +         - spot reflective/emissive, XY table + reflective spectrometer 
+     SpectroScanT       +                   +       - spot reflective/emissive/transmissive, XY + table reflective spectrometer
+     Eye-One Pro "EFI ES-1000"   +         - spot and "swipe" reflective/emissive + spectrometer
+     Eye-One Monitor +                   +         - spot and "swipe" emissive spectrometer
+     Eye-One Display 1 or 2  or + LT        - display + colorimeter
+     HP DreamColor or + APS  +                 + + + + + + + + + + + + + + + + + + + + + + - display colorimeter. (Treated as a Eye-One Display 2)
+     CalMAN X2 +                                  + + + + + + + + + + + + + + + + + + + + + + - display colorimeter. (Treated as a Eye-One Display 2)
+     Huey       +                   +             +        - display colorimeter
+
+ Sequel imaging (Now X-Rite):
+      MonacoOPTIX   +                    +        - display colorimeter (Treated + as an Eye-One Display 1)
+                                                            + + + + + + + + + + + + + + + + + + + + + + [The Sequel Chroma 4 may also work.]
+
+ Lacie Blue + Eye:                                  + + + + + + + + + + + + + + + + + + + + + + - see Eye-One Display
+
+ DataColor ColorVision:
+      Spyder 2   +                    +          +        - display colorimeter (Note + that the user must supply firmware)
+                                                           + + + + + + + + + + + + + + + + + + + + + + [The Spyder 1 also seems to work.]
+      Spyder 3   +                    +          +        - display colorimeter.
+      Spyder 4   +                    +          +        - display colorimeter (Note + that the user must supply calibration + data)
+
+ Other:
+     Colorimètre + + + + + + + + + + + + + + + + + + + + + + HCFR                          + + + + + + + + + + + + + + + + + + + + + + - display colorimeter
+
    + ColorHug                                       + + + + + + + + + + + + + - display colorimeter. Experimental only, does not work on all + platforms.
+                                                            + + + + + + + + + + + + + Set environmental variable ENABLE_COLORHUG=true to test it.
+

+ Other instruments can be supported indirectly, since patch result + files created by other packages can be imported into Argyll.
+
+ General information about:
+
+     Strip reading instruments
+
    X-Y Table instruments
+     Spot reading instruments
+
+
+ There is a list of contributed ccmx (Colorimeter Correction + Matrix) files.
+
+
+

Strip reading instruments

+ When used with a DT20, DTP41, DTP51, Eye-One Pro or ColorMunki + strip reading instrument, chartread will first establish + communications with the instrument, and then set it up ready to read + the strips. The strips are labeled A to ZZ, and for each strip it + will prompt:
+
+     About to read strip XX  :
+
+ where XX is the strip label, and this is followed by the available + options to navigate, read the strip, or finish. Note that the normal + (forward) direction of strip reading is one that starts at the strip + label.
+
+ For the DTP51 you should + feed the strip into the instrument, and the microswitch will trigger + the read.
+
+ For the DTP41 you should + line the appropriate strip up in the machine, and press its button.
+
+ For the Eye-One Pro you + should set the guide to the appropriate strip, place the instrument + ahead of the first + patch on blank paper, and then press and hold the instruments + button. When you hear a beep from the computer, you can then move + the instrument steadily over the patches, releasing the button after + the instrument is past the last patch. Moving the instrument too + fast or changing speeds may cause a mis-read, or a scan with few + samples read per patch.
+
+ For the ColorMunki with the + default chart, the patches are the same width as the silver portion + of body (white version), or the textured portion of the body (black + version). Place aperture of the the instrument (located at its + center) in the white space ahead of the first patch, and then press + and hold the instruments button. When you hear a beep from the + computer, you can then move the instrument steadily over the + patches, releasing the button after the instrument is past the last + patch. Moving the instrument too fast or changing speeds may cause a + mis-read, or a scan with few samples read per patch. For the high density ColorMunki chart (printtarg -h), the patches are + arranged so that three rows are exactly the width of the  body + of the instrument. If you are careful you can use this to guide the + center of the instrument over each row, or you may prefer to use + something like a plastic ruler to help guide the instrument.
+
+ Using the DTP20 or the Eye-One Pro or ColorMunki with a randomized + chart layout, the strip may be scanned from either direction. If a + randomized chart layout has not been used for the Eye-One Pro or ColorMunki, then the chart + should only be read in the one direction (use chartread -B).
+
+ Note that you may have to check that system alert sounds are enabled + and at a suitable volume to in order to hear the beep prompt. For + the Eye-One Pro and ColorMunki, a second beep will sound after a + successfully read strip, or a double beep will sound,  + indicating a failure or warning that needs attention. See also the + note on Linux in installation.
+
+ If the strip is read successfully there will be a single "success" + beep, and the line will be followed with:
+
+     Ready to read strip  XX  :
+     Strip read OK
+
+ If there is an error of some sort there will be a double "fail" + beep, and a message will be issued, and you will be asked whether to + abort the chart reading, or retry the
+ failed strip:
+
+     Ready to read strip XX  :
+     Strip read failed due to misread (Not enough + patches)
+
+     Hit Esc to give up, any other key to retry:
+
+ If you are unable to successfully read a strip after several + retries, you can skip that strip using the 'n' key, and save
+ the chart readings without that strip.
+
+ If the strip is read successfully, but the patches values don't seem + to be what is expected, you will get a double "fail" beep  and + the following type of warning:
+
+     Ready to read strip  XX  :
+     (Warning) Seem to have read strip  YY  + rather than  XX !
+     Hit Return to use it anyway, any other key to + retry, Esc, ^C or Q to give up:
+
+ This could be because you have accidentally read the wrong strip (a + common mistake), or it could be that the device response is so + different from what is expected that warning is erroneous, or you + may get a lot of these sorts of warnings if you are accidentally + reading the wrong chart. You may also get this sort of warning if + you are not using bi-direction reading (chartread -B), and read the + strip from the wrong end.
+ If you are absolutely sure you lined up the correct strip, then hit + return, otherwise line the appropriate strip up again, and hit some + other key (ie. space).
+ Erroneous warnings are less likely if a previous profile for a + device was given to targen + to set more accurate expectations.
+
+ You may also see the following type of warning:
+
+     Ready to read strip  XX  :
+     (Warning) Patch error YY.YYY (>35 not good, + >95 bad)
+    There is at least one patch with an very unexpected + response!
+     Hit Return to use it anyway, any other key to + retry, Esc, ^C or Q to give up:
+
+ Similar to the previous warning, this indicates that while the right + strip appears to have been read, one of the patch readings is quite + different to what is expected. This may indicate an error of some + sort (ie. damaged test chart, or bad instrument positioning), or may + be erroneous if the actual device response is quite different to the + expectation. Erroneous warnings are less likely if a previous + profile for a device was given to targen + to set more accurate expectations.
+
+ You can also navigate the next strip to be read using the 'f' key to move forward and the + 'b' keys + to move backwards. The prompt will indicate whether this strip has + already been read or not, or whether all strips have been read. You + can also use 'n' to move + forward to the next unread strip. After each successful reading it + will move forward to the next unread strip. When you are finished, + use the 'd' to indicate + that you are done. You can choose to finish before all the strips + are read, and the patches that have been read will be saved to the + .ti3 file. This is useful if you are unable to read a particular + strip successfully, or if you are unable to finish the chart in one + session, and you can later resume reading the chart by using the chartread -r flag. [You could + resume reading the chart patch by patch using the chartread -r -p if you are + unable to read a strip successfully.]
+
+ When reading in patch by patch mode, there are a few additional + navigation options, such as F to move forward 10 + patches, B to move + backwards 10 patches, and g + to go to a specific patch.
+
+ You can abort the whole process at any time by hitting Escape, and + the readings will not be saved.
+
+
+

X-Y Table instruments

+ When you are using an XY table type instrument, such as a Gretag SpectroScan,  chartread + will first establish communications with the instrument, and then + set it up ready to read the chart. You will be prompted for each + sheet with a message such as:
+
+     Please make sure that the white reference is in + slot 1, then
+     place sheet 1 of 4 on table, then
+     hit return to continue, Esc to give up
+
+ After hitting return you will be prompted to line up three squares + on the sheet, one at a time:
+
+     Using the XY table controls, locate patch A1 with + the sight,
+     then hit return to continue, Esc to give up
+
+ On completing this, the instrument will commence reading each sheet.
+
+
+

Spot reading instruments

+ When used with a DT22 or SpectroLino or use the patch by + patch reading mode (chartread -p) + with the Eye-One Pro or ColorMunki + instrument, or use the external values mode (chartread -x), chartread will + first establish communications with the instrument, and then set it + up ready to read the patches. The patches are typically labeled by + column A to ZZ, and row 1-999. Each patch will prompt:
+
+     Ready to read patch 'XX'  :
+
+ where XX is the patch label, and this is followed by the available + options to navigate, read the strip, or finish.
+
+ Place the instrument on the indicated patch, and trigger a reading + using one of the available methods (typically using the instrument + switch of pressing a key).
+
+ There should be an audible prompt on a successful or failed reading. +
+
+ Note that you may have to check that system alert sounds are enabled + and at a suitable volume to in order to hear the beep prompt. For + the Eye-One Pro and ColorMunki, a second beep will sound after a + successfully read strip, or a double beep will sound,  + indicating a failure or warning that needs attention. See also the + note on Linux in installation.
+
+ If the patch is read successfully, the line will be completed with:
+
+     Ready to read patch  XX  :
+     Patch read OK
+
+ If there is an error of some sort, a message will be issued, and you + will be asked whether to abort the chart reading, or retry the
+ failed patch:
+
+     Ready to read patch XX  : read_strip + returned 'Strip misread' (Bad reading)
+
+     Strip read failed due to misread
+     Hit Esc to give up, any other key to retry:
+
+ You can navigate the next patch to be read using the 'f' key to move forward and the + 'b' keys + to move backwards, while 'F' + and 'B' will move forward + and backwards by 10 patches. The prompt will indicate whether this + patch has already been read or not, or whether all patches have been + read. You can also use 'n' + to move forward to the next unread patch. When you are finished, use + the 'd' to indicate that + you are done. You can choose to finish before all the patches are + read, and they will be saved to the .ti3 file. This is useful if you + are unable to finish the chart in one session, and you can later resume reading the + chart by using the chartread -r + flag.
+
+ You can abort the whole process at any time by hitting Escape, and + the readings will not be saved.
+
+ +
+

Display Type
+

+ Many of the colorimeters have a display + + + + + + + + + + + + + + + + + type selection parameter. Depending on the instrument, this + may combine two related functions: 1) Changing the measurement mode + to suite either refresh-type, or non-refresh displays, and 2) + Changing the calibration to suite a particular displays spectral + characteristics.
+
+ A refresh type display uses a technology that presents different + portions of the image at different times, doing so at a high enough + rate that this is normally imperceptible. This time varying + characteristic can interfere with measuring a display color unless + the instrument makes allowances for it, typically by making its + measurement period a multiple of the display refresh period. Display + types that refresh are CRT + (Cathode Ray Tube), Single chip DLP (Digital Light Processing) and + Plasma displays. An example of a non-refresh + display technology is LCD (Liquid Crystal Display), although is a + few cases the back-light illumination may have a low enough + frequency flicker to benefit from the refresh mode.
+
+ Instruments in which the display type selection only changes the + measurement mode (i.e. i1d3), will typically have some other + independent option to set the calibration type. Simpler instruments + combine the measurement mode with a calibration selections, + typically refresh+CRT and non-refresh+LCD. Some instruments are a + hybrid of both (Spyder4), where the display type can select between + generic refresh/non-refresh that can then use a .CCSS to set the + calibration type, or a combined selection of non-refresh and a + particular display type.
+
+ See Comparison_of_display_technology + for some background on different display technologies.
+
+

+

Refresh Rate Measurement

+

Most of the colorimeters that have a refresh display type + selection, also have an ability to measure the refresh rate of a + display. Some of the spectrometers also have a display refresh + rate measurement capability when in an emissive measurement mode, + even though they don't use this to support a refresh display mode. + You can do a display refresh rate measurement in spotread using the 'F' key. + The particular instruments have a range of accuracy when making + this measurement. A rough guide is as follows:
+
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InstrumentTypical error in Hz.
DTP92
+
0.1
+
i1 Display 2
+
0.5
+
Spyder 2
+
0.7
+
Spyder 3
+
3
+
Spyder 4
+
3
+
i1 Display Pro
+
0.05
+
i1 Pro Spectro.
+
0.05
+
ColorMunki Spectro.
+
0.05
+
+


+

+

+
+ ColorMunki Design or Photo reflective/emissive spectrometer
+
+   
+
+
Availability:
+
+
The ColorMunki Design or Photo from X-Rite  is currently + available in two different packages from the manufacturer. These + packages differ in what features the manufacturers software + provides, as well as cosmetic differences between the instrument + (white and black). This comparison chart + illustrates the differences. Used with Argyll, there are no + differences in operation of a ColorMunki instrument, irrespective of + which package it came with. The ColorMunki Design has the lowest + RRP, but the Photo package may be cheaper with discounting .
+
+ Limitations & Features:
+
+ Unlike the Eye-One Pro, the ColorMunki is only available in a U.V. + Cut (ie. "Ultra Violet filtered") model. This means that it is not + suitable for use with the  Fluorescent Whitener Additive + Compensation option in Argyll (see here for + a discussion about what FWA compensation is).
+
+ Like the Eye-One Pro, this instrument does support the high resolution spectral mode.
+
+ OS X and X-Rite drivers
+
+ Please note the installation instructions.
+
+ Tips & Tricks:
+
+
In handling the instrument when about to make a reading, be + very careful not to accidentally press the switch - it is large and + easily pressed by accident. A guide of some sort (ie. a plastic + ruler) can help a lot in  keeping the instrument over a line + of  patches.
+
+ Patch recognition:
+
+ For the best chances of good patch recognition, the instrument + should be drawn smoothly and not too rapidly over the strip. (This + can be a little tricky due to the two small rubber feet on the + bottom of the device that aid its spot reading guide.) If there is a + misread, try slowing down slightly. Generally a higher quality set + of readings will result if slower scans are used, since there will + then be more samples averaged for each patch.
+
+ In chartread, the -T ratio argument modifies the + patch consistency tolerance threshold for the ColorMunki. In + recognizing patches in a strip, the instrument takes multiple + readings as the strip is read, and then divide the readings up into + each patch. It then check the consistency of the multiple readings + corresponding to each patch, and reject the measurement if they are + too inconsistent. For some media (ie. a coarser screens, fabric + etc.) the default tolerance may be unreasonably tight, so the -T ratio argument can be used to + modify this criteria. To loosen the tolerance, use a number greater + than 1.0 (ie. 1.5, 2.0).
+
+ Note that printtarg provides the -h option that allows the choice of + two different patch row widths with ColorMunki test charts. [Some + people have successfully used the i1Pro patch layout with the + ColorMunki, by making a guide to keep it over the much narrower + patchs.]
+
+
+
+ +

+
DTP20 + "Pulse" reflective spectrometer
+
+

+
+
Availability:
+
+
The DTP20 from X-Rite was discontinued during + 2007, but may still be available from old stock or second hand.
+
+ Special features:
+
+ The DTP20 has a couple of + unique features that Argyll can take advantage of. One is that it + can operate un-tethered (off line). A whole chart can be read + un-tethered by first clearing any previous readings in the + instrument, then reading the chart TID strip, before reading all the + other strips. The instrument can then be connected up to chartread, which will recognize + the chart, and download all the measurements.
+ If there is no chart in the instrument when chartread connects to + it, then it will use the strip by strip tethered mode, just like the + other strip instruments. If the right number of spot readings are + present in the instrument, these will be used by chartread too.
+
+ Un-tethered spot measurements can also be read in using  spotread, which will notice the + stored readings, and offer to print them out, or they can be + ignored, and tethered readings taken. This will clear any saved spot + readings.
+
+ Note that tethered (on-line) + strip reading will only work if the firmware in the device is + version 1.03 or greater. You can check the firmware version by + running with the verbose option: -v
+
+ Chart printing:
+
+
Because the DTP20 measures exact distances using the + markings on its ruler, it's critical that the chart be printed out + exactly the right size. If the chart gets re-sized at all in the + process of printing it, the DTP20 is likely to fail in reading it. + If you have a problem with this, you might want to increase the page + margins using the printtarg -m + parameter, or find a printing path that preserves the test chart + size correctly.
+
+ Operation:
+
+
When reading in tethered (on-line) mode, that the instrument + takes several seconds to + download the measurements after each strip, and that the indicator + will be in "rainbow" mode while this occurs. Wait until the + indicator turns solid green again before starting to measure the + next strip.
+
+ To reset the instrument and + clear any stored readings: press the button three times in quick + succession. The indicator will turn solid blue. Then hold the button + down until the instrument beeps and the indicator goes out. Release + the button and the indicator should flash then return to solid green + (ready).
+
+ To calibrate the + instrument, place it on its calibration tile, then press the button + three times in quick succession.The indicator will turn solid blue. + Click the button another three times in quick succession, and the + indicator should turn yellow. Then hold the button down until the + instrument beeps and the indicator goes out. Release the button and + the instrument should flash and then turn solid green.
+
+ If the chart is particularly small, + the patches may end up printed very close to the edge of the chart, + and therefore it may be difficult to confine your scan to the chart, + and passing
+ the instrument over the edge of the chart may prevent it reading + successfully. One way of working around this is to place the chart + on a larger piece of paper of the same type.
+
+ The speed of scan can be + quite critical with this instrument. In particular, it doesn't work + very well if the scan is too slow. + You don't want to go too fast either, as this reduces the number of + samples per patch.
+
+
+ +

+
DTP22 + Digital Swatchbook reflective spectrometer
+
+
+
+
Availability:
+
+
The DTP22 from X-Rite is a discontinued + instrument.  It may still be available second hand. It is + capable of reading colored patches one at a time.
+
+
+ +

+ DTP41 reflective, DTP41T + reflective/transmissive spectrometers
+
+
+
+
Availability:
+
+
The DTP41 and DTP41T from X-Rite is a discontinued + instrument.  It may still be available second hand.
+
+ The series II instruments (DTP41B + and DTP41TB) offer both + serial and USB connection. Note that currently only serial operation + using Argyll is possible with these instruments.
+
+

+ DTP51 + reflective colorimeter
+
+
+
+
Availability:
+
+
The DTP51 from X-Rite is a discontinued + instrument.  It may still be available second hand.
+
+ Operation:
+
+
The DTP51's switch is triggered by inserting a strip + into the slot.
+
+
+ +

+ DTP92 CRT display colorimeter
+
+
+
+
Availability:
+
+
The DTP92 from X-Rite is a discontinued + instrument.  It may still be available second hand. It will + only read CRT technology displays.
+
+ Operation:
+
+ The Display Selections for this instrument are:
+
+     c    + + + + + + + + + + + + + + + + + + + + + + CRT display         A Cathode Ray + Tube display, that is of the Refresh type [Default, CB2].
+
+

+ DTP94, "Optix XR" or "Optix XR2" or "Optix Pro" display colorimetrers
+
+             +    
+
+
Availability:
+
+
The DTP94 from X-Rite is a discontinued + instrument, although it is still being supplied to OEMs.  It + may still be available as old stock, or second hand. It was sold as + an instrument without software as the DTP94, and packaged with + software from the manufacturer as the "Optix XR" range.
+
+ Operation:
+
+ The Display Selections for this instrument are:
+
+     l     + + + + + + + + + + + + + + + + + LCD display         A Liquid + Crystal Display, that is of the Non-Refresh type [default, CB1].
+     c    + + + + + + + + + + + + + + + + + + + + + + CRT display         A Cathode Ray + Tube display, that is of the Refresh type [CB2].
+     g    + Generic    +            Generic + display [CB3]
+   
+
+ +

+ Spectrolino reflective/emissive spectrometer
+
+
+
+
Availability:
+
+
The Spectrolino from +Gretag + + + + + + + + + + + + + + + + + + + + + + MacBeth (Now X-Rite) is a discontinued instrument. It is often + available second hand. If buying it second hand, make sure it comes + with all it's accessories, including white reference, spot reading + adapter, display reading adapters, filters (UV, polarizing, D65), + serial cable adapter and power supply.
+
+
+

+ SpectroScan reflective/emissive and SpectroScanT + reflective/emissive/transmissive spectrometers
+
+
+
+
Availability:
+
+
The SpectroScan and + SpectroScanT from Gretag + MacBeth (Now X-Rite) is a discontinued instrument. It is the + combination of an X-Y table and the Spectrolino instrument. The SpectroScanT is capable of + measuring transparency. It is often available second hand. If buying + it second hand, make sure it comes with all it's accessories, + including white reference, spot reading adapter, display reading + adapters, filters (UV, polarizing, D65) and power supply.
+
+ If measuring transparencies using a SpectroScanT, the Enter + key on the instrument may be used to trigger each reading. It will + be recognized after each previous reading has been completed.
+
+

+
+ Eye-One Pro2:
+ Eye-One Pro 2
+
+ There is support for some of the new features of the Eye-One Pro2 + (also known as the Eye-One Pro Rev E), in particular the  Rev E + measurement mode, spectrometer stray light reduction, wavelength + calibration, and improved black level tracking. This new support can + be disabled and an Eye-One Pro2 operated in legacy mode by setting + the environment variable ARGYLL_DISABLE_I1PRO2_DRIVER. See Eye-One Pro + reflective/emissive spectrometer below for details on the operation of this type of + instrument.
+
+

+ Eye-One Pro and + Eye-One Pro2 reflective/emissive spectrometer
+
+
+
+
Availability:
+
+
The Eye-One Pro from + X-Rite (was Gretag MacBeth) is + available in two packages from the manufacturer. These packages + differ partly in what accessories come with the instrument, but + primarily in what features the manufacturers software provides. This + comparison chart + illustrates the differences. Used with Argyll, there are no + differences in operation of an Eye-One Pro instrument, irrespective + of which package it came with. The lowest cost package is the i1 Basic + Pro.
+
+ The EFI ES-1000 (which is a re-badged Eye-One Pro) is also reported + to work with Argyll.
+
+ Unless you know what you're doing, and have a very specific reason + to buy an instrument fitted with a UV (Ultra Violet) filter, make + sure that you buy an instrument without the filter. A UV filtered + instrument can't deal intelligently with FWA (Fluorescent Whitener + Additive) effects in paper. (Look here for + more information about FWA compensation.) Using FWA compensation you + can make measurements using ISO 13655:2009 M0, M1 and M2 conditions. + The M2 condition emulates a UV cut instrument.
+
+ There have been four revisions of the Eye-One Pro, Rev. A, B, D and + E (AKA Eye-One Pro2). The rev B, D and E are capable of sampling + twice as fast as the Rev. A version of the instrument, and are also + available with an ambient light reading capability.
+
+ NOTE for those running on + older versions of Linux with a Rev. D, there was a problem with the + Linux USB stack that causes the instrument to stop working once it + has been used. The only workaround is to unplug and replug the + instrument in again, whereupon it can be used one time again. A fix + for this problem was in the  Linux 2.6.26 kernel release.
+
+ See also How can I have confidence in + the i1pro Driver ?
+
+ Patch recognition:
+
+ For the best chances of good patch recognition, the instrument + should be drawn smoothly and not too rapidly over the strip. If + there is a misread, try slowing down slightly. The Rev A and B. + instruments have a slower sampling rate than the latter revision + instruments, and hence must be used a bit more slowly. Generally a + higher quality set of readings will result if slower scans are used, + since there will then be more samples averaged for each patch.
+
+ In chartread, the -T ratio argument modifies the + patch consistency tolerance threshold for the Eye-One Pro. In + recognizing patches in a strip, the instrument takes multiple + readings as the strip is read, and then divide the readings up into + each patch. It then check the consistency of the multiple readings + corresponding to each patch, and reject the measurement if they are + too inconsistent. For some media (ie. a coarser screens, fabric + etc.) the default tolerance may be unreasonably tight, so the -T ratio argument can be used to + modify this criteria. To loosen the tolerance, use a number greater + than 1.0 (ie. 1.5, 2.0).
+
+ Special features:
+
+ A feature unique to Argyll when used with the Eye-One Pro, is the + high resolution spectral mode. This returns spectral measurements at + 3.333 nm spacing, rather than the default 10nm spacing, and also + extends the range of wavelengths very slightly. This high resolution + may assist in giving better accuracy for "peaky" emissive sources + such as illuminants and displays. The high resolution mode is + selected by using the -H + flag on the command line to dispcal, + dispread, chartread, and spotread. It can also be toggled + on and off within spotread + using the h key. The + extended range down to 350nm may give some information about an + illuminants ultra violet content, although the accuracy of the + readings between 350-380, and 730-740nm should not be relied upon.
+
+ High res. and standard res. spectrum.
+
+ C.R.T high res. and standard res. spectrum.
+
+

+ Eye-One Monitor + emissive spectrometer
+
+
+
+
Availability:
+
+
The Eye-One Monitor + from X-Rite (was Gretag + MacBeth) is a discontinued instrument. It was a lower cost version + of the Eye-One Pro without + reflective measurement capability. See Eye-One Pro + reflective/emissive spectrometer for details on the operation of this instrument.
+
+
+

+ Eye-One Display + 1, Eye-One Display 2, Eye-One Display LT, ColorMunki Create, + ColorMunki Smile colorimeters,
+
+ ColorMunki SmileEye-One Display 2 ColorMunki Create
+
+ Instrument Availability:
+
+
The ColorMunki Smile + colorimeter is a currently available instrument.
+ The Eye-One Display LT and + Eye-One Display 2 are + discontinued products, although they may still be available from + some retailers, second hand, and may still be shipped with some + displays as part of their calibration capability.
+ The ColorMunki Create + colorimeter is a discontinued product, although they may still be + available from some retailers or second hand,can also be used. They + will appear as an i1Display2 colorimeter.
+ The HP DreamColor + colorimeter can also be used, and will appear as an i1Display2 + colorimeter [note that it is calibrated for the DreamColor display].
+ The HP APS (Advanced + Profiling Solution) colorimeter is also reported to work, and will + appear as an i1Display2.
+ The CalMAN X2 colorimeter + is also reported to work, and will appear as an i1Display2 + colorimeter.
+ The  Lacie Blue Eye colorimeter is also reported to + work, and will appear as an i1Display2 colorimeter.
+
+ The Eye-One Display 1 is a + discontinued instrument.
+
+ The Eye-One Display LT came with a less expensive package with more + limited software from the manufacture.
+ The Eye-One Display 2 package came with more software + features,  but the instruments are virtually identical, and + will operate identically using Argyll.
+ The ColorMunki Create + package is another alternative, and will operate identically using + Argyll.
+
+ Operation:
+
+ The Display Selections for the ColorMunki + + + + + + + Smile are:
+
+     f +    LCD with CCFL back-light    +      A Liquid Crystal display that uses a Cold + Cathode Fluorescent back lighting. [Default, CB1]
+     e    + + + + + LCD with LED back-light    +       A Liquid Crystal display that uses + Light Emitting Diode back lighting.
+
+ other instruments will offer:
+
+     l     + + + + + + + + + + + + + + + + + + + + + + LCD display         A Liquid + Crystal Display, that is of the Non-Refresh type. [Default, CB1]
+     c    + + + + + + + + + + + + + + + + + + + + + + CRT display          A + Cathode Ray Tube display, that is of the Refresh type. [CB2]
+
+
+

+   i1 DisplayPro and ColorMunki Display colorimeters (i1 Display 3)
+
+ i1 Display Pro ColorMunki Display
+
+ Instrument Availability:
+
+
Both instruments are currently available..
+
+ The ColorMunki Display is a less expensive package + with more limited software from the manufacture, and takes a + noticeably longer time to make most measurements (a minimum of 1 + second), but both instruments will take longer for very dark + samples, and under these conditions the speed difference is less + significant.
+
+ The i1Display Pro package + comes with i1Profiler, and the instrument is generally faster than + the ColorMunki Display, but other than this and the software + package, the instruments appear to be virtually identical. (Note + though that the ColorMunki Display is unable to measure the + refresh period, so is less repeatable in this mode than the + i1Display Pro).
+
+ Both instruments are capable of using CCSS (Colorimeter Calibration Spectral + Sample) files, and this also gives the instrument the + capability of using a non-default standard observer. CCSS files can + be created using the ccxxmake tool, and + installed or translated from the .EDR files that are provided with + the instrument CD using the oeminst + utility using a spectrometer as a reference.
+
+ There are some OEM versions of this instrument around too, and the SpectraCal OEM i1Display, ChromaPure and NEC + SpectraSensor Pro instruments are also reported to work. They + will appear as a be a the same as the i1Display Pro.
+ [Note that if you have an + OEM version of this instrument, it's worth checking if they come + with any extra .edr files, that can then be translated for use with + ArgyllCMS using oeminst.]
+
+ On MSWindows, if you have installed the Manufacturers applications, + you may have to shut the i1Profiler tray application down before + Argyll can open the instrument.
+
+ Operation:
+
+ The Display Selections for this instrument are:
+
+     n     A + non-refresh type display [Default, CB1].
+     r +     A refresh type display  - The refresh period + is measured, and the integration time adjusted appropriately. [CB2]
+
+ With the manufacturers .edr files & reference Argyll .ccss files + installed, the following selections are:
+
+     n      A + non-refresh type display [Default, CB1].
+     r +      A refresh type display  - The refresh + period is measured, and the integration time adjusted appropriately. + [CB2]
+     c      CRT + (Hitachi CM2112MET, Diamond View 1772ie)
+     l       LCD CCFL + IPS (CCFL AC EIZO HP with CORRECTION)
+     L      LCD CCFL + Wide Gamut IPS (WG CCFL NEC241 271)
+          LCD RGB + LED IPS (RGBLED HP SOYO)
+     e      LCD White + LED IPS (WLED AC LG Samsung)
+     p      Projector + (Marantz HP Panasonic Projectors Hybrid EDR)
+
+ Note when measuring CRT displays:
+

+ The small magnet in the ambient light cover used to signal what + position it is in, can interfere in the operation of the CRT + display, particularly if the ambient cover is in it's natural + position at 180 degrees away from the measuring lens. One way of + minimizing this is to swing the cover down so that it touches the + display adjacent to the lens, thereby moving the magnet away from + the display surface. A more thorough but inconvenient way of + avoiding this problem is to unclip the ambient light cover and slide + it down the cable.
+
+

+ Huey colorimeter
+
+
+
+ Availability:
+
+
The Huey is widely + available under the Pantone + name as well as the manufacturer, X-Rite. + There lower cost Huey is now discontinued, while the Huey + + + + + + + + + + + + + + + + + + + + + + Pro is still available.
+
+ Operation:
+
+ The Display Selections for this instrument are:
+
+     l     + + + + + + + + + + + + + + + + + + + + + + LCD display         A Liquid + Crystal Display, that is of the Non-Refresh type. [Default, CB1]
+     c    + + + + + + + + + + + + + + + + + + + + + + CRT display         A Cathode Ray + Tube display, that is of the Refresh type. [CB2]
+
+
+

+ MonacoOPTIX + colorimeters
+
+ +          
+
+ Instrument Availability:
+

+ Availability:
+
+
The MonacoOPTIX from + Monaco Soft is a discontinued instrument.  It may still be + available as old stock, or second hand. It was sold packaged with + software from the manufacturer. The Sequel Chroma 4 appears to be a + similar instrument, and both seem to operate as if they were an + Eye-One Display 1 using Argyll.
+
+ Operation:
+
+ The Display Selections for this instrument are:
+
+     c    + + + + + + + + + + + + + + + + + + + + + + CRT display         A Cathode Ray + Tube display, that is of the Refresh type.
+     l     + + + + + + + + + + + + + + + + + + + + + + LCD display         A Liquid + Crystal Display, that is of the Non-Refresh type.
+
+

+ Spyder 2 + colorimeter
+
+
+
+
Availability:
+
+
The Spyder 2 has been superseded by the + Spyder 3 & 4, but may be available second hand.
+ [The Spyder 1 has also been reported as working, but this has not + been confirmed.]
+
+
Operation:
+

+ Important Note about the + ColorVision Spyder 2 instrument support:
+
+ This instrument cannot function without the driver software having + access to the vendor supplied PLD firmware pattern for it.
+ This firmware is not provided with Argyll, since it is not available + under a compatible license.
+
+ The purchaser of a Spyder 2 instrument should have received a copy + of this firmware along with their instrument, and should therefore + be able to enable the Argyll driver for this instrument by using the + oeminst tool.
+
+ The Display Selections for this instrument are:
+
+     l     + + + + + + + + + + + + + + + + + + + + + + LCD display        A Liquid Crystal + Display, that is of the Non-Refresh type. [Default, CB1]
+     c    + + + + + + + + + + + + + + + + + + + + + + CRT display         A Cathode Ray + Tube display, that is of the Refresh type. [CB2]
+
+
+ Linux USB hub problems:
+
+
Note that the Spyder doesn't appear to operate at all well on + Linux if attached to a secondary USB hub. You may have such a + secondary hub built into your motherboard. If Argyll has difficulty + in reliably talking to the Spyder, try connecting it directly to the + computer rather than via a usb hub, or try using a USB port on your + computer that connects directly to a root hub. This is probably due + to a bug in the Linux EHCI driver, and a fix is due to appear in the + Linux kernel sometime after July 2011. The name of the fix is "EHCI: + fix direction handling for interrupt data toggles".
+
+

+ Spyder 3 + colorimeter
+
+ Spyder3 Spyder3Express
+
+
Availability:
+
+
The Spyder3Elite, Spyder3Pro and Spyder3Express are being + superseded by the Spyder4, but may still stocked by some dealers, + and may be available second hand. The Spyder3Elite and Spyder3Pro + appear to be identical hardware with different software from the + manufacturer. The Spyder3Express + lacks the ambient sensor.
+
+ [Note that this instrument doesn't seem particularly suited to + measuring CRT displays, since it no longer seems to synchronise its + readings to a CRT refresh, and you can no longer remove the LCD + filter, reducing its sensitivity compared to the Spyder 2 in CRT + mode. The Spyder 2 or one of the other instruments may be a better + choice if you particularly need to measure CRTs or Refresh + displays.]
+
+
Operation:
+

+ The ambient light sensor can be used with the Spyder3Elite and Spyder3Pro instruments, but is + only capable of monochrome readings.
+

+ The Display Selections for this instrument are:
+
+     n | l     A + non-refresh type display [Default, CB1]
+     r | c +     A refresh type display. [CB2]
+
+
+

+ Spyder 4 + colorimeter
+
+ Spyder4
+
+
Availability:
+
+
The Spyder4Elite, Spyder4Pro and Spyder4Express are a currently + available instruments. The Spyder4Elite + and Spyder4Pro appear to be + identical hardware with different software from the manufacturer. + The Spyder4Express lacks + the ambient sensor.
+
+
Operation:
+

+ These instruments are capable of using using CCSS (Colorimeter Calibration Spectral + Sample) files, and this also gives the instrument the + capability of using a non-default standard observer. CCSS files can + be created using the ccxxmake tool + using a spectrometer as a reference.
+
+ Important Note about the + DataColor Spyder 4 vendor display type/calibration support:
+
+ This instrument does not have a full range of display type + calibration selections available without the vendor supplied + calibration data for it.
+ This calibration data is not provided with Argyll, since it is not + available under a compatible license.
+ You can use CCSS files as an alternative (see above), or as the + purchaser of a Spyder 4 instrument you should have received a copy + of the calibration data along with their instrument, and should + therefore be able to enable the full range of display type + selections in Argyll by using the oeminst + tool.
+
+ The Display Selections for this instrument are:
+
+     n | l     +    A non-refresh type display with a generic calibration + [Default, CB1].
+     r | c        A + refresh type display with a generic calibration.[CB2]
+
+ The Display Selections for this instrument when the manufacturers + calibration information has been installed is:
+
+     n        +      A non-refresh type display with a generic + calibration [Default, CB1].
+     r        +      A refresh type display with a generic + calibration.[CB2]
+     f    +          LCD, CCFL + Backlight                         + + + + + + + + + + + + + + + + + + + + + + - normal gamut Liquid Crystal Display with standard Cold Cathode + Fluorescent Lamp backlight.
+     L  +           Wide Gamut LCD, CCFL + Backlight      - wide gamut Liquid Crystal + Display with Cold Cathode Fluorescent Lamps backlight.
+     e +             LCD, White + LED Backlight        +           - normal + gamut Liquid Crystal Display with a White LED backlight.
+     B   + + + + + + + + + + + + + + + + + + + + + +          Wide Gamut LCD, RGB LED + Backlight - wide gamut Liquid Crystal Display with RGB LED + backlight.
+     x +             LCD, CCFL + Type 2 + Backlight              + + + + + + + + + + + + + + + + + + + + + + - normal gamut Liquid Crystal Display with alternative Cold Cathode + Fluorescent Lamp backlight (Laptop ?)
+
+ The ambient light sensor can be used with the Spyder4Elite and Spyder4Pro instruments, but is + only capable of monochrome readings.
+
+
Colorimètre HCFR + colorimeter
+
+
+
+
Availability:
+
+
The Colorimètre + + + + + + + + + + + + + + + + + + + + + + HCFR Probe is a kit instrument from HCFR. +
+
+ OS X
+
+ Please note the installation instructions.
+
+ Operation:
+
+ The accuracy of this instrument does not seem to be comparable to + the commercial instruments when used for measuring displays, + particularly in the area of measuring dark colors, and I've seen the + best results when used with a CRT display. It may well give good + results in calibrating projectors, since this was what it was + designed to do.
+
+ The Display Selections for this instrument are:
+
+     l     + + + + + + + + + + + + + + + + + + + + + + LCD display         A Liquid + Crystal Display [Default].
+     c    + + + + + + + + + + + + + + + + + + + + + + CRT display         A Cathode Ray + Tube display.
+     R   Raw  + Reading       Raw sensor readings, + used for calibration [CB1]
+
+
+
+ + diff --git a/doc/invprofcheck.html b/doc/invprofcheck.html new file mode 100644 index 0000000..9851774 --- /dev/null +++ b/doc/invprofcheck.html @@ -0,0 +1,133 @@ + + + + invprofcheck + + + + +

profile/invprofcheck

+

Summary

+Check ICC forward against reverse +lookup. +
+

Usage Summary

+usage: invprofcheck +[-options] profile.icm
+ -v [level]   +verbosity level (default 1), 2 to print each DE
+ -l +limit     set total ink +limit (estimate by default)
+
 -L +klimit    set black channel ink +limit (estimate by default)
+ -h           +high res test (27)
+ -u           +Ultra high res test (61)
+ -R res       Specific grid +resolution
+
 -c           +Show CIE94 delta E values
+ -k           +Show CIEDE2000 delta E values
+ -w           +create VRML visualisation (profile.wrl)
+ -x           +Use VRML axes
+ -e           +Color vectors acording to delta E
+ profile.icm  +Profile to check
+
+

Usage Details and Discussion

+invprofcheck provides a way of checking how well an ICC profile inverse transform inverts +the forward transform. For devices with more than 4 channels, a total +ink limit is assumed, and (if no -l +parameter is given) a reasonable number is deduced from the reverse +table. A grid of device values is created, and the transform from +PCS->device, and then device->PCS is computed in L*a*b* space. +The average, maximum and RMS error delta E values are computed and +displayed in the chosen delta E metric. A VRML plot of the error vectors can +be created. invprofcheck tries +to only test in-gamut color values. Note that because it scans a device +grid, for a CMYK device, the density of test points will be +progressively higher in the dark regions, and the average and RMS +values will be distorted by the denser sampling.
+
+The -v flag prints out extra information during the checking. A +value greater than 1 will print the color values of each test point.
+
+The -l flag allows setting a total ink limit (TAC) for printing +devices. If a device has a total ink limit, and hasn't been +characterised with device values above this limit, then plotting the +gamut in these areas will almost certainly be misleading. The ink limit +will be in final calibrated device values if the profile includes +calibration information.
+
+The -L flag allows setting a black channel ink limit for +printing +devices. If a device has a black ink limit, and hasn't been +characterised with device values above this limit, then plotting the +gamut in these areas will almost certainly be misleading. The black ink +limit +will be final calibrated device values if the profile +includes calibration information.
+
+The default device grid is relativy low, and 11 (ie. 11 x 11 x 11 for +an RGB device, 11 x 11 x 11 x 11 for a CMYK device etc.).
+
+The -h flag selects a higher +device grid resolution of 27.
+
+The -u flag selects an +extremely high device grid resolution of 61. This will probably take a +long time to run.
+
+The -G res option allows a +specific grid resolution to be used.
+
+The -c option causes the error differences to be +displayed +in CIE94 delta E, rather than plain L*a*b* delta E. CIE94 delta E has a +closer +correspondence with perceived color differences than the default CIE76 +delta E values.
+
+The -k option causes the error differences to be +displayed +in CIEDE2000 delta E, rather than plain L*a*b* delta E. CIEDE2000 delta +E has a +closer +correspondence with perceived color differences than either CIE76 or +CIE94 delta E values.
+
+The -w creates a VRML 3D +visualization +of the differences between the test points and the profiles prediction +of +the resulting colors.
+
+The -x flag adds Lab axes to the VRML output.
+
+The -e flag causes the error +vectors in the VRML output to be color coded according to their +lengths, from longest to shortest: yellow, red, magenta, blue, cyan and +green.
+
+
+
+ + diff --git a/doc/kodak2ti3.html b/doc/kodak2ti3.html new file mode 100644 index 0000000..5485506 --- /dev/null +++ b/doc/kodak2ti3.html @@ -0,0 +1,59 @@ + + + + kodak2ti3 + + + + +

profile/kodak2ti3

+

Summary

+Convert Kodak Colorflow format CMYK test chart into Argyll .ti3 CGATS format.
+

Usage Summary

+kodak2gcats [-v] [-l +limit] infile outfile
+
-v   +           +verbose mode
+
-l limit        +set +ink +limit, 0 - 400%
+ -r filename +    Use an alternate 928 patch reference file
+ infile          +Base name for input.pat file
+ outfile         +Base +name for output.ti3 +file
+
+

Usage Details and Discussion

+kodak2ti3 takes the Kodak Colorflow CMYK printer spectrometer data +file, and turns them into Argyll .ti3 CGATS files.
+By default kodak2ti3 expects a standard 928 patch test chart has been +used. If an alternate 928 test chart has been used, an alternate device +reference file can be supplied using the -r parameter.
+The Argyll .ti3 +format usually contains an ink limit or TAC (Total Area Coverage) limit +value, +used to specify the gamut limits during profile creation. the -l +flag allows this to be specified, and included in the created .ti3 file.
+
+
+ + diff --git a/doc/monitorcontrols.html b/doc/monitorcontrols.html new file mode 100644 index 0000000..83ab695 --- /dev/null +++ b/doc/monitorcontrols.html @@ -0,0 +1,90 @@ + + + + About display monitor settings and targets + + + +

About +display monitor settings and +targets

+Setting monitor controls and target behaviour for monitor calibration +boils down to two things:
+
+   What is the equipment capable of without introducing side +effects ?
+
+   What are you trying to do ?
+
+There are three reasons you may want to adjust display settings and set +calibration targets:
+
+1) You want to change how non-color managed applications appear.
+2) You want to change basic behaviour of the display that the profile +based
+   color management doesn't usually change, such as white +point and brightness.
+3) You want to improve the behaviour of the device so that the normal +profile based
+   color management does a better job of controlling the +display.
+
+
+You can make adjustments to a display using it's controls and/or the +video +card LUTs. Generally the former are more powerful and have less side +effects. There can be exceptions though, for instance LCD's have no +native contrast control capability, only brightness, so contrast is +usually faked by manipulating the lookup curves, which can introduce +side effects. The same applies to white point control on an LCD (unless +it has +R/G/B LED back lighting). So generally LCD displays are much less +flexible than CRT displays in targeting some non-native colorspace +without introducing side effects, so it is generally best to set all +the LCD controls except back lighting brightness to their default +settings.
+
+Brightness depends on what you are trying to do. If you are trying to +do soft proofing for instance, you will have some brightness level in +mind dictated by the hard proofing booth you are comparing to, or the +ambient brightens level. For good color judgement and low fatigue it's +desirable that the display brightness roughly match that of the ambient +lighting.
+
+In terms of what you are trying to do, it comes down to what colorspace +you want the display to be, and how far from native for that display it +is. A CRT can be reasonably flexible in the behaviour it can be given +without side effects, an LCD less so. If you want to minimize artefacts +on an LCD you want to set the contrast and white points to their native +values (ie. where the monitor is not manipulating the digital signal +levels). It may not be easy to figure out what this is. In this +scenario you would probably only want calibration to set the transfer +characteristic and neutral axis, and leave the white point native.
+
+For typical MSWindows/Linux this would probably be the typical CRT +transfer +("gamma") curve, or a gamma of about 2.4. For OS X it would probably
+be a gamma of 1.8 for versions 10.5 or earlier, or 2.4 for 10.6 or +latter ("Snow Leopard").
+
+The nominal white point of a display is D65 (set by Television +standards), and an LCD's native white point is somewhere near there, +but this is dictated by their backlight color. The CRT's will give +maximum brightness with a much higher white point (9000K or so), but +this can be reduced with fewer side effects (just reduced brightness) +using typical CRT controls.
+
+If you have specific requirements (trying to do soft proofing) then you +may want to target a specific white point and brightness, and be +prepared to compromise other aspects of the display to achieve this. By +all means use the controls to move the display in the direction you +want to go, and then use the calibration curves to get there. If you +are moving far from native (especially on an LCD) you may find the side +effects unacceptable though.
+
+
+
+
+ + diff --git a/doc/mox.jpg b/doc/mox.jpg new file mode 100644 index 0000000..f3c7166 Binary files /dev/null and b/doc/mox.jpg differ diff --git a/doc/moxxr.jpg b/doc/moxxr.jpg new file mode 100644 index 0000000..579d7fc Binary files /dev/null and b/doc/moxxr.jpg differ diff --git a/doc/mppcheck.html b/doc/mppcheck.html new file mode 100644 index 0000000..cd44989 --- /dev/null +++ b/doc/mppcheck.html @@ -0,0 +1,78 @@ + + + + mppcheck + + + + +

profile/mppcheck          + 
+

+

Summary

+Check an MPP profile +against .ti3 +test chart data.
+

Usage Summary

+mppcheck [-v] [-s] -[y] +values.ti3 profile.mpp
+-v          +  Verbose mode
+-c         +   Show CIE94 delta E values
+-k +           +Show CIEDE2000 delta E values
+-s          +  Check spectral model too
+-y          +  Detail each value
+values.ti3    Test +values to check against
+ profile.mpp   Profile to check
+
+

Usage Details and Discussion

+mppcheck provides a way of checking how well an MPP profile conforms to the test +sample data that was used to create it. This is the same sort of check +done within the profile making tool (mppprof), +but having a separate tool provides some flexibility.
+
+The -v flag prints out extra information during the checking.
+
+The -c option causes the differences between the test values +and +the profile prediction of the color for each device value to be +displayed +in CIE94 delta E, rather than plain L*a*b* delta E. CIE94 delta E has a +closer +correspondence with perceived color differences than the default CIE76 +delta E values.
+
+The -k option causes the differences between the test values +and +the profile prediction of the color for each device value to be +displayed +in CIEDE2000 delta E, rather than plain L*a*b* delta E. CIEDE2000 delta +E has a +closer +correspondence with perceived color differences than either CIE76 or +CIE94 delta E values.
+
+The -s flag causes the spectral model (if present) to be +checked against the test data spectral values (if present). Errors are +given as a percentage error for each reflectance band, as well as a +delta E of the resulting CIE color computed from the spectral values.
+
+The -y flag when used in combination with the -v flag, +causes each test value and its error to be printed.
+
+
+
+
+ + diff --git a/doc/mpplu.html b/doc/mpplu.html new file mode 100644 index 0000000..2f0b955 --- /dev/null +++ b/doc/mpplu.html @@ -0,0 +1,182 @@ + + + + mpplu + + + + +

xicc/mpplu

+

Summary

+Lookup individual color values though an MPP profile. Also +create MPP gamut files or VRML +views.
+

Usage

+mpplu [-v level] [-f func] +[-i intent] [-o order] profile.mpp
+-v             +Verbose
+-f function    f = forward, b = +backwards
+-p oride       x += XYZ_PCS, l = +Lab_PCS, y = Yxy, s = spectral,
+-l limit       override +default +ink limit, 1 - N00%
+-i illum       Choose +illuminant for +print/transparency spectral data:
+            +     A, C, D50 (def.), D50M2, D65, F5, F8, F10 or file.sp
+-o observ      Choose CIE +Observer for spectral +data:
+            +    
1931_2 (def.), 1964_10, S&B +1955_2, shaw, J&V 1978_2
+-u         +    Use Fluorescent Whitening Agent compensation
+-g         +    Create gamut output
+-w         +    Create gamut VRML as well
+-n             +Don't add VRML axes
+-a n           Gamut +transparency level
+
-d +n           Gamut +surface detail level
+-t num     +    Invoke debugging test code +"num" 1..n
+            +     1 - check partial derivative for device +input
+            +     2 - create overlap diagnostic VRML gamut +surface
+profile.mpp   Profile to be +used
+
+    The colors to +be translated should be fed into +standard input,
+    one input +color per line, white space separated.
+    A line +starting with a # will be ignored.
+    A line not +starting with a number will terminate the +program.
+
+

Usage Details and Discussion

+This is an analogous tool to icclu , but +applying +to MPP profile, rather than ICC profiles. Because MPP profiles +can also contain a spectral description of device behavior, there are +extra options in mpplu to describe how to convert spectral values into +CIE tristimulus values.
+Some additional functionality is included in mpplu, analogous to iccgamut, allowing gamut files and images to +be generated from MPP profiles.
+
+The -v flag causes extra information about the profile to be +printed.
+
+The -f flag is experimental, and should be ignored.
+
+Normally L*a*b* is displayed, but this can be changed using the the -p +flag and XYZ, Yxy, or spectral values to be be displayed.
+
+If an illuminant, observer or Fluorescent Whitening Agent compensation +is selected, then the CIE tristimulus values will be computed from the +spectral information in the MPP profile (if present).
+
+The -l flag overrides any default ink limit (Total Area +Coverage) recorded in the profile. The ink limit has an effect on the +results of a gamut +generated from the profile.
+
+The -i flag allows specifying a standard or custom illumination +spectrum, applied to reflective spectral profile data to compute CIE +tristimulus +values. A, D50, D65, F5, F8, F10 +are a selection of standard illuminant spectrums, with D50 +being the +default. If a filename is specified instead, it will be assumed to be +an +Argyll specific .sp spectrum file.
+
+ The -o flag allows specifying a tristimulus +observer, and is used to compute PCS (Profile Connection Space) +tristimulus values. The following choices are available:
+  1931_2 selects the standard CIE 1931 2 degree observer. +The default.
1964_10 selects the standard CIE 1964 10 degree observer.
1955_2 selects the Stiles and Birch 1955 2 degree +observer
1978_2 selects the Judd and Voss 1978 2 degree observer
shaw selects the Shaw and Fairchild 1997 2 degree +observer
+
+The -u flag enables Fluorescent Whitening Agent compensation, +which compensates for the effect a different illuminant will have, on +any Fluorescent Whitening Agent present in the reflective media.
+
+The -g flag causes mpplu to simply generate a gamut surface +description from the profile, creating a .gam file with the same base name as +the given profile.
+
+The -w flag causes the gamut surface to be generated in VRML format +as well as .gam format.
+
+The -n flag suppresses the VRML axes.
+
+The -a n parameter sets a transparency +level in the VRML surface.

+
+The -d parameter controls the level of detail displayed in the +gamut surface. The parameter roughly corresponds to a deltaE value, so +smaller values give greater detail. The default value is around 10, and +is a good place to start. Small values may take a lot of time to +generate, and will produce big files.
+
+The -t parameter invokes special MPP test and diagnostic output.
+
+
+
+
+ + diff --git a/doc/mppprof.html b/doc/mppprof.html new file mode 100644 index 0000000..5446451 --- /dev/null +++ b/doc/mppprof.html @@ -0,0 +1,99 @@ + + + + mppprof + + + + +

profile/mppprof

+

Summary

+Create a Model Printer Profile (MPP) +from the .ti3 test data.
+

Usage summary

+mppprof [options] outfile
+ -v          +Verbose mode
+ -q [lmhs]   +Quality - Low, Medium (def), High, Simple
+ -l limit    +override default ink limit, 1 - +n00%
+ -s          +Generate spectral model too
+ -m          +Generate ink mixing model
+ -y          +Verify profile
+ -L          Output +Lab values
+
 inoutfile   Base name for input.ti3/output.MPP file

+

Usage Details and Discussion

+This is an analogous tool to colprof, +but applying to +MPP profiles, rather than ICC profiles. This tool creates an +MPP profile given the .ti3 test +chart information. The model based device profile is an Argyll specific +format, used to hold the parameters to a general model based device +characterization. +This is a less precise and general format than and ICC profile, but is +a compact way of representing a devices response when it has a large +number +of color channels, or when very few measured data points are available +for its construction.
+
+The -v flag causes extra information to be printed as the +profile is being created, including the delta E statistics for the test +data fit against the profile.
+
+The -q parameter sets the level of effort and hence quality in +the resulting profile. Different quality profile use different numbers +of +model parameters.
+    s      simple - use a close +variation +of the Neugenbauer model, with a single parameter, per device +linearisation curve.
+    l       low quality +profiles +have more detail terms to account for device linearisation.
+    m     medium quality profiles, add +color channel cross mixing terms, as well as using more detail +parameters.
+    h      high quality profiles, +use more detail terms and more profile refinement iterations.
+
+The -l flag overrides any default ink limit (Total Area +Coverage) recorded in the .ti3 file.
+
+The -s flag enables the creation of spectral model values, as +well as the tri-stimulus model.
+
+The -m flag is currently not implemented.
+
+The -y flag causes each test value and its error to be printed.
+
+The -L flag causes the CGATS output file to contain D50 L*a*b* +parameters rather than XYZ.
+
+The inoutfile parameters should be the base name of the .ti3 +file, and mppprof will output an mpp that has the same basename and the +.mpp extension.
+
+
+
+
+
+
+ + diff --git a/doc/oeminst.html b/doc/oeminst.html new file mode 100644 index 0000000..7334d8d --- /dev/null +++ b/doc/oeminst.html @@ -0,0 +1,323 @@ + + + + oeminst + + + + +

spectro/oeminst

+

Summary

+ A special purpose tool that installs various Instruments + Manufacturers support files to enable various instrument operations + when used with Argyll, as well as install colorimeter calibration + and spectral sample files so that they appear in the display type + list (-y option).
+ For the Spyder 2, it can install the instrument manufacturers PLD + firmware pattern, which is necessary for it to operate.
+ For the Spyder 4, it can enable the full range of manufacturers + colorimeter calibration selections, as well as install CCSS files.
+ For the eye-one display 3 it can  locate and translate X-Rite + .EDR files to CCSS files and install them to enable a full range of + colorimeter calibration selections, as well as install CCSS files.
+ For all colorimeters it can install CCMX files make for that model + of colorimeter.
+

Usage summary
+

+ oeminst [-options] [inputfiles]
+  -v                      + + + + + + + + + + Verbose
+  -n                      + + + + + + + + + + Don't install, show where files would be installed
+  -c +                      + + + + + + + + + + Don't install, save files to current directory
+  -S + d                    + + + + + + + + + + Specify the install scope u = user (def.), l = local system]
+  infile                  + + + + + + + + + + setup.exe CD install file(s) or .dll(s) containing install files
+  infile.[edr|ccss|ccmx]  + + + + + + + + + EDR file(s) to translate and install or CCSS or CCMX files to + install
+                          + + + + + + + + + + If no file is + provided, oeminst will look for the install CD. +

+

Flags and Parameters

+ The inputfiles arguments + are optional, and and can be used to specify the MSWindows setup.exe + file from the installation CD or other files to install. If files + are specified, then they can be any combination of the setup.exe + file, .dll libraries that contain the files to be installed, or + X-Rite .edr files to convert or the equivalent to an Argyll .ccss + files, or
+ .ccss or .ccmx files created using ccxxmake.
+
+ The -v flag enables verbosity. This may be of use in + figuring out what went wrong if it doesn't work, and where files + have been installed.
+
+ The -n flag causes oeminst + to show where the files would be installed or saved to, rather than + actually doing it.
+
+ The -c flag causes oeminst + to save the files to the current directory, rather than the install + location.
+
+ The -S option allows + installing the file(s) in a local system location, rather than the + default user accessible location. With this option you may need to + run this as superuser using the "sudo" command on OS X and Linux + systems.
+

Usage Details and Discussion

+

The Spyder + + + + + + + + + + 2 instrument cannot function without the presence of the + instrument vendors PLD firmware pattern for the device. This + firmware is not provided with Argyll, since it has not been made + available under a compatible license.
+
+ The purchaser of a Spyder 2 instrument should have received a copy + of this firmware along with their instrument from the original + vendor, and oeminst + enables their instrument, by locating the firmware in the users + copy of the instrument install files.
+
+ On Microsoft Windows or Apple OS X platforms, oeminst will look to see if + the vendors drivers have been installed on the users machine, and + locate the firmware pattern from there. If the vendors drivers + have not been installed, or the user does not wish to install + them, or no vendors drivers are available for the users platform + (i.e. Linux), then oeminst + will also attempt to locate the Spyder 2 installation CDROM, and + make use of the firmware pattern from there.
+
+ If the instrument firmware pattern is successfully located, then + oeminst will create a spyd2PLD.bin + file in a subdirectory of the users home directory, or if the -S l option is used, will + store it in a system wide location. (the XDG + + + + + + + + + + Base Directory specifications are used as a basis for + storing the file). Programs that access instruments such as  + spotread, dispcal and dispread, can then locate and + load the firmware into the instrument.
+
+ Note that the spyd2PLD.bin file created by + oeminst contains the proprietary and copyrighted firmware provided + by the instrument vendor, and while the vendor has provided the + firmware to the end user to facilitate the use of their purchased + instrument, the instrument vendor (typically) does not permit the + user to distribute such a file or make copies for purposes other + than making use of their own instrument.
+

+


+ The Spyder + + + + + + + + + + 4 instrument does not have the full range of vendor + instrument calibration options without the presence of the + instrument vendors calibration information for the device. This + calibration information is not provided with Argyll, since it has + not been made available under a compatible license.
+
+ The purchaser of a Spyder 4 instrument should have received a copy + of this calibration information along with their instrument from + the original vendor, and oeminst + enables the full range of calibration choice for their instrument, + by locating the necessary information in the users copy of the + instrument install files.

+

On Microsoft Windows or Apple OS X platforms, oeminst will look to see if + the vendors drivers have been installed on the users machine, and + locate the calibration information from there. If the vendors + drivers have not been installed, or the user does not wish to + install them, or no vendors drivers are available for the users + platform (i.e. Linux), then oeminst + will also attempt to locate the Spyder 4 installation CDROM, and + make use of the calibration information from there.

+
+ The i1d3 + family of instruments can make use of display specific spectral + calibration information, which improves their accuracy when used on + displays of a similar type. The manufacturer provides 5 of these .edr + calibration files that cover various projectors and LCD displays + with the instrument on the install CD. The oeminst utility allows you to + translate these files into Argyll CCSS + format, and install them where the measurement tools can + automatically find them, so that they can be selected using the -y option.
+ Also provided with Argyll in the ref directory is CRT.ccss to cover CRT type + displays. oeminst allows + this file to be installed too.
+
+ On Microsoft Windows or Apple OS X platforms, oeminst will look to see if the + manufacturers files have been installed on the users machine, and + locate them from there. If the manufacturers files have not been + installed, or the user does not wish to install them, or no + manufacturers installation is available for the users platform (i.e. + Linux), then oeminst will + also attempt to locate the i1d3 installation CDROM, and make use of + the .edr files from there.
+
+ If the .edr files are successfully located, then oeminst will + translate them to .ccss files and copy them into a subdirectory of the users home + directory, or if the -S l + option is used, will store it in a system wide location. (the XDG + + + + + + + + + + + Base Directory specifications are used as a basis for storing + the file). Programs that access instruments such as  spotread, dispcal and dispread, can then locate and + list the installed .ccss as possible choices for the -y option.
+
+ You can also install CCSS and CCMX files that you + have created using ccxxmake, and these + will then be listed and selected as a display type selection using + the -y option of the utilities that access colorimeter + devices. Note that CCMX selections will only show up for the + colorimeter model that they were created for.
+
+ If you are going to use the same CCSS or CCMX file all the time, + then you may want to set the ARGYLL_COLMTER_CAL_SPEC_SET + environment variable.
+
+
+ To allow oeminst to install + files from the CDROM, it should be in a CD drive prior to running + oeminst. If your Linux system is not running automount, or your + automount is setup to mount CDROM's somewhere other than /media, /mnt/cdrom, /media/cdrom + or /cdrom, then you will + have to mount the CDROM manually, and give oeminst the path to the + CDROM setup/setup.exe file as the argument inputfile.
+
+ NOTE
that under OS X + 10.6 (Snow Leopard) and latter, you may need to run oeminst + as root to be able to mount the CDROM's ISO partition. The simplest + way of doing this is to use the "sudo" commands. e.g. "sudo + oeminst", which will then ask you to enter the root password.
+
+
+
+ + diff --git a/doc/printcal.html b/doc/printcal.html new file mode 100644 index 0000000..89264c5 --- /dev/null +++ b/doc/printcal.html @@ -0,0 +1,399 @@ + + + + printcal + + + + +

profile/printcal

+

Summary

+ Create a printer linearization calibration file from .ti3 test chart patch values.
+

Usage Summary

+  printcal [-options] [prevcal] + inoutfile
+  -v verbosity       + Set verbosity level
+
 -p +               +   Plot graphs.
+  -i        +  + +        Initial calibration, set targets, + create .cal
+
 -r +              +    Re-calibrate against previous .cal and create new + .cal
+  -e        +  +  + +      Verify against previous .cal
+
 -I +              +    Create imitation target from .ti3 and null + calibration
+  -d +              +    Go through the motions but don't write any files
+  -A "manufacturer"  Set the manufacturer + description string
+  -M "model" +         Set the model + description string
+  -D "description"   Set the profile + Description string
+  -C "copyright" +     Set the copyright string
+
 -x# percent        +Set +initial + + maximum device % target (override auto)
+
 -m# percent        + + Set initial dev target to % of auto maximum
+
 -n# deltaE +         Set initial white + minimum deltaE target
+  -t# percent        +Set +initial + + 50% transfer curve percentage target
+    # = c, r, + 0      First channel
+        +m, +g, +1      + + Second channel
+        +y, +b, +2      + + Third channel
+        +k,    +3      +Fourth + + channel, etc.
+  -a                 +Create +an + + Adobe Photoshop .AMP file as well as a .cal
+
 prevcal            +Base +name + + of previous .cal file for recal or verify.
+  inoutname          +Base +name + + of input .ti3 file, output .cal file
+

+

Options
+

+ -v  Turn on verbose mode. Gives progress + information as the calibration is created. An argument greater than + 1 increases the verbosity. Will also report the ideal power value to + apply to the test chart in targen.
+
+ -p Turns on + plot mode. This causes various graphs to be plotted as the + calibration is created. The channels will be plotted in the graph + colors: Blue, Red, Yellow, Black, Green, Purple, Brown, Orange, + Grey, White.
+
+ -i Select + initial calibration mode. Initial calibration mode allows setting + the targets for the calibration, such as maximum device percentage, + minimum white level, and the transfer curve shape. The second last + parameter prevcal is not used in + this mode.
+
+ -r Turns on + re-calibration mode. This is used for calibrations after the initial + one, where the aim is to return the devices response to the same + state as it was after the initial caibration. Parameters that affect + the calibration targets are ignored. The second last parameter prevcal + is used to establish what the targets for the calibration are.
+
+ -e Turns on + verify mode. In this mode the test chart input is verified agains + the expected response in the prevcal file.
+
+ -I Similar + to -i, except that rather + than creating a linear target curve and corresponding calibration, + it takes the given behaviour as an absolute target and create a + corresponding null set of calibration curves. This .cal can then be + used to recalibrate a similar device (or the same device at some + other time) to imitate the behaviour of the initial device. The + second last parameter prevcal is not used in + this mode. Parameters that affect the calibration targets are + ignored.
+
+ -d Disables + the writing of any files, causing printcal to go through the motions + without changing anything.
+
+ The -A parameter allows setting of the + device manufacturer description string in the calibration file. The + parameter should be a string that identifies the manufacturer of the + device being profiled. With most command line shells, it will be + necessary to enclose the parameter with double quotes, so that + spaces and other special characters are included in the parameter, + and not mistaken for the start of another flag or as a final command + line parameters. By default no device manufacturer description + string will be put in the calibration file.
+
+ The -M parameter allows setting of the + device mode description string in the calibration file. The + parameter should be a string that identifies the particular model of + device being profiled. With most command line shells, it will be + necessary to enclose the parameter with double quotes, so that + spaces and other special characters are included in the parameter, + and not mistaken for the start of another flag or as a final command + line parameters. By default no model description string will be put + in the calibration file.
+
+ The -D parameter allows setting of the + profile description string in the calibration file. The parameter + should be a string that describes the device and profile. On many + systems, it will be this string that will be used to identify the + profile from a list of possible profiles. With most command line + shells, it will be necessary to enclose the parameter with double + quotes, so that spaces and other special characters are included in + the parameter, and not mistaken for the start of another flag or as + a final command line parameter. By default no profile description + string will be put in the calibration file.
+
+ The -C parameter allows setting of the + profile copyright string in the calibration file. The parameter + should be a string that describes the copyright (if any) claimed on + the profile being generated. With most command line shells, it will + be necessary to enclose the parameter with double quotes, so that + spaces and other special characters are included in the parameter, + and not mistaken for the start of another flag or as a final command + line parameters. By default no copyright string will be put in the + calibration file.
+
+ The -x parameter allows overriding the + default auto maximum device target value computed from the raw + device response for the initial calibration. The default uses a + heuristic to decide when the response of the device to each channels + colorant value reaches the point of diminishing returns, while the -x parameter allows this default + to be overridden. The -x + paramater can be used multiple times, once for each channel that is + being set. The -x should be + followed by the channel number between 0 and 15, or the aliases r, g or g, or + c, m, y or k, and + the channel number should then be followed by the device value as a + percentage. NOTE that you + will probably get sub-optimal results if you force a device maximum + that is beyond the point of maximum response of a device channel, + since this will have the effect of reducing the device response. If you want to + set a conservative target to allow for recalibration later, see the + -m flag below.
+
+ The -m parameter allows modifying the + default auto maximum device target value for the initial + calibration. The auto maximum is computed as described above, and is + then scaled by the -m parameter value. Typically this will + be a scale down (ie. 90%) to allow some margin to increase + the channel value if the channel density drops in a future + recalibration. Scaling the maximum down will reduce gamut, but + allows scope for stable behaviour using calibration. The -m paramater can be used + multiple times, once for each channel that is being set. The -m should be followed by the + channel number between 0 and 15, or the aliases r, g or g, or + c, m, y or k, and + the channel number should then be followed by the deltaE value.
+
+ The -n parameter allows overriding the + default minimum deltaE of a colorant to white of 0. This can be used + to set a minimum colorant level in order to emulate media darker or + of a different tint. The -n + paramater can be used multiple times, once for each channel that is + being set. The -n should be + followed by the channel number between 0 and 15, or the aliases r, g or g, or + c, m, y or k, and + the channel number should then be followed by the deltaE value.
+
+ The -t parameter allows setting a target + linearization curve that is other than purely visual linear. The + default is to create a calibration curve that results in a perfectly + even change in output for each change in the calibrated device + value, as measured by steps in delta E94. The -x parameter allows setting a + target curve above or below the perfectly visual linear, by setting + the aim value at 50% input. An aim higher than 50% will cause that + channel to become more intense by the 50% mark, while a value lower + than 50% will cause the channel to become less intense by the 50% + mark than perfectly linear.The -x + should be followed by the channel number between 0 and 15, or the + aliases r, g or g, or c, m, y or k, and + the channel number should then be followed by the device value as a + percentage.
+
+ -a Creates + an Adobe Photoshop .AMP + format curves file as well as a .cal.
+
+ The optional second last parameter is the file + base name for a previous .cal + calibration file, used as the target reference for recalibrate and + verify modes.
+
+ The final parameter is the file base name for the + .ti3 input test point data, and + the resulting .cal calibration + file output.
+

Discussion

+ Printcal is a tool for + creating per device channel linearization curves for printing + devices.
+
+ As input it takes a .ti3 file containing the results of printing a + test chart on the non-color + + managed, non-calibrated + device, and measuring it. The test chart consists of step wedges for + each of the device primary colors, from the media white to full + individual colorant intensity.
+
+ For the initial calibration (-i), +the +range + + of device values to be used and the shape of the target + linearization curve are established, as well as creating the first + set of calibration curves. For subsequent re-calibrations (-r), the calibration curves aim + to reproduce the same response as the original calibration. If a + test chart is printed with calibration enabled and then is measured, + it can be used to verify the calibration against the expected + response (-e).
+
+ As each colorant steps through the test wedge patches from media + white, they trace out a measured locus in CIE L*a*b* colorspace. + Each channel response is evaluated by computing the CIE DeltaE to + media white of the response to a change in each individual channel + of each locus. This measure is used to determine when the devices + response to a colorant level is reaching diminishing returns, + setting a maximum colorant value. This measure can also be used to + set a minimum colorant value for the purposes of emulating a + different media color. The default maximum and minimum values for + each colorant can be overridden using the -x and -n + parameters. The automatically determined maximum may be modified + (scaled) using the -m parameter, which can be useful in + allowing some margin for future calibrations to compensate for a + drop in density.
+
+ The actual linearization uses a subtly different measure, which is + the CIE DelataE 94 along each colorant response locus, ensuring that + after linearization each step in colorant value is subjectively + even. The linearization aim can be altered from a purely linear + curve by using the -t parameters.
+
+ After the initial calibration, the device can be re-calibrated (-r) by printing a calibration + test chart under the same conditions as the initial one, but with + the calibration aimed at reproducing the same response as the + initial calibration, rather that setting new targets.
+
+ The calibration can be verified (-e) + by printing a calibration test chart on non-color managed, but calibrated device, + the verification evaluating any discrepancy between the device + response achieved, and the device response expected. For a numerical + evaluation the verbose flag (-v) + should be used, and for a visual evaluation the plot flag (-p) should be used.
+
+ If there are several devices of the same or similar model, then one + device can be used to set the initial calibration target, and then + the other devices can be re-calibrated against the same .cal file, + to create matching responses. An alternative to creating an initial + linear target for calibration, is to use the -I option with an initial + device, which sets the initial target to be that devices absolute + response. Naturally the corresponding calibration will be linear + (null). The calibration target can then be used to later return that + device to its initial response, or to make another similar device + have the same response. Note though, that bad things will happen if + the imitated devices response is non-monotonic, or if on + re-calibration the device is unable to reach the same density + levels.
+
+
+
+
+
+
+
+
+
+
+
+
+ + diff --git a/doc/printtarg.html b/doc/printtarg.html new file mode 100644 index 0000000..5faab76 --- /dev/null +++ b/doc/printtarg.html @@ -0,0 +1,681 @@ + + + + printtarg + + + + +

target/printtarg

+

Summary

+ Create a PostScript (PS), Embedded PostScript (EPS) or Tagged Image + File Format (TIFF) file containing profile test patch values, ready + for printing.
+

Usage Summary

+ printtarg [options] + basename
+  -v              + + + Verbose mode
+  -i 20 | 22 | 41 | 51 | + SS | i1 | CM Select + target instrument (default DTP41)
+                  +20 += +DTP20, +22 += + + + DTP22, 41 = DTP41, 51 = DTP51, SS = SpectroScan,
+                  + + + i1 = i1Pro, CM = ColorMunki

+  -a scale        +Scale +patch +and +spacer +size + + + by factor (e.g. 0.857 or 1.5 etc.)
+
 -A scale        +Scale +spacer +size +by +additional + + + factor (e.g. 0.857 or 1.5 etc.)
+  -h +              + Use hexagon patches for SS, double density for CM
+  -r              + + + Don't randomize patch location
+  -s              +Create +a +scan +image +recognition + + + (.cht) file
+  -S              +Same +as +-s, +but +don't + + + generate wide orientation strip.
+  -c              + + + Force colored spacers
+  -b +              + Force B&W spacers
+  -n              + + + Force no spacers
+  -f              + + + Create PostScript DeviceN Color fallback
+  -w g|r|s|n      + White colorspace encoding DeviceGray (def), DeviceRGB, + Separation or DeviceN
+  -k g|c|s|n      + Black colorspace encoding DeviceGray (def), DeviceCMYK, + Separation or DeviceN
+  -o k|n          + CMY colorspace encoding DefiveCMYK (def), inverted DeviceRGB or + DeviceN
+
 -e              + + + Output EPS compatible file
+  -t [res]        +Output +8 +bit +TIFF +raster + + + file, optional res DPI (default 200)
+  -T [res]        +Output +16 +bit +TIFF +raster + + + file, optional res DPI (default 200)
+
 -C              + + + Don't use TIFF compression
+  -N              +Use +TIFF +alpha +N +channels + + + more than 4
+  -D              + + + Dither 8 bit TIFF values down from 16 bit
+  -Q nbits        +Quantize +test +values +to +fit + + + in nbits
+
 -K + file.cal     Apply printer calibration + to patch values and include in .ti2
+  -I file.cal     Include + calibration in .ti2 (but don't apply it)
+
 -R rsnum        + + + Use given random start number
+  -x pattern      + Use given strip indexing pattern (Default = "A-Z, A-Z")
+  -y pattern      + Use given patch indexing pattern (Default = "0-9,@-9,@-9;1-999")
+  -m margin       +Set + + + a page margin in mm (default 6.0 mm)
+
 -M margin       + + + Set a + page margin in mm and include it in TIFF
+  -P +              + + + Don't limit strip length
+  -L              +Suppress +any +left +paper +clip + + + border
+
 -p size         + + + Select page size from:
+
     +                +A4       + + + [210.0 x 297.0 mm]
+                     +A4R      + + + [297.0 x 210.0 mm]
+     +                 +A3       + + + [297.0 x 420.0 mm] (default)
+        +              + A2       [420.0 x 594.0 mm]
+           +           + Letter   [215.9 x 279.4 mm]
+              +        LetterR  [279.4 x + 215.9 mm]
+             +  + + +       Legal    [215.9 x 355.6 + mm]
+                +  + + +    4x6      [101.6 x 152.4 + mm]
+                     +11x17    + + + [279.4 x 431.8 mm]
+
 -p WWWxHHH      + Custom size, WWW mm wide by HHH mm high
+

+   basename        + + + Base name for input(.ti1), output(.ti2) and output(.ps/.eps/.tif)
+

Usage Details and Discussion

+ printtarg is used to generate a PostScript or TIFF print + file from device test values in a .ti1 file. It output both a + PostScript/EPS/TIFF file, and a .ti2 file containing the device test + values together with the layout information needed to identify the + patch location. This module can also generate the image recognition + templates needed to read the print targets in using a scanner.
+
+ The -v flag turns on verbose mode. Prints + information about how many patches there are in a row, how many + patches in a set,  and how many pages will be generated. Good + for figuring out what the magic number of patches should be for a + particular page size.
+
+ The -i parameter should be used to tell + printtarg which instrument it should lay the patches out for. Each + instrument has a slightly different requirement, and will lead to a + different number of patches ending up on a particular page size. For + a generic type of chart, try SS.
+
+ -a, +-A: + + + Normally, printtarg prints test patches that are the + minimum size that can be reliably and accurately read by the + instrument.  For some media, it might be desirable to use test + patches that are larger than this minimum (e.g. if the media has + poor registration, gets physically distorted in the print production + process, or if it has a coarse screen, and there are few samples per + patch), and the -a flag + should be given an argument greater than 1.0 to increase the patch + length, patch width, and spacer size between patches, if it is + appropriate for the type of instrument. A value of 1.5 would make + the patch 50% larger for instance. For the strip reading instruments + the patch is made longer, the strip spacing remaining the same, + while for XY scanning instruments, both the width and height will be + increased. If a value less than 1.0 is given as an argument, then + the patches will be made smaller. For instance, using the + SpectroScan instrument it is possible to reduce the test patches to + 6mm rather than the default 7mm by supplying an argument of 0.857. + Note that this make lining up of the scan head very critical, and + increases the amount of bleed through from adjacent squares. For an + instrument that needs color spacers between patches, -a scale also scales the spacer + length. For some situations, this may be insufficient, and the  -A scale option can be used to + additionally scale the spacer length.
+ Note that the for the DTP20 + only -a values of 1.0, + 1.08, 1.54, 1.92, 2.0 and that the patch width will be made no + smaller than its length.
+
+ Normally, printtarg creates a regular grid + of test patches, but for instruments that support arbitrary X, Y + addressing (such as the SpectroScan). For the SpectroScan it can also create a + chart using regular hexagonal patches, allowing more patches to be + fitted into a single sheet if the -h + flag is used.  For the ColorMunki + instrument, -h doubles the + normal number of patches is printed by halving the row width. The + patches are also staggered to improve the detection of a poor scan.
+
+ Normally, printtarg randomizes the patch + locations, which helps strip reading instruments detect patch + boundaries and the direction the strip was read in, as well as being + able to detect incorrect strips being fed into strip reading + instruments, and also assists in randomizing any systematic printing + errors introduced into the test chart due to print engine + unevenness, inkjet banding, or printing press ink key settings etc. + The -r flag turns this off, and lays the test squares out in + the order the values appear in, in the .ti1 file. Note that if you + turn this off you probably want to disable + + + bi-directional strip reading in instruments such as the i1pro.
+
+ The -s flag does two things. One is that it + causes printtarg to output a chart recognition file (.cht) so that scanin can recognize the chart, and + convert rasterized patches into patch values, and the second is that + is expands the size of the leading row of patches by 50%, to help + make sure that each sheet can be oriented correctly by scanin. If -S is + used rather than -s, then the recognition chart will be + created, but the leading row will be the same size as all the other + rows.
+
+ For strip reading instruments, the contrast with + the spacers is important in ensuring that a reading will be + successful. Normally printtarg + ensures this by printing optimally contrasting colored spacers + between each measurement patch. The -c flag is therefore the + default behaviour. If the -b flag is used, + then contrasting neutral colored spacers will be used, but these + generally work less reliably than colored spacers. The + + -n flag will cause spacers to be omitted, which may still + work with smaller numbers of test values when the patch selection is + randomized, but won't work successfully when a large number of test + points is being used (>200), or when the patches are not + randomized in location.
+
+ -f: When creating a test chart for more than + CMYK inks, a PostScript file normally contains color settings that + use the PostScript level 3 "Device N" color specifications. Such + color specifications have a "fallback" color, for PostScript + interpreters that don't handle Device N specifications. Such + fallback colors are normally set to a grayscale estimate of the + patch color, so that it is possible to tell if the PostScript + interpreter is not rendering the Device N values correctly. The -f flag, causes the fallback color to be + a color estimate of the Device N test patch color, which is useful + for diagnostic purposes.
+
+ The -e flag gives EPS output, rather than + PostScript, allowing the charts to be included in other + applications. Because EPS disallows the showpage command, multiple + EPS files will result for a multi-page test chart, each one having a + two digit number sequence in it's name, so if the input file name is + chart, then file chart.ti1 will be read, and file + chart.ti2 written, together + with chart.eps if there is + only one page, or chart_01.eps, + chart_02.eps, etc. if there + is more than one page.
+
+ -t + [res], -T [res] The -t flag gives TIFF raster + output rather than PostScript, allowing the charts to be printed to + systems that do not accept PostScript input. Because few systems + understand multi-page TIFF files, multiple TIFF files will result + for a multi-page test chart, each one having a two digit number + sequence in it's name, so if the input file name is chart, then file chart.ti1 will be read, and file + chart.ti2 written, together + with chart.eps if there is + only one page, or chart_01.tif, + chart_02.tif, etc. if there + is more than one page. By default the resolution of the chart will + be 100 Dots Per Inch (DPI), but this can be changed by providing an + optional DPI argument after the -t + or -T flag. If the -t flag is used, than an 8 bit + per component TIFF file will be created. If the -T flag is used, then a 16 bit + per component TIFF file will be created.
+
+ -C: Normally + the TIFF files created will be compressed using LZW compression to + save space. Some systems may not support this compression, so it can + be disabled by using the -C + flag.
+
+ -N: When + creating TIFF files with more than 4 colorants, the normal Separated + mode is used. Some systems don't cope well with extra colorants + presented in this manner, and the -N + flag causes all the channels greater than 4 to be labelled as + "Alpha" channels, which may be more palatable.
+
+ -D: When + creating TIFF files with 8 bit output, dither the values to give + effective 16 bit precision. Note this is applied after any + quantization of the test values (see -Q). Note + that this might interfere (i.e. give alias/moire patterns) in + printed output if the printer uses screening that happens to clash. + Note also that dithering is effectively linearly interpolating + between the 8 bit values using spatial averaging, and that therefore + the device response may also be a linear interpolation between its 8 + bit output values, adding no effective extra precision to the device + measurement.
+
+ -Q: Normally + the target device values are floating point numbers that may get + rounded and quantized in the process of printing them or reproducing + them on the printing or display device. If some of this quantization + can be accounted for, it may improve the accuracy of the resulting + profile, and the Q + parameter allows this quantization to be specified. The parameter is + the number of binary digits (bits) that the device values should be + quantized to. In many systems the right value would be 8 bits. Note + that if 8 bit TIFF output is + selected (-t) without + dithering (no -D) that the + values will by default be quantized to 8 bits, and that if 16 bit + TIFF output is selected (-T) or 8 bit TIFF with dithering + (-D) that the values will + by default be quantized to 16 bits.
+
+ The -K file.cal parameter specifies a + printer calibration file created by printcal, + and the supplied calibration curves will be applied to the test + patch values. This allows profiling of a printing system that + doesn't natively support calibration. The calibration curves will + also be included in the resulting .ti2 file, so that they can be + passed through to .ti3 file and ICC profile, to allow accurate + computation of ink limits.
+
+ The -I file.cal parameter specifies a + printer calibration file created by printcal, + and the calibration curves will be included in the included in the + resulting .ti2 file, so that they can be passed through to .ti3 file + and ICC profile, to allow accurate computation of ink limits. The + calibration is not applied + to the test patch values, but is assumed to be applied somewhere + else in the printing workflow when printing the profile test chart.
+
+ The -R parameter allows setting the random + layout seed. Normally the seed is chosen at random, but sometimes it + is useful to be able to generate a chart with the same layout, so a + specific seed can be specified this way. The seed (ID) used to + generate a chart is recorded in the .ti2 file, and is also in the + label printed on the right hand side of each chart.
+
+ The -x parameter allows specifying the + labelling sequence used for strips (e.g. the X axis of the chart). + By default this will be a character sequence A, B, C .. Z. AA, AB, + AC .. ZZ, but this can be changed by specifying an alternate + labelling sequence pattern. The pattern specifies the labelling + sequence as follows: First comes the definition of the symbols for + each digit location, least significant to most significant, each + digit separated by the ',' character. Note that space is a valid + character. The number of definitions declares the maximum number of + digits. For example, for a 2 digit numerical sequence: "0123456789, + 123456789" would define 0..99 with the most significant digit + suppressed when it is 0 (because it uses a space rather than 0). + Ranges can be used for brevity: "0-9, 1-9". As a special case, the + '@' character can be used to instead of '0' to indicate suppression + of the leading zero: "0-9,@-9". Leading ' ' characters in the + resulting generated sequence are omitted. Optionally following this + and delimited by a ';' character, are the definitions of valid + segments of the index sequence. For instance, to define the index + range to be 1..19, 30..39 one could use the pattern "0-9, + 1-9;1-19,30-39". Of course most of the time an alphabetic sequence + will be wanted, to distinguish it from the numerical sequence used + to number the patches in a strip. For a sequence A, B, C .. AA, AB, + AC etc. (the default used in Argyll), the following patter would be + used: "A-Z, A-Z". For a some ECI2002R charts that skip columns Y and + Z, and use a leading numeric digits for addressing strips over 26, + the following might be used: "A-Z, 2-9;A-X,2A-9Z".
+
+ The -y parameter allows specifying the + labelling sequence used for patches (e.g. the Y axis of the chart). + By default this will be a number sequence 1, 2, ..10, 11, ... 999, + but this can be changed by specifying an alternate labelling + sequence pattern. See the above description for the labelling + sequence encoding.
+
+ NOTE that the pattern chosen + for the X and Y axes of the chart must be distinguishable, e.g. if + they are both numbers or both letters then reading the chart will + fail.
+
+ The -w parameter changes how a white + colorspace test chart (ie. Additive Grey monochrome) will be + represented in the Postscript or TIFF output. The default is to use + the DeviceGray representation (-wg), + + but Device RGB can also be used, where the R, G &B values are + all set to the same value (-wr), + + a White separation color + can be specified (-ws), or a + DeviceN White color can be + used (-wn).
+
+ The -k parameter changes how a black + colorspace test chart (ie. Subtractive Grey monochrome ) will be + represented in the Postscript or TIFF output. The default is to use + the DeviceGray representation (-kg), +but +Device +CMYK +can +also + + + be used, where the CMY values are zero, and just the K channel is + used (-kc), a Black separation color can be + specified (-ks), or a + DeviceN Black color can be + used (-kn).
+
+ The -o parameter changes how a CMY + colorspace test chart will be represented in the Postscript or TIFF + output. The default is to use the DeviceCMYK representation (-ok) where the K value is always + zero, or inverted Device RGB (-or), + or as a 3 channel DeviceN colorsoace can be used (-on).
+
+ The -m parameter sets the page margin for + all sides. If the printer has print margins larger than the default + assumed by printtarg, then + critical parts of the test chart may be cropped or scaled, and not + printed properly. Increasing + the margin from the default of 6 mm to 10 or 15 mm, may alleviate + this problem. (Note that the number of patches per page may be + reduced as a consequence.) Decreasing the margin below 6 mm may be + possible for printers that have smaller or no margins, increasing + the number of patches possible on each page. A TIFF chart raster + will be the size of the paper minus the margin, so that it can be + placed on a page that size without cropping or inadvertent scaling.
+
+ The -M parameter sets the page margin for + all sides the same as -m, but for a TIFF + chart the margin will be included + in the raster, meaning that the TIFF will have to be printed  + right to the edge of the paper, or on paper larger than the raster + size. (Having the raster be the full page size may be useful in + certain situations.)
+  
+ The -P flag disables any normal limiting of + strip length that would normally be imposed due to guide or + instrument limitations. There is still an upper limit of around 500 + patches or 2Meters though. Note that if you generate a strip larger + than the instrument can cope with, it may be unable to read the + strip.
+
+ The -L flag suppresses the left margin that + is added for instruments that have a paper holder that has a clip to + hold the chart in place, while it is being read. (Currently this is + only the Eye-One Pro).
+
+ The -p parameter specifies the paper size. + The size can either be one of the default sizes, or + + + can be specified in millimeters. Limitations of the instrument may + limit the maximum number of patches in a strip. For SpectroScan, a + size of  A4 or Letter (or smaller) should be used. Useful + combinations of number of patches and paper size are listed here. The printed parts of the chart + will be the size of paper minus the page margin. A TIFF chart will + be the size of the paper minus the margin, so that it can be placed + on a page that size without cropping or inadvertent scaling, but + also see the -M flag.
+
+ basename is the base file name of the .ti1 file that contains the + device values to be put on the test chart. printtarg will + output a basename.ps or one or more basename_NN.eps + or basename_NN.tif files files that should be printed on + the devices, as well as a basename.ti2 file that contains + both the device test point values, and the location of the + corresponding patch on the test chart. If the -s or -S + flag was specified, then  one or more basename_NN.cht + files will also be generated.
+
+ GSview or GhostView + are good programs to use to check what the PostScript or EPS file + will look like, without actually printing it out. Alternatively, use + the TIFF raster output for non-PostScript printers.
+
+
+
+
+
+
+ + diff --git a/doc/profcheck.html b/doc/profcheck.html new file mode 100644 index 0000000..ebb719b --- /dev/null +++ b/doc/profcheck.html @@ -0,0 +1,251 @@ + + + + profcheck + + + + +

profile/profcheck

+

Summary

+ Check an ICC profile + against .ti3 test chart + data.
+

Usage Summary

+ profcheck  + [-options] + data.ti3 iccprofile.icm
+   +
-v + [level]      + Verbosity level (default 1), 2 to print each DE
+  -c           +   +Show + CIE94 delta E values
+  -k +           +    Show CIEDE2000 delta E values
+  -w           +   +create + VRML visualization (iccprofile.wrl)
+  -x           +   +Use + VRML axes
+  -m              +Make +VRML + lines a minimum of 0.5
+
 -e              +Color +vectors + acording to delta E
+  -d + devval1,deval2,devvalN
+               +   +Specify + a device value to sort + against
+  -p           +   +Sort + device value by PCS/Lab target
+   + -f + [illum]      Use Fluorescent Whitening + Agent compensation [opt. simulated inst. illum.:
+                   + M0, M1, M2, A, C, D50 (def.), D50M2, D65, F5, F8, F10 or + file.sp]
+  -i illum        Choose + illuminant for computation of CIE XYZ from spectral data & + FWA:
+                  + A, C, D50 (def.), D50M2, D65, F5, F8, F10 or file.sp

+  -o + observ    +    Choose CIE + Observer + for spectral data:
+
                   + 1931_2 + (def.), + 1964_10, S&B + 1955_2, shaw, J&V 1978_2
+  -I intent       r = relative + colorimetric, a = absolute (default)
+
 data.ti3     +    + Test + point data file
+  iccprofile.icm  Profile to check
+
+

Usage Details and Discussion

+ profcheck provides a way of checking how well an ICC profile conforms to the test + sample data that was used to create it (or other test samples + that are from the same device). This is the same sort of check done + within + the profile making tool (colprof), but + having a + separate tool provides some flexibility.  The absolute forward + table in the profile is used to create PCS values from the sample + points, and the profiles PCS value then compared to the PCS values + of + the measured sample points. Note the lower delta E values are not + always a better measure of how good a profile is. The aim of a + profile + is to model the underlying characteristics of a device, not to + slavishly reproduce the sampled data point values. Sampled data + point + values contain device variation and instrument reading inaccuracies, + and a good profiler will try and filter out this noise, resulting in + some deliberate differences between the profile and the sample + points + used to create it.
+
+ The -v flag prints out extra information during the + checking. A + value greater than 1 will print the color values of each test point.
+
+ The -c option causes the differences between the test values + and + the profile prediction of the color for each device value to be + displayed + in CIE94 delta E, rather than plain L*a*b* delta E. CIE94 delta E + has a + closer + correspondence with perceived color differences than the default + CIE76 + delta E values.
+
+ The -k option causes the differences between the test values + and + the profile prediction of the color for each device value to be + displayed + in CIEDE2000 delta E, rather than plain L*a*b* delta E. CIEDE2000 + delta + E has a + closer + correspondence with perceived color differences than either CIE76 or + CIE94 delta E values.
+
+ The -w creates a VRML + 3D + visualization + of the differences between the test points and the profiles + prediction + of + the resulting colors.
+
+ The -x flag adds Lab axes to the VRML output.
+
+ The -m flag makes each error line a minimum of 0.5 delta E + long, so that all the points are visible. This makes it easier to + view + the distribution of test points in the reference set.
+
+ The -e flag causes the + error + vectors in the VRML output to be color coded according to their + lengths, from longest to shortest: yellow, red, magenta, blue, cyan + and + green.
+
+ The -d parameters allow the specification of a particular + device value, + and the test point by test point output will be sorted by distance + from + the + given device value. This can be useful in determining how well + "supported" + the profile is in a particular area of the colorspace.
+
+ If the -p flag is used in combination with the -d + parameters, + then the test point by test point output will be sorted by distance + in + PCS + (Lab) space rather than distance in device space.
+
+ The -f flag enables Fluorescent Whitening Agent (FWA) + compensation. This only works if spectral data is available and, the + instrument is not UV filtered.  FWA compensation adjusts the + spectral samples so that they appear to have been measured using an + illuminant that has a different level of Ultra Violet to the one the + instrument actually used in the measurement. The optional + illumination parameter allows specifying a standard or custom + illumination spectrum to be used as the similated instrument + illuminant, overriding the default D50 or CIE computation + illuminant used for FWA (see -i below). See colprof -f for + a fuller explanation. The same value should be used as was used + during the creation of the + profile.
+
+ The -i flag allows specifying a standard or custom + illumination + spectrum, applied to the spectral test point values to compute CIE + tristimulus values. A, D50, D50M2, D65, F5, + F8, F10 are a selection of standard illuminant + spectrums, with D50 being the default. If a filename is + specified instead, it will be assumed to be an Argyll specific .sp + spectrum file. If FWA compensation is used during measurement, this + illuminant will be used by default as the simulated instrument + illuminant. The same value should be used as was used during the + creation of the + profile.
+
+ The -o flag allows specifying a tristimulus + observer, and is used to compute PCS (Profile Connection Space) + tristimulus values. The following choices are available:
+   1931_2 selects the standard CIE 1931 2 degree + observer. + The default.
+   1964_10 selects the standard CIE 1964 10 degree + observer.
+   1955_2 selects the Stiles and Birch 1955 2 degree + observer
+   1978_2 selects the Judd and Voss 1978 2 degree + observer
+   shaw selects the Shaw and Fairchild 1997 2 degree + observer
+
+ The same parameter value should be used as was used during the + creation + of the profile.
+
+ The -I parameter allows + changing the intent used in looking up the ICC profile colors to + relative colorimetric. This would not be used if you are + checking a profile against the .ti3 file that was used to create it, + since, since profiles are always made + from absolute colorimetric measurement values.
+
+
+
+
+
+ + diff --git a/doc/refine.html b/doc/refine.html new file mode 100644 index 0000000..cfe18b9 --- /dev/null +++ b/doc/refine.html @@ -0,0 +1,354 @@ + + + + refine + + + + +

tweak/refine

+

Summary

+ Refine creates an abstract + profile, by comparing CIE measurement values from two test charts. + The charts will usually be in .ti3 + format, but only XYZ, Lab or spectral values will be used (ie. all + device space values are ignored). Typically the charts would be + printed on a target system (the one being emulated, say a printing + press), and the proofing system (the one that is being profiled). + The abstract profile that refine + produces will be a correction that makes the proofing system behave + more like the target. This can then be used to recreate the proofing + systems ICC profile, or device link. By feeding a previous abstract + correction profile in as well, iterative improvement can be made to + the proofing reproduction.
+
+ verify is a useful tool to use on the two + test charts, to check how well the refinement is proceeding. If a + white point relative match is being created (refine -R), then use + veryify -N.
+

Usage Summary

+ usage: refine [-options] cietarget ciecurrent [outdevicc] + [inabs] outabs
+  -v            + + Verbose
+  -c            +Create + + initial abstract correction profile
+  -g            +Don't + + impose output device gamut limit
+  -r res        Set + abstract profile clut resolution (default 33)
+  -d factor     Override default damping + factor (default 0.950000)
+  -R            +Aim + + for white point relative match rather than absolute
+  
-f + [illum]    Use Fluorescent Whitening Agent + compensation [opt. simulated inst. illum.:
+                 + + + M0, M1, M2, A, C, D50 (def.), D50M2, D65, F5, F8, F10 or + file.sp]
+  -i illum      Choose + illuminant for computation of CIE XYZ from spectral data + & FWA:
+                 + + + A, C, D50 (def.), D50M2, D65, F5, F8, F10 or file.sp

+  -o observ     Choose CIE Observer for + spectral data:
+                  +1931_2, + + 1964_10, S&B 1955_2, J&V 1978_2 (def.)
+  cietarget     + Target CIE or spectral values, CGATS file (e.g. .ti3)
+  ciecurrent    + Actual CIE or spectral values, CGATS file (e.g. .ti3)
+  [outdevicc]   + Output device ICC profile to set gamut limit (not used if -g)
+  [inabs]       +Previous + + abstract correction ICC profile (not used if -c)
+  outabs        +Created/refined + + abstract correction ICC profile

+

Usage Details

+ refine provides a way of improving the profile accuracy of a + proofing system.
+
+ The -v flag prints out extra information during the + checking, and prints each patch value, rather than just a summary.
+
+ The -c option is used when refine is being used for the + first time, and there is no previous abstract profile to continue + refining. If -c is used, + then the name of the previous abstract correction profile should not + be supplied.
+
+ If the -g flag indicates that an output device profile is + not being supplied, and that corrections should be attempted, even + if the colors are outside the devices gamut. Normally an output + device profile is supplied, and corrections aren't applied to colors + outside the devices gamut, since this will not achieve anything + useful, and can distort the results.
+
+ If the -r parameter overrides the resolution of the CLUT + grid used in the abstract profile. By default the value is 33, but + other
+ values can be chosen. An odd number is recommended.
+
+ If the -d parameter sets how aggressively refine should try + and correct errors. Normally it will try and exactly compensate for + the color errors revealed in comparing the two measurement files, + but if the device behaviour is unusual, or not very repeatable, this + may result in successive applications of refine making things worse, + rather than better. If this is the case, try using a smaller number, + such as 0.8, or 0.5.
+
+ If the -R flag is used, + then refine creates an abstract profile for improving the match of + the patch values when  interpreted in a white point relative + (ie. Relative Colorimetric) intent. If used to create a corrected + device link profile using collink, + remember to create a Relative colorimetric intent device link + profile.
+
+ The -f flag enables Fluorescent Whitening Agent (FWA) + compensation. This only works if spectral data is available and, the + instrument is not UV filtered.  FWA compensation adjusts the + spectral samples so that they appear to have been measured using an + illuminant that has a different level of Ultra Violet to the one the + instrument actually used in the measurement. The optional + illumination parameter allows specifying a standard or custom + illumination spectrum to be used as the similated instrument + illuminant, overriding the default D50 or CIE computation + illuminant used for FWA (see -i below). See colprof -f for + a fuller explanation. The same value should be used as was used + during the creation of the profile.
+
+ The -i flag allows specifying a standard or custom + illumination spectrum, applied to the spectral test point values to + compute CIE tristimulus values. A, D50, D50M2, + D65, F5, F8, F10 are a selection of + standard illuminant spectrums, with D50 being the default. + If a filename is specified instead, it will be assumed to be an + Argyll specific .sp + spectrum file. If FWA compensation is used during measurement, this + illuminant will be used by default as the simulated instrument + illuminant. The same value should be used as was used during the + creation of the profile.
+
+ The -o flag allows specifying a tristimulus observer, and is + used to compute CIE tristimulus values. The following choices are + available:
+   1931_2 selects the standard CIE 1931 2 degree + observer.
+   1964_10 selects the standard CIE 1964 10 degree + observer.
+   1955_2 selects the Stiles and Birch 1955 2 degree + observer
+   1978_2 selects the Judd and Voss 1978 2 degree + observer
+   shaw selects the Shaw and Fairchild 1997 2 degree + observer
+
+ If both CIE and spectral values are present in the input files, the + CIE values will be used by default. Using the -i, -o or -f + flag will force spectral values to be used. The the -i, -o or -f + flags will apply to both the target and measured input files.
+
+ cietarget         +Is + + the filename of the target CIE or spectral values. This is a CGATS file (e.g. a .ti3 made using chartread). These are the color values + wanted for each patch in the test chart, typically the product of + the target print system.
+
+ ciecurrent +         Is the filename of the + actual, current measured CIE or spectral values. This is a CGATS file (e.g. a .ti3 made using chartread). The errors between these + patches and the patches in the cietarget file will be used to create a + correction profile.
+
+  [outdevicc]     +If + + the -g flag is not used, + then the output device ICC profile should be supplied here, to allow + refine to limit its + corrections to colors that are within the gamut of the device.
+
+  [inabs]           +After + + the first correction has been created, subsequent corrections need + to improve upon previous ones, so the previous correction profile + should be provided here. For the first correction, the -c flag should be used, and this + argument is omitted.
+
+  outabs            +The + + name of the created or refined abstract correction ICC profile
+
+

Discussion

+ Refine is typically used in + a proofing situation, in which a verification chart is being used to + check the accuracy of a proofing system. (It might also be used for + more arbitrary color alterations by created two test chart files by + hand.) By using the errors between the target chart and the measured + values, refine attempts to improve the match between the proofing + system and its target.
+
+ There is facility in collink, colprof and revfix + to incorporate an abstract profile.
+
+ For systems using two device profiles or a device link to convert + between the target space printing files and the proofing device + space, the following would be a typical scenario:
+
+
We have a reference set of test + chart values, read from the target system reference.ti3. The ICC profile + for the target system is target.icm. + The ICC profile for the proofing system is proofer.icm. If using a device + link, the device link used to print proofer test charts is + currently target_proofer.icm:
+
+
+ First we print the test chart out on the proofing system and read + it in, resulting in a chart1.ti3 + file.
+
+ Lets check how well the proofing system current matches using + verify:
+
+     verify  reference.ti3 chart1.ti3
+
+ We then create our initial abstract correction fix profile fix1.icm using refine:
+
+     refine -v -c  reference.ti3 chart1.ti3 + proofer.icm fix1.icm
+
+ Applying this to your process for creating the proofer device + profile or target to proofing device link (choose one of the three + options below, depending whether you are using the proofer profile + and just want to alter its colorimetric B2A table using revfix, whether you are going + to recreate the proofer file from the original measurement data + using  colprof, or + whether you are using a device link profile created using collink):
+
+     revfix -v -1 -ke -p fix1.icm proofer.icm + proofer_fix1.icm
+ or
+     copy proofer.ti3 proofer_fix1.ti3
+     colprof -v -p fix1.icm proofer_fix1
+ or
+     collink -v -s -ia -oa -p fix1.icm target.icm + proofer.icm target_proofer_fix1.icm
+
+ Note that the above example is a simple one - you should use all + the same options as you used to create your initial proofer.icm  + + or target_proofer.icm, + with the addition of the "-p fix1.icm" option to specify the + abstract correction profile be applied.
+
+ Use the proofer_fix1.icm + or target_proofer_fix1.icm + to print out the test chart again, and read it in, resulting in chart2.ti3 file.
+
+ Lets check how well the proofing system matches after this first + round of refinement using verify:
+
+     verify  reference.ti3 chart2.ti3
+
+
+ >>>
+
+  We +can + + then start another round of improvement:
+
+ We refine our previous abstract correction fix profile using + refine:
+
+     refine -v  reference.ti3 chart2.ti3 + proofer.icm fix1.icm fix2.icm
+
+ Applying this new abstract profile to our process for creating the + proofing device profile or link again:
+
+     revfix -v -1 -ke -p fix2.icm proofer.icm + proofer_fix2.icm
+ or
+     copy proofer.ti3 proofer_fix2.ti3
+     colprof -v -p fix2.icm proofer_fix2
+ or
+     collink -v -s -ia -oa -p fix2.icm target.icm + proofer.icm target_proofer_fix2.icm
+
+ Use the proofer_fix2.icm + or target_proofer_fix2.icm + to print out the test chart again, and read it in, resulting in chart3.ti3 file.
+
+ Check again how well the proofing system matches after this first + round of refinement using verify:
+
+     verify  reference.ti3 chart3.ti3
+
+ Rounds of improvements can be continues by looping back to >>>, being careful to + increment the names of the fixN.icm,  + + proofer_fixN.icm or target_proofer_fixN.icm and chartN.ti3files. Stop when + exhausted, or if it looks like things are getting worse, rather + than better. If the latter happens, it might be good to revert to + the results from a previous round.
+
+
+
+
+
+
+
+
+ + diff --git a/doc/revfix.html b/doc/revfix.html new file mode 100644 index 0000000..4892de2 --- /dev/null +++ b/doc/revfix.html @@ -0,0 +1,252 @@ + + + + revfix + + + + +

xicc/revfix

+

Summary

+Regenerate a CLUT device profiles B2A table data by inverting the A2B +table.
+

Usage Summary

+revfix [-options] iccin +iccout
+ -v         +  +      Verbose
+ -0         +  +      Process perceptual
+ -1         +  +      Process absolute/relative colorimetric
+ -2         +  +      Process saturation
+ -r res    +  +       Override BtoA1 +CLUT res.
+ -k [ezhxr] +        e = +same K as existing BtoA table (def)
+            +        z = +zero, h = 0.5 K, x = max K, r = ramp K
+ -k p stle stpo enle enpo +shape
+            +        p = +curve parameters
+            +        stle: K +level at White 0.0 - 1.0
+            +        stpo: +start point of transition Wh 0.0 - Bk 1.0
+            +        enpo: +End point of transition Wh 0.0 - Bk 1.0
+            +        enle: K level at Black 0.0 - 1.0
+            +        shape: +1.0 = straight, 0.0-1.0 concave, 1.0-2.0 +convex
+ -K parameters      Same as +-k, but +target is K locus rather than K value itself
+ -l tlimit     +     set total ink limit, 0 +- 400% +(estimate by default)
+ -L klimit   +       set black ink limit, 0 +- 100% +(estimate by default)
+ -p aprof.icm       +Include abstract +profile in output tables

+

Usage Details and Discussion

+Existing ICC profiles may not contain accurately inverted AtoB table +data in their B2A tables, and this tool provides a means of +addressing this, or regenerating the B2A information with a different +black generation and/or ink limit, or applying an abstract correction +profile to the B2A table, without completely recreating the profile.
+
+Currently revfix does not support creating real perceptual or +saturation B2A tables, but can only create  relative colorimetric +tables. It also will not handle CLUT profile that use a matrix element +in them.
+
+-v  Turn on verbose mode. Gives progress information as the +table is created. Since B2A tables can take a long time to generate, +this is often useful to monitor progress.
+
+The B2A table to be re-creating can be specified by using the -0, +-1, and -2f lags. Normally only the -1 flag +should be specified, but the perceptual and saturation tables can be +replaces instead/as well, if their respective flags are specified.
+
+Normally the re-created B2A table will have the same CLUT resolution as +the existing table, but this can be overridden by using the -r +flag. +Typically a resolution of 9 might be used for a medium quality CMYK +table, +with 17 being used for a high quality CMYK table. For an RGB profile, a +resolution of 17 might be used for a medium quality table, and 33 being +used for a high quality table.
+
+ -k parameter sets the target level of black (K) +when creating a B2A CMYK output tables. This is often called a black +level, a black inking rule, black generation, or under color +removal.  These set the target black level.
+
+ Possible arguments to the -k flag are:
+
+ -kz selects minimum black (0.0)
+ -kh selects a black value of 0.5
+ -kx selects the maximum possible black (1.0)
+ -kr selects a linear black ramp, starting at minimum black for +highlight, and maximum black for shadow (equivalent to -kp 0 0 1 1 1). +This is the default.
+
+-k p stle stpo enpo enle shape  allows an +arbitrary black value ramp to be defined, consisting of a starting +value (stle) for highlights, a breakpoint L value (stpo) where it +starts to transition to the shadow level, an end breakpoint L (enpo) +where it flattens out again, and the finishing black level (enle) for +the shadows. There is also a curve parameter, that modifies the +transition from stle to enle to either be concave (ie.  the +transition starts gradually and and finished more abruptly) using +values 0.0-1.0, with 0.0 being most concave, or convex (the transition +starts more abruptly but finishes gradually), using values 1.0-2.0, +with 2.0 being the most convex.
+
+Typical black value generation curve with parameters something +like: -kp 0 .1 .9 1 .5
+
+          1.0 K   | +         enpo
+                 +|            _______  +enle
+                 +|           /
+                 +|          /
+                 +|         /
+                 +|        /
+           stle  +| ------/
+            +     +-------------------
+         0.0 K  +0.0    stpo        1.0
+               +White              +Black
+
+
+For minimum sensitivity of printed output to the lighting spectrum, it +currently seems best to use the maximum possible black, but other black +generation levels (ie. 0.3 to 0.5) may well be preferred if one wants +to +minimize the noisy appearance of black on an inkjet device, or +if the banding behaviour or other rendering flaws of the printer is to +be minimized.
+  +
+The xicclu tool can be used to plot out +the resulting black level for a given set of parameters, by using the -g flag of a profile already created from the +same .ti3 file.
+
+ -K parameters. +Any of the -k options above +can use the -K version, in +which rather than a black value target being defined by the inking +rule, a black locus +target is defined. For each lookup, the minimum possible black level +and the maximum possible black level is determined, the former +corresponding to a locus target of 0, and the latter corresponding to a +locus target of 1. For instance, at +the +white point, no black will be used in the output, even if the black +locus specifies a maximum (since the maximum amount of black that +can be used to print white is actually zero). Similarly, at the black +point, black may well be used, even if the black locus specifies +zero black (since a certain amount of black is needed to achieve the +desired density of color).
+
+The -l tlimit parameter sets the ink +limit (TAC, Total +Area Coverage) for the CMYK separation, as a total percentage from 0% +to 400%. By default, this value will be estimated from the profile. The +limit value should generally be set a little below the value used in +the test chart +generation, to avoid the very edges of the gamut. If the test chart ink +limit has been chosen to be a little beyond an acceptable level, then +this +number should be the acceptable level. Although limits can be set below +200%, this will generally restrict the color gamut noticeably, as fully +saturated +secondary colors will not be reproduced. Values are between 220% and +300% +for typical printing devices. The ink limit +will be in final calibrated device values if the profile includes +calibration information.
+
+
+ The -L klimit parameter sets the black +channel ink limit for the CMYK separation, as a total percentage from +0% +to 100%. By default, this value will be estimated from the profile. For +printing press like devices, this can be used to prevent +the +black channel screening pattern "filling in". Typical values might be +from +95% to 99%. The ink limit +will be in final calibrated device values if the profile includes +calibration information.
+
+
+The -p option allows specifying an abstract +profile be applied to all of the output tables. An abstract +profile is a way of specifying a color adjustment in a device +independent way. The abstract profile might have been created using one +of the tweak tools, such as refine.
+
+

+
+
+ + diff --git a/doc/scanin.html b/doc/scanin.html new file mode 100644 index 0000000..db5091f --- /dev/null +++ b/doc/scanin.html @@ -0,0 +1,582 @@ + + + + scanin + + + + +

scanin/scanin

+

Summary

+ Convert an 8 or 16 bit per component TIFF + image of a + test chart into .ti3 + device + values + using automatic pattern recognition, or manual chart alignment.
+ Performs other tasks associated with turning a TIFF raster of test + patches into numeric values.
+

Usage Summary
+

+ usage: scanin [options] input.tif + recogin.cht + valin.cie [diag.tif]
+    :- inputs + 'input.tif',  and outputs scanner + 'input.ti3', or
+
+ usage: scanin -g [options] input.tif + recogout.cht + [diag.tif]
+    :- outputs file + 'recogout.cht', or
+
+ usage: scanin -o [options] input.tif + recogin.cht + [diag.tif]
+    :- outputs file + 'input.val', or
+
+ usage: scanin -c [options] input.tif + recogin.cht + scanprofile.[icm|mpp] pbase [diag.tif]
+    :- inputs + pbase.ti2 + and outputs printer pbase.ti3, or
+
+ usage: scanin -r [options] input.tif + recogin.cht + pbase [diag.tif]
+    :- inputs + pbase.ti2+.ti3 and outputs pbase.ti3
+
+  -g                   +Generate + a chart reference (.cht) file
+  -o                   +Output + patch values in .val file
+  -c                   +Use + image to measure color to convert printer pbase .ti2 to .ti3
+  -ca                  +Same + as -c, but accumulates more values to pbase .ti3
+                       +from + subsequent pages
+  -r                   +Replace + device values in pbase .ti3
+                       +Default + is to create a scanner .ti3 file
+
 -F + x1,y1,x2,y2,x3,y3,x4,y4 +
+                       +Don't + auto recognize, locate using four fiducual marks
+  -p                   +Compensate + for perspective distortion
+
 -a                   +Recognize + chart in normal orientation only
+                       +Default + is to recognize all possible chart angles
+  -m                   +Return + true mean (default is robust mean)
+
 -G gamma +             +Approximate +gamma + encoding of image
+  -v [n]               +Verbosity + level 0-9
+  -d [ihvglLIcrsonap]   + generate + diagnostic output (try -dipn)
+      i                 +diag + - B&W of input image
+      h                 +diag + - Horizontal edge detection
+      v                 +diag + - Vertical edge detection
+      g                 +diag + - Groups detected
+      l                 +diag + - Lines detected
+      L                 +diag + - All lines detected
+
     + I +                 +diag + - lines used to improve fit
+
     + c                 +diag + - lines perspective corrected
+      r                 +diag + - lines rotated
+      s                 +diag + - sample boxes rotated
+      o                 +diag + - sample box outlines
+      n                 +diag + - sample box names
+      a                 +diag + - sample box areas
+      p                 +diag + - pixel areas sampled
+
+   + -O + outputfile       + Override the default output filename + & extension.
+

Usage Details and Discussion

+ scanin is setup to deal with + a + raster file that has been roughly cropped to a size that contains + the + test chart. It's exact orientation is not important [ie. there is + usually no need to rotate or crop the image any more finely.] The + reference files are normally set up with the assumption that the + edges + of the chart are visible within the image, and if the image is + cropped + to exclude the chart edges, it may well not recognize the chart + properly. It is designed to cope with a variety of resolutions, and + will cope with some degree of noise in the scan (due to screening + artefacts on the original, or film grain), but it isn't really + designed + to accept very high resolution input. For anything over 600DPI, you + should consider down sampling the scan using a filtering downsample, + before submitting the file to scanin. Similarly, any file with a + large + level of noise (due to screening or scanner artefacts) should + consider + down sampling the image or filtering it with some average preserving + filter before submitting it to scanin. Examining the diagnostic + output + (ie. -dig and -dil) may help in determining whether noise is an + issue.
+
+ There are 5 basic modes that scanin operates in.
+
    +
  • When no special argument is given scanin is + assumed to be parsing an input device characterization chart + (ie. an + IT8.7/2 chart), for the purpose of creating a .ti3 data file containing + the CIE test values and the corresponding RGB scanner values. + The .ti3 file can then be + used for + creating + an input profile using colprof. The + file + arguments are: The TIFF file that is to be + processed, the image recognition template + file, the CIE reference value definitions for + the test chart + (sometimes labeled a ".q60" file), and an + optional + name for the image recognition + diagnostic output. The resulting .ti3 file will have the same + base name + as the input TIFF file.
  • +
  • If the -g flag is specified, then + scanin + is operating in a mode designed to create the necessary image + recognition template file (.cht) + boilerplate information. Patch + location and labeling information would need to be added + manually to + such + a generated file, to make a complete and useable recognition + template + file. CHT file format. The input + TIFF + file in + this situation, should be a good quality image, perhaps + synthetically + generated + (rather than being scanned), and perfectly oriented, to make + specification + of the patch locations easier. The file arguments are: The + TIFF file that + is to be processed, the image recognition + template + file to be created, and + an optional name for the image recognition diagnostic output.
  • +
  • If the -o flag is used, then scanin + will + process the input TIFF file and produce a generic CGATS +  style file containing just the patch values (a .val file). The file + arguments + are: The TIFF file that is to be processed, the image recognition template file + to be created, and an optional name for the + image + recognition diagnostic + output.
  • +
  • If the -c flag is used, then an input + image + of a print test chart can be used + in combination with a device profile, to estimate the CIE + tristimulus + values of the patches. This allows RGB + input devices to be used as a crude replacement for a color + measuring + instrument. The icc or mpp profile has + (presumably) been + created by scanning an IT8.7/2 chart (or similar) through the + RGB input + device, + and + then using scanin to create the .ti3 file needed to feed to + colprof to + create + the input device profile. The file arguments in -c mode are: The + TIFF file that + is to be processed containing the image of a print test chart, the image recognition template file for the + test chart + generated by the printtarg tool, + the input device ICC or MPP profile, the + base + name for the .ti2 file containing the + test chart printer device + values and their patch identifiers and the base name for the + resulting + .ti3 + file, and finally an optional name for the + image + recognition diagnostic output. + The resulting .ti3 file will have the same base name as the + input TIFF + file. + If there is more than one page in the test chart, then scanin + will need + to be run multiple times, once for each scan file made from each + test + chart. The -ca flag combination should + be + used + for all pages after the first, + as this then adds that pages test values to the .ti3 file, + rather than + creating + a .ti3 file that contains only that pages test values. If the + incoming + .ti2 file contains per-channel calibration + curves, these will be passed through to the .ti3 so that + accurate ink + limits can be computed during profiling.
  • +
  • If the -r + flag is used, then the input TIFF value + is used as a source of device values to replace any existing + device + values in the given .ti3 + file. This is intended for use in the situation in which the + device + values + being fed into an output device are altered in some way that is + difficult + to predict (ie. such as being screened and then de-screened), + and this + alteration + to the device values needs to be taken into account in creating + a + profile + for such a device. The file arguments in -r mode are: The + TIFF file that + is to be processed containing a rasterized image of an output + test + chart, the image recognition template file + for the + test + chart generated by the printtarg + tool,  the base name for + the .ti2 file containing the output test chart device values and + their + patch + identifiers and the base name for the .ti3 file that is to have + its + device + values replaced, and finally an optional name + for + the + image recognition diagnostic + output.
    +
  • +
+ A number of flags and options are available, that are independent of + the + mode that scanin is in.
+
+ Normally scanin will try and recognize a chart, irrespective of its + orientation. For charts that have some asymmetric patch size or + arrangement (such as an IT8.7/2, or a chart generated by printtarg + with the -s option), this is both flexible and reliable. + Other + charts + may be symmetrical, and therefore having scanin figure out the + orientation + automatically is a problem if the recognition template does not + contain + expected patch values, since it will have an equal chance of + orienting + it incorrectly as correctly. To solve this, the -a + flag can be + used, + and care taken to provide a raster file that is within 45 degrees of + "no + rotation".
+
+ Normally scanin will use automatic chart recognition + to + identify the location of the test patches and extract their values. + If + the chart CHT file  + has four fiducial marks defined, then the chart can be manually + aligned by specifying the pixel location of the four marks as + arguments to the -F flag. The top left, + top + right, bottom right and bottom left fiducial marks X and Y + co-ordinates + should be + specified as a single concatenated argument, separated by comma's, + e.g: + -F 10,20,435,22,432,239,10,239  The coodinates may be + fractional using a decimal point. + Four fiducial marks allows for compensation for perspective + distortion.
+
+ By default the automatic chart recognition copes + with + rotation, scale and stretch in the chart image, making it suitable + for + charts that have been scanned, or shot squarely with a camera. If a + chart has been shot not exactly facing the camera (perhaps to avoid + reflection, or to get more even lighting), then it will suffer from + perspective distortion as well. The -p flag + enables automatic + compensation for perspective distortion.
+
+ Normally scanin computes an average of the pixel + values + within a sample square, using a "robust" mean, that discards pixel + values that are too far from the average ("outlier" pixel values). + This + is done in an attempt to discard value that are due to scanning + artefacts such as dust, scratches etc. You can force scanin to + return + the true mean values for the sample squares that includes all the + pixel + values, by using the -m + flag.
+
+ Normally scanin has reasonably robust feature + recognition, but the default assumption is that the input chart has + an + approximately even visual distribution of patch values, and has been + scanned and converted to a typical gamma 2.2 corrected image, + meaning + that the average patch pixel value is expected to be about 50%. If + this + is not the case (for instance if the input chart has been scanned + with + linear light or "raw" encoding), then it may enhance the image + recognition to provide the approximate gamma encoding of the image. + For + instance, if linear light encoding ("Raw") is used, a -G value of 1.0 would be + appropriate. Values less than 2.2 should be tried if the chart is + particularly dark, or greater than 2.2 if the chart is particularly + light. Generally it is only necessary to provide this is there are + problems in recognizing the chart.
+
+ The -v flag enables extra verbosity in + processing. This can aid debugging, if a chart fails to be + recognized.
+
+ The -d flag enables the generation of an + image + recognition diagnostic raster. The name of diagnostic raster can be + specified as the last in the + command line, or if not, will default to diag.tif. Various flags control what + is written to the diagnostic + raster. + Note that at least one flag must be specified for a diagnostic + raster + to be produced.
+ i    creates a black and + white + version of the input raster in the diagnostic output, to be able to + compare with the feature extraction.
+ h    will show pixels in the + input image classified as being on horizontal edges, in red.
+ v    will show pixels in the + input image classified as being vertical edges, in green.
+ g    will show groups of + pixels + that will be used + to estimate edge lines, each group in a different color.
+ l    will show valid lines + estimated from the vertical and horizontal pixel groups, in white.
+ L    will show all lines + (valid + and invalid) estimated from the vertical and horizontal pixel + groups, + in white.
+ I    will show valid lines lines + used + to improve the final fit, + in blue.
+ c    will show the lines with + perspective correction applied in cyan.
+ r    will show the lines + rotated + to the reference + chart orientation, in yellow.
+ s    will show the diagnostic + sampling box edge outlines, rotated to the reference chart + orientation, + in orange.
+ o    will show all the + sampling + box edge outlines, in orange.
+ n    will show the ID names + of + the sampling boxes, plus the diagnostic sample boxes, using a simple + stroke font, in orange.
+ a    will show the sampling + areas as crossed boxes, plus the diagnostic sample boxes, in orange.
+ p    will show the sampling + areas as colored pixels.
+
+ The combination of -dipn is usually a good place to start.
+
+ The TIFF file can be either 8 + or + 16 bits per color component, with 16 bit files being slower to + process, + but yielding more precise results.
+
+ If at all in doubt that the file has been recognized correctly, use + the + -dipn diagnostic flag + combination, and check the resulting diagnostic raster file.
+ [ A badly recognised image will typically result in high self fit + delta E's when used with colprof. ]
+
+ The -O + parameter allows the + output file name & extension to be specified independently of + the + last tiff + filename. Note that the full filename must be specified, including + the + extension.
+
+
+
+ + diff --git a/doc/sl.jpg b/doc/sl.jpg new file mode 100644 index 0000000..aaf330f Binary files /dev/null and b/doc/sl.jpg differ diff --git a/doc/spec2cie.html b/doc/spec2cie.html new file mode 100644 index 0000000..192ee64 --- /dev/null +++ b/doc/spec2cie.html @@ -0,0 +1,207 @@ + + + + fakeread + + + + +

spectro/spec2cie

+

Summary

+ Convert spectral .ti3 + readings into CIE XYZ or L*a*b* readings. FWA compensation may be + applied.
+

Usage

+ spec2cie [options] input.ti3 + output.ti3
+  
-v +            + Verbose mode
+  -I illum   +    Override + actual instrument illuminant + in .ti3 file:
+            +   +    A, C, D50, D50M2, D65, F5, + F8, F10 or file.sp
+                 + (only + used in conjunction with -f)
+
 -f [illum] +    Use Fluorescent Whitening Agent compensation + [simulated inst. illum.:
+                 + M0, M1, M2, A, C, D50 (def.), D50M2, D65, F5, F8, F10 or + file.sp]
+
 -i illum   +    Choose illuminant for computation of CIE XYZ + from spectral data & FWA:
+            +   +     + A, C, D50 (def.), D50M2, D65, F5, + F8, F10 or file.sp
+  
-o + observ  +    Choose CIE Observer for spectral + data:
+             +  +   + 1931_2
(def.), + 1964_10, S&B + 1955_2, shaw, J&V 1978_2
+  -n             +Don't +output + spectral values
+
 -p +             + Plot + each values spectrum
+
+  input.ti3      +Measurement + file
+  output.ti3     + Converted + measurement file

+

Comments

+ This program takes the spectral data in a .ti3 file, converts them + to + XYZ and Lab and fills the XYZ_[XYZ] and LAB_[LAB] columns in the + output + .ti3 file with the computed XYZ and Lab values. If the columns + XYZ_[XYZ] and/or LAB_[LAB] are missing in the input file, they are + added to the output file.
+
+ All other columns are copied from the input to the output .ti3 file.
+
+
+ The -I parameter allows specifying a an + illumination + spectrum for the actual instrument illuminant, overriding that + computed from + the type of instrument (recorded in the .ti3 file). This is rarely + used. This parameter is can + only be used in combination with the -f + flag. If a + filename is specified instead, it will be assumed to be an Argyll + specific .sp + custom spectrum file. + Illuminant details are:
+
+         A   CIE + tungsten + filament lamp 2848K
+         D50 CIE daylight 5000K
+         D65 CIE daylight 6500K
+         F5  CIE Fluorescent + 6350K, CRI 72
+         F8  CIE Fluorescent + 5000K, CRI 95
+         F10 CIE Fluorescent + 5000K, + CRI 81
+
+
+ The -f flag enables Fluorescent Whitening + Agent (FWA) compensation. This only works if spectral data is + available and, the instrument is not UV filtered.  FWA + compensation adjusts the spectral samples so that they appear to + have been measured using an illuminant that has a different level of + Ultra Violet to the one the instrument actually used in the + measurement. The optional illumination parameter allows specifying a + standard or custom illumination spectrum to be used as the similated + instrument illuminant, overriding the default D50 or CIE + computation illuminant used for FWA (see -i below). See + colprof -f for a fuller explanation.
+
+ The -i parameter allows specifying a + standard or custom illumination spectrum, applied to spectral .ti3 + data to compute PCS (Profile Connection Space) tristimulus values. A, + D50, D65, F5, F8, F10 are a + selection of standard illuminant spectrums, with D50 being + the default. If a filename is specified instead, it will be assumed + to be an Argyll specific .sp + custom spectrum file. This only works if spectral data is available. + Illuminant details are:
+
+         A   CIE + tungsten filament lamp 2848K
+         D50 CIE daylight 5000K
+         D65 CIE daylight 6500K
+         F5  CIE Fluorescent + 6350K, CRI 72
+         F8  CIE Fluorescent + 5000K, CRI 95
+         F10 CIE Fluorescent + 5000K, CRI 81
+
+ Custom illuminants are most often used when a  viewing booth or + other known viewing conditions is going to be used to view results. + Other illuminant reference files could be created using a suitable + measuring instrument such as a spectrolino, or an eyeone using spotread, although such instruments do + not themselves provide the necessary response down to Ultra Violet + that is needed for accurate operation of Fluorescent Whitening Agent + compensation. The best way of measuring a custom illuminant is to + use illumread, since it uses a special + method to estimate the illuminant UV in a way that complements FWA + compensation. (See the discussion above for the -f flag).
+
+ Note that if an illuminant other than D50 is chosen, the resulting + ICC profile will not be standard, and may not work perfectly with + other profiles that that use  the standard ICC D50 illuminant, + particularly if the absolute rendering intent is used. Profiles + should generally be linked with other profiles that have the same + illuminant and observer.
+
+ The -o flag allows specifying a tristimulus + observer, and is used to compute PCS (Profile Connection Space) + tristimulus values. The following choices are available:
+   1931_2 selects the standard CIE 1931 2 degree observer + (the default).
+   1964_10 selects the standard CIE 1964 10 degree + observer.
+   1955_2 selects the Stiles and Birch 1955 2 degree + observer
+   1978_2 selects the Judd and Voss 1978 2 degree + observer
+   shaw selects the Shaw and Fairchild 1997 2 degree + observer
+
+ Note that if an observer other than 1931 2 degree is chosen, the + resulting ICC profile will not be standard, and cannot be freely + interchanged with other profiles that that us the standard 1931 2 + degree + observer. Profiles should only be linked with other profiles that + have + the same illuminant and observer.
+
+
+
+ The -n flag + disables the output of the spectral values. If just the XYZ and + L*a*b* + values are needed, this makes for a smaller, easier to read file.
+
+ The -p flag + causes each spectrum to be plotted. If FWA compensation is used, + then + the before/after compensation spectrums will be shown.
+
+
+
+
+
+
+ + diff --git a/doc/specplot.html b/doc/specplot.html new file mode 100644 index 0000000..05b260b --- /dev/null +++ b/doc/specplot.html @@ -0,0 +1,46 @@ + + + + specplot + + + + +

xicc/specplot

+

Summary

+ A simple tool to plot spectrum files (.sp, .cmf, .ccss etc.), and + compute the  CCT and VCT, CRI, XYZ, x,y and L*a*b* values.
+

Usage summary
+

+ specplot [infile1.sp, + infile2.sp, ...]
+
 -v               + + verbose
+
 -c               + + combine multiple files into one plot
+
 -z               +don't + make range cover zero
+
 -u + level         plot effect + of adding estimated UV level
+
 -U               + + plot effect of adding range of estimated UV level
+
 [infile.sp ...]  spectrum files to plot
+
                  + + default is all built in illuminants
+

+

Usage Details and Discussion

+ Run without an argument, + each built in illuminant is plotted in turn. If an argument is + given, then just that
+ spectrum will be plotted.
+
+ Hit a key in the plot window to advance to the next spectrum.
+ + diff --git a/doc/splitti3.html b/doc/splitti3.html new file mode 100644 index 0000000..05bad37 --- /dev/null +++ b/doc/splitti3.html @@ -0,0 +1,75 @@ + + + + splitti3 + + + + +

profile/splitti3

+

Summary

+Split the first table of data in a CGATS format file, into two files, +choosing the sets randomly. Usually the CGATS file will be a .ti3 +format file, and the intent is to create a test and reference data set, +to verify the operation of colprof.
+

Usage Summary

+usage: splitti3 +[-options] input.ti3 output1.ti3 output2.ti3
+ -v             +Verbose - print each patch value
+ -n +no          Put no sets in +first file, and balance in second file.
+ -p +percent     Put percentage% in first file, +and balance in second file. (def. 50%)
+ -r +seed        Use +given random seed.
+ input.ti3      File to +be split up.
+ output1.ti3    First output file
+ output2.ti3    Second output file

+

Usage Details and Discussion

+splitti3 together with profcheck +provides a way of verifying how well the profiling process is working. +By splitting up a .ti3 test +set into two parts, one that will be the data file that the profile is +created from, and the other being the independent set used for +verification, some measure can made of how well a devices underlying +behaviour is being modelled by colprof. Only the first table is +transferred from input to output.
+
+The -v flag prints out extra information during operation..
+
+The -n parameter specifies the split between the first and +second output files as a given number of sets of data for the first +table.
+
+The -p parameter specifies the split between the first and +second output files as a percentage in favour of the first table.
+
+The -r parameter provides a +way of making the random split reproducible, by allowing the random +number seed to be specified.
+
+
+Typically a large test set might be partitioned into two files, the +first used to generate a profile, and then the second used with profcheck to check how well the +profile patches the balance of the test set points.
+ + diff --git a/doc/spotread.html b/doc/spotread.html new file mode 100644 index 0000000..0259530 --- /dev/null +++ b/doc/spotread.html @@ -0,0 +1,1011 @@ + + + + spotread + + + + +

spectro/spotread

+

Summary

+ Use an instrument to read a single color value. This can be a useful + diagnostic aid. +

Usage Summary

+ spotread [-options] + [logfile]
+  -v              + + + + + + + + + + + + + + +       Verbose mode
+  
-s              + + + + + + + + + + + + + + +       Print spectrum for each reading.
+  -S +              +       Plot the spectrum in a graph window.
+  -c comport            + + + + + + + + + + + + + + + Set COM port, 1..4 (default 1)
+
 -t              + + + + + + + + + + + + + + +       Use transmission measurement mode
+  -e +                    + + + + + + + + + + + + + + + Use emissive measurement mode (absolute results)
+
 -eb +                   + + + + + + + + + + + + + + + Use display white brightness relative measurement mode
+
 -ew +                   + + + + + + + + + + + + + + + Use display white relative measurement mode
+
 -p +                    + + + + + + + + + + + + + + + Use telephoto measurement mode (absolute results)
+
 -pb +                   + + + + + + + + + + + + + + + Use projector white brightness relative + measurement mode
+
 -pw +                   + + + + + + + + + + + + + + + Use projector white relative measurement mode
+  -a +                    + + + + + + + + + + + + + + + Use ambient measurement mode (absolute results)
+  -f                    + + + + + + + + + + + + + + + Use ambient flash measurement mode (absolute results)
+
 -y X +                +  + + + + + + + + + + + + + + Display type - instrument specific list to choose from.
+  -I illum       +        Set simulated instrument illumination + using FWA (def -i illum):
+             +  +  +  +  +  +   +M0, + + M1, M2, A, D50 (def.), D50M2, D65, F5, F8, F10 or file.sp

+  -i illum       +        Choose illuminant for computation of + CIE XYZ from spectral data & FWA:
+             +  +  +  +  +  +   +A, +D50 +(def.), + + + + + + + + + + + + + + + D50M2, D65, F5, F8, F10 or file.sp
+  -Q observ      +        Choose CIE Observer for + spectral data or CCSS instrument:
+             + + + + + + + + + + + + + + +             
1931_2 (def.), 1964_10, S&B 1955_2, shaw, + J&V 1978_2
+  -F filter             + + + + + + + + + + + + + + + Set filter configuration:
+    + n                    + + + + + + + + + + + + + + + None
+    + p                    + + + + + + + + + + + + + + + Polarising filter
+    + 6                    + + + + + + + + + + + + + + + D65
+    + u                    + + + + + + + + + + + + + + + U.V. Cut
+  -E extrafilterfile    + Apply extra filter compensation file
+
 -x +                    + + + + + + + + + + + + + + + Display Yxy instead of Lab
+
 -h +                    + + + + + + + + + + + + + + + Display LCh instead of Lab
+  -V +                    + + + + + + + + + + + + + + + Show running average and std. devation from ref.
+  -T +                    + + + + + + + + + + + + + + + Display correlated color temperatures and CRI
+
 -N                    + + + + + + + + + + + + + + + Disable initial calibration of instrument if possible
+  -H +              +       Use high resolution spectrum mode + (if available)
+  
-X file.ccmx          + + + + + + + + + + + + + + + Apply Colorimeter Correction Matrix
+  -X + file.ccss          +Use +Colorimeter +Calibration +Spectral +Samples + + + + + + + + + + + + + + + for calibration
+  -Y + r|n           + + + + + + + +      Override refresh, non-refresh display + mode
+  -YA +              +      Use non-adaptive integration time mode + (if available).
+  -W n|h|x              +Override +serial +port +flow +control: +n += +none, + + + + + + + + + + + + + + + h = HW, x = Xon/Xoff
+  -D [level] +            + Print debug diagnostics to stderr
+  logfile               + + + + + + + + + + + + + + + Optional file to save reading results
+

+

Usage Details and Discussion

+ spotread operates in a similar fashion to chartread, but allows the reading of a + succession of single color values. This can be useful in diagnosing + issues with profile creation and operation.
+
+ The -v flag causes extra information to be + printed out during chartread operation.
+
+ The -s flag enables the printing out + spectral reflectance/transmittance values, if the instrument + supports this.
+
+ The -S flag enables the plotting of the + spectral reflectance/transmittance values, if the instrument + supports this. If a reference is taken, this will be plotted in red. + You must strike a key in the plot window to continue with another + measurement.
+
+ The instrument is assumed to communicate through a + USB or serial communication port, and the port can be selected with + the -c option, if the instrument is not connected to the + first port. If you invoke spotread + so as to display the usage information (i.e. "spotread -?" or + "spotread --"), then the discovered USB and serial ports will be + listed. On UNIX/Linux, a list of all possible serial ports are + shown, but not all of them may actually be present on your system.
+
+ If using an Xrite DTP41T or SpectroScanT, and + printing onto transparent or back lit media, use the -t flag + to operate the instrument in transparency mode. If using the + Spectroscan, this triggers a fake transparency mode, that uses a + separate backlight (such as a light box). The  instrument will + be used to calibrate the level of backlight, and use this to compute + the transparency of the test chart samples. Note that for good + transparency values, the backlight level needs to be neither too + bright not too dark, should ideally be incandescent rather than + fluorescent (since fluorescent lights often have big dips in their + spectrum), and ideally should be of uniform brightness over the + measurement area.
+
+ The -e flag + allows measuring in emission mode (e.g. displays or illuminants) + using instruments that support this mode. An adaptive integration + time will be used in devices that support it by default (see the -ZA flag). Values returned are absolute.
+
+ The -eb + flag allows measuring in emission mode using instruments that + support this mode, with the brightness reading being relative to the + white value read as the first reading. While the brightness values + are then relative to the white, the readings are otherwise absolute. + This corresponds to the raw ICC absolute readings created by spotread.
+
+ The -ew + flag allows measuring in emissive mode using instruments that + support this mode, with the reading being relative to the white + value read as the first reading.
+
+ The -p flag + allows measuring in telephoto mode, using instruments that support + this mode, e.g. the ColorMunki. Values returned are absolute.
+  Note that you would use normal emissive mode to measure + projectors using instruments without a specific telephoto mode.
+
+ The -pb + flag allows measuring in telephoto mode using instruments that + support this mode, with the brightness reading being relative to the + white value read as the first reading. While the brightness values + are then relative to the white, the readings are otherwise absolute. + This corresponds to the raw ICC absolute readings created by spotread.
+
+ The -pw + flag allows measuring in telephoto mode using instruments that + support this mode, with the reading being relative to the white + value read as the first reading.
+
+ The -a flag + allows measuring in ambient illumination mode using instruments that + support this mode (i.e. Eye-One Display 2). Values returned are + absolute, and include the various color temperatures and Color + Rendering Index (see -T). + If the instrument does not support ambient mode, emissive mode will + be used instead. An adaptive integration time will be used in + devices that support it.
+
+ The -f flag + allows measuring a flash with those instruments that support + scanning emissive measurements. The instrument needs to be triggered + by holding down its button, triggering the flash, then releasing the + button, similar to how a reflective strip is read.
+
+   The -y + flag allows setting the Display Type. The selection typically + determines two aspects of of the instrument operation: 1) It may set the measuring mode + to suite refresh or non-refresh displays. + Typically only LCD (Liquid Crystal) displays have a non-refresh + nature. 2) It may select an + instrument calibration matrix suitable for a particular display + type. The selections available depends on the type and model of + instrument, and a list of the options for the discovered instruments + will be shown in the usage + information. For more details on what particular instruments support + and how this works, see Operation of + particular instruments. 3) Any installed CCSS files + (if applicable), or CCMX files. These files are typically created + using ccxxmake, + and installed using oeminst. The + default and Base Calibration types will be indicated in the usage.
+
+ The -I parameter allows specifying a + standard or custom illumination spectrum to be used as the similated + instrument illuminant when FWA compensation is used during + measurement, overriding the default D50 or CIE computation + illuminant used for FWA (see -i below). See colprof -f for a fuller explanation.
+
+ The -i parameter allows specifying a + standard or custom illumination spectrum applied to reflective or transmissive + spectral data to compute CIE tristimulus values. A, D50, + D50M2, D65, F5, F8, F10 are a + selection of standard illuminant spectrums, with D50 being + the default. If a filename is specified instead, it will be assumed + to be an Argyll specific .sp + spectrum file. If FWA compensation is used during measurement, this + illuminant will be used by default as the simulated instrument + illuminant.
+
+ The -Q flag allows specifying a tristimulus + observer, and is used to compute PCS (Profile Connection Space) + tristimulus values. This is possible for a spectral instrument, or a + colorimeter that has CCSS capability. The following choices are + available:
+   1931_2 selects the standard CIE 1931 2 degree + observer. The default.
+   1964_10 selects the standard CIE 1964 10 degree + observer.
+   1955_2 selects the Stiles and Birch 1955 2 degree + observer
+   1978_2 selects the Judd and Voss 1978 2 degree + observer
+   shaw selects the Shaw and Fairchild 1997 2 degree + observer
+
+ The -F options allows configuring the + instrument to have a particular filter fitted to it. Some + instruments (i.e. the Gretag Spectrolino) allow the fitting of + various filters, such as a polarizing filter, D65 illuminant + simulation, or Ultra Violet Cut filter, and this option allows the + instrument to be configured appropriately.
+
+ The -E option allows the setting of an extra + filter compensation file, that allows for the filtration of the + spectral readings through a medium of some kind, when in emission + mode. This is useful in allowing for such things as telescopic + adapters that use a glass of acrylic lens in the optical path. [Note that this is currently only + supported by the Spectrolino driver.]
+
+ The -x option causes the reading to be + displayed as XYZ and Yxy values, rather than the default XYZ and + L*a*b*
+
+ The -h option causes the reading to be + displayed as XYZ and LCh values, rather than the default XYZ and + L*a*b*
+
+ The -V enables average and standard + deviation statistics on the XYZ and L*a*b* values. This start and is + reset whenever a reference is taken ('r' key). A side effect of this + option is to disable the clamping of XYZ and L*a*b* value to + positive, so that a valid average of black can be obtained.This is + useful in quantifying repeatability.
+
+ The -T option causes various color + temperatures to be displayed, plus the Color Rendering Index. Three + color temperatures will be shown. The first is the classic + Correlated Color Temperature, which is the black body (Plankian) + color closest to the measured color in the CIE 1960 UCS color space. + The second is the black body (Plankian) color that has a minimum + CIEDE2000 error to the measured color. The last is the daylight + color that has a minimum CIEDE2000 error to the measured color. The + delta E between the closest temperature and the measured color is + also shown for each. The Color Rendering Index (CRI Ra) is also + computed if the instrument is capable of spectral measurement. If + the notation (Invalid) is + displayed after the CRI, then this means that the the spectrum white + point is to far from the black body and Daylight locus to be + meaningful.
+
+ -N Any + instrument that requires regular calibration will ask for + calibration on initial start-up. Sometimes this can be awkward if + the instrument is being mounted in some sort of measuring jig, or + annoying if several sets of readings are being taken in quick + succession. The -N + suppresses this initial calibration if a valid and not timed out + previous calibration is recorded in the instrument or on the host + computer. It is advisable to only use this option on the second and + subsequent measurements in a single session.
+
+ The -H + option turns on high resolution spectral mode, if the instrument + supports it. See Operation of particular + instruments for more details.
+
+ The -X file.ccmx option reads + a Colorimeter Correction Matrix + from the given file, and applies it to the colorimeter instruments + readings. This can improve a colorimeters accuracy for a particular + type of display. A list of contributed ccmx files is here.
+
+ The -X file.ccss option reads + a Colorimeter Calibration + Spectral Sample from the given file, and uses it to set the + colorimeter instruments calibration. This will only work with + colorimeters that rely on sensor spectral sensitivity calibration + information (ie. the X-Rite i1d3, + or the DataColor Spyder4).This +can +improve +a + + + + + + + + + + + + + + colorimeters accuracy for a particular type of display.
+
+ The -Y r and + + + + + + + -Y n options overrides the refresh display mode set by the -y display type selection, with -Y r forcing refresh display mode, + and -Y n forcing a non-refresh display mode. Not all + instruments support a display measurement refresh mode, or the + ability to override the mode set by the display type selection.
+
+ The -Y A + option uses a non-adaptive integration time emission measurement + mode, if the instrument supports it, such as the Eye-One Pro or + ColorMunki. By default an adaptive integration time measurement mode + will be used for emission measurements, but some instruments support + a fixed integration time mode that can be used with display devices. + This may give increased consistency and faster measurement times, + but may also give less accurate low level readings.
+
+ The -W n|h|x + parameter overrides the default serial communications flow control + setting. The value n turns + all flow control off, h + sets hardware handshaking, and x + sets Xon/Xoff handshaking. This commend may be useful in workaround + serial communications issues with some systems and cables.
+
+ The -D flag causes communications and other + instrument diagnostics to be printed to stdout. A level can be set + between 1 .. 9, that may give progressively more verbose + information, depending on the instrument. This can be useful in + tracking down why an instrument can't connect.
+
+ The logfile is an optional file that can be specified + to capture each reading taken. There will be column headers printed + to the first row, and then each reading will be on a separate line + with tab separators.
+
+ All instruments will be used in a spot mode. For the SpectroScan + instrument, the samples can be placed on the table, and the + measuring head positioned before taking a measurement. Note that the + default mode (reflectance measurement) may not be supported by the + instrument, so a mode it does support will be selected + automatically. Override this on the command line if desired. Note + that the DTP51, DTP92, DTP94 and Eye-One Display are colorimeters, + and cannot read spectral information, and that the DTP92 can only + read CRT type displays.
+
+

+ Once spotread has established communications with the + instrument, it awaits a command from the user, indicated by the user + hitting a key or activating the instrument switch. XYZ values are in + the range 0 .. 100 for reflective or transmissive readings, and + absolute cd/m^2 for display, emissive and ambient readings.
+
+ The L*a*b* values are computed relative to a D50 100 scale white + point. (Note that using display white relative mode makes the L*a*b + relative to the display white point.)
+  
+ If Fluorescent Whiter Additive (FWA) compensated readings are to be + made, then this needs to be enabled with the correct command line + switches, and then setup for each paper white background color, to + establish an FWA reference. There is one FWA reference locations + available for each alphabetic character not used for a special + function (ie. not H, K, N, Q, R, + S, F), keyed to the capital letters A-Z, + allowing FWA corrected comparisons between many different media.
+
+ Once a particular reference location is initialized with the FWA + paper color, subsequent readings triggered by using the + corresponding lower case letter a-z + will use FWA compensation for that keyed location. Note that + readings that are triggered some other way (ie. using a non + alphabetic key, or using the instrument switch) will not be FWA + corrected readings.
+
+ If a non-FWA readings is to be performed, then a reading for a + location that has not been initialised for paper white should be + used, or a non alphabetic key (such as space or return) or + instrument switch trigger should be used.
+
+ If the instrument supports a high resolution spectral mode, then it + can be toggled on and off using the h key.
+
+ If the instrument supports stored readings (ie. DTP20), then these + can be ignored using the n + key.
+
+ The previous reading can be stored as a reference, and delta E's + computed for each reading, using the r key.
+
+ A previous spectral reading can be saved in a spectrum CGATS file + (spectrum.sp) using the s + key, making this a convenient way of creating a custom illuminant + spectrum.
+
+ A calibration can be initiated using the k key.
+
+ For instruments that support it and are in a refresh display mode, + the calibrated refresh rate can be read back using the f + key.
+
+ For instruments that support it and are in an emissive measurement + mode, a display refresh rate measurement can be made by using the F + key.
+
+
+
+
+
+
+
+
+
+
+ + diff --git a/doc/srgbplot.gif b/doc/srgbplot.gif new file mode 100644 index 0000000..6226a97 Binary files /dev/null and b/doc/srgbplot.gif differ diff --git a/doc/ss.jpg b/doc/ss.jpg new file mode 100644 index 0000000..93875a5 Binary files /dev/null and b/doc/ss.jpg differ diff --git a/doc/surface.jpg b/doc/surface.jpg new file mode 100644 index 0000000..cf412fb Binary files /dev/null and b/doc/surface.jpg differ diff --git a/doc/synthcal.html b/doc/synthcal.html new file mode 100644 index 0000000..89f3fed --- /dev/null +++ b/doc/synthcal.html @@ -0,0 +1,108 @@ + + + + synthcal + + + + +

spectro/synthcal

+

Summary

+Create synthetic calibration file. The default is a linear calibration +file.
+

Usage

+synthcal [-options] basename
+ -t +N            i = +input, o = output, d = display (default)
+ -d col_comb     choose colorant combination +from the following:
+                 +0: +Print grey
+                 +1: +Video grey
+                 +2: +Print RGB
+                 +3: +Video RGB
+                 +4: +CMYK
+                 +5: +CMY
+                 +6: +CMYK + Light CM
+                 +7: +CMYK + Light CMK
+                 +8: +CMYK + Red + Blue
+                 +9: +CMYK + Orange + Green
+                 +10: +CMYK + Light CMK + Light Light K
+                 +11: +CMYK + Orange + Green + Light CM
+                 +12: +CMYK + Light CM + Medium CM
+ -D colorant     Add or delete colorant from +combination:
+                 +(Use +-?? to list known colorants)
+
 -o +o1,o2,o3,    Set non-linear curve offset +(default 0.0)
+ -s +s1,s2,s3,    Set non-linear curve scale +(default 1.0)
+ -p p1,p2,p3,    Set non-linear curve powers +(default 1.0)
+ outfile         Base name +for output .cal file

+

Comments
+

+This is the tool creates a calibration (.cal) +file that has a linear table +for each channel. This is useful in setting up a display for +evaluation, disabling printer calibration, testing, or to recover a +display that has a strange set of +Video LUTs loaded.
+
+The -t option +selects the type of device the calibration file is intended for. +Default is display.
+
+The -d option +selects the device colorspace. The default for input and display is Video RGB, while the default for output is CMYK.
+

+ The -D parameter modifies the colorspace set +by -d by allowing individual +colorants to be added or subtracted from the colorspace.
+
+Optionally it can be used to create a non-linear calibration file, +useful for diagnostics. Each of the device channel curves can be +given a gamma (power curve) shape, scaled to a maximum other than +1.0, and offset from a value other than 0.0.
+
+ + diff --git a/doc/synthread.html b/doc/synthread.html new file mode 100644 index 0000000..116a43d --- /dev/null +++ b/doc/synthread.html @@ -0,0 +1,166 @@ + + + + fakeread + + + + +

spectro/synthread

+

Summary

+Simulate the measurement of a devices response using a synthetic device +model. This is intended for testing of profile creation accuracy. A +device link +separation or color space conversion can be applied before the +print/measure simulation.
+

Usage

+synthread [-v] [separation.icm] inoutfile
+ -v                +        Verbose mode
+ -p                        +Use separation profile
+ -l                        +Output Lab rather than XYZ
+
+
 -0 +pow                    +Apply power to input device chanel 0-9 (after sep.)
+
+
 -r +level                  +Add average random deviation of <level>% to input device values +(after sep.)
+ -R +level                  +Add average random deviation of <level>% to output PCS values
+
 -u +      +                 +Make random deviations have uniform distributions rather than normal
+ -b +L,a,b                  +Scale black point to target Lab value
+ [separation.icm]          +Device link separation profile
+ profile.[icm|mpp|ti3]     ICC, MPP +or .ti3 +profile/file to use
+  +inoutfile           +        Base name for +input[.ti1]/output[.ti3] file

+
+Examples

+
+synthread xxxx testvalues
+synthread -p xxx separation.icm testvalues
+

Comments
+

+The -v flag does nothing at +the moment.
+The -p flag enables a device +to device value conversion before +converting to expected PCS values.
+The -l flag causes the CIE +output values to be L*a*b* rather than the +default XYZ values.
+
+The -0, -1, -2 .. -9 +parameters are a way of simulating changes in the +behaviour of the simulated printing system. The parameter supplied to +the flag will be used to modify the device values (after any separation +is applied) by raising them to the power of the parameter. This applies +a transfer curve to the simulated device response.
+
+The -r parameter is a way of +simulating instability in the behaviour of +the simulated +printing system. The parameter supplied to the flag will be used to +scale a random offset added to the device values (after any separation +is applied). The offset will be a normally distributed error with an +average deviation of level%. A typically value supplied +might be 1.0 to simulate 1% randomness.
+
+The -R parameter is a way of +simulating instability in the behaviour of +the simulated +measuring system. The parameter supplied to the flag will be used to +scale a random offset added to the PCS values. The offset will be a +normally distributed error with an average deviation of level%. A +typically value supplied +might be 1.0 to simulate 1% randomness.
+
+The -u flag changes the +distribution of the random offsets applied using the -r or -R flags, from the default standard +deviation, to a uniform deviation distribution. The level is still +specified as an average deviation.
+
+The -b parameter is a way of +simulating devices that have a different black point to the profile +used. This only works if an ICC profile is used, and scales the black +point to the parameter value. This will be done in XYZ space by +default, and in L*a*b* space if the -l +flag is used.
+
+synthread is useful in creating artificial test value for testing colprof, as well as providing one path for +turning an MPP profile into an ICC profile. If a .ti3 file is +specified instead of an ICC or MPP profile, +then the closest matching measured points in the ..ti3 are substituted +for the test values in the .ti1 +file on +output. If the .ti1 +file is a monochrome test file with a White device value, then an RGB ICC profile, MPP or .ti3 may be used, and the White +values will be translated to equal RGB values. If the .ti1 +file is a monochrome test file with a Black device value, then a CMYK ICC profile, MPP or .ti3 may be used, and the Black +values will be translated to equal CMY = 0, K = grey values.
+
+If a separation device profile is provided (e.g. from CMY -> CMYK, +or perhaps CMYK->CMYK, to simulate a color correction step before +"printing"), then this will be applied to the .ti1 device values, +before converting the the device values into .ti3 PCS values.
+
+
+
+ + diff --git a/doc/targen.html b/doc/targen.html new file mode 100644 index 0000000..d03416f --- /dev/null +++ b/doc/targen.html @@ -0,0 +1,1024 @@ + + + + targen + + + + +

target/targen

+

Summary

+ Generate a profiling test target values .ti1 file.  targen + is + used to generate the device channel test point values for grayscale, + RGB, CMY, CMYK or N-color output or display devices.  +

Usage Summary

+ targen [options] + outfile
+  -v [level] +      Verbose mode [optional + verbose level, 1..n]
+  -d col_comb     choose + colorant combination from the following:
+                      + 0: + Print + grey
+             +   +   +      + 1: + Video + grey
+          +   +   +   +       + 2: + Print + RGB
+       +   +     +          3: + Video RGB
+        +   +   +           + 4: CMYK
+                     + 5: + CMY
+
     +   +   +   +           6: + CMYK + Light CM
+       +  +       +        7: CMYK + Light CMK
+           +  +  +   +    +8: +CMYK ++ +Red + + Blue
+      +   +      +          9: CMYK + + Orange + Green
+      +   +      +         10: CMYK + + Light CMK + Light Light K
+      +   +     +          11: CMYK + + Orange + Green + Light CM
+       +  +     +         12: CMYK + Light + CM + Medium CM
+  -D colorant     Add or + delete colorant from combination:
+         +   +    +         + 0: + Additive
+       +    +             + 1: + Cyan
+      +   +    +            2: + Magenta
+      +   +    +            3: + Yellow
+            +           + 4: + Black
+           +            + 5: + Orange
+          +            + 6: + Red
+         +             + 7: + Green
+         +             + 8: + Blue
+       +               + 9: + White
+         +             + 10: + Light + Cyan
+        +              + 11: + Light + Magenta
+        +              + 12: + Light + Yellow
+         +           +    + 13: + Light + Black
+         +             + 14: + Medium + Cyan
+          +            + 15: + Medium + Magenta
+          +            + 16: + Medium + Yellow
+          +        +   +    + 17: + Medium + Black
+            +           + 18: + Light + Light + Black
+  -G              + Generate + good + optimzed + points + rather + than + Fast
+
 -e patches      White + color test patches (default 4)
+  -s steps        + Single + channel + steps + (default + 0)
+  -g steps        +Gray +axis +RGB +or +CMY +steps +(default + 0)
+  -m steps        + Multidimensional + device + space + cube + steps + (default + 2)
+  -f patches      + Add + iterative & adaptive full spread patches to total (default + 836)
+                     + Default + is + Optimised + Farthest + Point + Sampling + (OFPS)
+
  -t             +  +  +Use +incremental +far +point +for + full spread
+   -r             +  +  +Use +device +space +random +for + full spread
+   -R             +  +  +Use +perceptual +space +random +for + full spread
+   -q             +  +  +Use +device +space-filling +quasi-random +for + full spread
+
  + -Q +             +  +   Use perceptual space-filling quasi-random for full spread
+   -i             +  +  +Use +device +space +body +centered + cubic grid for full spread
+   -I             +  +  +Use +perceptual +space +body +centered + cubic grid for full + spread
+   -a angle           +Simplex +grid +angle +0.0 +- +0.5 +for + B.C.C. grid, default -2047840407
+   -A adaptation      + Degree + of adaptation of OFPS 0.0 - 1.0 (default 0.1, 1.0 if -c profile + provided)
+  -t              +Use +incremental +far +point +for +full +spread + (default + iterative)
+  -l ilimit       +Total +ink + limit in %(default = none, or estimated from profile)
+
 -p power        +Optional +power-like +value +applied +to +all +device + values.
+  -c profile      + Optional device ICC or MPP pre-conditioning profile filename
+  -N emphasis     + Degree of + neutral axis patch concentration 0-1. (default 0.50)
+
  + -F L,a,b,rad    Filter out + samples + outside Lab sphere.
+  -w              + Dump + diagnostic + outfile.wrl + file + (Lab + locations)
+
 -W +             + Dump + diagnostic + outfile.wrl + file + (Device + locations)
+  outfile         + Base + name + for + output(.ti1) +
+

Usage Details and Discussion
+

+ The number of target patches needs to be chosen, depending on the + media + size, the type of device, and the quality of profile required. For + an + inkjet device, something like 3000 test points or more is desirable + for high quality profiles, while 500-1000 will probably suffice for + a + medium quality profile. A few hundred may be sufficient for a + preliminary profile. Well behaved printing devices (such as a + chemical + proof, or a high quality printing press) may produce good profiles + with + 1000 to 2000 test points. Well behaved RGB devices such as CRT + monitors + may need only a few + hundred points, if a shaper/matrix type profile is to be produced, + while pseudo RGB printers, or other RGB devices that a CLUT type + profile may be used + with, should probably choose somewhere between 500 and 3000 patches. + For 'N' color profile creation, + 3000 or more test points should probably be used.
+
+ The -v flag turns on extra verbosity when + generating patch values. Extra diagnostics and verbosity may be + available if a parameter is provided with a value greater than 1.
+
+ The -d parameter sets the colorspace the + test + values will be generated in. Video gray space is assumed to be an + additive space, where a zero device value will be black, and a + maximum + device value will be white. A print gray space is assumed to be a + subtractive space, + in which a zero device value will be white, and a maximum device + value + will + be black. If no colorspace is specified, subtractive CMYK is assumed + as + a default.
+
+ The -D parameter modifies the colorspace + set + by -d by allowing + individual + colorants to be added or subtracted from the colorspace.
+
+ The -G flag changes the Incremental Far + Point + Distribution + algorithm from fast to good mode. Fast mode uses a limited number of + iterations to optimize the patch locations, while good mode strives + for + a more even patch distribution by using more iterations.
+
+ The composition of the test patches is controlled by the following + flags and parameters:
+
+ The -e parameter sets the number of white + colored test patches, defaulting to 4 if the -e flag isn't used. The + white patches are usually very important in establishing white point + that the ICC data is made relative to, so it improves robustness to + use + more than a + single point.
+
+ The -s parameter sets the number of patches + in a set of per colorant wedges. The steps are evenly spaced in + device + space by default, and the total number of test patches will be the + number of + colorants + times the value specified with the -s flag. If the -p parameter is provided, then, + then the steps will be distributed according to the power value. + e.g. + the option -s 5 will + generate + steps at 0.0 0.25 0.5 0.75 and 1.0, while the option -s 5 -p 2.0 will generate steps + at + 0.0 + 0.0625 0.25 0.5625 and 1.0. By default, no per colorant + test wedge values are generated. When creating a test chart for a + device + that will be used as a source colorspace, it is often useful to + generated + some per colorant wedge values.
+
+ The -g parameter sets the number of patches + in a set of combined (nominally gray) wedges. This will typically be + equal RGB or CMY values, and by default will be equally spaced steps + in + device + space. If the -p parameter + is + provided, then, + then the steps will be distributed according to the power value. + e.g. + the option -g 5 + will generate steps at 0.0 0.25 0.5 0.75 and 1.0, while the option -g 5 -p 2.0 will generate steps + at + 0.0 + 0.0625 0.25 0.5625 and 1.0. By + default, no gray combination values are generated. When creating a + test + chart for a device that will be used as a source colorspace, it is + often + useful to generated some per colorant wedge values.
+
+ The -m parameter sets the edge size of the + multidimensional grid of test values. The total number of patches of + this type will be the -m parameter value to the power of the number + of + colorants. The grid steps are evenly spaced in device space by + default, + but if the -p parameter is + provided, then, + then the steps will be distributed according to the power value. + e.g. + the option -m 5 + will generate steps at 0.0 0.25 0.5 0.75 and 1.0, while the option -m 5 -p 2.0 will generate steps + at + 0.0 + 0.0625 0.25 0.5625 and 1.0. By + default, all the device primary color combinations that fall within + the + ink limit are generated..
+
+ The behavior of the -e, -s, -g and -m + flags, is not to duplicate test values already created by a previous + type.
+
+ The -f parameter sets the number of full + spread test patches. Full spread patches are distributed according + to + the default or chosen algorithm. The default algorithm will optimize + the point locations to minimize the distance from any point in + device + space, to the nearest + sample point. This is called Optimized Farthest Point Sampling + (OFPS) . + This can be overridden by specifying the -t. -r, -R, + -q, + -i or -I flags. If the default OFPS algorithm is used, then + adaptive + test + point distribution can be fully enabled by supplying a previous or + typical profile with the -c + option. The total number patches specified will + include any + patches + generated using the -e, -s, -g and -m + flags (i.e. + full spread patches will be added to bring the total number of + patches + including + those generated using the -e, -s, -g and -m + flags + up to the specified number). When there are more than four device + channels, + the full spread distribution algorithm can't deal with so many + dimensions, + and targen falls back on an incremental far point + distribution + algorithm + by default, that doesn't generate such evenly spread points. This + behaviour + can be forced using the -t flag. A table + of useful total patch counts for different paper sizes is shown + below. + Note that it's occasionally the case that the OFPS algorithm will + fail + to complete, or make very slow progress if the -c profile is poor, non-smooth, + or + has unusual behaviour. In these cases a different algorithm should + be + chosen (ie. -Q or -I), or perhaps a smoother or + lower + resolution ("quality") previous profile may overcome the problem.
+
+ The -t flag overrides the default full + spread + test patch algorithm, and makes use of the Incremental Far Point + Distribution + algorithm, which incrementally searches for test points that are as + far + away + as possible from any existing points. This is used as the default + for + dimensions + higher than 4.
+
+ The -r flag overrides the default full + spread + test patch algorithm, and chooses test points with an even random + distribution in device space.
+
+ The -R flag overrides the default full + spread + test patch algorithm, and chooses test points with an even random + distribution in perceptual space.
+
+ The -q flag overrides the default full + spread + test patch algorithm, and chooses test points with a quasi-random, + space filling distribution in device space.
+
+ The -Q flag overrides the default full + spread + test patch algorithm, and chooses test points with a quasi-random, + space filling distribution in perceptual space.
+
+ The -i flag overrides the default full + spread + test patch algorithm, and chooses test points with body centered + cubic + distribution in device space.
+
+ The -I flag overrides the default full + spread + test patch algorithm, and chooses test points with body centered + cubic + distribution in perceptual space.
+
+ The -a angle parameter sets the + overall + angle that the body centered grid distribution has.
+
+ The -A adaptation parameter sets + the + degree of adaptation to the known device characteristics, used by + the + default full spread OFPS algorithm. A profile + should be provided using the -c + parameter if adaptation + is set above a low level. By + default the adaptation is 0.1 (low), and 1.0 (maximum) if -c profile is provided, but + these + defaults can be overridden using this option. For instance, if the -c profile doesn't represent the + device behavior very well, a lower adaption than 1.0 might be + appropriate.
+
+ The -l flag and parameter sets a total ink + limit (Total + Area Coverage or TAC), which is adhered to for all the generated + points. It is generally good practice to set a test chart ink limit + at + least 10% higher than the ink limit that will be applied when making + the resulting profile. In the case of device cube points, this can + generate extra test + values that lie at the ink limit boundary. For gray wedge values, + any + that exceed the ink limit are omitted. Full spread test values are + all + generated to lie + within the ink limit. Although it doesn't make much sense, this + parameter has an affect on additive device spaces (such as RGB), but + should not normally be used with such devices. The total ink limit + value will be written to the + .ti1 file, and carried through automatically to the .ti3 file, so + that + it + can be used during profile creation. If a profile is provided using + the + -c flag, then this will be + used + to estimate an ink limit, if none is provided with the -l flag. Ink limits are, as far + as + possible, always in final calibrated device values, and the + calibration + curves from the profile provided to the -c flag will be used to estimate the + equivalent limit in the underlying pre-calibration device space + values + that targen creates.
+
+ The -p flag and parameter sets a power-like + value + applied to all of the device values after they are generated, the +spacer +colors. +This +can +be +useful +in + creating calibration charts for + very non-linearly behaved devices. A value greater than 1.0 will + cause + a tighter spacing of test values near device value 0.0, while a + value + less than 1.0 will cause a tighter spacing near device value 1.0. printcal will recommend a + power-like + value if the verbose option is used. [ Note + that for Print RGB space this + is reversed, since internally a Print RGB space is treated as a CMY + space. ]. Note that the + device + model used to create the expected patch values will not take into + account the applied power, nor will the more complex full spread + algorithms correctly take into account the power in generating + values + up to the ink limits. (A power-like function is used, to avoid the + excessive compression that a real power function would apply).
+
+ The -c flag and parameter is used to + specify + an ICC or MPP pre-conditioning profile, for + estimating perceptual distances and colorspace curvature, used in + optimizing the full spread test point placement,or in creating + perceptualy spaced distributions. Normally a previous + profile for this or a similar device will be used, or a simpler, + preliminary profile will be created and used. If no such profile is + specified, a default device space model is used. Note that this + will only have an effect if an algorithm that uses perceptual + placement (such as -R, -Q, -I + or the default OFPS with an + -A value > 0.0) is being + used.
+
+ The -N emphasis parameter allows changing + the + degree to which the patch distribution should emphasise the neutral + axis. Since the neutral axis is regarded as the most visually + critical + are of the color space, it can help maximize the quality of the + resulting profile to place more measurement patches in this region. + This emphasis is only effective for perceptual patch distributions, + and + for the default OFPS distribution if the adaptation + parameter is set to a high value. It is also most effective when a pre-conditioning profile is provided, since this is + the + only way that neutral can be determined. The default value of 0.5 + provides an affect about twice the emphasis of the CIE94 Delta E + formula.
+
+ The -F flag and parameters is used to + define + an L*a*b* sphere to filter the test points through. Only test points + within the sphere (defined by it's center and radius) will be + written + to the .ti1 file. This can be good for targeting supplemental test + points at a troublesome area of a device. The accuracy of the L*a*b* + target will be best when the -c + option is used to specify a reasonably accurate profile for the + device. + Note that the actual number of points generated can be hard to + predict, + and will depend on the type of generation used. All means of + generating + points except the -f N & -r, -R and -q will generate a smaller + number of test points than expected. If the -f N & -r, -R and -q + methods are used, then the target number of points will be achieved. + For this reason, the -f N -q method is probably the easiest to use.
+
+ The -w flag causes a diagnostic VRML .wrl file to be created, in + which the test points are plotted as small spheres in L*a*b* + colorspace. Note that for a CMYK device, the point spacing may seem + strange, since the extra K dimension is compressed into the 3 + dimensional L*a*b* space. If the -W flag is given, the plot will + be + in device space, with only the first 3 dimensions of each point + being + plotted.
+
+ The final parameter on the command line is the + base + filename for the .ti1 output + file. targen will add the .ti1 extension automatically.
+
+ Some typical total patch number/paper size combinations are shown + below. These "magic" numbers are found by using printtarg to compute the row length and + number of rows, and then adjusting the total number of patches to + fill + the last row or paper size, in an iterative fashion.
+
+      Size (mm/Standard Name), +   + No. Patches
+
+ DTP20:
+
+       1 x A4        540
+       2 x A4       1080
+       3 x A4     +   1620
+       4 x A4    +    2160
+
+       1 x Letter    570
+       2 x Letter   1140
+       3 x Letter   1710
+       4 x Letter   2280
+
+ DTP 22:
+
+       1 x A4        782
+       2 x A4       1564
+
+       1 x Letter    736
+       2 x Letter   1472
+
+   DTP41:
+
+       1 x A4           +   +   +     375
+       2 x A4         +     +   +     750
+       3 x A4         +     +   +    1125
+       4 x A4         +     +   +    1500
+
+       1 x Letter           +   +   345
+       2 x Letter           +     + 690
+       3 x Letter           +    + 1035
+       4 x Letter           +    + 1380
+
+       1 x A3      +   +            836
+       2 x A3      +   +           1672
+
+       1 x 11x17           +    780
+       2 x 11x17           +   1560
+
+
+   DTP51:
+
+       1 x A4           +   +   +     266
+       2 x A4         +     +   +     532
+       3 x A4         +     +   +     798
+       4 x A4         +     +   +    1064
+
+       1 x Letter           +    + 252
+       2 x Letter           +    + 504
+       3 x Letter           +    + 756
+       4 x Letter           +   1008
+
+       1 x A3      +   +           580
+       2 x A3      +   +          1160
+
+       1 x 11x17           +   570
+       2 x 11x17         +    + 1140
+
+   SpectroScan with square patches:
+
+       1 x A4R       1014
+       2 x A4R       2028
+       3 x A4R     +   3042
+       4 x A4R    +    4056
+
+       1 x LetterR    999
+       2 x LetterR   1998
+       3 x LetterR   2997
+       4 x LetterR   3996
+
+   SpectroScan with hexagonal patches:
+
+       1 x A4R       1170
+       2 x A4R       2340
+       3 x A4R     +   3510
+       4 x A4R    +    4680
+
+       1 x LetterR   1092
+       2 x LetterR   2184
+       3 x LetterR   3276
+       4 x LetterR   4368
+
+   Eye-One Pro:
+
+       1 x A4        441
+       2 x A4        882
+       3 x A4     +   1323
+       4 x A4    +    1764
+
+       1 x Letter    462
+       2 x Letter    924
+       3 x Letter   1386
+       4 x Letter   1848
+
+   ColorMunki:
+
+       1 x A4     +      90
+       2 x A4         180
+       3 x A4     +     270
+       4 x A4    +      360
+
+       1 x Letter      98
+       2 x Letter     196
+       3 x Letter     294
+       4 x Letter     392
+
+   ColorMunki -h:
+
+       1 x A4        210
+       2 x A4        420
+       3 x A4     +    630
+       4 x A4    +     840
+
+       1 x Letter    196
+       2 x Letter    392
+       3 x Letter    588
+       4 x Letter    784
+
+   Scanner (printtarg with -iSS -s options):
+
+        1 x A4R      1014
+        2 x A4R      2028
+        3 x A4R      3042
+        4 x A4R      4056
+
+        1 x LetterR   962
+        2 x LetterR  1924
+        3 x LetterR  2886
+        4 x LetterR  3848
+        
+
+
+
+
+
+
+
+ + diff --git a/doc/ti3_format.html b/doc/ti3_format.html new file mode 100644 index 0000000..c42a124 --- /dev/null +++ b/doc/ti3_format.html @@ -0,0 +1,311 @@ + + + + Target Information 3 Format File (.ti3) + + + + +

Description of the .ti3 format

+ This is an ASCII text, CGATS, + Argyll specific format, used to hold device value and CIE/Spectral + value pairs, the raw information needed to create device profiles. + This file is typically created using the chartread dispread, filmread, + scanin, + fakeread or one of the conversion tools such as cb2ti3, kodak2ti3, + txt2ti3.
+
+ 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 CTI3 + is used to avoid confusion with standard ANSI or CGATS files.
+
+ The .ti3 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 .ti3 file contains only one table, the table containing + the colorimetric information. The exception is for a display in + which a set of RAMDAC values (most likely the result of display + calibration, or simply the video LUT (RAMDAC) values present in the + display when the test values were read) are recorded in a second + table.
+
+
+ The first table contains the following:
+
+ The file identifier (First 7 characters) shall be CTI3.
+
+ 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 to the profile program what type of device the color + information is from.
+
+ An "OUTPUT" type device may + have a TOTAL_INK_LIMIT + keyword that has a numeric value indicating the maximum sum of the + device channel values as a percentage (T.A.C.), used in creating the + test chart. This will be used by the profiler as a value indicating + what the valid device gamut is, and what total ink limit should be + used in creating the profile tables.
+
+ A "DISPLAY" type device may + have a LUMINANCE_XYZ_CDM2 + keyword that contains the absolute XYZ value of white in candelas + per meter squared, e.g. "112.334770 + + 119.657745 121.474236".
+
+
A display device may also have a NORMALIZED_TO_Y_100 keyword that must have a value + of "NO" or "YES", to indicate whether the + CIE values have been normalised so that the largest has a Y value of + 100. If this is a display type device and there is no NORMALIZED_TO_Y_100 keyword, + then it can be assumed that the value are normalized to Y = 100. If the values are + normalized to Y = 100, then the absolute values can be restored by + multiplying the XYZ values by the LUMINANCE_XYZ_CDM2 + Y value and dividing by 100.
+
+ There may be a keyword TARGET_INSTRUMENT + which will identify the instrument used to read the test values. + This is used by the profiling program to determine the spectral + characteristics of the instrument illuminant if Fluorescent Whitener + Compensation is desired. The value shall be one of:
+
+     "Xrite DTP20"
+
    "Xrite DTP22"
+
    "Xrite DTP41"
+
    "Xrite DTP51"
+
    "Xrite DTP92"
+
    "Xrite DTP94"
+
   "GretagMacbeth Spectrolino"
+
    "GretagMacbeth SpectroScan"
+
    "GretagMacbeth SpectroScanT"
+
    "Spectrocam"
+
    "GretagMacbeth i1 Display 1"
+
    "GretagMacbeth i1 Display 2"
+
    "Xrite i1 DisplayPro, ColorMunki Display"
+
    "GretagMacbeth i1 Monitor"
+
    "GretagMacbeth i1 Pro"
+
    "X-Rite i1 Pro 2"
+
    "X-Rite ColorMunki"
+
    "Colorimtre HCFR"
+
    "ColorVision Spyder2"
+
    "Datacolor Spyder3"
+
    "Datacolor Spyder4"
+
    "GretagMacbeth Huey"
+
    "ColorMunki Smile"
+
    "Hughski ColorHug"
+
+ All instruments except the Spectrocam are assumed to have an "A" + type illuminant (incandescent lamp of  2850 degrees Kelvin.)
+
+ There may be a INSTRUMENT_TYPE_SPECTRAL + keyword that must have a value of "NO" + or "YES", to indicate + whether the instrument is based on spectral measurement or not.
+
+ There may be a DISPLAY_TYPE_REFRESH + keyword that must have a value of "NO" + or "YES", to indicate + whether the instrument was used in a display refresh mode during + measurement.
+
+ There may be keywords with associated values SINGLE_DIM_STEPS, COMP_GREY_STEPS, MULTI_DIM_STEPS or FULL_SPREAD_PATCHES, that + document the composition of the test chart patches.
+
+ There shall be a keyword COLOR_REP + that has a value that indicates what colorspaces the test values + connect. The colorspaces shall be encoded with one  or two + letters per component, and the two color spaces shall then separated + by an _ (underscore) character. For output and + display devices, the device space shall come first, followed by the + PCS space. For an input device, the PCS shall come first, followed + by the device space. The PCS space shall be either XYZ space, + indicated by XYZ, or D50 + while point L*a*b* space, indicated by LAB. The device spaces shall use the following + letter encoding:
+
+     +Cyan + +          +                + + C
+     Magenta           +           M
+     Yellow     +                   + + Y
+     Black    +                      + + K
+     Orange    +                   + + O
+     Red +                           + + R
+     Green      +                   + + G
+     Blue       +                     + + B
+     White   +              +          W
+     Light Cyan +                  + + c
+     Light + Magenta             + + m
+     Light + Yellow               + + y
+     Light + Black                 + + k
+     Medium Cyan  +            2c
+     Medium Magenta +        2m
+     Medium Yellow +          2y
+     Medium Black +            2k
+     Light Light Black        1k
+
+ There may be an a previx i + preceeding the device space letter encoding, indicating that + although the space appears to be an additive space, it is in fact a + subtractive device.
+
+ Typical values might be: "RGB_XYZ" + or "RGB_LAB" for an RGB + display, "iRGB_XYZ" or "iRGB_LAB" for an RGB printer, "CMYK_XYZ" for a printer, "XYZ_RGB" for an RGB scanner.
+
+ If spectral values are going to be included in the file, the + following keywords and values shall be used:
+
+   SPECTRAL_BANDS shall + contain the number of spectral bands in the readings, e.g. "36".
+   SPECTRAL_START_NM + shall contain the wavelength in nanometers of the first band, e.g. "380.0".
+   SPECTRAL_END_NM + shall contain the wavelength in nanometers of the last band, e.g. "730.0".
+
+ The NUMBER_OF_FIELDS + keyword shall have a value that indicates the number of fields in + each data set, e.g. 43 (as + per CGATS).
+
+ The start of the declaration of the fields shall be marked by the BEGIN_DATA_FORMAT keyword (as + per CGATS).
+ Then shall follow the names of the fields. Standard CGATS field + names such as:
+
+  SAMPLE_ID, RGB_R, RGB_G, RGB_B, CMYK_C, CMYK_M, CMYK_Y, CMYK_K, XYZ_X, XYZ_Y, XYZ_Z, LAB_L, LAB_A or LAB_B
+
+ shall be used where appropriate. Other device fields shall use the + appropriate pattern, e.g. CMYKOG_G + etc. Spectral band values shall be named SPEC_XXX, where XXX + is the nearest integer values of the number of nanometers of the + band.
+
+ Optional patch location information shall use the  SAMPLE_LOC field and shall be of + quoted string type.
+
+ 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. 1000 (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 device values shall be percentages (e.g. values + from 0.0 to 100.0). XYZ values shall normalized to a Y value of + 100.0. L*a*b* values will have their normal range (L* 0.0 to 100.0, + a* and b* typically -128.0 to 128.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.
+
+ If a second table is present, and it is a display RAMDAC + calibration, printers or input devices per channel calibration + curves, and will be of the CAL file + format..
+
+ + diff --git a/doc/tiffgamut.html b/doc/tiffgamut.html new file mode 100644 index 0000000..bc63ce7 --- /dev/null +++ b/doc/tiffgamut.html @@ -0,0 +1,357 @@ + + + + tiffgamut + + + + +

xicc/tiffgamut

+

Summary

+ Create a gamut file or VRML file of the color gamut of the + contents of a set of TIFF or JPEG image.
+
+ tiffgamut allows creation of + gamut files from the pixel values in a + set of TIFF and/or JPEG raster images, as defined by an ICC profile, + in L*a*b* or + CIECAM02 + Jab + colorspace, and can also represent the gamut as a VRML file. This + can be used for visualizing and comparing the gamut of an image to + the + colorspace it is + in, or a colorspace it might get transformed into, and can also be + used + to create an image source gamut for use with + collink.
+
+ NOTE that if you are + creating + an image gamut suitable for use with the collink + -g or -G + flags, or colprof + -g, use the Jab appearance space intent for appearance space + gamut + mappings, and the same input viewing + conditions to be used in collink + or colprof + using + the -c flag, i.e. "tiffgamut -pj -cmt sRGB.icm image.tif"
+

Usage Summary

+ tiffgamut [-v level] + [profile.icm | embedded.tif/jpg] infile1.tif/jpg + [infile2.tif/jpg ...]
+  -v            + Verbose
+   + -d + sres       Surface + resolution details 1.0 - 50.0
+  -w            +emit + VRML .wrl file as well as CGATS .gam file
+  -n            +Don't + add VRML axes or white/black point
+  -k            +Add + markers for prim. & sec. "cusp" points
+  -f perc       Filter by + popularity, + perc = percent to use
+
 -i + intent     p = + perceptual, r = relative colorimetric,
+                +s + = saturation, a = absolute (default), d = profile default

+  -o + order      n = normal + (priority: lut > matrix > monochrome)
+                +r + = reverse (priority: monochrome > + matrix > lut)
+
 -p oride      l + = + Lab_PCS (default), j = CIECAM02 Appearance Jab
+  -c viewcond   + set + appearance mode and viewing conditions for CIECAM02,
+
               +either + an enumerated choice, or a parameter:value change
+
  +          pp - Practical Reflection + Print + (ISO-3664 P2)
+         +   + pe - Print evaluation environment (CIE 116-1995)
+
        +   + pc - Critical print evaluation environment (ISO-3664 P1)
+      +       mt - Monitor in typical work environment
+        +  +   mb - Monitor in bright work environment
+      +   +     md - Monitor in darkened work + environment
+      +   +     jm - Projector in dim environment
+      +   +     jd - Projector in dark environment
+       +     pcd - Photo CD - original scene + outdoors
+      +   +     ob - Original scene - Bright Outdoors
+      +   +     cx - Cut Sheet Transparencies on a viewing + box

+          +s:surround   + n = auto, a = average, m = dim, d = dark,
+                +  +      c = transparency (default average)
+          +w:X:Y:Z      + Adapted white point + as XYZ (default media white)
+          +w:x:y        + Adapted white point as + x, y
+          +a:adaptation + Adaptation luminance in + cd.m^2 + (default 50.0)
+          +b:background + Background % of image luminance (default 20)
+          l:scenewhite Scene + white in + cd.m^2 if surround = auto (default 250)
+
         +f:flare      + Flare + light % of image luminance (default 1)
+       +    + f:X:Y:Z      Flare color as + XYZ (default media white)
+          +f:x:y        + Flare color as x, y
+  -O outputfile Override the default output filename & + extension.
+

+

Usage Details and Discussion
+

+ The -v flag dumps out the ICC profile header information.
+
+ The -d parameter controls the level of detail displayed in + the + surface. The parameter roughly corresponds to a deltaE value, so + smaller + values + give greater detail. The default value is around 10, and is a good + place + to start. Small values may take a lot of time to generate, and will + produce + big files.
+
+ The -w flag causes a VRML file to be produced, as well as a + gamut file.
+
+ The -n flag suppresses the L*a*b* axes being created in + the + VRML.
+
+ The -k flag adds markers + for + each of the primary and secondary "cusp" points (Red, Yellow, Green, + Cyan, Blue & Magenta). No markers will be displayed if the cusps + cannot be determined.
+
+ The -f perc parameter turns on + filtering of + the raster colors. The colors from the image are clustered, and then + sorted according to popularity, and then the perc most common percentage of + colors are used to create the gamut surface. This may be useful in + creating a source gamut mapping surface that favors the important + colors within an image, and doesn't attempt to compress the color + reproduction in order to reproduce the little used colors. A value + of perc of 90 or 80 may be + a good place + to start. Note that the filtering is performed independently on each + raster image processed, with the final gamut being the union of all + the + filtered image gamuts.
+
+ The -i flag selects the intent transform used for a lut + based + profile. It also selects between relative and absolute colorimetric + for + non-lut base profiles. Note that anything other than colorimetric + may + not represent the + native capabilities of the device. The default intent will be + absolute + colorimetic for L*a*b* output, and CIECAM02 appearance for Jab + output.
+
+ An ICC profile is allowed to contain more than the minimum number of + elements or table needed to describe a certain transform, and may + contain redundant descriptions.  By default, LUT based table + information will be used first if present, followed by matrix/shaper + information, and only using monochrome + information if it is all that is present. The -o flag, + reverses + this + order.   
+
+ -p: By default the gamut + will + be created in L*a*b* colorspace. If  -pj is selected, then CIECAM02 + appearance space Jab will be used for the output, and the viewing + conditions will be taken into account. Jab space is what is normally + needed to be compatible with the default intents used in colprof.
+
Note that the CIECAM02 output space selection by default uses + the colorimetric transform of the profile resulting in the + appearance + of the native device, but that the perceptual or + saturation transforms may be used by selecting them using the -i parameter, which may give a + different result with some profiles. This may be desirable if an + image + is to be transformed through the perceptual or saturation tables of + a + profile as part of a link with an Argyll generated output profile, + since it will then represent the apparent gamut of the image when + subject to these tables. If the absolute colorimetric intent is + chosen + using -ia in combinations + with + -pj, then  Jab with + a fixed white reference is used, which emulates an absolute CIECAM02 + Jab + appearance space.
+
+ The -c parameter sets the + output space to CIECAM02 appearance Jab values, and also allows + choosing + a set of viewing conditions, either by choosing a typical viewing + environment, or controlling + particular viewing condition parameters. This is only functional if + an + ICC profile is provided.
+
+ The -O parameter allows the + output file name & extension to be specified independently of + the + last tiff/jpeg + filename. Note that the full filename must be specified, including + the + extension.
+
+ If the TIFF or JPEG files are in a device space (ie. RGB, CMYK + etc.), then it + is + necessary to supply an ICC profile to translate the device space + values + to a CIE space value such as L*a*b* or CIECAM02 Jab space for + creating + a gamut surface. For the ICC profile provided it is then possible to + select exactly what type of conversion is used. A TIFF or JPEGfile + with an + embedded ICC profile may be supplied as the profile argument - e.g. + to + get the gamut of a tiff file that contains an embedded profile use + something like:
+
+     tiffgamut image.tif image.tif
+
+ If a TIFF file is + already in a CIE space such as CIELab or ICCLab, then it is not + necessary to select an ICC profile,  although a PCS to PCS + colorspace profile may be chosen. All the TIFF and JPEG files + must be in the same colorspace.
+
+ One or more TIFF and/or JPEG files may be specified, and the gamut + is the union of + the gamuts of each file. This is useful for creating an image + specific + gamut mapping that can be applied to a set of images with consistent + results between the images. Note that the output gamut file name + will + by default be taken from the last TIFF or JPEG file specified, with + the .gam + extension added automatically. The -O + parameter will override this default.
+
+ NOTES
+
+ The white and black points put in the gamut are the colorspace white + and black points. For the purposes of latter gamut mapping, it is + assumed that the image should retain it's position within the + colorspace dynamic range. For an L*a*b* image, the values value + 100,0,0 + and 0,0,0 for white and black are assumed. An image in L*a*b* should + be + adjusted be neutral to, and sit within the dynamic range of those + white + and black points.
+
+
+
+
+
+ + diff --git a/doc/timage.html b/doc/timage.html new file mode 100644 index 0000000..2daed27 --- /dev/null +++ b/doc/timage.html @@ -0,0 +1,100 @@ + + + + timage + + + + +

render/timage

+

Summary

+Create TIFF test image, suitable for evaluating various color +transformations. By default a test image consisting of two hexagons and +a grey wedge is produced. The two hexagons are the white and black +corners of the RGB cube surface. This is useful in checking gamut +mapping behaviour applied to an RGB colorspace.
+
+RGB cube surface
+
+ An alternate rectangular "rainbow" representation of the surface +of an RGB +cube can also be created.
+
+RGB rectangular surface
+
+A third type is a set of stepped rectangles that explore the L*a*b* +space, useful for testing profiles B2A tables (-p 6):
+
+Lab steps image
+

Usage Summary

+usage: timage [-options] outfile.tif
+ -v           +Verbose
+ -t           +Generate rectangular boundary test chart
+ -p steps     Generate a colorspace step chart +with L* steps^2
+
 -r +res       Resolution +in DPI (default 200)
+ -s           +Smooth blend
+ -x           +16 bit output
+ -g +prop      Percentage towards grey +(default 0%)
+ outfile.tif  Profile +to check against

+

Usage Details and Discussion
+

+The -v flag increases verbosity.  
+
+The default behaviour is to create the two hexagon plus grey wedge test +image. If the -t flag is used, +the alternate single rectangular surface test image  is generated. +If the -p steps parameter is +given, than an L*a*b* test chart is generated.
+
+The dots per inch of the image can be set using the -r parameter. Increasing this, +increases the size and detail of the image.
+
+Normally the images are generated using linear blending of the RGB +values. If the -s flag is +used, a smoother blending is employed. This is most desirable when +generating the rectangular test image.
+
+Normally an 8 bit per color component image is generated. If the -x flag is use, a 16 bit per color +component image will be generated, giving smoother blends, particularly +if a higher resolution (DPI) image is created.
+
+The hexagon and surface test images are normally the surface colors of +the RGB colorspace +cube. If a percentage greater than 0% is given as an argument to the -g option, a test chart composed of +colors away from the RGB cube surface, towards the center grey point +will be generated. 100% will generate a completely grey image. Values +of 10, 20 to 50% are more usual.
+
+The L*a*b* step chart explores the range of L*a*b* values that are +handled by an L*a*b* PCS B2A table, with the L* stepping from 0 to 100 +in steps from the top left to the bottom right square, while the a* +values range from -127 to 127 left to right in each square, and the b* +values range from -127 to 127 bottom to top in each square.
+
+The last argument on the command line is the name of the TIFF file to +save the resulting image to.
+
+
+
+ + diff --git a/doc/txt2ti3.html b/doc/txt2ti3.html new file mode 100644 index 0000000..744a576 --- /dev/null +++ b/doc/txt2ti3.html @@ -0,0 +1,98 @@ + + + + txt2ti3 + + + + +

profile/txt2ti3

+

Summary

+Convert +Gretag/Logo/X-Rite or other CGATS format RGB or CMYK test chart results +into Argyll .ti3 +CGATS +format.  +

Usage Summary

+txt2ti3 [-v] [-l limit] +[-d] [devfile] infile [specfile] outfile
+
+-2       +     create a dummy .ti2 file as well.
+
-l limit      set ink +limit, 0 +- +400% (default max in file)
+-d            +Set type of device as Display, not Output
+-i            +Set type of device as Input, not Output
+
[devfile]     Input Device +CMYK +target file (typically file.txt)
+infile        +Input +CIE, Spectral or Device & Spectral file (typically file.txt)
+[specfile]    Input Spectral +file (typically file.txt)
+outbasefile   Base name for +output.ti3 and .ti2 +file
+
+

Usage Details and Discussion

+txt2ti3 takes the Gretag/Logo/X-Rite/etc. test chart +results, and converts them +into Argyll .ti3 CGATS files.
+It is quite common to find profile test chart data from various +standards bodies and industry organizations in one of these formats, +so it is +useful to be able to convert them for use with Argyll. ICC profiles +created using Gretag Profile Maker also commonly contain the test chart +results embedded in the profile, inside an ICC tag.
+
+A variety of different packaging of Gretag/Logo data can be accepted:
+
+1 source files, consisting of a combined device value and CIE +and/or spectral values.
+2 source files, consisting of  a file containing the device +values, and a file containing the CIE and/or spectral values.
+2 source files, consisting of a file containing the device values and +the CIE values, and a file containing the spectral values.
+3 source files, consisting of a file containing the device values, a +file containing the CIE values, and a file containing the spectral +values.
+
+X-Rite ColorPort seems to produce a single source file containing +combined device value and CIE +and/or spectral values.
+
+The Gretag/Logo test chart results format seem to change with each +minor release of Profile Maker, so this tool may not work in all +cases.
+
+The outbasefile is the base +of the output file(s), to which txt2ti3 will automatically append a +.ti3 and .ti2 extension.
+
+The input files may have data that is scaled to one of three levels: +1.0, 100.0 or 255.0, and txt2ti3 attempts to guess what the appropriate +range is, in order to scale to Argyll's standard range 0 .. 100.0.
+
+
+ + diff --git a/doc/ucmm.html b/doc/ucmm.html new file mode 100644 index 0000000..31d95cb --- /dev/null +++ b/doc/ucmm.html @@ -0,0 +1,122 @@ + + + + ucmm conventions and format. + + + + +

ucmm organization and conventions.
+

+ucmm (Unix micro Color Management Module) is a color management module +designed just to handle the necessary configuration needed to track the +installation and association of ICC profiles with Unix/Linux X11 +displays. It could be expanded at some point to also hold the +associations for other devices such as scanner and printers.
+
+It consists primarily of a small configuration database that associates +a display monitor (identified by its EDID or the X11 display name if an +EDID is not known) with an ICC Display profile.
+
+There are two configuration contexts, local +system and per user, +the latter taking +precedence when both are present.
+
+ucmm follows the XDG +Base Directory specifications for the location of the configuration +file and display profiles.
+
+For the local system context, +the ucmm configuration file is located at:
+
+      $XDG_CONFIG_DIRS/color.jcnf
+or   /etc/xdg/color.jcnf
+
+and display profiles are stored in
+
+      $XDG_DATA_DIRS/color/icc/devices/display/
+or   /usr/local/share/color/icc/devices/display/
+
+For per user contents, the +ucmm configuration file is located at:
+
+      $XDG_CONFIG_HOME/color.jcnf
+or   $HOME/.config/color.jcnf
+
+and display profiles are stored in
+
+      $XDG_DATA_HOME/color/icc/devices/display/
+or   $HOME/.local/share/color/icc/devices/display/
+
+The configuration format of the color.jcnf +files uses the JSON JavaScript Object +Notation, +a lightweight data-interchange format.
+
+A hierarchy of members is used to represent a hierarchical key/value +pair format.
+
+The monitor to ICC profile association is organized as independent +records, having the form:
+
key   +                                            +value
+
+  devices/display/N/EDID   +           +     Monitor EDID  in upper case Hexadecimal
+  devices/display/N/ICC_PROFILE   +   Full path to the associated ICC profile
+
+or
+
+  devices/display/N/NAME +             +    X11 display name
+  devices/display/N/ICC_PROFILE   +   Full path to the associated ICC profile
+
+where N is a number starting +from 1, that distinguishes each record, but otherwise has no special +meaning.
+
+The first form is the preferred form, since it associates the profile +with the actual display, and therefore it is possible to have the +profile track the display, no matter which X11 screen it is plugged +into. The second form is a fallback, for situations in which a monitor +does not have an EDID, or where the X11 server is configured in a way +that does not permit access to the EDID (i.e.., on a second screen when +Xinerama is running).
+
+The following is an example of a per user color.jcnf:
+
+{
+  "devices": {
+    "display": {
+      "1": {
+        "EDID": +"0x00FFFFFFFFFFFF0034A1731751720000150901010C1F17CDE8A11E9E554A982712474FA4CE0045598180315961590101010101010101000000FE004D6F6E69746F720A2020202020000000FE004D6F6E69746F720A2020202020000000FE004D6F6E69746F720A2020202020000000FE004D6F6E69746F720A2020202020003D",
+        "ICC_PROFILE": +"/home/graeme/.local/share/color/devices/display/mon1.icc"
+      },
+      "2": {
+        "NAME": ":0.1",
+        "ICC_PROFILE": +"/home/graeme/.local/share/color/devices/display/mon2.icc"
+      }
+    }
+  }
+}
+
+

Implementation

+The configuration file format is in the Argyll +source in the jcnf sub directories, and the ucmm functionality in the +ucmm sub directories, and is made available under an MIT like free use +license. + + diff --git a/doc/verify.html b/doc/verify.html new file mode 100644 index 0000000..bd4a953 --- /dev/null +++ b/doc/verify.html @@ -0,0 +1,186 @@ + + + + verify + + + + +

profile/verify

+

Summary

+ Verify a color transform by comparing CIE measurement values from + two test charts. The charts can be any suitably formatted CGATS or .ti3 format that contains + corresponding XYZ, Lab or spectral values. The overall average and + worst case delta E will be reported, as well as the worst 10% and + best 90% of values.
+

Usage Summary

+ verify  [-options] target.ti3 measured.ti3
+  -v           +  + +   Verbose - print each patch value
+  -n               +Normalise + + each files reading to white Y
+  -N               +Normalise + + each files reading to white XYZ
+  -D               +Use + + D50 100.0 as L*a*b* white reference
+  -c           +  + +   Show CIE94 delta E values
+  -k           +     Show CIEDE2000 delta E values
+  -s           +     Sort patch value by error
+  -w           +  + +   create VRML vector visualisation (measured.wrl)
+
 -W +           +     create VRML marker & vector visualisation + (measured.wrl)
+
 -x           +  + +   Use VRML axes
+  
-f + [illum]       Use Fluorescent + Whitening Agent compensation [opt. simulated inst. illum.:
+                    + + M0, M1, M2, A, C, D50 (def.), D50M2, D65, F5, F8, F10 or + file.sp]
+  -i illum         + Choose illuminant for computation of CIE XYZ from spectral + data & FWA:
+                    + + A, C, D50 (def.), D50M2, D65, F5, F8, F10 or file.sp
+  -o observ        Choose + CIE Observer for spectral data:
+
                   + + 1931_2 (def.), 1964_10, S&B + 1955_2, shaw, J&V 1978_2
+  target.ti3       Target or + reference patch data file
+  measured.ti3     Measured or actual patch + data file

+

Usage Details and Discussion

+ verify provides a way of verifying how well a color + transformation (such a proofing) performs.
+
+ The -v flag prints out extra information during the + checking, and prints each patch value, rather than just a summary.
+
+ The -n flag causes the two sets of values to be normalized + to the Y value of white for each set before comparison. White is + assumed to be the patch with the largest Y value.
+
+ The -N flag causes the two sets of values to be normalized + to the XYZ of white for each set before comparison. White is assumed + to be the patch with the largest Y value.
+
+ The -D flag causes the white reference point for the + conversion to L*a*b* to be D50 with a Y value of 100%. By default + the sample with the largest Y value is found, and the L*a*b* white + reference scaled to have that Y value. This allows sensible delta E + values when comparing absolute color values, such as those from + emission or display measurements.
+
+ The -c option causes the differences between the test values + and the profile prediction of the color for each device value to be + displayed in CIE94 delta E, rather than plain L*a*b* delta E. CIE94 + delta E has a closer correspondence with perceived color differences + than the default CIE76 delta E values.
+
+ The -k option causes the differences between the test values + and the profile prediction of the color for each device value to be + displayed in CIEDE2000 delta E, rather than plain L*a*b* delta E. + CIEDE2000 delta E has a closer correspondence with perceived color + differences than either CIE76 or CIE94 delta E values.
+
+ If the -s flag is used in combination with the -v + flag, then the test point by test point output will be sorted from + worst to best.
+
+ The -w creates a VRML + 3D visualization of the differences between the test points in D50 + L*a*b* space, each difference being shown as a line vector. If the -W flag is used, then the target + and measured values will also be marked by a small sphere. This can + be used to visualize the placement of values in a .ti3 (or other + CGATS file) by using the same file for both "target" and "measured" + values.
+
+ The -x flag adds Lab axes to the VRML output.
+
+ The -f flag enables Fluorescent Whitening Agent (FWA) + compensation. This only works if spectral data is available and, the + instrument is not UV filtered.  FWA compensation adjusts the + spectral samples so that they appear to have been measured using an + illuminant that has a different level of Ultra Violet to the one the + instrument actually used in the measurement. The optional + illumination parameter allows specifying a standard or custom + illumination spectrum to be used as the similated instrument + illuminant, overriding the default D50 or CIE computation + illuminant used for FWA (see -i below). See colprof -f for a fuller explanation. The + same value should be used as was used during the creation of the + profile.
+
+ The -i flag allows specifying a standard or custom + illumination spectrum, applied to the spectral test point values to + compute CIE tristimulus values. A, D50, D50M2, + D65, F5, F8, F10 are a selection of + standard illuminant spectrums, with D50 being the default. + If a filename is specified instead, it will be assumed to be an + Argyll specific .sp spectrum + file. If FWA compensation is used during measurement, this + illuminant will be used by default as the simulated instrument + illuminant. The same value should be used as was used during the + creation of the profile.
+
+ The -o flag allows specifying a tristimulus observer, and is + used to compute PCS (Profile Connection Space) tristimulus values. + The following choices are available:
+   1931_2 selects the standard CIE 1931 2 degree + observer. The default.
+   1964_10 selects the standard CIE 1964 10 degree + observer.
+   1955_2 selects the Stiles and Birch 1955 2 degree + observer
+   1978_2 selects the Judd and Voss 1978 2 degree + observer
+   shaw selects the Shaw and Fairchild 1997 2 degree + observer
+
+ The same parameter value should be used as was used during the + creation of the profile.
+
+ If both CIE and spectral values are present in the input files, the + CIE values will be used by default. Using the -i, -o or -f + flag will force spectral values to be used. The the -i, -o or -f + flags will apply to both the target and measured input files.
+
+
+
+
+
+
+ + diff --git a/doc/viewgam.html b/doc/viewgam.html new file mode 100644 index 0000000..0bf5c04 --- /dev/null +++ b/doc/viewgam.html @@ -0,0 +1,125 @@ + + + + viewgam + + + + +

gamut/viewgam

+

Summary

+Convert one or more gamuts into a VRML +3D visualization +file.  This allows visual comparison of several gamut surfaces.
+Also allows creating the intersection (overlap) between two gamuts. +This is useful in measuring and visualizing the coverage of one gamut +of another.
+

Usage
+

+viewgam { [-c color] [-t +trans] [-w|s] infile.gam } ... outfile.wrl
+                +For each input gamut file:
+ -c color        +Color +to +make gamut, +r = red, g = green, b = blue
+                +   +c = cyan, m = magenta, y = yellow, w = white
+                   +n = natural color
+ -t trans        +Set +transparency +from 0.0 (opaque) to 1.0 (invisible)
+ -w              +Show as a wireframe
+ -s              +Show as a solid surface
+  infile.gam      Name +of infile.gam file
+
+ -n             +Don't add Lab axes
+ -i             Compute +and print intersecting volume of first 2 gamuts
+ -I isect.gam   Same as -i, but save intersection gamut +to isect.gam
+
 outfile.wrl Name of output +outfile.wrl file
+
+

Usage Details and Discussion

+viewgam creates a VRML file that allows the  viewing and +comparing +of multiple gamut files by representing them as solid surfaces, +wireframes, +etc. It takes as input a list of gamut files, each file preceded by any +options that are to apply to the display of  that particular +gamut. +
+
+The options that can be specified for each input gamut are:
+
+-c color allows the color of the surface or wireframe to +be +specified. Any of a number of predefined colors (red, green, blue, +cyan, +magenta, yellow, white) can be used, as well as allowing the color to +reflect +the natural color of that point in the colorspace.
+
+-t trans allows the transparency of the surface  to +be +specified. A value of 0.2 might be a good place to start. Using +transparency +generally leads to a slower display than the default opaque surface +treatment, but can make it possible to see within a solid gamut surface.
+
+-w forces the gamut surface to be rendered as a wireframe.
+
+-s forces the gamut surface to be rendered as a solid surface.
+
+By default, the first gamut is treated as a solid with natural +coloring, +with the second and subsequent gamuts being wireframes with colors of +white, +red, cyan, yellow, green and blue, with decreasing visibility.
+
+The -n flag turns off display of the default L*a*b* axes in the +output.
+
+The -i flag computes the +intersecting volume of the first two gamuts (in cubic color units, +usually L*a*b*), as well as the volumes of the two gamuts and the +percentage the intersection is of the two gamuts. This is a useful +measure of the coverage one gamut has of another. If -I is used, then as well as printing +the volume, the intersecting gamut will be saved to the isect.gam file.
+
+The final argument is the name of the VRML file to save the resulting +composite +3D visualization file to.
+
+ + diff --git a/doc/xicclu.html b/doc/xicclu.html new file mode 100644 index 0000000..8377c69 --- /dev/null +++ b/doc/xicclu.html @@ -0,0 +1,551 @@ + + + + xicclu + + + + +

xicc/xicclu 

+

Summary 
+

+Lookup individual color values forward or inverted though an ICC +profile table. xicclu is the analogue of the icclib tool icclu, but expands the capability to reverse +lookup the Lut tables, and displaying PCS values in CIECAM02 Jab space. +xicclu +can also be used to plot the device value composition down the neutral +axis, +for device profiles.
+

Usage Summary

xicclu [-options] profile
+ -v level       +Verbosity level 0 - 2 (default = 1)
+ -g           +  Plot slice instead of looking colors up. (Default white to black)
-G s:L:a:b     Override +plot slice start with Lab or Jab co-ordinate
-G e:L:a:b     Override +plot slice end with Lab or Jab co-ordinate
+
 -f function    f = forward, b = +backwards, g = gamut, p = preview
+                +if += inverted forward, ib = inverted backwards
+ -i intent      a = +absolute, r = relative colorimetric,
+                +
p = +perceptual, s += +saturation
+ -o order       n += normal (priority: lut > matrix > monochrome)
+                +r += reverse (priority: monochrome > matrix > +lut)
+ -p oride       x += XYZ_PCS, X = XYZ * 100, l = Lab_PCS, L = LCh, y = Yxy,
+                j = CIECAM02 +Appearance Jab, J = CIECAM02 Appearance JCh
+
 -s scale       +Scale device range 0.0 - scale rather than 0.0 - 1.0
+ -k [zhxrlv]    Black generation: z += zero K,
+               +   +h = 0.5 K, x = max K, r = ramp K (def.)
+               +   +l = extra PCS input is portion of K locus
+               +   +v = extra PCS input is K target value
+ -k p stle stpo enpo enle +shape
+               +   +stle: K level at White 0.0 - 1.0
+               +   +stpo: start point of transition Wh 0.0 - Bk 1.0
+               +   +enpo: End point of transition Wh 0.0 - Bk 1.0
+               +   +enle: K level at Black 0.0 - 1.0
+               +   +shape: 1.0 = straight, 0.0-1.0 concave, 1.0-2.0 +convex
+ -k q stle0 stpo0 enpo0 +enle0 shape0 stle2 stpo2 +enpo2 enle2 shape2
+                +Transfer +extra PCS input to dual curve limits
+ -K parameters  Same as -k, but target is K +locus rather than K value itself
+ -l tlimit      set +total ink limit, 0 - 400% (estimate by default)
+ -L klimit      set +black ink limit, 0 - 100% (estimate by default)
+ -a             +show +actual target values if clipped
-b             +use +CAM Jab for clipping
+
 -m +            +merge output processing into clut
+ -c viewcond    set viewing +conditions +for CIECAM02,
+  
            +   +either an enumerated choice, or a parameter:value change
+
  +         pp - Practical Reflection Print +(ISO-3664 P2)
+        +   +pe - Print evaluation environment (CIE 116-1995)
+
        +   +pc - Critical print evaluation environment (ISO-3664 P1)
+     +      mt - Monitor in typical work environment
+       +  +  mb - Monitor in bright work environment
+       +    md - Monitor in darkened work +environment
+       +    jm - Projector in dim environment
+       +    jd - Projector in dark environment
+      +    pcd - Photo CD - original scene +outdoors
+       +    ob - Original scene - Bright Outdoors
+       +    cx - Cut Sheet Transparencies on a viewing box

+          +s:surround   +n = auto, a = average, m = dim, d = dark,
+               +  +      c = transparency (default average)
+          +w:X:Y:Z      +Adapted white point +as XYZ (default media white, Abs: D50)
+          +w:x:y        +Adapted white point as +x, y
+          +a:adaptation +Adaptation luminance in +cd.m^2 +(default 50.0)
+    +      b:background Background % +of image luminance (default 20)
+          +f:flare      +Flare +light % of image luminance (default 1)
+        +  +f:X:Y:Z      Flare color +as XYZ (default media white, Abs: D50)
+          +f:x:y        +Flare color as x, y
+
+  +inoutfile       The input +ICC profile
+
+    The colors to +be translated should be fed into +standard in,
+    one input +color per line, white space separated.
+    A line +starting with a # will be ignored.
+    A line not +starting with a number will terminate the +program.
+
+

Flags and Parameters

+ The -v parameter sets the level of verbosity. +Default is level 1, which repeats each input value, the colorspaces of +input and output, the type of conversion algorithm used, and if the +result was clipped. Level 2 adds prints extra information about the +profile before doing the conversions. Level 0 turns off all verbosity, +just outputting the results of each conversion. Use the latter to +capture batch output ready for further processing.
+
+The -g flag causes a plot of the device values +along a slice through the Lab or Jab colorspace, rather than allowing +the interactive looking up of color +values. By default this will be the neutral axis +from the white point to the black point, but the start and end can be +overridden using the -G +parameters. +This is useful in determining the existing black generation in a CMYK +profile, +or exploring the behavior of various black generation options using +the +-k parameters. The profile must be a device profile, and the PCS +must +be either Lab or Jab. The default plot is up the neutral axis is from +the white to +the black point (scale 0 to 100%), and shows the percentage of each +device colorant. To examine a profiles B2A table black +generation, +use the flag -fb to select the B2A table, or to invert the A2B +table, +and be able to explore black generation behavior, use the -fif +flag. +The appropriate intent can be selected with the -i flag, + as +can other flags appropriate to the function selected.  See example.
+
+The -G s:L:a:b +parameter overrides the plot slice start point of white, with some +other point specified in Lab or Jab Profile Connection Space. The +parameter must be a single string that combines s: with the three numbers separated +by the ':' character (no +spaces).
+
+The -G e:L:a:b +parameter overrides the plot slice end point of black, with some +other point specified in Lab or Jab Profile Connection Space. The +parameter must be a single string that combines s: with the three numbers separated +by the ':' character (no +spaces).
+
+ The -f flag selects which type of table or +conversion is to be used. In addition to the usual four tables that can +be accessed in a fully populated Lut based profile, two additional +options are available in xicclu. One is to invert the forward +table, and the other is to invert the backward table. For non Lut based +profiles, -fif is equivalent to -fb, and -fib is equivalent to -ff. +Note that the -fib combination may not be fully supported.
+
+ The -i flag selects the intent table used for +a lut based +profile. It also selects between relative and absolute colorimetric for +non-lut base profiles.
+
+ A profile is allowed to contain more than the minimum +number of elements or table needed to describe a certain transform, and +may contain redundant descriptions.  By default, Lut based table +information will be used first if present, followed by matrix/shaper +information, and only using monochrome information if it is all that is +present. The -o flag, reverses this order.   
+
+ Normally the native PCS (Profile Connection Space) of +a device or abstract profile is used, but the -p flag allows +this to be overridden: -px: +XYZ (scaled to 1.0), -pX: XYZ +scaled to 100, -pl: L*a*b*, -pL: LCh, -py: Yxy space, -pj: CIECAM02 appearance space Jab, +or -pJ: CIECAM02 appearance +space JCh.
+
Note that the CIECAM02 output space selection by default uses +the colorimetric table of the profile, but that the perceptual or +saturation tables may be used by selecting them using the -i parameter. If the absolute +colorimetric intent is chosen using -ia +in combinations with -pj, +then  Jab with +a fixed white reference is used, which emulates an absolute CIECAM02 +Jab +appearance space.
+
+ Usually device values are processed and displayed +using a normalized value range between 0.0 and 1.0 Sometimes other +systems scale them to some other range (such as 100 or 255) due to an +underlying binary representation. The -s +flag lets you input and display such data in its normal range. For +instance, if your device values have a range between 0 and 255, use -s 255.
+
+ When inverting a CMYK profile, (ie. using the -fif +flag), an input PCS value can have many possible CMYK solutions. To be +able to return a unique solution, a black level (or black inking rule) +should be chosen. The choice here reflect similar choices in black +generation available in other tools (eg. colprof, + collink), with the addition of two extra +options.
+
+ Possible arguments to the -k option are:
+
+ -kz selects minimum black (0.0)
+ -kh selects a black value of 0.5
+ -kx selects the maximum possible black (1.0)
+ -kr selects a linear black ramp, starting at minimum black for +highlight, and maximum black for shadow (equivalent to -kp 0 0 1 1 1). +This is the default.
+ -kl uses an extra (fourth) value entered after the input PCS +value, to select a black locus target between 0.0 and 1.0.
+ -kv uses an extra (fourth) value entered after the input PCS +value, to select a black value target value between 0.0 and 1.0.
+
+-k p stle stpo enpo enle shape  allows an +arbitrary black value ramp to be defined, consisting of a starting +value (stle) for highlights, a breakpoint L value (stpo) where it +starts to transition to the shadow level, an end breakpoint L (enpo) +where it flattens out again, and the finishing black level (enle) for +the shadows. There is also a curve parameter, that modifies the +transition from stle to enle to either be concave (ie.  the +transition starts gradually and and finished more abruptly) using +values 0.0-1.0, with 0.0 being most concave, or convex (the transition +starts more abruptly but finishes gradually), using values 1.0-2.0, +with 2.0 being the most convex.
+
+Typical black value generation curve with parameters something +like: -kp 0 .05 1 .9 .8
+
+          1.0 K   | +         enpo
+                 +|      +      _______  +enle
+                 +|      +     /
+                 +|     +     /
+                 +|      +   /
+                 +|      +  /
+           stle  +| ------/
+            +     +-------------------
+         0.0 K  +0.0    stpo        1.0
+               +White              +Black
+

+-k q stle0 stpo0 enpo0 enle0 shape0 stle2 stpo2 +enpo2 enle2 shape2 is a combination of the -kv and -kp +functionality, with the black being preserved in CMYK to CMYK linking, +with the output black constrained to be between the first and second +set of curve parameters.
+
+ -K parameters. +Any of the -k options above +can use the -K version, in +which rather than a black value target being defined by the inking +rule, a black locus +target is defined. For each lookup, the minimum possible black level +and the maximum possible black level is determined, the former +corresponding to a locus target of 0, and the latter corresponding to a +locus target of 1. For instance, at +the +white point, no black will be used in the output, even if the black +locus specifies a maximum (since the maximum amount of black that +can be used to print white is actually zero). Similarly, at the black +point, black may well be used, even if the black locus specifies +zero black (since a certain amount of black is needed to achieve the +desired density of color).
+
+ The -g flag can be used together with the -fif +flag, to plot +out the resulting black channel behaviour for various -k +or -K parameter +values.
+
+-l tlimit     Sets the +total ink limit (TAC, Total Area Coverage) for the CMYK inverse forward +lookup, as a total percentage from 0% to 400%. If none is provided, it +will be estimated from the profile relcolor B2A table. The ink limit +will be in final calibrated device values if the profile includes +calibration information.
+
+-L klimit    Sets the black +ink limit for the CMYK inverse forward lookup, as a total percentage +from 0% to 100%. If none is provided, it will be estimated from the +profile relcolor B2A table. The ink limit +will be in final calibrated device values if the profile includes +calibration information.
+
+ If the -a flag is used for inverse forward +lookups, then if +the target PCS value cannot be reproduced by the device (ie. it clips), +then the achievable, clipped PCS value is displayed.
+
+ If the -b flag is used for inverse forward +lookups, then out of gamut clipping will be performed in the CIECAM02 +Jab appearance colorspace, rather than L*a*b* colorspace.
+
+ The -m flag turns on an internal processing +option, in which the per device curve lookup table processing is merged +into the main multi-dimensional interpolation lut lookup.
+
+Whenever PCS values are to be specified or displayed in +Jab/CIECAM02 +colorspace, a set of viewing conditions will be used to determine the +details of the conversion. The -c parameter allows the +specification of the viewing conditions. Viewing conditions can be +specified in two basic ways. One +is to select from the list of "pre canned", enumerated viewing +conditions, choosing one that is closest to the conditions that are +appropriate for the media type and situation. Alternatively, the +viewing conditions parameters can be specified in detail individually. +If both methods are used, them the chosen enumerated condition will be +used as a base, and its parameters will then be individually overridden.
+
+ The final parameter is the name of the ICC profile to be used. On the +MSWindows platform a .icm extension is generally used, and on Apple or +Unix/Linux platforms a .icc extension is often used.
+

Usage and Discussion

+Typical usage for an output profile might be:
+
+    xicclu -ff -ip profile.icm
+
+Normally the program is interactive, allowing the user to type in input +color +values, each number separated by a space, and the resulting output +color +being looked up and displayed after pressing return. To batch process +a +group of color values, prepare a text file containing each input value +on +a +separate line, and use the input indirection facilities of your command +line +shell to redirect this input file into the standard input of xicclu. +The +output can be captured to a file by redirecting standard output to a +file. +In most shells this would be done something like this:
+
+    xicclu -ff -ip profile.icm < inputvalues.txt > +outputvalues.txt
+
+When plotting the neutral axis behavior, plotting the +existing B2A table +behavior would typically be done something like this:
+
+    xicclu -g -fb profile.icm
+
+Exploring possible black generation and ink limiting behavior might be +done +like this:
+
+    xicclu -g -fif -kp 0 .1 .9 1 .5 -l230 -L95 +profile.icm
+
+
+
+
+
+
+
+ + -- cgit v1.2.3