Geräteprofile versorgen den Farbrechner mit den Informationen, die für die Konvertierung von Farbdaten zwischen den Gerätefarbräumen und geräte-unabhängigen Farbräumen benötigt werden.
Die ICC-Spezifikation teilt Gerätefarbräume in drei Klassen:
Digitalkamera und Scanner betten Profile bei der Aufnahme bzw. beim Scan in die Bilddatei ein, Monitore und Drucker speichern ihre Profile bei der Installation als eigenständige Datien in speziellen Ordnern des Betriebssystems.
Windows 9x/ME | c:\windows\system\color |
Windows NT | c:\winnt\system32\color |
Windows 2000/XP | c:\winnt\system32\spool\drivers\color |
MacOS | HD:System:ColorSync_Profile |
MacOS X | /System/Library/ColorSync/Profiles/ |
ICC-Profile sind ein standardisiertes Daten- und Dateiformat, das in ICC File Format for Color Profiles 4.0.0 auf 116 Seiten überaus detailliert und auch verständlich beschrieben ist (mit einer gehörigen Portion Bürokratie am Anfang). Ein Farbrechner muss alle ICC-kompatiblen Farbprofile interpretieren können.
ICC-Profile sind Binärdaten – d.h. sie können nicht mit einem einfachen Editor geöffnet und im Klartext gelesen werden, sondern nur Anwendungen, die Profildaten interpretieren, können die Informationen und Anweisungen eines Profils anzeigen oder sogar ändern.
Zum Lieferumfang von Mac OS X gehört das Color Sync-Dienstprogramm, dass Profildaten anzeigen kann, für Windows XP bietet Microsoft das Color Controll Panel an, das einen ähnlichen Funktionsumfang aufweist, aber nicht im Installationsumfang des Betriebssystems enthalten ist.
Darüber hinaus bietet das ICC einen Profile Inspector für den Einblick auf Profile für den PC.
Das Erzeugen und Ändern von Profilen ist nur mit kommerziellen Profil-erzeugenden Programmen möglich (z.B. der Software für die Profilierung von Monitoren und Druckern). Nur das Mac OS X-Betriebssystem erlaubt einen Schreibzugriff auf Profildaten im Terminal durch die Skripting-Umgebung SIPS (Scriptable Image Processing System).
Die ICC-Spezifikation definiert sieben Arten von Profilen. Interessant sind in erster Linie die ersten drei Geräteprofile:
Ein ICC-Profil besteht aus drei Teilen:
Size | Volle Größe des Profils in Bytes |
CMM | Bevorzugtes CMM |
Version | Versionsnummer der ICC-Specs |
Device Class | Beschreibung der Profilklasse (Display, Input, Output, DeviceLink, Colorspace, Abstract) |
Color Space | Beschreibung des Herkunftsfarbraums, normalerweise RGB oder CMYK, sonst Gray, XYZ, Lab, Luv, HLS, HSV, Yxy, CMY, ... |
Connection Space | Der im Profil verwendete PCS (Profile Connection Space) LAB oder XYZ |
Date and Time | Erstellungsdatum |
Plattform | Bevorzugtes Betriebssystem (Microsoft, Apple, Sun, Silicon Graphics) |
Flags | Beschreibung, ob das Profil in einer Datei eingebettet ist oder unabhängig von Farbdaten benutzt werden kann |
Device Manufacturer | Hersteller des Geräts |
Device Model | Modell des Geräts |
Device Attributs | Informationen über zusätzliche Geräteeigenschaften, z.B. verwendete Papiere |
Rendering Intent | Emfehlung zum Rendering Intent |
Illuminant | Beschreibung der XYZ/Lab-Werte der Lichtquelle des PCS (Profile Connection Space) |
Creator | Angaben über den Erzeuger des Profils oder die Erzeugersoftware |
Tabelle: Beschreibung der Header-Informationen
In der ICC-Spezifikation sind 43 verschiedene Tags beschrieben. Je nach Art des Profils sind in einem Profil fünf bis zwölf Tags enthalten. Jedes Tag und seine Geräte werden in die Tag Table Definition eingetragen. Die zugehörigen Daten zu jedem Tag finden sich unter Tagged Element Data und werden durch eine Referenz angebunden, d.h. in der Tag Table stehen die Adressen, an denen die jeweiligen Daten beginnen.
Die Tags lassen sich wiederum in drei Gruppen teilen:
Info Tags | ProfileDescriptionTag | Profilname für die informative Darstellung |
DeviceMfgDescTag | Darstellbare Beschreibung des Herstellers | |
DeciveModellDescTag | Darstellbare Beschreibung des Gerätemodells | |
CopyrightTag | z-bit Ascii Profile Copyright Information | |
CalibrationDateTimeTag | Profile Calibration Date and Time | |
CharTargetTag | Characterization Target such as IT8/7.2 | |
TechnologyTag | Device Technology Information such as LCD, CRT, Dye Sublimation, etc. | |
ucrbgTag | Under Color Removal and Black Generation Description | |
MatrixTags | redMatrixColumnTag | Relative XYZ Values of Red Phosphor or Colorant (Die erste Spalte, die in TRC/Matrix-Transformationen benutzt wird) |
greenMatrixColumnTag | Relative XYZ Values of green Phosphor or Colorant | |
blueMatrixColumnTag | Relative XYZ Values of blue Phosphor or Colorant | |
redTRCTag | Red Channel Tone Reproduction Curve | |
greenTRCTag | Green Channel Tone Reproduction Curve | |
BlueTRCTag | Blue Channel Tone Reproduction Curve | |
GrayTRCTag | Gray Tone Tone Reproduction Curve | |
LUT Tags | AtoB0 / A280 Tag | LUT structure; Device to PCS, Intent Perceptual |
AtoB1 / A2B1 Tag | LUT structure; Device to PCS, Intent Colorimetric | |
AtoB2 / A2B2 Tag | LUT structure; Device to PCS, Intent Saturation | |
BT0A0 / B2A0 Tag | LUT structure; PCS to Device, Intent Perceptual | |
BtoA1 / B2A1 Tag | LUT structure; PCS to Device, Intent Colorimetric | |
BtoA2 / B2A2 Tag | LUT structure; PCS to Device, Intent Saturation | |
Whitepoint Tags | ChromaticAdaptionTag | Converts XYZ Color from the actual illumination source to PCS illuminant. (Erforderlich, wenn die Lichtquelle nicht D50 ist). |
MediaWhitePointTag | Media XYZ white point | |
MediaBlackPointTag | Media XYZ black point | |
PostScript Tags | ps2CRD0Tag | PostScript Level 2 Color Rendering Dictionary: Perceptual |
ps2CRD1Tag | PostScript Level 2 Color Rendering Dictionary: colorimetiric | |
ps2CRD2Tag | PostScript Level 2 Color Rendering Dictionary: saturation | |
ps2CRD3Tag | PostScript Level 2 Color Rendering Dictionary: ICC-absolute | |
Ps2CSATag | PostScript Level 2 Color Space Array | |
Ps2RenderingIntentTag | PostScript Level 2 Rendering Intent |
Der Farbraum wird durch Tabellen beschrieben, in denen die Lage einer endlichen Anzahl von Stützstellen gespeichert wird. Zwischen den Stützstellen wird interpoliert. Profile, die auf Lookup-Tabellen basieren, eignen sich besonders gut zur Charakterisierung realer Ein- und Ausgabegeräte (Scanner, Kameras, Drucker, belichter, Monitore, ... ). Arbeitsfarbräume zur medienneutralen Speicherung hingegen sollten möglichst keine Ungleichmäßigkeiten enthalten, da diese bei der Verrechnung schnell zu Banding führen.
Für eine ausreichende Genauigkeit sind umfangreiche Tabellen erforderlich, so dass LUT-Profile mit 400 KB bis 2 MB zu Buche schlagen.
Da ein Arbeitsfarbraum generell an jede Datei angehängt werden sollte, würde die Verwendung von LUT-Profilen als Arbeitsfarbraum das Datenvolumen deutlich erhöhen. Ferner können immer noch einige Programme und Geräte (z.B. Kameras) LUT-Profile nicht direkt verarbeiten.
Bei der Umrechnung von Farbwerten wird für einen Eingabefarbwert der entsprechende Ausgabefarbwert in dieser Tabelle nachgeschlagen. Die Tabelle kann natürlich nicht beliebig viele Farbwerte enthalten, sondern nur eine festgelegte Anzahl.
In der Praxis enthält ein Profil zwischen 5000 bis 40.000 Farbwerte, die als Stützstellen oder GridPoints bezeichnet werden. Zwischen den Stützstellen interpoliert das CMM (Color Management Module). Je höher die Anzahl der Stützstellen, umso genauer ist das Profil, da Interpolationsfehler vermieden werden.
Für jeden Rendering Intent ist im Profil eine eigene mehrdimensionale Tabelle erforderlich. AtoB-Tags enthalten Tabellen für die Umrechnung vom Gerätefarbraum zum PCS und BtoA-Tags für die Umrechnung vom PCS zum Gerätefarbraum.
Das ergibt bei zwei Umwandlungsrichtungen (PCS to Device und Device to PCS) und drei Rendering Intents (Farbmetrisch, Perceptual und Saturation) maximal sechs mehrdimensionale Tabellen (LUT) in einem Profil.
Normalerweise wird bei tabellenbasierten Profilen CIELab als PCS bevorzugt, da die meisten Ausgabegeräte im CMYK-Farbsystem arbeiten. Die Farbwerte müssen vom PCS mit drei Kanälen (XYZ oder Lab) in das CMYK-Farbsystem mit seinen vier Kanälen umgerechnet werden. Dafür ist CIELab besser geeignet als CIE-XYZ.