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 X
Display type - instrument specific list to choose from.
-t [temp]
White
Daylight
locus
target,
optional
target
temperaturee
in
deg. K
(deflt.)
-T [temp]
White
Black
Body
locus
target,
optional
target
temperaturee
in deg. K
-w x,y
Set
the
target
white
point
as
chromaticity
coordinates
-b bright
Set
the
target
white
brightness
in
cd/m^2
-g gamma
Set
the
target
response
curve
gamma
(Def.
2.4)
Use
"-gl"
for
L*a*b*
curve
Use
"-gs"
for
sRGB
curve
Use
"-g709"
for
REC
709
curve
(should
use
-a as well!)
Use
"-g240"
for
SMPTE
240M
curve
(should
use
-a as well!)
-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.
The -y
flag allows setting the Display Type. Most colorimeters need this
parameter set to operate correctly. The selection typically
determines two aspects of of the instrument operation: 1) It may set the measuring mode
to suite refresh or non-refresh displays.
Typically only LCD (Liquid Crystal) displays have a non-refresh
nature. 2) It may select an
instrument calibration matrix suitable for a particular display
type. The selections available depends on the type and model of
instrument, and a list of the options for the discovered instruments
will be shown in the usage
information. For more details on what particular instruments support
and how this works, see Operation of
particular instruments.
-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,
or the DataColor Spyder4).This
can
improve
a
colorimeters accuracy for a particular
type of display.
The -X N option selects a Colorimeter Calibration Spectral
Sample from the list of installed ccss files, rather than
specifying a specific ccss files as in the above usage. The CCSS
file that came with the i1d3 colorimeters can be installed using i1d3ccss, or one can be created and
installed 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.