From 094535c010320967639e8e86f974d878e80baa72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Frings-F=C3=BCrst?= Date: Fri, 1 May 2015 16:13:57 +0200 Subject: Imported Upstream version 1.7.0 --- doc/ArgyllCMS_arts_tag.html | 165 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 165 insertions(+) create mode 100644 doc/ArgyllCMS_arts_tag.html (limited to 'doc/ArgyllCMS_arts_tag.html') diff --git a/doc/ArgyllCMS_arts_tag.html b/doc/ArgyllCMS_arts_tag.html new file mode 100644 index 0000000..826aa30 --- /dev/null +++ b/doc/ArgyllCMS_arts_tag.html @@ -0,0 +1,165 @@ + + + + + + + Argyll 'arts' ICC tag + + +
+

ArgyllCMS's 'arts' (Absolute to media Relative Transform + Space matrix) ICC tag (V1.0)
+

+ ArgyllCMS uses a registered (private) ICC tag to solve a long + standing Display profile compatibility issue.
+
+ Other CMM and profile creation providers are most welcome to + implement this tag to improve ICC profile color behavior and + interoperability.
+

The problem

+ The ICC V2 format originally provided no clear mechanism for Display + profiles to use a modern chromatic adaptation transform in dealing + with the D65 white point of typical displays. V2 profile makers + ended up taking three different approaches :-
+
    +
  1. Use a Bradford chromatic transform for the media (display) + white to PCS D50 conversion. This was used in creating the + widely deployed HP & Microsoft sRGB profile, as well as the + AdobeRGB profile. This provides a good chromatic adaptation, but + Absolute Colorimetric will have errors if the profile is used + with a CMM that implements the the ICC specified "Wrong Von + Kries" chromatic adaptation to map relative colorimetric back to + absolute colorimetric rather than using the Bradford transform + it was created with.
    +
  2. +
  3. Use the ICC specified "Wrong Von Kries" chromatic transform + from D65 to D50. This leads to poor relative colorimetric + behavior (the most important case), but gives correct Absolute + Colorimetric behavior.
    +
  4. +
  5. Apply the Bradford transform to the measurement data and then + disable Absolute Intent for display profiles by setting the + mediaWhitePoint tag to D50. The latter approach was supplemented + later on with the introduction of the ChromaticAdapation + ('chad') tag, but this did not restore the Absolute Colorimetric + capability to Display profiles, since the 'chad' tag is not + formally part of the specified mechanism for implementing + Absolute Colorimetric. Unfortunately, this approach has been + adopted in the ICC V4 specifications
  6. +
+ The ICC standard "Wrong Von Kries" chromatic transform for media + white to/from PCS D50 has disadvantages in regard to color behavior + for Output (i.e. print) profiles as well as Display profiles though. + With most normal, white media this is not of great significance, + since the white point shift is small, but it grows in significance + as the color of the paper differs from white (i.e. tinted papers).
+
+ For all these reasons, and in the pursuit of the best possible color + quality, ArgyllCMS uses the more color accurate Bradford chromatic + transform for all profiles types instead of the the ICC standard + "Wrong Von Kries" transform. This improves compatibility with the + (extremely common use case) of HP & Microsoft sRGB, and AdobeRGB + profiles where the color behavior of Bradford vs. "Wrong Von Kries" + is more critical; provides good color behavior for creating Display + profiles while giving accurate Absolute Colorimetric Intent + behavior; slightly improves the quality of Output profiles, most + noticeable with tinted stock, while having minimum incompatibility + with Output profiles created for normal, white printed media by + other profiling programs because the white point shift is typically + small. But to enable perfect compatibility of ArgyllCMS Output (i.e. + print)  profiles with other CMM's, the default behavior can be + changed by using the ARGYLL_CREATE_WRONG_VON_KRIES_OUTPUT_CLASS_REL_WP + environment variable.
+
+ So the problem is that it is impossible to know for sure whether an + ArgyllCMS create profile, ICC V2 Display profile, or other ICC + profiles has used a Bradford or "Wrong Von Kries" chromatic + transform in computing Absolute to/from Relative white point + transform.
+

The solution

+ The ArgyllCMS SigAbsToRelTransSpace 'arts' tag holds a 3x3 matrix in + the first 9 elements* of a SigS15Fixed16ArrayType in the + usual ICC order (i.e. the same element order as the + ChromaticAdaptationTag 'chad' tag). This matrix holds the Sharpened + Cone space transform that the Media White point to/from PCS D50 + chromatic Von Kries transform is computed in, rather than the "Wrong + Von Kries" transform specified by ICC.1:2001-04 (ICCV2.4) Annex A, + pp 66, equations A.1, A.2 & A.3. So by default ArgyllCMS will + write an 'arts' tag with the Bradford matrix in it:
+
  sig      'arts'
+   type     'sf32'
+ S15Fixed16Array:
+   No. elements = 9
+     0:  0.89509583
+     1:  0.26640320
+     2:  -0.16140747
+     3:  -0.75019836
+     4:  1.71350098
+     5:  0.03669739
+     6:  0.03889465
+     7:  -0.06849670
+     8:  1.02960205
+
+ In contrast, ICC standard behavior is the equivalent of a unit + matrix.
+
+ [ Note that ArgyllCMS will write an 'arts' tag containing a Bradford + matrix even for Display profile written using the 'chad' tag where + the the MediaWhitePointTag is set to D50, representing the cone + space used in computing the 'chad' tag. (see ARGYLL_CREATE_DISPLAY_PROFILE_WITH_CHAD) + i.e. for Display profiles, the 'chad' tag is regarded as just an + alternate means of representing the true Media White Point. ]
+
+ On reading a profile, ArgyllCMS uses the following logic to set its + Media white to/from PCS D50 chromatic transform:
+
+     if 'arts' tag is present:
+         use it to compute + absolute <-> media relative white point transform.
+     else:
+         if ArgyllCMS created + profile (ICC header Profile Creator signature = 'argl')
+          or V2 Display + profile && Media W.P. != D50:
+             + use Bradford matrix to compute absolute <-> media relative + white point transform.
+         else:
+             + use unity matrix to compute absolute <-> media relative white + point transform.
+
+ The 'arts' tag need not be written if the profile contains no 'wtpt' + MediaWhitePointTag tag.
+
+ This provides a safe level of backwards compatibility, together with + the elimination of all ambiguity when the 'arts' tag is present, + allowing CMM and profile creators to use the preferred Bradford (or + other Sharpened Cone) space for Von Kries chromatic adaptation of + the media white point to/from PCS D50.
+

Conclusion

+ The 'arts' tag allows unambiguous use of the recommended Bradford + cone space transform in computing the Absolute Colorimetric (Media + Relative) to/from Relative Colorimetric (PCS D50) chromatic + transform in ICC profiles, while for the first time also providing + an unambiguously means of marking the use of the Bradford transform + in the very widely used standard sRGB and AdobeRGB colorspaces. If + widely adopted, the use of "Wrong Von Kries" chromatic transform in + ICC profiles could be safely abandoned.
+
+ * If the SigS15Fixed16ArrayType has more than 9 elements, then just + the first 9 should be interpreted as a 3x3 matrix, and any elements + beyond that should be ignored.
+
+
+
+
+
+ + -- cgit v1.2.3