target/targen
Summary
Generate a profiling test target values .ti1
file. targen is used to generate the device channel test point
values for grayscale, RGB, CMY, CMYK or N-color output or display devices.
[ Note though that colprof will only create RGB, CMY or CMYK profiles. ]
Usage Summary
targen [options] outfile
-v [level] Verbose mode [optional
verbose level, 1..n]
-d col_comb choose colorant combination
from the following:
0:
Print
grey
1:
Video
grey
2:
Print
RGB
3:
Video
RGB
4:
CMYK
5:
CMY
6:
CMYK
+ Light CM
7:
CMYK
+ Light CMK
8:
CMYK
+ Red + Blue
9:
CMYK
+ Orange + Green
10:
CMYK
+ Red + Green + Blue
11:
CMYK
+ Orange + Green + Violet
12:
CMYK
+ Orange + Green + Blue
13:
CMYK
+ Light CMK + Light Light K
14:
CMYK
+ Orange + Green + Light CM
15:
CMYK
+ Light CM + Medium CM
-D colorant Add or delete colorant from
combination:
0:
Additive
1:
Cyan
2:
Magenta
3:
Yellow
4:
Black
5:
Orange
6:
Red
7:
Green
8:
Blue
9:
Violet
10:
White
11:
Light
Cyan
12:
Light
Magenta
13:
Light
Yellow
14:
Light
Black
15:
Medium
Cyan
16:
Medium
Magenta
17:
Medium
Yellow
18:
Medium
Black
19:
Light
Light Black
-G
Generate
good optimzed points rather than Fast
-e patches White color test patches
(default 4)
-B patches Black test patches
(default 4 Grey/RGB, else 0)
-s steps Single channel
steps (default 0)
-g steps Gray axis RGB or
CMY steps (default 0)
-n steps Neutral axis
steps (based on profile, default 0)
-m steps Multidimensional
device space cube steps (default 0)
-M steps Multidimensional
device space cube surface steps (default 0)
-b steps Multidimensional
body centered cubic steps (default 0)
-f patches Add iterative &
adaptive full spread patches to total (default 836)
Default
is
Optimised Farthest Point Sampling (OFPS)
-t Use
incremental
far point for full spread
-r
Use
device space random for full spread
-R
Use
perceptual space random for full spread
-q
Use
device space-filling quasi-random for full spread
-Q
Use
perceptual space-filling quasi-random for full spread
-i
Use
device space body centered cubic grid for full spread
-I
Use
perceptual space body centered cubic grid for full spread
-a angle Simplex grid
angle 0.0 - 0.5 for B.C.C. grid, default 0.333300
-A adaptation Degree of adaptation of OFPS 0.0 - 1.0
(default 0.1, 1.0 if -c profile provided)
-t
Use
incremental far point for full spread (default iterative)
-l ilimit Total ink limit in
%(default = none, or estimated from profile)
-T ilimit
Text and space total ink limit in % (default = same as -l)
-p power Optional
power-like value applied to all device values.
-c profile Optional device ICC or MPP
pre-conditioning profile filename
-C cal
Optional .cal filename that overrides any .cal in ICC 'targ' .ti3
(Use "none" to disable .cal use in estimating ink limit)
-N emphasis Degree of neutral axis patch
concentration 0-1. (default 0.50)
-V emphasis dark region patch concentration
1.0-4.0 (default 1.0 = none)
-F L,a,b,rad Filter out samples outside Lab
sphere.
-O
Don't
re-order display RGB patches for minimum delay
-U
Don't
filter out duplicate patches
-w
Dump
diagnostic outfile.x3d.html file (Lab locations)
-W
Dump
diagnostic outfile.x3d.html file (Device locations)
outfile
Base name for output(.ti1)
Usage Details and Discussion
The number of target patches needs to be chosen, depending on the media
size, the type of device, and the quality of profile required. For an inkjet
device, something like 3000 test points or more is desirable for high
quality profiles, while 500-1000 will probably suffice for a medium quality
profile. A few hundred may be sufficient for a preliminary profile. Well
behaved printing devices (such as a chemical proof, or a high quality
printing press) may produce good profiles with 1000 to 2000 test points.
Well behaved RGB devices such as CRT monitors may need only a few hundred
points, if a shaper/matrix type profile is to be produced, while pseudo RGB
printers, or other RGB devices that a CLUT type profile may be used with,
should probably choose somewhere between 500 and 3000 patches. For 'N' color
profile creation, 3000 or more test points should probably be used.
The -v flag turns on extra verbosity when
generating patch values. Extra diagnostics and verbosity may be available if
a parameter is provided with a value greater than 1.
The -d parameter sets the colorspace the test
values will be generated in. Video gray space is assumed to be an additive
space, where a zero device value will be black, and a maximum device value
will be white. A print gray space is assumed to be a subtractive space, in
which a zero device value will be white, and a maximum device value will be
black. If no colorspace is specified, subtractive CMYK is assumed as a
default.
The -D parameter modifies the colorspace set by -d by allowing individual colorants to
be added or subtracted from the colorspace.
The -G flag changes the Optimized Far Point
Distribution (OFPS) algorithm from fast to good mode. Fast mode uses a
limited number of iterations to optimize the patch locations, while good
mode strives for a more even patch distribution by using more iterations.
The composition of the test patches is controlled by the following flags and
parameters:
The -e parameter sets the number of white colored
test patches, defaulting to 4 if the -e flag isn't used. The white patches
are usually very important in establishing white point that the ICC data is
made relative to, so it improves robustness to use more than a single point.
The -B parameter sets the number of black colored
test patches, defaulting to 4 if the -B flag isn't used and the colorspace
is grey or RGB. The black point can be very important for characterizing
additive color spaces, so measuring more than one black patch improves
robustness over measuring just a single point.
The -s parameter sets the number of patches
in a set of per colorant wedges. The steps are evenly spaced in device space
by default, and the total number of test patches will be the number of
colorants times the value specified with the -s flag. If the -p
parameter is provided, then, then the steps will be distributed according to
the power value. e.g. the option -s 5
will generate steps at 0.0 0.25 0.5 0.75 and 1.0, while the option -s 5 -p 2.0 will generate steps at 0.0 0.0625 0.25 0.5625
and 1.0. By default, no per colorant test wedge values are generated. When
creating a test chart for a device that will be used as a source colorspace,
it is often useful to generated some per colorant wedge values.
The -g parameter sets the number of patches in a
set of combined (nominally gray) wedges. This will typically be equal RGB or
CMY values, and by default will be equally spaced steps in device space. If
the -p parameter is provided, then,
then the steps will be distributed according to the power value. e.g. the
option -g 5 will generate steps at
0.0 0.25 0.5 0.75 and 1.0, while the option -g 5 -p 2.0 will generate steps at 0.0 0.0625 0.25 0.5625
and 1.0. By default, no gray combination values are generated. When creating
a test chart for a device that will be used as a source colorspace, it is
often useful to generated some per colorant wedge values.
The -n parameter sets the number of patches in a set
of neutral axis wedge steps. This uses the pre-conditioning
profile, to lookup the assumed neutral axis device values. By default,
no neutral axis values are generated. If you have a previous profile for a
device as a reference, adding some neutral axis values can improve the
neutral axis rendering of the subsequent profiles. A good number to start
with the the cube root of the total number of patches. Too higher density of
-n patches will tend to cause full spread patches to keep their
distance.
The -m parameter sets the edge size of the
multidimensional grid of test values. The total number of patches of this
type will be the -m parameter value to the power of the number of colorants.
The grid steps are evenly spaced in device space by default, but if the -p parameter is provided, then, then the
steps will be distributed according to the power value. e.g. the option -m 5 will generate steps at 0.0 0.25 0.5
0.75 and 1.0, while the option -m 5 -p 2.0 will generate steps at 0.0 0.0625 0.25 0.5625
and 1.0. By default, all the device primary color combinations that fall
within the ink limit are generated.
Similarly to the -m parameter, the -M
parameter sets the edge size of the multidimensional grid of test values,
but where only the surface points of the cube is generated. These may be
useful for exploring just the expected gamut surface of a space.
The -b parameter sets the outer edge size of the
multidimensional body centered grid of test values. The total number of
patches of this type will be the -b parameter value to the power of the
number of colorants plus the (number-1) to the power of the number of
colorants. The grid steps are evenly spaced in device space by default, but
if the -p parameter is provided,
then, then the steps will be distributed according to the power value. A
body centered grid is a regular grid (see -m) with another smaller
regular grid within it, at the centers of the outer grid. This grid
arrangement is more space efficient than a regular grid (ie. for a given
number of test points, it fills the space better.)
The behavior of the -e, -s, -g -m and -b
flags, is not to duplicate test values already created by a previous type.
The -f parameter sets the number of full spread
test patches. Full spread patches are distributed according to the default
or chosen algorithm. The default algorithm will optimize the point locations
to minimize the distance from any point in device space, to the nearest
sample point. This is called Optimized Farthest Point Sampling (OFPS) . This
can be overridden by specifying the -t. -r, -R, -q, -i or -I flags.
If the default OFPS algorithm is used, then adaptive test point distribution
can be fully enabled by supplying a previous or typical profile with the -c option. The total number patches
specified will include any patches generated using the -e, -s,
-g -m and -b flags (i.e. full spread patches will be
added to bring the total number of patches including those generated using
the -e, -s, -g -m and -b flags up
to the specified number). When there are more than four device channels, the
full spread distribution algorithm can't deal with so many dimensions, and targen
falls back on an incremental far point distribution algorithm by default,
that doesn't generate such evenly spread points. This behaviour can be
forced using the -t flag. A table of useful
total patch counts for different paper sizes is shown below. Note that it's
occasionally the case that the OFPS algorithm will fail to complete, or make
very slow progress if the -c
profile is poor, non-smooth, or has unusual behaviour. In these cases a
different algorithm should be chosen (ie. -Q
or -I), or perhaps a smoother or
lower resolution ("quality") previous profile may overcome the problem.
The -t flag overrides the default full spread test
patch algorithm, and makes use of the Incremental Far Point Distribution
algorithm, which incrementally searches for test points that are as far away
as possible from any existing points. This is used as the default for
dimensions higher than 4.
The -r flag overrides the default full spread test
patch algorithm, and chooses test points with an even random distribution in
device space.
The -R flag overrides the default full spread test
patch algorithm, and chooses test points with an even random distribution in
perceptual space.
The -q flag overrides the default full spread test
patch algorithm, and chooses test points with a quasi-random, space filling
distribution in device space.
The -Q flag overrides the default full spread test
patch algorithm, and chooses test points with a quasi-random, space filling
distribution in perceptual space.
The -i flag overrides the default full spread test
patch algorithm, and chooses test points with body centered cubic
distribution in device space.
The -I flag overrides the default full spread test
patch algorithm, and chooses test points with body centered cubic
distribution in perceptual space.
The -a angle parameter sets the overall
angle that the body centered grid distribution has.
The -A adaptation parameter sets the degree
of adaptation to the known device characteristics, used by the default full
spread OFPS algorithm. A profile should be provided using the -c
parameter if adaptation
is set above a low level. By default the adaptation is 0.1 (low), and 1.0
(maximum) if -c profile is
provided, but these defaults can be overridden using this option. For
instance, if the -c profile doesn't
represent the device behavior very well, a lower adaption than 1.0 might be
appropriate.
For CMYK colorspace, a default of 0.5 (medium) is set, to permit some
lightness compensation to be applied to shift the average lightness level
closer to that of the CMY gamut, even if no profile is supplied.
The -l flag and parameter sets a total ink limit
(Total Area Coverage or TAC), which is adhered to for all the generated
points. It is generally good practice to set a test chart ink limit at least
10% higher than the ink limit that will be applied when making the resulting
profile. In the case of device cube points, this can generate extra test
values that lie at the ink limit boundary. For gray wedge values, any that
exceed the ink limit are omitted. Full spread test values are all generated
to lie within the ink limit. Although it doesn't make much sense, this
parameter has an affect on additive device spaces (such as RGB), but should
not normally be used with such devices. The total ink limit value will be
written to the .ti1 file, and carried through automatically to the .ti3
file, so that it can be used during profile creation. If a profile is
provided using the -c flag, then
this will be used to estimate an ink limit, if none is provided with the -l flag.
Ink limits are, as far as possible, always in final raw device values, and
the calibration curves within the .ti3 data included in the 'targ' tag from
the profile provided to the -c
option will be used to estimate the equivalent limit in the underlying
pre-calibration device space values that targen creates.
The -T parameter is similar to the -I
parameter, but applies a different total ink limit to the non-patch elements
of the test chart created by printtarg. The default is the same as the test
patch limit.
The -p flag and parameter sets a power-like value
applied to all of the device values after they are generated, the spacer colors. This can be useful in creating
calibration charts for very non-linearly behaved devices. A value greater
than 1.0 will cause a tighter spacing of test values near device value 0.0,
while a value less than 1.0 will cause a tighter spacing near device value
1.0. printcal will recommend a
power-like value if the verbose option is used. [ Note
that for Print RGB space this is reversed, since internally a Print RGB
space is treated as a CMY space. ]. Note
that the device model used to create the expected patch values will not take
into account the applied power, nor will the more complex full spread
algorithms correctly take into account the power in generating values up to
the ink limits. (A power-like function is used, to avoid the excessive
compression that a real power function would apply).
The -c flag and parameter is used to specify an ICC or MPP
pre-conditioning profile, for estimating perceptual distances and colorspace
curvature, used in optimizing the full spread test point placement, or in
creating perceptually spaced distributions. Normally a previous profile for
this or a similar device will be used, or a simpler, preliminary profile
will be created and used. If no such profile is specified, a default device
space model is used. Note that this will only have an effect if an algorithm
that uses perceptual placement (such as -R,
-Q, -I or the default OFPS with an -A
value > 0.0) is being used. The perceptual values are written to the .ti1
file to enable patch location recognition. If the profile contains .ti3 data
included in the 'targ' tag, and this .ti3 contains calibration curves, then
these will be used to estimate the equivalent limit in the ICC profile
underlying pre-calibration device space values that targen creates. Use the
name "none" to turn off the default pre-conditioning used when no
profile is provided.
The -C flag and parameter is used to specify .cal calibration curves, that will override any
calibration curves found in the ICC profile 'targ' .ti3 data, and will be
used for estimating the equivalent limit in the ICC profile underlying
pre-calibration device space values that targen creates. Use "none"
to to disable .cal use in estimating the underlying ink limit from the ICC
profile.
The -N emphasis parameter allows changing the
degree to which the patch distribution should emphasise the neutral axis.
Since the neutral axis is regarded as the most visually critical are of the
color space, it can help maximize the quality of the resulting profile to
place more measurement patches in this region. This emphasis is only
effective for perceptual patch distributions, and for the default OFPS
distribution if the adaptation parameter is set to a high
value. It is also most effective when a pre-conditioning
profile is provided, since this is the only way that neutral can be
determined. The default value of 0.5 provides an affect about twice the
emphasis of the CIE94 Delta E formula.
The -V emphasis parameter allows changing the
degree to which the patch distribution should emphasis dark region of the
device response. Display devices used for video or film reproduction are
typically viewed in dark viewing environments with no strong white
reference, and typically employ a range of brightness levels in different
scenes. This often means that the devices dark region response is of
particular importance, so increasing the relative number of sample points in
the dark region may improved the balance of accuracy of the resulting
profile for video or film reproduction. This emphasis is only effective
for perceptual patch distributions where a pre-conditioning
profile is provided or the adaptation
parameter is set to a high value. The default value of 1.0 provides no
emphasis of the dark regions. A value somewhere around 1.5 - 2.0 is
a good place to start for video profile use. A scaled down version of the -V
parameter will be passed on through the .ti3 file to colprof where it will
set a default value for the corresponding colprof
-V parameter. Note that increasing the proportion of dark
patches will typically lengthen the time that an instrument takes to read
the whole chart. Emphasizing the dark region characterization will reduce
the accuracy of measuring and modelling the lighter regions, given a fixed
number of test points and profile quality/grid resolution. The parameter
will also be used in an analogous way to the -p
power value in changing the distribution of -s
steps, -g steps, -m steps and -b
steps patches.
The -F flag and parameters is used to define an
L*a*b* sphere to filter the test points through. Only test points within the
sphere (defined by it's center and radius) will be written to the .ti1 file.
This can be good for targeting supplemental test points at a troublesome
area of a device. The accuracy of the L*a*b* target will be best when the -c option is used to specify a
reasonably accurate profile for the device. Note that the actual number of
points generated can be hard to predict, and will depend on the type of
generation used. All means of generating points except the -f N & -r, -R
and -q will generate a smaller number of test points than expected. If the
-f N & -r, -R and -q methods are used, then the target number of points
will be achieved. For this reason, the -f N -q method is probably the
easiest to use.
The -O flag disables the normal patch re-ordering
used for display RGB sets. Displays are assumed to have a "settling time",
and the delay needed for this settling time can be minimzed by sort the
patches so that they are in an order which minimizes the change in levels
between patches. -O disables this re-ordering, leaving the patches
in whatever order they were generated.
The -U flag disables the normal filtering out of
duplicate patches.
The -w flag causes a diagnostic X3DOM
.x3d.html file to be created, in which the test points are plotted as small
spheres in L*a*b* colorspace. Note that for a CMYK device, the point spacing
may seem strange, since the extra K dimension is compressed into the 3
dimensional L*a*b* space. If the -W
flag is given, the plot will be in device space, with only the first 3
dimensions of each point being plotted.
The final parameter on the command line is the base
filename for the .ti1 output file. targen
will add the .ti1 extension automatically.
Some typical total patch number/paper size combinations are shown below.
These "magic" numbers are found by using printtarg
to compute the row length and number of rows, and then adjusting the total
number of patches to fill the last row or paper size, in a trial and error
fashion.
Note that some people create charts with larger numbers of patches for the
ColorMunki by altering an Eye-One Pro chart, and making scanning jigs to
guide the instrument more accurately. This may reduce patch reading accuracy
unless suitable care is taken.
Size (mm/Standard Name), No.
Patches
DTP20:
1 x A4 540
2 x A4 1080
3 x A4 1620
4 x A4 2160
1 x Letter 570
2 x Letter 1140
3 x Letter 1710
4 x Letter 2280
DTP 22:
1 x A4 782
2 x A4 1564
1 x Letter 736
2 x Letter 1472
DTP41:
1 x A4
375
2 x A4
750
3 x A4
1125
4 x A4
1500
1 x Letter
345
2 x Letter
690
3 x Letter
1035
4 x Letter
1380
1 x A3
836
2 x A3
1672
1 x 11x17
780
2 x 11x17
1560
DTP51:
1 x A4
266
2 x A4
532
3 x A4
798
4 x A4
1064
1 x Letter
252
2 x Letter
504
3 x Letter
756
4 x Letter
1008
1 x A3
580
2 x A3
1160
1 x 11x17 570
2 x 11x17 1140
SpectroScan with square patches:
1 x A4R 1014
2 x A4R 2028
3 x A4R 3042
4 x A4R 4056
1 x LetterR 999
2 x LetterR 1998
3 x LetterR 2997
4 x LetterR 3996
SpectroScan with hexagonal patches:
1 x A4R 1170
2 x A4R 2340
3 x A4R 3510
4 x A4R 4680
1 x LetterR 1092
2 x LetterR 2184
3 x LetterR 3276
4 x LetterR 4368
Eye-One Pro:
1 x A4 441
2 x A4 882
3 x A4 1323
4 x A4 1764
1 x Letter 462
2 x Letter 924
3 x Letter 1386
4 x Letter 1848
ColorMunki:
1 x A4
90
2 x A4 180
3 x A4
270
4 x A4
360
1 x Letter 98
2 x Letter 196
3 x Letter 294
4 x Letter 392
ColorMunki -h:
1 x A4 210
2 x A4 420
3 x A4 630
4 x A4 840
1 x Letter 196
2 x Letter 392
3 x Letter 588
4 x Letter 784
Scanner (printtarg with -iSS -s options):
1 x A4R 1014
2 x A4R 2028
3 x A4R 3042
4 x A4R 4056
1 x LetterR 962
2 x LetterR 1924
3 x LetterR 2886
4 x LetterR 3848