diff options
Diffstat (limited to 'doc/xicclu.html')
-rw-r--r-- | doc/xicclu.html | 551 |
1 files changed, 551 insertions, 0 deletions
diff --git a/doc/xicclu.html b/doc/xicclu.html new file mode 100644 index 0000000..8377c69 --- /dev/null +++ b/doc/xicclu.html @@ -0,0 +1,551 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> + <title>xicclu</title> + <meta http-equiv="content-type" + content="text/html; charset=ISO-8859-1"> + <meta name="author" content="Graeme Gill"> +</head> +<body> +<h2><b>xicc/xicclu</b> </h2> +<h3>Summary <br> +</h3> +Lookup individual color values forward or inverted though an ICC +profile table. <b>xicclu</b> is the analogue of the icclib tool <a + href="icclu.html">icclu</a>, but expands the capability to reverse +lookup the Lut tables, and displaying PCS values in CIECAM02 Jab space. +<b>xicclu</b> +can also be used to plot the device value composition down the neutral +axis, +for device profiles.<br> +<h3>Usage Summary</h3> + <small><span style="font-family: monospace;">xicclu [-</span><i + style="font-family: monospace;">options</i><span + style="font-family: monospace;">] profile</span><br + style="font-family: monospace;"> +<span style="font-family: monospace;"> </span><a + style="font-family: monospace;" href="#v">-v level</a><span + style="font-family: monospace;"> +Verbosity level 0 - 2 (default = 1)</span><br + style="font-family: monospace;"> +<span style="font-family: monospace;"> </span><a + style="font-family: monospace;" href="#g">-g</a><span + style="font-family: monospace;"> + Plot slice instead of looking colors up. (Default white to black)<br> + <a href="#Gs">-G s:L:a:b</a> Override +plot slice start with Lab or Jab co-ordinate<br> + <a href="#Ge">-G e:L:a:b</a> Override +plot slice end with Lab or Jab co-ordinate<br + style="font-family: monospace;"> +</span><span style="font-family: monospace;"> </span><a + style="font-family: monospace;" href="#f">-f function</a><span + style="font-family: monospace;"> f = forward, b = +backwards, g = gamut, p = preview</span><br + style="font-family: monospace;"> +<span style="font-family: monospace;"> +if += inverted forward, ib = inverted backwards</span><br + style="font-family: monospace;"> +<span style="font-family: monospace;"> </span><a + style="font-family: monospace;" href="#i">-i intent</a><span + style="font-family: monospace;"> a = +absolute, r = relative colorimetric,</span><br + style="font-family: monospace;"> +<span style="font-family: monospace;"> +</span></small><small><span style="font-family: monospace;"> p = +perceptual, </span></small><small><span style="font-family: monospace;">s += +saturation</span><span style="font-family: monospace;"></span><br + style="font-family: monospace;"> +<span style="font-family: monospace;"> </span><a + style="font-family: monospace;" href="#o">-o order</a><span + style="font-family: monospace;"> n += normal (priority: lut > matrix > monochrome)</span><br + style="font-family: monospace;"> +<span style="font-family: monospace;"> +r += reverse (priority: monochrome > matrix > +lut)</span><br style="font-family: monospace;"> +<span style="font-family: monospace;"> </span><a + style="font-family: monospace;" href="#p">-p oride</a><span + style="font-family: monospace;"> x += XYZ_PCS, X = XYZ * 100, l = Lab_PCS, L = LCh, y = Yxy,<br> + j = CIECAM02 +Appearance Jab, J = CIECAM02 Appearance JCh<br> +</span><span style="font-family: monospace;"> </span><a + style="font-family: monospace;" href="#s">-s scale</a><span + style="font-family: monospace;"> +Scale device range 0.0 - scale rather than 0.0 - 1.0</span><br + style="font-family: monospace;"> +<span style="font-family: monospace;"> </span><a + style="font-family: monospace;" href="#k">-k [zhxrlv]</a><span + style="font-family: monospace;"> Black generation: z += zero K,</span><br style="font-family: monospace;"> +<span style="font-family: monospace;"> + +h = 0.5 K, x = max K, r = ramp K (def.)</span><br + style="font-family: monospace;"> +<span style="font-family: monospace;"> + +l = extra PCS input is portion of K locus</span><br + style="font-family: monospace;"> +<span style="font-family: monospace;"> + +v = extra PCS input is K target value</span><br + style="font-family: monospace;"> +<span style="font-family: monospace;"> </span><a + style="font-family: monospace;" href="#kp">-k p stle stpo enpo enle +shape</a><br style="font-family: monospace;"> +<span style="font-family: monospace;"> + +stle: K level at White 0.0 - 1.0</span><br + style="font-family: monospace;"> +<span style="font-family: monospace;"> + +stpo: start point of transition Wh 0.0 - Bk 1.0</span><br + style="font-family: monospace;"> +<span style="font-family: monospace;"> + +enpo: End point of transition Wh 0.0 - Bk 1.0</span><br + style="font-family: monospace;"> +<span style="font-family: monospace;"> + +enle: K level at Black 0.0 - 1.0</span><br + style="font-family: monospace;"> +<span style="font-family: monospace;"> + +shape: 1.0 = straight, 0.0-1.0 concave, 1.0-2.0 +convex</span><br style="font-family: monospace;"> +<span style="font-family: monospace;"> </span><a + style="font-family: monospace;" href="#kq">-k q stle0 stpo0 enpo0 +enle0 shape0 stle2 stpo2 +enpo2 enle2 shape2</a><br style="font-family: monospace;"> +<span style="font-family: monospace;"> +Transfer +extra PCS input to dual curve limits</span><br + style="font-family: monospace;"> +<span style="font-family: monospace;"> </span><a + style="font-family: monospace;" href="#K">-K parameters</a><span + style="font-family: monospace;"> Same as -k, but target is K +locus rather than K value itself</span><br + style="font-family: monospace;"> +<span style="font-family: monospace;"> </span><a + style="font-family: monospace;" href="#l">-l tlimit</a><span + style="font-family: monospace;"> set +total ink limit, 0 - 400% (estimate by default)</span><br + style="font-family: monospace;"> +<span style="font-family: monospace;"> </span><a + style="font-family: monospace;" href="#L">-L klimit</a><span + style="font-family: monospace;"> set +black ink limit, 0 - 100% (estimate by default)</span><br + style="font-family: monospace;"> +<span style="font-family: monospace;"> </span><a + style="font-family: monospace;" href="#a">-a</a><span + style="font-family: monospace;"> +show +actual target values if clipped<br> + <a href="#b">-b</a> +use +CAM Jab for clipping<br style="font-family: monospace;"> +</span><span style="font-family: monospace;"> </span><a + style="font-family: monospace;" href="#m">-m</a><span + style="font-family: monospace;"> + +merge output processing into clut</span><span + style="font-family: monospace;"></span><span + style="font-weight: bold; font-family: monospace;"></span><br + style="font-family: monospace;"> +<span style="font-family: monospace;"> </span><a + style="font-family: monospace;" href="#c">-c viewcond</a><span + style="font-family: monospace;"> set viewing +conditions +for CIECAM02,</span><br style="font-family: monospace;"> + </small><small><span style="font-family: monospace;"> + +either an enumerated choice, or a parameter:value change</span><span + style="font-family: monospace;"></span><br + style="font-family: monospace;"> +<span style="font-family: monospace;"></span></small><small><span + style="font-family: monospace;"> + pp - Practical Reflection Print +(ISO-3664 P2)</span><br style="font-family: monospace;"> +<span style="font-family: monospace;"> + +pe - Print evaluation environment (CIE 116-1995)<br> +</span></small><small><span style="font-family: monospace;"> + +pc - Critical print evaluation environment (ISO-3664 P1)</span></small><small><span + style="font-family: monospace;"></span><span + style="font-family: monospace;"></span><br + style="font-family: monospace;"> +<span style="font-family: monospace;"> + mt - Monitor in typical work environment</span><br + style="font-family: monospace;"> +<span style="font-family: monospace;"> + + mb - Monitor in bright work environment</span><br + style="font-family: monospace;"> +<span style="font-family: monospace;"> + md - Monitor in darkened work +environment</span><br style="font-family: monospace;"> +<span style="font-family: monospace;"> + jm - Projector in dim environment</span><br + style="font-family: monospace;"> +<span style="font-family: monospace;"> + jd - Projector in dark environment</span><br + style="font-family: monospace;"> +<span style="font-family: monospace;"> + pcd - Photo CD - original scene +outdoors</span><br style="font-family: monospace;"> +<span style="font-family: monospace;"> + ob - Original scene - Bright Outdoors</span><br + style="font-family: monospace;"> +<span style="font-family: monospace;"> + cx - Cut Sheet Transparencies on a viewing box</span></small><small><span + style="font-family: monospace;"></span><span + style="font-family: monospace;"></span><br + style="font-family: monospace;"> +<span style="font-family: monospace;"> +s:surround +n = auto, a = average, m = dim, d = dark,</span><br + style="font-family: monospace;"> +<span style="font-family: monospace;"> + + c = transparency (default average)</span><br + style="font-family: monospace;"> +<span style="font-family: monospace;"> +w:X:Y:Z +Adapted white point +as XYZ (default media white, Abs: D50)</span><br + style="font-family: monospace;"> +<span style="font-family: monospace;"> +w:x:y +Adapted white point as +x, y</span><br style="font-family: monospace;"> +<span style="font-family: monospace;"> +a:adaptation +Adaptation luminance in +cd.m^2 +(default 50.0)</span><br style="font-family: monospace;"> +<span style="font-family: monospace;"> + b:background Background % +of image luminance (default 20)</span><br + style="font-family: monospace;"> +<span style="font-family: monospace;"> +f:flare +Flare +light % of image luminance (default 1)</span><br + style="font-family: monospace;"> +<span style="font-family: monospace;"> + +f:X:Y:Z Flare color +as XYZ (default media white, Abs: D50)</span><br + style="font-family: monospace;"> +<span style="font-family: monospace;"> +f:x:y +Flare color as x, y</span><br style="font-family: monospace;"> +<br style="font-family: monospace;"> +<span style="font-family: monospace;"> +</span><a style="font-family: monospace;" href="#p1"><i>inoutfile</i></a><span + style="font-family: monospace;"> The input +ICC profile</span><br style="font-family: monospace;"> +<br style="font-family: monospace;"> +<span style="font-family: monospace;"> The colors to +be translated should be fed into +standard in,</span><br style="font-family: monospace;"> +<span style="font-family: monospace;"> one input +color per line, white space separated.</span><br + style="font-family: monospace;"> +<span style="font-family: monospace;"> A line +starting with a # will be ignored.</span><br + style="font-family: monospace;"> +<span style="font-family: monospace;"> A line not +starting with a number will terminate the +program.</span></small> +<br> +<h3>Flags and Parameters</h3> +<a name="v"></a> The <b>-v</b> parameter sets the level of verbosity. +Default is level 1, which repeats each input value, the colorspaces of +input and output, the type of conversion algorithm used, and if the +result was clipped. Level 2 adds prints extra information about the +profile before doing the conversions. Level 0 turns off all verbosity, +just outputting the results of each conversion. Use the latter to +capture batch output ready for further processing.<br> +<br> +<a name="g"></a>The <b>-g</b> flag causes a plot of the device values +along a slice through the Lab or Jab colorspace, rather than allowing +the interactive looking up of color +values. By default this will be the neutral axis +from the white point to the black point, but the start and end can be +overridden using the <span style="font-weight: bold;">-G</span> +parameters. +This is useful in determining the existing black generation in a CMYK +profile, +or exploring the behavior of various black generation options using +the +<b>-k</b> parameters. The profile must be a device profile, and the PCS +must +be either Lab or Jab. The default plot is up the neutral axis is from +the white to +the black point (scale 0 to 100%), and shows the percentage of each +device colorant. To examine a profiles B2A table black +generation, +use the flag <b>-fb</b> to select the B2A table, or to invert the A2B +table, +and be able to explore black generation behavior, use the <b>-fif</b> +flag. +The appropriate intent can be selected with the <b>-i</b> flag, + as +can other flags appropriate to the function selected. See <a + href="#xg">example</a>.<br> +<br> +<a name="Gs"></a>The <span style="font-weight: bold;">-G </span><small><span + style="font-family: monospace;"><span style="font-weight: bold;">s:L:a:b</span></span></small> +parameter overrides the plot slice start point of white, with some +other point specified in Lab or Jab Profile Connection Space. The +parameter must be a single string that combines<span + style="font-weight: bold;"> s:</span> with the three numbers separated +by the '<span style="font-weight: bold;">:'</span> character (no +spaces).<br> +<br> +<a name="Ge"></a>The <span style="font-weight: bold;">-G </span><small><span + style="font-family: monospace;"><span style="font-weight: bold;">e:L:a:b</span></span></small> +parameter overrides the plot slice end point of black, with some +other point specified in Lab or Jab Profile Connection Space. The +parameter must be a single string that combines<span + style="font-weight: bold;"> s:</span> with the three numbers separated +by the '<span style="font-weight: bold;">:'</span> character (no +spaces).<br> +<br> +<a name="f"></a> The <b>-f</b> flag selects which type of table or +conversion is to be used. In addition to the usual four tables that can +be accessed in a fully populated Lut based profile, two additional +options are available in <b>xicclu</b>. One is to invert the forward +table, and the other is to invert the backward table. For non Lut based +profiles, -fif is equivalent to -fb, and -fib is equivalent to -ff. +Note that the -fib combination may not be fully supported.<br> +<br> +<a name="i"></a> The <b>-i</b> flag selects the intent table used for +a lut based +profile. It also selects between relative and absolute colorimetric for +non-lut base profiles.<br> +<br> +<a name="o"></a> A profile is allowed to contain more than the minimum +number of elements or table needed to describe a certain transform, and +may contain redundant descriptions. By default, Lut based table +information will be used first if present, followed by matrix/shaper +information, and only using monochrome information if it is all that is +present. The <b>-o</b> flag, reverses this order. <br> +<br> +<a name="p"></a> Normally the native PCS (Profile Connection Space) of +a device or abstract profile is used, but the <b>-p</b> flag allows +this to be overridden: <span style="font-weight: bold;">-px</span>: +XYZ (scaled to 1.0), <span style="font-weight: bold;">-pX</span>: XYZ +scaled to 100, <span style="font-weight: bold;">-pl</span>: L*a*b*, <span + style="font-weight: bold;">-pL</span>: LCh, <span + style="font-weight: bold;">-py</span>: Yxy space, <span + style="font-weight: bold;">-pj</span>: CIECAM02 appearance space Jab, +or <span style="font-weight: bold;">-pJ</span>: CIECAM02 appearance +space JCh.<span style="font-weight: bold;"><br> +</span>Note that the CIECAM02 output space selection by default uses +the colorimetric table of the profile, but that the perceptual or +saturation tables may be used by selecting them using the <span + style="font-weight: bold;">-i</span> parameter. If the absolute +colorimetric intent is chosen using <span style="font-weight: bold;">-ia</span> +in combinations with <span style="font-weight: bold;">-pj</span>, +then Jab with +a fixed white reference is used, which emulates an absolute CIECAM02 +Jab +appearance space. <br> +<br> +<a name="s"></a> Usually device values are processed and displayed +using a normalized value range between 0.0 and 1.0 Sometimes other +systems scale them to some other range (such as 100 or 255) due to an +underlying binary representation. The <span style="font-weight: bold;">-s</span> +flag lets you input and display such data in its normal range. For +instance, if your device values have a range between 0 and 255, use <span + style="font-weight: bold;">-s 255.</span><br> +<br> +<a name="k"></a> When inverting a CMYK profile, (ie. using the -fif +flag), an input PCS value can have many possible CMYK solutions. To be +able to return a unique solution, a black level (or black inking rule) +should be chosen. The choice here reflect similar choices in black +generation available in other tools (eg. <a href="colprof.html">colprof</a>, +<a href="collink.html"> collink</a>), with the addition of two extra +options.<br> +<br> + Possible arguments to the <b>-k</b> option are:<br> +<br> +<b> -kz</b> selects minimum black (0.0)<br> +<b> -kh</b> selects a black value of 0.5<br> +<b> -kx</b> selects the maximum possible black (1.0)<br> +<b> -kr</b> selects a linear black ramp, starting at minimum black for +highlight, and maximum black for shadow (equivalent to -kp 0 0 1 1 1). +This is the default.<br> +<b> -kl</b> uses an extra (fourth) value entered after the input PCS +value, to select a black locus target between 0.0 and 1.0.<br> +<b> -kv</b> uses an extra (fourth) value entered after the input PCS +value, to select a black value target value between 0.0 and 1.0.<br> +<br> +<b><a name="kp"></a>-k p stle stpo enpo enle shape</b> allows an +arbitrary black value ramp to be defined, consisting of a starting +value (stle) for highlights, a breakpoint L value (stpo) where it +starts to transition to the shadow level, an end breakpoint L (enpo) +where it flattens out again, and the finishing black level (enle) for +the shadows. There is also a curve parameter, that modifies the +transition from stle to enle to either be concave (ie. the +transition starts gradually and and finished more abruptly) using +values 0.0-1.0, with 0.0 being most concave, or convex (the transition +starts more abruptly but finishes gradually), using values 1.0-2.0, +with 2.0 being the most convex.<br> +<br> +Typical black value generation curve with parameters something +like: -kp 0 .05 1 .9 .8<br> +<br> +<tt> 1.0 K | + enpo<br> + +| + _______ +enle<br> + +| + /<br> + +| + /<br> + +| + /<br> + +| + /<br> + stle +| ------/<br> + + +-------------------<br> + 0.0 K +0.0 stpo 1.0<br> + +White +Black<br> +</tt><br> +<b><a name="kq"></a>-k q stle0 stpo0 enpo0 enle0 shape0 stle2 stpo2 +enpo2 enle2 shape2</b> is a combination of the <b>-kv</b> and <b>-kp</b> +functionality, with the black being preserved in CMYK to CMYK linking, +with the output black constrained to be between the first and second +set of curve parameters.<br> +<br> +<a name="K"></a> <span style="font-weight: bold;">-K parameters.</span> +Any of the <span style="font-weight: bold;">-k</span> options above +can use the <span style="font-weight: bold;">-K</span> version, in +which rather than a black value target being defined by the inking +rule, a black <span style="text-decoration: underline;">locus</span> +target is defined. For each lookup, the minimum possible black level +and the maximum possible black level is determined, the former +corresponding to a locus target of 0, and the latter corresponding to a +locus target of 1. For instance, at +the +white point, no black will be used in the output, even if the black +locus specifies a maximum (since the maximum amount of black that +can be used to print white is actually zero). Similarly, at the black +point, black may well be used, even if the black locus specifies +zero black (since a certain amount of black is needed to achieve the +desired density of color). <br> +<tt> </tt><span style="text-decoration: underline;"></span><br> + The <b>-g</b> flag can be used together with the <b>-fif</b> +flag, to plot +out the resulting black channel behaviour for various <b>-k</b> +or <span style="font-weight: bold;">-K </span>parameter +values.<br> +<br> +<b><a name="l"></a>-l</b> <i>tlimit</i> Sets the +total ink limit (TAC, Total Area Coverage) for the CMYK inverse forward +lookup, as a total percentage from 0% to 400%. If none is provided, it +will be estimated from the profile relcolor B2A table. The ink limit +will be in final calibrated device values if the profile includes +calibration information.<br> +<br> +<b><a name="L"></a>-L</b> <i>klimit</i> Sets the black +ink limit for the CMYK inverse forward lookup, as a total percentage +from 0% to 100%. If none is provided, it will be estimated from the +profile relcolor B2A table. The ink limit +will be in final calibrated device values if the profile includes +calibration information.<br> +<br> +<a name="a"></a> If the <b>-a</b> flag is used for inverse forward +lookups, then if +the target PCS value cannot be reproduced by the device (ie. it clips), +then the achievable, clipped PCS value is displayed.<br> +<br> +<a name="b"></a> If the <b>-b</b> flag is used for inverse forward +lookups, then out of gamut clipping will be performed in the CIECAM02 +Jab appearance colorspace, rather than L*a*b* colorspace.<br> +<br> +<a name="m"></a> The <b>-m</b> flag turns on an internal processing +option, in which the per device curve lookup table processing is merged +into the main multi-dimensional interpolation lut lookup.<br> +<br> +<a name="c"></a>Whenever PCS values are to be specified or displayed in +Jab/CIECAM02 +colorspace, a set of viewing conditions will be used to determine the +details of the conversion. The <b>-c</b> parameter allows the +specification of the viewing conditions. Viewing conditions can be +specified in two basic ways. One +is to select from the list of "pre canned", enumerated viewing +conditions, choosing one that is closest to the conditions that are +appropriate for the media type and situation. Alternatively, the +viewing conditions parameters can be specified in detail individually. +If both methods are used, them the chosen enumerated condition will be +used as a base, and its parameters will then be individually overridden.<br> +<br> +<a name="p1"></a> The final parameter is the name of the <a + href="File_Formats.html#ICC">ICC</a> profile to be used. On the +MSWindows platform a .icm extension is generally used, and on Apple or +Unix/Linux platforms a .icc extension is often used.<br> +<h3>Usage and Discussion</h3> +Typical usage for an output profile might be:<br> +<br> + xicclu -ff -ip profile.icm<br> +<br> +Normally the program is interactive, allowing the user to type in input +color +values, each number separated by a space, and the resulting output +color +being looked up and displayed after pressing return. To batch process +a +group of color values, prepare a text file containing each input value +on +a +separate line, and use the input indirection facilities of your command +line +shell to redirect this input file into the standard input of xicclu. +The +output can be captured to a file by redirecting standard output to a +file. +In most shells this would be done something like this:<br> +<br> + xicclu -ff -ip profile.icm < inputvalues.txt > +outputvalues.txt<br> +<br> +<a name="xg"></a>When plotting the neutral axis behavior, plotting the +existing B2A table +behavior would typically be done something like this:<br> +<br> + xicclu -g -fb profile.icm<br> +<br> +Exploring possible black generation and ink limiting behavior might be +done +like this:<br> +<br> + xicclu -g -fif -kp 0 .1 .9 1 .5 -l230 -L95 +profile.icm<br> +<br> +<br> +<br> +<br> +<br> +<br> +<br> +</body> +</html> |