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)
-p power
Optional
power-like
value
applied
to
all
device
values.
-c profile
Optional device ICC or MPP pre-conditioning profile filename
-N emphasis
Degree of neutral axis patch concentration 0-1. (default 0.50)
-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 Incremental Far
Point Distribution algorithm from fast to good mode. Fast mode uses
a limited number of iterations to optimize the patch locations,
while good mode strives for a more even patch distribution by using
more iterations.
The composition of the test patches is controlled by the following
flags and parameters:
The -e parameter sets the number of white
colored test patches, defaulting to 4 if the -e flag isn't used. The
white patches are usually very important in establishing white point
that the ICC data is made relative to, so it improves robustness to
use more than a single point.
The -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.
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.
The -l flag and parameter sets a total ink
limit (Total Area Coverage or TAC), which is adhered to for all the
generated points. It is generally good practice to set a test chart
ink limit at least 10% higher than the ink limit that will be
applied when making the resulting profile. In the case of device
cube points, this can generate extra test values that lie at the ink
limit boundary. For gray wedge values, any that exceed the ink limit
are omitted. Full spread test values are all generated to lie within
the ink limit. Although it doesn't make much sense, this parameter
has an affect on additive device spaces (such as RGB), but should
not normally be used with such devices. The total ink limit value
will be written to the .ti1 file, and carried through automatically
to the .ti3 file, so that it can be used during profile creation. If
a profile is provided using the -c
flag, then this will be used to estimate an ink limit, if none is
provided with the -l flag.
Ink limits are, as far as possible, always in final calibrated
device values, and the calibration curves from the profile provided
to the -c flag will be used
to estimate the equivalent limit in the underlying pre-calibration
device space values that targen creates.
The -p flag and parameter sets a power-like
value applied to all of the device values after they are generated,
the spacer colors. This can be useful in creating
calibration charts for very non-linearly behaved devices. A value
greater than 1.0 will cause a tighter spacing of test values near
device value 0.0, while a value less than 1.0 will cause a tighter
spacing near device value 1.0. printcal
will recommend a power-like value if the verbose option is used. [ Note that for Print RGB space
this is reversed, since internally a Print RGB space is treated as a
CMY space. ]. Note that the
device model used to create the expected patch values will not take
into account the applied power, nor will the more complex full
spread algorithms correctly take into account the power in
generating values up to the ink limits. (A power-like function is
used, to avoid the excessive compression that a real power function
would apply).
The -c flag and parameter is used to
specify an ICC or MPP pre-conditioning profile, for
estimating perceptual distances and colorspace curvature, used in
optimizing the full spread test point placement, or in creating
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.
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. 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