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. 

Usage Summary

targen [options] outfile
 -v [level]      Verbose mode [optional verbose level, 1..n]
 -d col_comb     choose colorant combination from the following:
                     0: Video grey
                     1: Print grey
                     2: Print CMY
                     3: Video RGB
                     4: CMYK
                     5: CMYK + Light CM
                     6: CMYK + Light CMK
                     7: CMYK + Red + Blue
                     8: CMYK + Orange + Green
                     9: CMYK + Light CMK + Light Light K
                    10: CMYK + Orange + Green + Light CM
                    11: 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: White
                     10: Light Cyan
                     11: Light Magenta
                     12: Light Yellow
                     13: Light Black
                     14: Medium Cyan
                     15: Medium Magenta
                     16: Medium Yellow
                     17: Medium Black
                     18: Light Light Black
 -e patches      White color test patches (default 4)
 -s steps        Single channel steps (default 0)
 -g steps        Gray axis RGB or CMY steps (default 0)
 -m steps        Multidimensional cube steps (default 2)
 -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
  -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 -2047840407
  -A adaptation      Degree of adaptation for preconditioning in OFPS 0.0 - 1.0 (default 0.0)
 -t              Use incremental far point for full spread (default iterative)
 -l ilimit       Total ink limit in %(default = none, or estimated from profile)
 -c profile      Optional device ICC or MPP pre-conditioning profile filename
-F L,a,b,rad     Filter out samples outside Lab sphere.
 -w              Dump diagnostic outfile.wrl file
 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 Adds or Deletes a single colorant from the colorspace colorant set. This flag can be specified multiple times to build up a custom colorant combination, or delete multiple colorants from a colorspace set. A pseudo colorant "Additive" allows specifying an additive colorspace rather than subtractive. To list the known colorants, use -?? or --- as a parameter.

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 -s parameter sets the number of patches in a set of per colorant wedges. The steps are evenly spaced in device space, and the total number of test patches will be the number of colorants times the value specified with the -s flag. 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 will be equally spaced steps in device space. 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 -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, all the device primary color combinations that fall within the ink limit are generated..

The behavior of the -e, -s, -g and -m 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 enabled by specifying a non-zero value for the -A parameter, which sets the degree of adaptation. A value of 1.0 distributes the test points so as to minimize the estimated error in the resulting profile. A value less than 1.0 is generally recommended - e.g. try starting with a value of 0.5. Currently if a value of greater than 0.0 is use, the distribution is not as highly optimized as it is when the default 0.0 is used. The total number patches specified will include any patches generated using the -e, -s, -g and -m flags (i.e. full spread patches will be added to bring the total number of patches including those generated using the -e, -s, -g and -m 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.

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 -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 iterative & adaptive algorithm.  By default the adapatation is 0.0, (none).

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.

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. 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 the perceptual placement, such as -R -I, or a -A value > 0.0.

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 -w flag causes a diagnostic VRML .wrl 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.

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 an iterative fashion.

     Size (mm/Standard Name),   No. Patches

  DTP41:
      110x200          105
      A3                  304
      Letter              368
      A4                  375
      115x645          494
      11x17             819
      A3                  836
      210x600          855
      420x645        1984
      575x500        2024
      687x590        2968
      630x645        2976
      830x950        6016

DTP20:

      1xA4       540
      2xA4       1110
      3xA4       1680
      4xA4       2250

      1xLetter   570
      2xLetter   1170
      3xLetter   1770
      4xLetter   2370

  SpectroScan with square patches:

      1xA4R       1053
      2xA4R       2106
      3xA4R       3159
      4xA4R       4212

      1xLetterR   1008
      2xLetterR   2016
      3xLetterR   3024
      4xLetterR   4032

  SpectroScan with hexagonal patches:

      1xA4R       1178
      2xA4R       2356
      3xA4R       3534
      4xA4R       4712

      1xLetterR   1152
      2xLetterR   2304
      3xLetterR   3456
      4xLetterR   4608

  SpectroScan with square patches:

      1xA4       504
      2xA4       1008
      3xA4       1512
      4xA4       2016

      1xLetter   525
      2xLetter   1050
      3xLetter   2475
      4xLetter   3300

  Eye-One Pro:

      1xA4       462
      2xA4       924
      3xA4       1386
      4xA4       1848

      1xLetter   462
      2xLetter   924
      3xLetter   1386
      4xLetter   1848

  Scanner (printtarg with -iSS -s options):

       1xA4R      1026
       2xA4R      2052
       3xA4R      3078
       4xA4R      4104

       1xLetterR  1008
       2xLetterR  2016
       3xLetterR  3024
       4xLetterR  4032