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)
-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
projector
mode
(if
available)
-y c|l
Display
type,
c
=
CRT,
l
=
LCD
-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!)
-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
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.
-F
Fill
whole
screen
with
black
background
-K
Don't
use
VideoLUT
to
set
high
precision test values
-n
[X11
only]
Don't
set
override
redirect
on test
window
-J
Run
instrument
calibration
first
-N
Disable
auto
calibration
of
instrument
-H
Use
high
resolution
spectrum
mode
(if
available)
-V
Use
adaptive
measurement
mode
(if
available)
-X file.ccmx
Apply
Colorimeter
Correction
Matrix
-X file.ccss
Use
Colorimeter
Calibration Spectral Samples for calibration
-X N
0:
Technology
(Display description)
1:
etc.
-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
-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.
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 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 on X11,
if the VideoLUTs for a display are not accessible, dispcal will fail with an error.
This 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.
-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.
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.
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 projector mode, using
instruments that
support this.
Display type. Colorimeters can
do a more accurate job if they know what type of display technology
they are measuring. Use -yc if
you are
calibrating a CRT (Cathode Ray Tube) type monitor or Plasma type
display, and use -yl if you
are calibrating an LCD
(Liquid Crystal Display). A spectrometer instrument will not need this
option.
-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.
-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
dispcal will attempt to make all colors
down the neutral axis (R=G=B) have the same hue as the chosen white
point (ie. default is -k 1.0).
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 is not a problem. 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. The -k
flag allows the amount of black
point hue correction to be controlled. By default a factor of 1.0 will be used, which is usually
good for CRT and also by
default a factor of 0.0 is
used for LCD
type displays, but the -k
option allows overriding these with a custom value 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. 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. Note that the ho,vo,ss 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 .
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.
The -K
flag causes just the frame buffer to be used to hold the test values,
rather than using both the frame buffer and the (possibly higher
precision) VideoLUT entry values. On most displays using this option
will limit the calibration precision, and therefore should not be used.
Dispcal will still attempt to set the VideoLUT to linear, but will
issue a warning rather than abort if the VideoLUTs are not accessible.
-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.
The -N option disables the automatic
calibration
of an instrument if it is possible to do so. Sometimes it is awkward to
have to re-calibrate and instrument every time a tool starts, and
unnecessary if the instrument has recently been calibration, and this
switch prevents it happening.
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 -V option
uses adaptive emission measurement mode, if the instrument supports it,
such as the Eye-One Pro. This may give better accuracy for low level
measurements, but may be more inconsistent overall due to the varying
integration times. Overall measurement time will probably be longer.
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).This
can
improve
a colorimeters accuracy for a particular
type of display.
The -X N option selects a Colorimeter Calibration Spectral Samplefrom
the
list
of
installed ccss files, rather than specifying a specific
ccss files as in the above usage. The CCSS information that came with
your colorimeters can be installed using i1d3ccss,
or
one
can be created using ccxxmake.
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 -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 system RAMDAC (Video Lookup Tables and
Digital To Analog Converted) 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 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.