Summary of Argyll CMS Changes since last release
For a complete and
more detailed list of changes, please see the log.txt
file.
[V3.4.1 -> V3.5.0] 4th February 2026
- Added MSWindows ARM release.
- Added Mac ARM release.
- Removed Mac PowerPC build from release.
- Changed colprof so that rather than just warning about an ink limit
being set for an additive device space, it ignores it.
- Fixed bug in targen introduced in V3.3.0 where it adds a default ink
limit for all device types. If not overidden later in the profiling
process, this can introduce an ink limit 10% less than the unconstrained
limit. This is a problem for additive devices.
- Fixed reported problem with some models of Spyder2024.
- Took a stab at adding libusb-win32 ARM64 system driver support.
Reported to work, but installing libusb-win32 system driver is more
difficult.
- Added Munsell Linear Grayscale scanin reference files. (Thanks
to Tarek A. Haila and Frank Schaumann)
- Added -g option to xicc/fakeCMY to emit RGB values rather than CMY
values.
- Tweaked i1d3 frequency measurement mode to return exactly zero on
measuring perfect black rather than the correctly rounded value, so as
to make it more consistent with the period measurement mode. This
inconsistency shows up with a Rev. B when I1D3_DISABLE_AIO is set
and the 0x83 bug is triggered, and frequency measurement is used as a
fallback to period measurement mode. Rev. A instruments shouldn't see
any change since for them the period measurement mode doesn't suffer
from the 0x83 bug.
- Added -o observer option to xicc/specplot.
- Improved robustness of command name filename parsing in a number of
utilities.
- Expand spectro/average to handle input test charts.
- Improve JETI Specbos 2501 operation.
[V3.4.0 -> V3.4.1] 22nd July 2025
- Enabled support for JETI specbos extra adapter heads.
- Turned off erroneous strip read debugging in munki driver.
- Fixed printtarg -T option to work again.
- Add delay to ArgyllCMS_install_USB.exe and ArgyllCMS_uninstall_USB.exe
exit so that messages can be read.
- Changed chartread unexpected patch value warning threshold to dE 95
when no targen -c profile.
[V3.3.0 -> V3.4.0] 8th July 2025
- Added support for Spyder and SpyderPRO (2024)
- Renamed proposed CIE 2012 2 and 10 degree to standard CIE 2015 2 and
10 degree observers, as per CIE 170-2:2015.
- Added -Y c: option to colprof and invprofcheck to allow
setting/overriding alibration curves for setting final ink limits.
- Added -Y c: option to xicclu to allow setting/overriding calibration
curves for setting final ink limits, and added -T flag to show ink
limits.
- Fixed Spyder X and X2 to not make Device Disconect noise (if such
sounds are enabled) on MSWin.
- Fixed bug in colprof -nI failing for CMYK profiles.
- Enhanced strip reader patch recognition to reject strips that don't
start and end on the media, as well as adding some speed compensation to
the patch recognition for non-zerbra ruler measurements.
- Fixed bug in i1Pro3 strip reading where it would return bad values if
the zerbra stripe wasn't used.
- Changed chartread so that it will issue warnings of possible bad row
or patch reading even when .ti2 reference measurement is not accurate
(i.e. no preconditioning profile used in targen.)
- Increased emphasis of making sure that there is contrast between
patches at the end of rows in printtarg patch ordering for strip
instruments.
- Added -C parameter to targen to allow overriding any calibration
curves found in the ICC profile, used to estimage the total ink limit
from that in the ICC profile. Also better enforces final raw computes
ink limits.
- Modified ccxxmake so that it checks that it has actually found a white
seeming patch to use as the L*a*b* white reference, and the patch to
de-weight. If there is no white patch (i.e. just RGB patches) then it
will use D65 as the L*a*b* conversion reference. ccxxmake will fail if
there are less than 3 patches.
- Fixed ICC profile writing so that it clips rather than failing when
writing a ColorantTable PCS value that is out of range. A warning to
stderr will be issued.
- Changed ColorMunki driver so that it is more forgiving about
unexpected version string lengths.
- Fixed dispcal and dispread so that they won't error out if there is no
instrument but the -M parameter is provided.
[V3.2.0 -> V3.3.0] 27th September 2024
- Improved reliability of i1Pro2 startup on MSWindows by adding recovery
delay after the getmisc instruction.
- Fixed i1pro2/3 driver to be more forgiving of wavelength calibration
pushing filter offsets outside the range of raw CCD range.
- Fixed numerical bug in targen when using -V and -c with profile with
zero black.
- Added support for Spyder X2 (thanks to Chris Minasians and A.K. for
helping make an instrument available).
- Added support for JETI 2501 spectrometer thanks to to Omardis.
- Added -T option to targen to allow separate total ink limit for text
and spacer text.
- Modified targen CMYK chart generation to apply a level of luminance
boost to the resulting OFPS samples. This partially compensates for the
overall darkening of the test set due to exploring the combined K
response of the device. While this will reduce the sampling density and
resulting profile accuracy in darker parts of the gamut, it should
improve the accuracy of colors for realistic prints, which typically
have a lighter average than the device CMYK gamut.
- Added extra diagnostics and -p plot detail to printcal. Added -z flag
to allow setting a resulting calibration table resolution to values
other than 256.
- Fix 3.2.0 bug introduced into spectro/Jamfile install that omitted
spec2cie from binary distributions.
[V3.1.0 -> V3.2.0] 17th April 2024
- Added extra diagnostics to printcal.
- Added colprof -nI option, that adds inverse gamut mapping to
Perceptual and Saturation A2B tables, if they are being created. This is
not recommended for source profiles, since it handicaps true gamut
mapping, but may be a workaround to faulty Adobe Lightroom BPC for
Perceptual intent in output profiles.
- Added error message for ColorMunki spectro sensor internal cable being
disconnected.
- Fixed bug in Appearance B2A conversion that appeared in V3.0 release.
- Fixed crash in chartread strip reading when given faulty .ti2 file.
- Tweaked i1d3 Rev B AIO adaptive integration time to reduce measure
time to be more comparable to just using Rev A commands.
- Re-worked ARGYLL_NOT_INTERACTIVE stdin to work much better on MSWin
when connected to a pipe. Removed code that empties stdin before
expecting use input when ARGYLL_NOT_INTERACTIVE.
- Fixed OS X dispwin -c etc.
- Fixed colprof IGNORE_DISP_ZEROS heuristic so that it doesn't reject
OLED red measurements that have a Z value of 0.0.
- Added -H option to colprof to allow setting the charTargetTag to given
string, rather than automatically filling with .ti3 data.
- Changed instrument monitoring thread debug messages to only be shown
on -D9, so they don't interfere with messages shown at -D8.
[V3.0.2 -> V3.1.0] 1st December 2023
- Added MSWindows USB uninstaller and libwdi based installer installer
to make use on MSWindows easier.
- Added UbsDk MSWindows usb driver support code, but it is currently
disabled because the release versions of UsbDk have limited usefulness
as a general USB driver.
- Fixed bug in CMYK profile B2A table creation that sometimes resulted
in bumpy black generation. (Only occurred when compiled using recent gcc
with code optimization.)
- Changed ICC profile serialization of pure ASCII text tags to emit a
warning rather than error if they are fed non-ASCII utf8 input.
- Made ICC code a little more robust against bad profiles. (Thanks to
David Hoyt).
- Fixed latent bug in X11 plot code that caused window not to be created
or updated when dowait == 0. This shows up on Linux as failure of
spotread -S to show spectral plot.
- Fixed problem with colorhug not noticing errors from the instrument.
- Updated scanin/it8Wolf.cht to improve accuracy of grey wedge patch
recognition.
- Merged some Debian patches, including spelling fixes.
[V3.0.0 -> V3.0.2] 23rd October 2023
- Fix #include <ctype.h> in spectro/conv.c
- Fix typo introduced into spectro/i1d3.c that prevents retail i1d3 from
working.
- Fixed accuracy problem with xicclu -fb when using cLut type profiles
that use a matrix in their B2A table.
- Fixed crash in xicclu with device link profiles.
- Fixed error when creating profiles with
ARGYLL_CREATE_DISPLAY_PROFILE_WITH_CHAD or
ARGYLL_CREATE_OUTPUT_PROFILE_WITH_CHAD.
- Make re-writing an ICC profile more forgiving of tags that are
incorrect for the profile version.
- Fixed problem with writing textDescriptionType ScriptCode that was not
being padded to 67 characters.
- Fixed bug in CGATS output. This showed up in oeminst.
[V2.3.1 -> V3.0.0] 15th September 2023
- Updated ccast/axTLS to get ChromeCast working again with latest
Google CC operating software.
- Extensive re-write/re-factor of icclib to make it more
future-proof :- Changed all the tag type file serialization to be
more declarative in form, and make it more robust against buffer
overflows. Switched to a processing element pipeline implementation of
color transforms. The change in icclib API's necessitates changes
thru-out the ArgyllCMS codebase. Bumped ArgyllCMS and icclib to V3 to
reflect this major re-factoring. Added iccdump -S flag which turns on
strict ICC format checking. Added iccdumo -w and -W flags which turn on
ICC format warnings. Added icclu -T flag which turns on detailed
conversion tracing.
- Added ref/ColorCheckerPassport.ti2 and
ref/ColorCheckerHalfPassport.ti2 to allow measuring ColorCheckerPassport
with instrument.
- Fixed bug in Munki spectro hi-res mode with some instruments.
Luminance matching between normal and hi-res was sometimes quite poor.
- Added ARGYLL_CREATE_DISPLAY_PROFILE_WITHOUT_CHAD environment
variable.
- Changed colprof -U flag to -u. Changed dispcal -J flag to -K to
accommodate a potential new flag for colprof and dispcal.
- Added workaround for bug in madHcNet64.dll32/64.dll which sometimes
causes failure.
- Added delay after USB set_config on OS X to help Spyder 3/4 on Ventura
OS.
- Added -Y parameter to dispwin to override automatic patch delay.
- Changed i1d3 driver to cope with Rev. B "0x83" error robustly. This
should fix any issues measuring low level Red only patch values on OLED
displays, but with slower measurements when this occurs.
- Added spotread -Y S option to save spectral sensitivity curves and
added corresponding support in i1d3 driver. This allows for comparison
of different instruments factory calibrations.
- Added a -h scale parameter to dispread, to allow the automatic
instrument calibration test patch values to be scaled down from their
default 100% value. This is useful with HDR displays.
- Added manifest to MSWindows executables to use UTF-8 code pages on
Windows 1903 and later. This should improve non-ASCII filename
and path handling.
- Added a Violet colorant to the targen colorant list.
- Fixed problem with OS X 64 bit backwards compatibility where it failed
to locate serial instruments when the binaries are run on OS X V12 or
latter machines.
- Fixed bug in i1Pro3 driver where it was not returning the
correct measurement conditions enum.
- Fixed spotread so that ambient measure for monochrome sources doesn't
error out due to bad CCT/VCT/VDT. Also change -T so that it suppresses
CCT etc. if ambient mode is used.
- Added hacky workaround to strange Mac M2/rosetta bug in
del_i1proimp().
[V2.3.0 -> V2.3.1] 27th June 2022
- Added value sanity check & warning to chartread patch by patch
mode.
- Fixed crash on 64 bit MSWin in spectro/aglob due to changing SDK
declarations for _findfirst().
- Fixed one remaining problem with not coping with "Colour" spelling
rather than "Color" in cxf2ti3.
- Add code in cgats write to check for float format problems when faced
with -inf or +inf value.
- Fix i1Pro3 highres in ccxxmake, dispcal & dispread.
- Changed OS X usb reset to re-enumerate instead, as reset does nothing
on OS X >= 10.8.
- Added spectro/instlib.api.txt file to public distribution.
- Fixed possible crashes in xicc/ccss.c and spectro/oeminst.c
[V2.2.1 -> V2.3.0] 24th December 2021
- Fixed spotread -YL (i1Pro1/2 lamp remediation) to function even if
calibration is impossible due to the white reference being out of
tolerance.
- Fix SpyderX faulty initial black calibration (it was asking for
calibration every measurement).
- Added icomuf_reset_before_close flag for SpyderX, as some versions of
the instrument have been reported to lock up after use.
- Modified the ArgyllCMS CIECAM02 implementation to include a blue hue
linearization tweak, to improve the "blue goes purple" effect when gamut
mapping or clipping highly saturated blues to smaller gamuts.
- Added spotread -Y y option that forces the listing of instrument
specific display calibrations in the usage, even for serial instruments.
- Removed native i1d3 C6 instrument support as a favor to X-Rite.
Anybody adversely affected should contact me (Graeme Gill).
- Improved cxf2ti3 so that it should cope with XML that uses "Colour"
spelling rather than "Color".
- Added I1D3_ESCAPE environment variable to allow a user to potentialy
use any current or future OEM coded i1d3 instrument.
[V2.2.0 -> V2.2.1] 17th September 2021
- Added support for Christophe Mtairie's Mini Digital Target with
CMP_DT_mini.cht
- Fix inconsistency between .ti3 documentation of NORMALIZED_TO_Y_100
tag behavior and profile/profin.c code.
- Improved cxf2ti3 so that it truncates trailing spaces on the names of
patch id's. This caused scanin to ignore patches with such trailing
spaces, omitting them from the resulting .ti3 file.
- Added iccvcgt utility for extracting or inserting a 'vcgt' tag from or
into an ICC profile.
- Fix bug in applycal.c introduced in 2.2.0 - crashes when existing ICC
curves are not 256 step LUTs.
- Removed OS X hidio device Release - returned error on recent OS X
versions.
- Fix bug in dispwin on OS X that randomly causes crash on exit by
removing release calls.
[V2.1.2 -> V2.2.0] 3rd May 2021
- Added native i1Pro3 and i1Pro3 Plus driver.
- Fix Apple M1 display name code & builds. (Thanks to Simone Karin).
Should work now using Rosetta 2 or as M1 native binaries.
- Fix bug in applycal.c where it gets an "Error - Write file: 1,
icmTextDescription_write: ascii string is shorter" error on replacing
one calibration with another.
- Improved i1pro & Munki patch recognition to work much more
reliably with a slow swipe speed.
- Fixed oeminst to work with spyder V5.5. setup.exe
- Fixed bug in oemdld that prevented HTML encoded characters in download
file decoding properly, which prevented certain filenames from working.
- Fixed bug in ccxxmake -S -f where save error wasn't being fully
reported, and display technology presence check was faulty.
- Fixed typo in display technology, VPA -> PVA.
- Made Klein K10A "Lights Off" command timeout a soft error. For some
reason this command doesn't seem to be implemented on some K10A's.
- Fixed OS X 10.15 compatibility problem with change in objc_msgSend
declaration. (Thanks to Misty De Meo)
- Added CIE dE2000 to spotread output.
- Fixed accidental global "wrl" in gamut/gamut.h that cases compile
warnings.
[V2.1.1 -> V2.1.2] 14th January 2020
- Added -d option to spotread to print out Density values.
- Improved i1Pro2 emissive measurement compatibility with X-Rite driver.
- Changed targen round down/up to 0%/100% to have a tighter
tolerance.
- Added -Yk flag to spectro/dispread, to restore a workflow in which
display calibration is done without using vcgt hardware.
- Modified txt2ti3 to cope with files that don't have
SampleName/SampleID fields, such as CoPrA sample files.
- Added instrument ambient mode (-a flag) to dispcal, dispread and
ccxxmake, to allow use of direct projector to ambient mode measurement.
- Fixed problem with i1Pro2 EO2-XR-UF model crashing when high-res mode
used.
- Changed dispcal ADJ_THRESH mode MIN_THRESH value to 0.25 from 0.05, as
well as restricting it to the last pass, to reduce pointless repeats of
dark values.
[V2.1.0 -> V2.1.1] 29th April 2019
- Fix typo in usb/55-Argyll.rules for i1Studio.
- Added SpyderX support for inst_opt_noinitcalib option, so that the -N
flag can be honoured. (Thanks to Florian Hoch)
[V2.0.1 -> V2.1.0] 10th April 2019
- Added scanin .cht for Christophe Metairie's Digital Target 2019 and
Digital Target Studio Edition input charts.
- Added support for Lasersoft ISO12641-2 reflective and 3 part
transmissive charts (recognition files, cxf2ti3 tool, changes to average
utility).
- Changed spotread -E option to work with all the spectral instruments,
and now argument should be a transmission spectrum of the filter placed
on the instrument.
- Added targen options -M to generate device space cube surface steps,
and -n option to generate neutral axis steps based on a pre-conditioning
profile.
- Added support for SpyderX colorimeter.
- Improvements and bug fixes to oeminst and oemdnld.
- Add IES TM-30-15 (Method for Evaluating Light Source Color Rendition)
to spotread.
- Added optional spectrum save file argument to spotread -O option.
- Changed spotread so that plot option -S doesn't wait for a keystroke
before continuing.
- Fix FWA bugs in spotread - wasn't saving FWA compensated spectra, was
double correcting reference spectra.
- Changed colprof Display profile -ax option to create just XYZ cLUT
profiles, rather than including dummy channel swapped matrix as well.
This will force the use of the cLUT tags in any application/CMM that
uses an unconventional tag priority when dealing with a profile that
contains both cLUT and shaper/matrix tags. The -aY option has been added
to create a diagnostic cLUT display profile that contains matrix tags
with swapped color channels.
- Change black ink "locus" rules (i.e. -K option) to just scale from
zero to maximum possible K, rather than minimum to maximum K. This makes
these rules much more usable, since the sharp increase in minimum black
near the black point will no longer badly distort the curve shape. This
affects colprof, collink and xicclu.
[V2.0.0 -> V2.0.1] 9th July 2018
- Increased maximum render channels to 16
- Added -O option to collink to allow creating a link purely from
calibration file.
- Fixed JETI specbos & specval timeout when in averaging mode and
dark measurement.
- Changed JETI specval 1511 driver to ignore REMOTE command error with
newer firmware.
- Changed Klein K10 serial parameters in attempt to prevent serial lock
up on MSWindows.
- Made a failure of the conf:maxtin command with a JETI 1201 a soft
error, to allow for old firmware versions.
- Change colorhug Linux driver to reset on close. This may overcome a
problem re-starting the driver.
- Fixed i1Pro driver to cope with stripped down OEM i1Pro2 that is
missing one piece of calibration information.
- Fixed display calibration selection to allow for more than 62 entries.
This is to fix problem using Klein K10 that has a lot of saved
calibrations.
- Changed spec2cie to add extra informational L*a*b* output fields, if a
non D50 illuminant (-i option) is used.
- Added -w parameter to spotread, to use the -i parameter illuminant for
L*a*b* calculation.
- Fixed bug in spec2cie - XRGA conversion wasn't saving spectrum out.
[V1.9.2 -> V2.0.0] 17th November 2017
- Added support for "pm" viewing condition (Print evaluation with
partial Mid-tone adaptation), and associated m: viewing condition
parameter. This is intended to address certain situations involving the
use of papers containing FWA/OBE brighteners when viewed in an
environment that has a very noticeably warmer white point than the paper
itself under the illuminant.
- Added support for the X-Rite i1Studio instrument. Note that you may
have to un-install and re-install the system drivers on MSWindows, or
update the udev 55-Argyll.rules file on Linux.
- Slight improvement to i1d3 accuracy, by rounding the frequency mode
measurements up by 0.5.
- Returned input profile forced Absolute Colorimetric option with -ua
flag, after the -u option was changed in V1.5.0.
- Try and fix problem in triggering calibration when
ARGYLL_NOT_INTERACTIVE is set.
- Improve compatibility of txt2ti3, and added -D option to mark output
as Display but not Normalized to white.
- Modified collink to disable Video encoded in/out sync level
preservation.
- Added support for custom Observer by using a .cmf file as an argument
to all tools taking an observer parameter.
- Added support for proposed CIE 2012 2 degree & 10 degree
observers, based on the CIE (2006) 2-deg LMS cone fundamentals.
- Fix problem with dispwin -E option not being shown in usage, and only
being applied when a calibration file is used.
- Added spotread -u option to display XYZ amd CIE 1976 Yuv values.
- Added XRGA conversion support to spec2cie, as well as better support
in chartread and txt2ti3 for tracking XRGA standard and polarization
filter use.
- Fix bug in spec2cie processing emissive .sp files.
- Fix problem with i1d3 running direct USB (i.e. Not via HID) on MSWin.
- Fixed bug in render/timage -p.
- Changed spotread ambient readings (CCT, CRI, TLCI) to show CCT delta E
in 1960 Duv units and others in Delta E 2000.
- Added ARGYLL_UNTWIST_GAMUT_SURFACE environment variable, that enables
extra gamut clip surface processing that may improve the smoothness of
device links and B2A tables for poorly behaved devices.
- Fixed bug introduced in new colorimetric nearest clipping code in
rspl/rev.c in V1.9.0 that caused colprof using some ink limit settings
(such as -L0) to crash.
- Fixed bug introduced in new colorimetric nearest clipping code in
rspl/rev.c in V1.9.0 that caused some (mainly XYZ clut) profiles to clip
badly, causing banding.
- Improved dispcal -R VideoLUT depth measurement algorithm robustness.
- Worked around latest OS X super slow opening serial port problem (1.5
seconds to open a port!)
- Added ColorCheckerHalfPassport.cht file.
- Fixed bug in ChromeCast mDNS parsing that caused problems with some
devices with long names being detected.
- Now ignoring Chromecast-Audio and (.ca flags & 1) == 0 devices,
and showing the friendly chromecast name if available.
- Wait longer to find more Chromecasts, even if we've found one.
- Fixed colprof bug when handling Display L*a*b* .ti3 data.
- Added Wacom i1d3 support.
- Changed dispwin to by default ignore Gnome colord, and use its native
ucmm for storage of display profiles, since colord support for ArgyllCMS
has proven unreliable. This can be re-enabled by setting the
ARGYLL_USE_COLORD environment variable (i.e. to "true").
- Change X11 root window _ICC_PROFILE_xxx atom setting for Xrandr case
to now match the Xinerama order, so that ICC_PROFILE_xxx atoms match,
irrespective of which extension applications are using. This improves
conformance to "ICC Profiles in X Specification 0.2".
- Improved ucmm install/load/delete to better respect systemlocal/user
scopes, as well as eliminating need for profile name on delete when ucmm
is used.
- Improve fast serial port scan to better detect Lumagen Radiance
without upsetting it.
- Added ARGYLL_EXCLUDE_SERIAL_SCAN environment variable, to allow
suppression of fast serial port scan of sensitive devices.
[V1.9.1 -> V1.9.2] 17th October 2016
- Added CMYKOGB and CMYKRGB 7 channel ink preset, and made targen more
flexible in matching pre-conditioning profiles to targen ink selection.
- Fix oeminst for OS X save location.
- Fix oeminst for OS X Spyder 4 CD calibration file location.
[V1.8.3 -> V1.9.1] 28th September 2016
- Improved robustness of ChromeCast discovery, and added some minimal
diagnostics.
- Improved robustness of targen ofps patch generation when using less
well behaved pre-conditioning profiles.
- Fixed oeminst so that it locates cdrom's in Linuxes latest mount point
of /run/media/$USER/.
- Fixed bug in i1pro2 driver, in which strip calibration would fail if
instrument had been first calibrated with ARGYLL_DISABLE_I1PRO2_DRIVER
set, and then calibrated with ARGYLL_DISABLE_I1PRO2_DRIVER unset.
- Added option to icclib to write Output profiles using 'chad' tag if
the ARGYLL_CREATE_DISPLAY_PROFILE_WITH_CHAD environment variable
is set. This is not recommended for normal use, but may assist
compatibility with other systems.
- Added JETI spectraval support, including Bluetooth access.
- Added support for the Klein K10 connecting via a serial port.
- Fixed bug in Colormunki Smile driver that causes crash on Ubuntu
16.04.1 LTS.
- Modified "lp" intent to greatly reduce eliminate Helmholtz-Kohlrausch
appearance modelling.
- Fixed problem with targen -g, in that the corresponding XYZ values had
double the power applied, rather than none. This was causing problems
with printtarg spacer colors.
- Extensive re-write of colorimetric nearest clipping code in rspl/rev.c
to restore precision that was lost in the speedups made in V1.0.0. The
nnrev setup now takes a lot longer with high resolution CMYK
profiles though. This corrects a "green becoming too yellow" problem for
mapping from ProPhoto space with some RGB devices.
- Change dispwin to properly set X11 DirectColor and take account of
TrueColor Colormap. This fixes problem with NVidia linux driver
364.12 exposing a VideoLUT depth that is different from the frame buffer
depth.
- Change icclib to automatically repair icmTextDescription strings that
have an allocation that is longer than their size.
- Added i1Pro Lamp Drift test and fix functions to spotread (-Y l|L
options).
- Change colprof so that -s -S will accept general compression
percentage as an alternative to a source colorspace/image gamut.
- Added optional conversion from native Gretag-MacBeth & X-Rite
reflective calibration standards to/from XRGA.
- Changed OS X GUI support code so as not to switch to "interact with
the Dock" mode until actual GUI element is to be displayed. This
prevents batch commands with optional GUI elements from blocking normal
GUI interactions.
- Re-jigged OS X UI code to use the main thread to avoid window creation
timing issues and a warning backtrace on OS X 10.11.
- Added CMP_Digital_Target-7.cht
- Fix spec2cie to cope with .ti3 files that are missing device values,
so that it can process a wider range of input CIE reference files.
- Changed implementation of ARGYLL_NOT_INTERACTIVE on MSWin to make it
more reliable when operated progromatically.
- Fixed chartread so that if you are reading patch by patch, the
location strings can be arbitrary (i.e. they don't have to conform to an
alpha/num strip/patch pattern.)
- Added support for Sencore ColorPro V, IV & III colorimeters (based
on Sequel Chroma colorimeter.).
[V1.8.2 -> V1.8.3] 26th October 2015
- Added SpyderCheckr24 scaning .cht and .cie files.
- Fixed USB problem with i1pro (Rev B & D ?), where communications
would occasionally break down on fast systems.
- Added another fixed display intergration time to i1pro non-adaptive
emission mode to cope with higher brightness displays.
- Added workaround for i1d3 Rev. B status code 0x83 on very low light
measurement
- Fixed minor bug in i1d3.c that truncated serial number string. (Thanks
to Mikael Sterner).
- Fixed bug in Klein K10 driver - adaptive measurement wasn't properly
using all the extra measurements.
- Improved Klein K10 driver to be more robust when lights off command
returns bogus error codes, or causes a cascade of bogus measurement
errors.
- Added workaround for OS X 10.9+ "App Nap" problem.
- Added maximum sensor frequency check for Spyder & i1d3 drivers, so
that erronious readings due to excessive brightness can't be missed.
- Changed chartread so that it doesn't warn of a possible wrong strip
being read, nor allows bi-directional strip reading, if "printtarg -r"
was used. A warning will be issued if "printtarg -r" was used, and
"chartread -B" wasn't used.
- Fixed collink for eeColor Full range RGB to use output curve ("second"
1D curves) to compensate for cLUT being wired for 1.0 output from 1.0
input.
- Added "lp" gamut mapping intent :- Luminance Preserving Perceptual,
for Photographers concerned with maintaining tonal variations.
- Fixed bugs in image specific gamut mapping that were degrading the
accuracy of the result.
- Re-wrote gamut smoothing code, and re-tuned it to behave similarly to
the V1.8.2 release.
- Changed default viewing condition glare to 5%, to smooth out shadow
tone curve.
- Reduced the level of Helmholtz-Kohlrausch effect in CIECAM02
implementation in the light of visual experiments.
[V1.8.1 -> V1.8.2] 7th September 2015
- Fixed endless loop bug in alternate calibration selectors code.
[V1.8.0 -> V1.8.1] 4th September 2015
- Fixed bug in "spec2cie -n" wrong field indexes were being used.
- Fixed colorimeter calibration selectors to add in alternate selectors
if the letters are free.
[V1.7.0 -> V1.8.0] 20th August 2015
- Added support for the Image Engineering EX1 spectroradiometer.
- Added support for the SwatchMate Cube reflective colorimeter, with
improved accuracy.
- Added Added Television Lighting Consistency Index (EBU TLCI-2012
Qa) to spotread and specplot output.
- Added R9 value to CRI value in spotread and specplot output.
- Added workaround for JETI specbos having been calibrated by a 3rd
party, and its calibrated range being out of sync with its claimed
range.
- Added support for "EMISINPUT" type .ti3 file.
- Build using OpenSSL rather than axTLS if it is built on Linux.
- Fixed stack space problem in OS X UI programs by expanding main thread
proxy to have 8MB instead of the default 512K.
- Updated built in libtiff to V4.0.4beta.
- Changed CGATS format to not emit unknown keyword declaration
("KEYWORD") by default.
- Added inst_calc_cond_mask to inst.h to allow for flags in calibration
conditions. A consequence of this is that calc needs to be masked with
this when comparing against a specific condition, and the
inst_calc_optional_flag should be cleared if it is set, before callint
inst->calibrate() if the user wants to proceed with a particular
calibration.
- Fixed bug with dispcal -e N
- Fixed bug in xicclu -fg and -kp
- Added dispcal -x x option to allow reading a chart and manually
entering the XYZ values.
- Fix spyder4 & 5 bug where some display types were set as refresh
when they shouldn't be.
- Fix collink "Warning :- RGB black hack trigger more than once!" when
-b is used with input video encoding (-e).
- Changed colprof so that the default ICC description is the base
filename rather than the whole file path.
- Fix technology type and display type selector "uniqueification"
bug that shows up in "ccxxmake -??".
- Add OEM field to ccmx and ccss files to mark files that have been
installed from OEM disk, so that custom ccmx & ccss files can be
given suggested selector letter priority (+ ref/CRT.ccss).
- Tweak CGATS write format to avoid scientific notation until the
numbers are bigger and smaller (i.e until e6 and e-6 are needed).
[V1.6.3 -> V1.7.0] 1st May 2015
- Improved gamut mapping to reduce unnecessary changes to less saturated
colors such as skin tones.
- Add support for DataColor Spyder 5.
- Add support for ColorHug2 colorimeter.
- Add support for Klein K10-A colorimeter.
- Added Google ChromeCast as a test patch generator for Video displays.
- Added ls2ti3 tool to convert LightSpace .bcs files to .ti3.
- Added IRIDAS .cube 3DLut format support to collink.
- Add X3D and X3DOM support as an alternative to VRML, and make X3DOM
the default.
- Add better cross compatibility with non-Argyll ICC profiles using
ArgyllCMS 'arts' tag to mark 'wtpt' Absolute Colorimetric chromaticity
transform, as well as implement proper absolute colorimetric intent for
Display profiles use the 'chad' tag. Note that the standard ICC profiles
provided by ArgyllCMS in the ref directory (such as sRGB etc.) now
include an 'arts' tag.
- Ignore any patches that have zero values for creating Display
profiles, unless they are for device zero.
- Fix various instrument communications problems for JETI specbos,
DTP20, DTP92 & DTP94.
- Fix gestaltSystemVersion warning on OS X 10.10.
- Fix very major bug in illumread. It wasn't actually working at all
since V1.4.0.
- Added collink -I[gG][:p.p]:x.x options that allows an output offset
gamma curve be targetted instead of BT1886.
- Added dispcal and collink -b black point hack. This forces the input
zero to map to the output zero for well behaved displays, reducing
dependence on the instrument accuracy for a very dark black point.
- Added preset list of display techologies to select from in ccxxmake.
- Added a -P prune option to profcheck, that creates a .ti3 file pruned
of any patches that have a delta E fit error greater than a threshold.
This may be of use in eliminating bad reading values from a measurement
set.
- Added histogram plot option -h to both profcheck and verify.
- Added a dispread & fakeread -Z option to set the number of bits to
quantize the test values to.
- Fixed bug in targen - the -V dark emphasis wasn't being applied to
OFPS generated points.
- Make sure that if an instrument display reading is interrupted by a
forced calibration, that the user is asked to place it back on the
display before resuming the measurements.
[V1.6.2 -> V1.6.3] 26th January 2014
- Added ProPhoto.icm and ProPhotoLin.icm to ref profiles.
- Fix bug in xicclu -py conversion.
- Added code to minimize ICC rounding error on matrix profile white
point accuracy. Re-generated all reference profiles with this change.
- Changed i1d3 driver to completely ignore any EEPROM checksum errors
for non "A-01" rev. instruments.
- Made transplot handle RGB->RGB device link.
- Removed colprof -y option. Use "profcheck -v2" instead, as it is more
developed.
- Fixed bug in dispcal - it was not using the final measurement pass to
update the calibration curves.
- Fixed bug in spotread, dispcal & dispread for CCSS capable
instruments where refresh display types was being ignored if a custom
observer was used, and/or the custom observer as being ignored, and/or
a CCMX was being ignored. Changed instlib semantics for
inst_opt_set_ccss_obs :- this is now set immediately, and applied also
to any subsequent set_disptype() or col_cal_spec_set().
- Renamed verify to colverify to avoid clash with MSWin program of the
same name. Made it print the patch location for -v2 if it is present in
the file.
- Changed targen to ensure that -V and -p options effects are reflected
in the resulting expected CIE values of the .ti1 file.
- Changed targen so that -V parameter also affects single channel, grey
wedge, grid & body centered grid point distribution.
- Changed colprof to deal with variable grid distribution in a more
neuanced way, to reduce overshoot artifacts when the -V parameter is
used.
- Changed colprof to used a power_like function for the grid
distribution shape from the -V parameter, so as to avoid issues with a
power curve infinte slope near zero.
- Changed colprof to used a scaled down value of the targen -V parameter
as the default for its -V parameter. Documentation now recommends more
moderate values for -V.
- Added a special case to collink for RGB video input encoding to
(attempt) to fine tune the black point to compensate for it (probably)
not falling on a cLUT grid point. & out encoding
- Tweaked dispcal to try and improve accuracy of black point
calibration.
- Switch dispread to use NoClamp readings, so that average black point
value is not biased.
- Fixed bug introduced into 1.6.2 oeminst that prevents .ccss files
being installed.
[V1.6.1 -> V1.6.2] 18th November 2013
- Added "dark region emphasis" -V parameter to targen and
colprof, in an attempt to improve the accuracy of display profiles
intended for use with video. This should improve the subsequent black
point accuracy of the profile.
- Fixed bug and tweaked dispcal black point optimization to err on the
black side. Added -v3 for even more debugging information.
- Changed i1d3 driver to be more forgiving of EEProm checksum
calculation, so that it works with the latest release "A-02" rev.
i1 display pro & colormunki display instruments, as well as
improving its robustness in the face of errors.
- Fixed race condition bug in OS X HID driver. This fixes occassional
problem with i1d3, and also solves problem with the ColorHug on OS X.
- Fixed problem with TV encoded output and dispread -E -k/-K.
- Fixed minor bug in DE94 in icclib.
- Fixed major bug in illumread - result was being corrupted.
- Fixed "edges don't match" bug in printarg when -iCM -h -s/-S used.
- Fix bug in -H flag in ccxxmake, chartread, dispcal, dispread,
illumread & spotread so that it works once again.
-
[V1.6.0 -> V1.6.1] 30th September 2013
- Fix bug in "average -m"
- Fix oeminst to work with a wider range of i1d3 install files.
- Fix ColorMunki reflective measurement accuracy, particularly for
reflective readings. This has been poor since V1.5
- Fix bug in using DTP94 on Apple OS X introduced in V1.5
- Fix MadVR connect code to look for appropriate 32 bit or 64 bit .dll.
- Improve MSWin system driver installation by creating valid
ArgyllCMS.cat file to match ArgyllCMS.inf. This eliminates the need to
"Disable Driver Signature Enforcement", as well as allowing installation
on MSWin 8.1.
[V1.5.1 -> V1.6.0] 16th August 2013
- Added support for JETI specbos 1211 and 1201 (Thanks to JETI
for their support!)
- Added Video profiling & 3dLut creation support for eeColor and
MadVR. See video section in tutorial for pointers to relevant changes to
tools. This includes support for MadTPG + various Video standard ICC
profiles + verification workflow.
- Linux profile installation will use colord if
libcolordcompat.so is present on system.
- Fix ColorHug driver so that it is backwards compatible with FW
1.1.8
- Made sure that MSWin test colors are not color managed. This may
affect Vista, Win7 and Win8.
- Changed spectro/dispwin.c so that null transform color matching is
used for displaying test patches on OS X >= 10.6. This should fix
calibrating/profiling secondary displays on > OS X 10.6. Note that
the 32 bit 10.4 binary will still have problems on > OS X 10.6.
- Changed instlib API ambient XYZ and spectral units to Lux. In
previous versions of instlib they were Lux/pi.
- For those instruments that support it, made ambient readings honor
refresh mode measurements, to improve repeatability when measuring
regularly flickering light sources. (specbos, i1d3, i1disp).
- Changed spotread -ew mode to be Bradford chromatic transform rather
than XYZ scaling, to better match Argyll ICC abs. vs. rel.
- Added support to xicclu to lookup colors though CAL files, both
forward and backwards. Will also plot CAL file contents using -g.
- Added -Y R:rate option to spotread, dispcal, dispread & ccxxmake
to allow setting a chosen display refresh rate. This can be used with
the Colormunki display, as well as situations in which refresh rate
measurement is not reliable.
- By default printtarg will create PS and EPS files with a CUPS job
ticket to disable color management. Use the -U flag to disable this.
- Added display update delay calibration support to i1pro and ColorMunki
(just like i1disp3), to improve measurement times.
- Changed dispcal & dispread so that they wait up to 0.5 seconds
when reading dark patches after light ones to allow for display fall
time. Added patch order optimization for display patch sets in
targen to minimize the extra time.
- Changed dispwin daemon loader mode option from -E to -X. Added -E
option to encode test patch colors in Video 16-235 range.
- Changed dispcal verify option from -E to -z. Added -E option to encode
test patch colors in Video 16-235 range.
- Added -E option to to dispread to encode test patch colors in Video
16-235 range.
- Changed CIECAM02 Flare model to distinguish between Flare from the
image itself, and Glare from ambient light. This allows scaling Glare
with ambient automatically. Changed enumerated viewing conditions for
new Flare/Glare settings, changed all to Flareless to improve dark image
behavior, while retaining Glare modelling. Tweaked brightness and
ambient values.
- Improved i1pro hi-res mode to improve accuracy.
- Added Body Centered Cubic grid option to targen.
- Added -Yn flag to dispcal and dispread, which skips asking the user to
place the instrument on the measuring spot.
- Improve robustness of i1d3 display update measurement code.
- Added support for applying calibration curves in collink.
- Changed spotread so that it won't fall back to emissive spot mode if
an ambient reading is requested.
- Turned off B2A table clip map smoothing, as it seems to introduce
reversals for some data sets, and provides little benefit.
- Fixed crash in ucmm/ucmm.c when loading certain profiles using dispwin
(thanks to Torok Edwin).
- Fixed gamut mapping intent "rl" to really use relative L*a*b*
- Fix bug in cicam02 in V1.5.0 that causes some mapping problems in the
red for collink -ir or -ila.
- Changed cctiff so that it does lossless JPEG copy when there is no
color transformation. This makes it more useful for embedding a profile.
- Fix xicclu so that it works with device links.
- Fixed bug in shaper/matrix profile curves that caused random bumpy
black behaviour (shaper curve optimization local minimum problem).
- Don't add colorant tag to .tiff files in cctiff unless it is a
non-standard space, as Photoshop will barf on such files.
- Fix bug with Spyder not being able to break out of dispcal adjustment
loop.
- Fix bug in xicc/xicclu, -K flag not being recognised.
- Fix bug in xicc/xmatrix.c introduced in V1.5 that prevents matrix only
profiles from being created.
- libusb 1.0 is now deprecated in favor of native USB drivers.
[V1.5.0 -> V1.5.1] 8th March 2013
- Fix spectro/instlib.ksh and standalone instlib build.
- Turned off debug plot on using FWA.
- Changed link $(LINKFLAGS) location in link command line Jambase to get
latest gcc working.
- Fixed new bug in matrix display profile creation that causes an
inaccurate relative white point. This causes Photoshop to barf on the
profiles.
- Added -m option to printcal.
- Fix bug in webwin that causes crash.
[V1.4.0 -> V1.5.0] 1st March 2013
- Increased ease of selecting ISO 13655:2009 M0, M1 and M2 measurements
using FWA comensation using any spectrometer that can take non-UV
filtered measurements. M0, M1 or M2 can now be selected directly using
the -f flag. [ArgyllCMS has been supporting ISO 13655 M0, M1 & M2
well before the standard was created, thanks to its FWA compensation
feature.]
- Increased stability of i1d3 refresh display measurements by increasing
integration time, and tweaking crossover from frequency to period
measurement.
- Added i1pro Rev E (i1pro2) feature support. Uses RevE measurement
mode, and does wavelength calibration. Uses RevE (internal) stray light
reduction, and black level temperature compensation. The only Rev E
feature not currently supported is U.V. measurement, which would improve
the accuracy of FWA compensation. Rev E driver can be disabled and the
legacy driver mode used by setting the ARGYLL_DISABLE_I1PRO2_DRIVER
environment variable.
- Changed i1pro adaptive mode to avoid high gain mode, so as to give
more consistent and longer integration times for low light levels.
- Changed ColorMunki adaptive mode to avoid high gain mode, so as to
give more consistent and longer integration times for low levels. Added
black level temperature compensation.
- Added spotread interactive function 'f' to read out the calibrate
display refresh rate for instruments that have a refresh display mode,
as well as an 'F' function that measures the refresh rate for
instruments that support a refresh rate measurement function
(colorimeters & spectrometers).
- The Display Type selection option -y in dispcal, dispread, chartread,
spotread & ccxxmake now lists installed CCSS and CCMX files as a
selection, rather than using the -X parameter. CCMX and CCSS files now
have extra fields to indicate the refresh mode, an optional list of
default UI selection characters, and (for CCMX files) the base display
type they apply over (CB-n).
- Tweaked CIECAM02 to improve behavior for extreme blue colors, so that
the hue doesn't swing too far towards the cyan. This helps in the
clipping behavior from colorspaces such as ProPhotoRGB.
- Made the input profile cLUT extra neutral axis extrapolation points
the default for colprof -u and non -u profiles. Changed -u algorithm to
work similarly to -U scale :- it sets the scale automatically. Relative
colorimetric is therefore hue matched to the white reference patch,
Removed colprof -un, as it seems unnecessary. Added colprof -uc, which
clips cLUT colors over Y = 1 to white.
- The spyd2en, spyd4en and i1d3ccss tools have been combined into, and
replaced by a single oeminst tool.
- Fix problem with dispwin/dispcal/dispread -dweb and the latest Safari
browser.
- Changed to a single ArgyllCMS.inf file for MSWin USB driver
installation. This eases installation of more than a single type of
instrument. Tested on MS Windows 8 and updated installation
instructions.
- Dropped libusb for USB access, using native USB access instead. MSWin
uses the libusb-win32 kernel driver. Moved the usb setup files from
libusb1 to a new directory, usb.
- Added scanin support for ColorCheckerPassort.
- Updated OS X code to compile on 10.6 and 10.7 and (presumably) 10.8
(64 bit compatible API used when compiling on those platforms, including
Cocoa for the test patch window).
- Changed udev file usb/55-Argyll.rules to eliminate the test for
/lib/udev/udev-acl as a condition of using ACL_MANAGE, since I'm
informed that it is deprecated in recent distribution releases (but who
can tell, given the churn in the udev API).
- Deprecated -V flag (adaptive mode) in dispcal, dispread and ccxxmake,
since this is now the default. Flag will be ignored with a warning.
Added -ZA flag instead, to select non-adaptive integration time mode.
- spotread -d flag is deprecated, and is now a synonym for the -e flag,
since it defaults to adaptive mode. Added -ZA flag instead, to select
non-adaptive integration time mode. Also added -Zr and -ZR flags to
allow testing of the refresh mode overrides.
- Migrated ArgyllCMS specific application runtime files (such as
instrument blobs, calibration state & calibration files) to an
"ArgyllCMS" sub-directory rather than the generic "color" directory. On
OS X also moved data files to below the "Application Support" sub
directory. The old locations will be used as a fallback.
- Added support for Quato Silver Haze 3 OEM i1d3
- Added support for X-Rite ColorMunki Smile colorimeter.
- Enable the ColorHug by default, although it isn't advertised as
supported, since it doesn't yet work reliably on OS X. Updated ColorHug
PCI VID & PID
- For Spyder, emit a warning rather than error if the feature bits are
missing for calibration tables.
- Added automatic adjustment of patch reading delay for i1d3, so that a
more conservative (longer) default value (200 msec) can be used without
impacting i1d3 speed. Also added environment variable
ARGYLL_MIN_DISPLAY_UPDATE_DELAY_MS that can set a different minimum
update delay.
- Fixed a bug introduced in V1.3.6 that stops the dtp41 from being
initialized properly.
- Improved black level readings derived from spectral values by allowing
them to be -ve.
- The instlib API has been modified quite extensively to make it more
self contained and flexible, although the basic architecture remains the
same.
[V1.3.7 -> V1.4.0] 20th April 2012
- Modified spectro/ccxxmake so that a colorimeter can be used as a
reference to make ccmx files if two .ti3 files are used. Added
ref/ccxx.ti1 as convenient way of creating ccmx .ti3 files.
- Added dither/screening support for 8 bit output of render, and then
made it available in target/printtarg.
- Added JPEG file support to imdi/cctiff, xicc/tiffgamut and
xicc/extracticc. ICC profiles embedded in JPEG files can now be used
anywhere a TIFF file with embedded ICC profile can be used as a source
of an ICC profile.
- Fixed memory leaks in usbio.c, xdg_bds.c & conv.c
- Fixed double memory free bug in icc/icc.c when iccdump'ing a profile
that has a duplicate tag.
- Changed license of xicc/ccmx.[ch] to GPL2+.
- Made display calibration and profile making deal with displays without
hardware calibration support (VideoLUT support) more graceful. Added
tutorial section covering this.
- Added option to dispwin/dispcal/dispread/ccxxmake to redirect the test
patches to a web browser via a local web server. This augments Argyll's
existing local and remote display capability.
- Fixed bug in spectro/i1d3.c which results in NAN if a low level
readings drops to zero at a particular time. Improved refresh rate
calibration accuracy. Fixed bugs in adaptive measurement logic that
caused a channel to be pre-measured when it shouldn't. This seems to
noticeably improve repeatability on refresh displays.
- Fixed bug in ucmm/jcnf where it was failing to locate the correct
profile for a display.
- Fix bugs in ColorMunki Transmissive measurement mode calibration.
[V1.3.6 -> V1.3.7] 26th March 2012
- Fix regression in Spyder support - ccmx files were not being handled
(bug introduced in 1.3.6).
- Fix packaging problem - Spyder4 MSWin .inf file was missing.
- Change dispwin so that it will install a profile when there is no
access to the display VideoLUT if the profile has no vcgt.
[V1.3.5 -> V1.3.6] 19th March 2012
- Added Spyder4 support. Note the need for spyd4en for access to a full
range of Manufacturers calibrations. The Spyder4 can use .ccss
calibration files too. Speeded up all Spyder instrument readings on
brighter colors.
- Experimental ColorHug support is compiled in, but is disabled unless
the environment variable "ENABLE_COLORHUG" is set. The ColorHug
currently doesn't seem to work reliably across all platforms ArgyllCMS
supports.
- Changed and expanded display selection (-y flag) to be instrument
specific. This is to support the Spyder4 and ColorHug, and adds a
refresh display selection to the i1d3.
- Tweaked i1d3 integration times and added accurate refresh period
calibration to the refresh display mode. Refresh display measurement
times are double non-refresh displays. Improved i1d3 period measurement
logic to improve measurement speed and accuracy for dark colors.
- Changed i1disp measurement logic to try and make it more robust
against light to dark changes during a reading. This may make it
slightly less precise for LCD displays on bright colors (equivalent now
to Refresh display precision).
- Added a -V option to spotread to allow tracking reading consistency.
- Changed ccxxmake to create default .ccss with just RGBW, and not
to weight W. This may give better matching. Made corresponding change to
CCMX, giving the white patch 1/4 weighting of sum of all other patches.
- Fixed applycal so that it applies calibration to both A2B and B2A
tables, to preserve softproofing.
- Fixed timeout in SpectroScanT reference transmission measurement.
(Someone kindly donated me a SpectroScanT to test with!)
- Made DTP94 driver ignore with a warning any NEEDS_OFFSET_DRIFT_CAL_ERR
after a full reset. It seems that occasionally a few instruments do
this, and X-Rite don't appear to be prepared to treat this as an
instrument fault.
- Added support for Datacolor SpyderCheckr (Thanks to Jos Pereira).
- Improved the ability of spyd2en to cope with slightly different
setup.exe formats.
- Add support for NEC SpectraSensor Pro version of the i1d3.
[V1.3.4 -> V1.3.5] 24th October 2011
- Fix bug (crash) that affects ColorMunki design/photo display
measurement. This also stops it restoring a calibration (-N flag).
- Add support for the OEM version of the i1d3.
- Fix bug that stopped ccxxmake being able to make ccmx's.
- Tweak gamut mapping to improve dark area mapping, non-monotonic
profile inversion, and contrast preservation to small gamut.
- Kill i1ProfileTray.exe process if unable to open i1d3 on MSWin.
- Fix DTP20 chart printing - TID was sometimes incomplete. This shows up
on a 4x6 chart.
[V1.3.3 -> V1.3.4] 31st August 2011
- Added support for the X-Rite i1 Display Pro and ColorMunki Display
colorimeters. As part of this, added support for CCSS calibration files
for the instruments and added CCSS support to ccxxmake (renamed from
ccmxmake). Provide new tool i1d3ccss to translating and installing CCSS
files as well as the manufacturers calibration files for these
instruments. Added non-default observer support for these instruments
too.
- Fix gamut code to ignore setting primary/secondary cusps that are
unlikely to be true. This avoids buggy gamut mapping behavior for gamuts
that are very small and odd shaped.
- Changed Linux USB code to avoid doing a set_configuration if
possible, since the USB driver does this by default. This then avoids
triggering a bug in the Spyder2, which allows it to work on Linux
version without the reset_ep fix, and may also allow the Spyder to work
better with USB hubs.
- Change printtarg for DTP20 to allow for variable patch size.
- Changed dummy display matrix table to have channels rotated rather
than R & G swapped, to make it more obvious.
- Added option to colprof to allow setting the default profile rendering
intent.
- Enhanced spectro/fakeread so that it will process a .ti3 file that has
been renamed to .ti1.
- Fix bug in matrix input profile white point selection, + add in slight
neutral bias code used in clut profiles.
- New profcheck -I wasn't working - fix option parsing.
[V1.3.2 -> V1.3.3] 13th May 2011
- Fixed compiler dependant bug in Eye-One pro and (possibly) Munki high
res. spectral wavelength calculation.
- Add support for install variables DESTDIR and PREFIX in Jamtop. These
can be set on the command line using "jam -s"
- Added targen -N parameter to allow adjustment of neutral axis patch
density emphasis, as well as increasing the default. This should improve
the result without needing to add explicit grey test patches.
- Added spectro/instlib.ksh script to assemble all the files needed for
a standalone instrument library. Changed licence to GPLv2 for the files
included in the instlib.zip file that is thus created. See
spectro/instlib.txt for more details.
- Fix Jambase so that recent MingW compilers don't need extra .dll's
- Change Linux serial code to test ports using O_NONBLOCK
- Modify xspect & illumread to improve realism of UV spectrum
estimation.
- Fixed profile/txt2ti3 so that a sample name that looks like an integer
is treated as text. (Fixes problem with latest ProfileMaker file).
- Added LCh option to spotread.
- Fixed numerical issue in scanin/scanrd.c, where large input rasters
would cause fitting to fail.
- Modified colprof input chart white patch detection to slightly favour
patches that are close to D50 neutral.
- Increase the default XYZ PCS A2B profile default smoothness.
- Improved cLUT input -u black & white point extrapolation.
- Improved black point determination for devices that have extremely
narrow gamuts doe to the use of custom inks.
- Added -Z option to colprof, to allow setting ICC attribute flags.
- Fix CIECAM02 to better match forward and backwards, to fix perceptual
table white point.
- Add code to override X-Rite's new OS X drivers for ColorMunki and
EyeOne. Note new installation instructions
<http://www.argyllcms.com/doc/Installing_OSX.html>.
- Added -R flag to colprof, which restricts the range of the white,
black for better compatibility with other programs.
- Fixed typo bug that prevented flash measurement mode from working.
- Replaced spectro/average with a new version that is more general.
- Fixed bug in printcal not working with spectral only files.
- Added extra verbose output to printcal in which it computes an ideal
power-like value to apply to the test chart values in targen.
- Modify the way that XYZ cLUT B2A tables are indexed, so that the white
point is at the top corner of the grid.This should solve Photoshop
CS4/CS5 complaining that XYZ LUT profiles are 'defective'.
- Added option in xicc/xicclu to plot an arbitrary slice.
- Expand the number of i1 Display OEM devices that can be used.
- Made some changes to help compile on FreeBSD.
- Added another intent, "pa", Perceptual Appearance, which is the same
as perceptual except that the grey axes are not forced into alignment,
allowing the appearance parameters to have full affect, including
altering the chromatic mapping.
- Fixed bug in txt2ti3 - it wasn't creating an iRGB colorspace file for
output device RGB files, causing warnings warnings and failures when
mixed with other iRGB tool sequences.
- Added pathological case fix for target/ofps where the ink limit ==
di-2.
- targen was failing to proceed when fixed points happened to be
numerically just over the total ink limit.
- Added more navigation options for chartread patch by patch mode.
- Fixed bug in "chartread -r -H" that caused resume of i1Pro high
res to fail with "The resumed spectral type seems to have changed".
- Modified profcheck so that it prints patch location if it is present
in the .ti3 file.
- Changed dispcal and dispread -K option to -J. Added -K option to
dispcal as an alternate way of profiling a calibrated display, and also
added a -K option to dispcal.
- Increased ColorMunki emissive auto scaling target "over" margin from
5% to 10% to allow more room for instrument drift during measurement.
- Fix bug in winusb + i1Display, where dark CRT measurements
timeout.
[V1.3.1 -> V1.3.2] 4th November 2010
- Turn off debugging that was accidentally left on in FWA code. Add gcc
3.3 PPC optimizer bug workaround to FWA code in xicc/xspect.c
- Change shaper/matrix profile back to using power curve as 0th order
shape. Improve it with input & output offsets and straight segment
at zero. Make cLUT input -u black & white point extrapolation use
pure shaper curves with special tweaks.
- Increase dispcal native white target weighting from 10 to 50 to
encourage white to be device 1.0,1.0,1.0 more strongly.
[V1.3.0 -> V1.3.1] 26th October 2010
- Fixed MSWIN Vista/Win7 problem where having Task Manager running would
stop display test window updating. Also fixed plot library to avoid the
same problem.
- Swapped dispwin -E and -D flags, to make -D debug consistent
throughout tools.
- Changed the ARGYLL_NOT_INTERACTIVE mode so that all return and line
feed characters are ignored, so that they can be used freely to flush
stdin without triggering anything.
- Fixed endless loop problem with chartread -r -p on fully read chart.
- Added -S option to chartread, that suppresses wrong strip and
unexpected value warnings.
- Fix dispcal and spotread so that color temperature takes into account
any non-standard observer (ie. the color temperature is the closest
point on the spectrum locus as determined by the chosen observers
interpretation of the Plancian or daylight spectrum.)
- Fix bug in libusb1 triggered on systems that support bulk continuation
(Linux)
- Added 1964_10c observer to spectro/dispcal, to better allow comparison
to the default numbers.
- Added recognition for Huey built into Lenovo W series Laptops.
- Fixed chartread/dispsup/spotread etc. so that -N isn't fatal if the
instrument doesn't support it.
- Fixed dispcal to disable black & white drift tracking during
interactive adjustment.
- Added -s option to ccmxmake to allow the number of test patches to be
set.
[V1.2.0 -> V1.3.0] 8th September 2010
- Added option to dispcal and
dispread that attempts to counteract instrument black drift and display
white drift (-I option). This may help with instruments that haven't
properly acclimatised to the measurement location, and LCD displays that
also take some time to stabilise. The is a short discussion here.
- Added option to dispcal to
allow specifying a non 1931 2 degree observer if a spectrometer is being
used.
- Added new utility spectro/ccmxmake,
which makes Colorimeter Correction Matrices for a particular Colorimeter
+ Display combination, using a Spectrometer as a reference. The
resulting .ccmx file can then
be used with spotread/dispcal/dispread
(-X option) to improve the accuracy of the colorimeter on that
particular display. See a discussion here
and here.
- Fixed bug in spotread's handling of emissive measurements. If the XYZ
was computed from spectral, it was using a D50 white instead of no white
reference.
- Fixed bug in i1pro normal resolution wavelength calibration,
introduced in V1.2.0.
- Changed libusb V1.0 name to libusb-1.0A, so as not to clash with any
official but different libusb V1.0 installation. [This may necessitate
re-installing device drivers on MSWin.]
- Added support for HP DreamColor version of the i1 display.
- Fix problem with ARGYLL_NOT_INTERACTIVE - reading from instruments was
not actually possible, because polling for input was disabled.
- Adjust ColorMunki dark threshold to reduce misread reports. Add
inconsistent data to debug output. Fix bug in adaptive mode - the
integration time was sometimes too short. Set adaptive emissive
target at 95% to allow a little more margin to saturation.
- Fix problem with ColorMunki reporting erroneous inconsistent
measurement errors. This shows up on display calibration.
- Fix some minor compiler warnings.
- Added direction indicators to xy values in dispcal interactive
monitor adjustments.
- Fix bug in CIECAM02 viewing condition settings :- the enumerated
conditions after "mt" are displaced by 1. (ie. "mt" is really "pc", "mb"
is "mt", "md" is "mb" etc.) Added option -c:sn for auto surround from
the Lv parameter (-c:l).
- Add option to illumread to average several readings. Fixed bug in the
way illumread displays available instruments.
[V1.1.1 -> V1.2.0] 30 July 2010
- Re-worked gamut mapping to improve perceptual intent saturation
levels, as well as improve highlight and shadow contrast. Added fine
tuning to improve both smoothness and the precision with which the
source is mapped to the destination.
- Added illumread, which allows measuring an illuminant and estimating
its UV content, for better accuracy with FWA compensation.
- Use a modified/forked version of libusb V1.0, that supports Win2K
(libusb0.sys) back end by default. Supports 64 but MSWin using a
combination of WinUSB.sys and ptlibusb0.sys. [ The HCFR does not work on
Win 64 bit though, due to its buggy USB implementation. ] NOTE that the
included version of Libusb V1 has been carefully tested with all
supported instruments on all supported platforms, and includes
many bug fixes needed for correct functioning. While bug fixes have been
fed upstream, not all have been adopted. In particular there is a nasty
race condition that has not, and may never be fixed upstream, as well as
missing critical functionality (clearep()).
- Modified colprof -p to allow different abstract profiles to be applied
for each intent.
- Added -I option (imitation) to printcal, so that an existing devices
response can be set as a target.
- Increase target/ofps.c vertex intersection retries from 10 to 40 to
give it a better chance of working with difficult profiles.
- Fixed bug in plot that shows up on XP+, where the window isn't
dismissed by the first keystroke, but only after it has been moved or
resized.
- Changed CMYK black point to be natural, rather than the darkest point
in the same direction and K only. This may wreck K only to black point
matching, but it will stop printers with funny colored K ink from
messing up the black point.
- Make Lacie Blue Eye colorimeter appear as an i1display.
- Improved i1pro matching to Original Manufacturers Driver (see
doc/i1proDriver.html).
- Improved i1pro/ColorMunki patch recognition for better uniformity.
- Fixed bug in ColorMunki driver scan mode calibration when instrument
is more sensitive than usual.
- Added EV calculation to spotread -a
[V1.1.0 -> V1.1.1] 21 February 2010
- Renamed the following tools:
cb2cgats -> cb2ti3
kodak2cgats -> kodak2ti3
logo2cgats -> txt2ti3
splitcgats ->
splitti3
mpprof -> mppprof
- Modified black curve to make sure that smoothed curve meets target
level at boundaries.
- Added -M option to printtarg, for the case where the TIFF file is to
include the margin.
- Fixed several build bugs in imdi code related to 64 bits.
- Fixed profile/colprof -u so that it is applied to matrix profiles too
- Changed tiffgamut to use one pass gamut hull finding and modified the
smoothing so as to end up with a more closely wrapped volume.
- Fixed bug in input matrix profiles introduced by the XYZ cLUT display
matrix profile change, where the correct white and black point weren't
being written.
- Added matrix only/linear algorithm option to profile/colprof, for raw
camera profiling.
- Modified libusb/55-Argyll.rules for better compatibility with systems
that have ACL installed but no ConsoleKit. Also set ID_VENDOR and
ID_MODEL using. usb-db.
- Modified target/targen to cope better with case where adding nodes
fails to determine vertex positions a lot of the time, causing extreme
slowdown.
- Fixed colprof so that the per channel input curves for XYZ PCS B2A
tables are actually scaled correctly.
- Changed link/collink to apply Y to L* curve if the input or output
space is XYZ. Fixed the Y to L* scaling to make sure it only apples to
XYZ space, and that the L* non-linearisation still applies to Y like
device spaces.
- Modified scanin so that it ignores any alpha channels in the input
.tiff file.
- Changed printcal so that it will create .AMP file with more than 4
channels. Also fixed up plotting to plot up to 10 channels.
- Changed dispcal and dispread so that a request for projector mode
falls back to display mode if the instrument doesn't support a projector
mode.
- Updated ref/CMP_Digital_Target-3.cht as it seems that the reference
chart has columns labelled "2A - 2D" rather than the "AA - AD" that is
actually printed on the chart...
- Altered xpsect FWA code to reduce overshoot artefacts due to
filtering.
[V1.0.4 -> V1.1.0] 17th January 2010
- Spyder3 and ColorMunki Design, Photo and Create instrument support.
- Added a complete printer calibration system. This can work either with
a print system that supports per channel print calibration curves, or
purely using ICC profiling mechanisms.
- Default targen (OFPS) test point distribution has been re-written to
generate test points on the gamut surface, refine the point locations
when using a guide profile, and use a better error estimate model to
determine the test point locations.
- Changed chartread strip reading mode to allow navigating about the
strips, saving a partially read chart, and resuming a partially read
chart.
- Improved and re-tuned gamut mapping. This is noticeably smoother and
better retains source image detail.
- Re-tuned the cLUT profile creation smoothness vs. accuracy.
- Fixed viewgam so that the number of gamuts that can be viewed is
unlimited. Also added error when computing intersecting volume if the
two gamuts are incompatible.
- Improved CMYK black generation control and smoothness near the black
point.
- Improved collink special black and colorant handling so that the gamut
mapping is consistent with the special black and colorant mapping
- Changed profile/colprof to generate matrix tags for Display XYZ PCS
cLUT profiles, to improve compatibility with other CMMs.
By default (-ax) the matrix tags will be a dummy transform that swaps
red and green, while using -aX will create real matrix tags.
- Added -V option to dispcal and dispread to allow use of i1pro adaptive
mode to give better low level consistency.
- Changed dispcal to default to -f 1.0 (assume black is all output
offset) to make it work in more sympathy to a typical display response.
Also changed default gamma to 2.4 for OS X 10.6 systems.
- Improved X11 XRandR CRTC detection.
- Added spotread option to save spectral reading of an illuminant to a
.sp file.
- Added Color Rendering Index (Ra) to spotread measurement results.
- Added i1pro & ColorMunki flash measurement
support.
- Improve reliability of detecting backwards read i1pro/Munki strips.
- Fixed bug in i1pro driver that subtly affected accuracy.
- Modified xicc/cam02 to clip the blue to avoid crazy behavior outside
the spectrum locus.
- Simplified the Linux installation instructions, particularly with
regard to USB and serial permissions.
- Added working MSWindows 64 bit libusb drivers, which will work on
Vista 64 and MSWindows 7 64 bit. Because of Microsoft's driver signing
requirements though, they won't be usable unless a driver code signing
workaround is used.
- Changed printtarg so that the TIFF output has the paper margin
subtracted from it. This is so that the resulting TIFF can be placed on
that sized paper without clipping or scaling. Set the margin to zero to
get a TIFF that exactly fits into the specified paper size
[V1.0.3 -> V1.0.4] 30th June 2009
- Modify icc/icclib to protect against integer overflow exploits, and
fixes to minor bugs. Bump icclib version to 2.11 to reflect this.
- Fix bug in spectro/hidio.c that can cause a crash (bus error) on OS X
for any program that accesses the instruments.
- Fix bug in xicc/xfit.c where too little memory was being allocated.
[V1.0.2 -> V1.0.3] 3rd September 2008
- Added multi-TIFF and popularity filtering to tiffgamut.
- Modified gamut mapping in colprof
and collink to be consistent,
and have higher perceptual intent saturation.
- Fixed timeout problem with the Eye-One Display colorimeter.
- Fix segmentation fault in dispread.
- Fix out of memory error in colprof for
systems with > 3Gig Ram.
- Add support for the Eye-One Monitor spectrometer.
- Added -L option to printtarg
to suppress the i1pro target holder clip margin.
- Fixed bug in dispcal when
using -a with -t
[V1.0.1 -> V1.0.2] 19th August 2008
Various bug fixes, the main ones being:
- Fixed some colprof performance
and memory usage issues.
- Fixed issues with Eye-One Pro Rev B timeouts.
- Added new option to collink -fk, that forces 000K input to K only
output.
- Added device target value quantization option to printtarg,
as well as making it default for TIFF output files.put files.
- Fixed leak that was affecting printtarg.
[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:
- Speedup in profile and device link generation (inversion code), and
better memory usage.
- Support for embedded profiles in TIFF files.
- Support for installing and uninstalling and loading of display
profiles for all operating systems, and a micro CMM system for X11/Linux
- Improved display calibration and profiling, including ambient light
adjustment.
- X11 XRandR 1.2 support added.
- Raster test charts now supported, as well as PS and EPS.
- Guidance for installing on a wider range of systems.
- Fixed luminance and ambient calibration issues with various
instruments.
- Renamed "profile" to "colprof", and "icclink" to "collink" to avoid
clashes that have arisen with other executable names.
- Streamlined source code build system, for much easier building.
- Installation archives now include a top directory, and gzip/tar format
for OS X and Linux.
- Added B2A table to input device LUT profiles by default.
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
- Added quick display ICC profile creation as part of calibration.
- Added support for the Huey, Spyder 2, DTP20, Eye-One Pro,
DTP22/Digital Swatchbook, Eye-One Display 1 and 2 instruments.
- Changed to GPL Version 3 license.
- Countless other bug fixes and feature enhancements.