logo_90
Uni ZH | Informatikdienste | Color PostScript

CIE-Farbräume: XYZ


CIE (Commission Internationale de l'Eclairage): Adobe hat dieses neutrale und geräteunabhängige Farbmodell neu aufgegriffen! Eine Seitenbeschreibung kann dann die Farben so spezifizieren, wie sie auch vom menschlichen Auge empfunden werden -- entsprechend den drei Farb-Rezeptoren im menschlichen Auge. Adobe Systems entschied, das XYZ-System als internen geräteunabhängigen Farbraum zu verwenden.

CIE

CIEXYZ

Beim kegelförmigen Farbraum CIE 1931 (XYZ) bauen die drei Dimensionen auf Rot, Grün und Blau auf, d.h. sie haben eine gewisse Aehnlichkeit mit den additiven Komponenten Rot, Grün und Blau. Im Gegensatz zum RGB-Modell umfasst der XYZ-Farbraum jedoch alle sichtbaren Farben. Siehe Foley et al.: Computer Graphics, Addison-Wesley 1990. Wenn X, Y und Z die drei Primärfarben darstellen, dann gilt: C = xX + yY + zZ. Eine Farbe C ist also die Summe der drei gewichteten Primärfarben, wobei x, y und z für die Gewichtungsfaktoren stehen. Betrachten wir im CIE-Farbraum die Ebene, für welche die Bedingung (x + y + z) = 1 zutrifft, dann zeigt sich das hufeisenförmige CIE-Diagramm der Chromatizität, dessen Achsen x und y sind. In dieser xy-Farbtafel befindet sich die rote Farbe rechts (x =.6), die grüne Farbe oben (y =.7).
CIE-DIAGRAMM

Abbildung: Das hufeisenförmige CIE-Diagramm (schematisch)

FOLEY

Abbildung: Die CIE-XYZ-Abbildung in [Foley et al.]

Die folgende Tabelle weist Bildschirm-typische Werte für Rot, Grün und Blau aus:

Diese Werte werden auch als "Phosphor Chromaticities" bezeichnet.

Geräteprofile

Der Farbraum eines Farbdruckers oder Farbkopierers kann empirisch gemessen werden, indem man zuerst 8 hoch3 Farben druckt. Gewöhnlich hält man die blaue Farbe konstant und lässt zuerst Grün und Rot variieren. Dann werden mit einem Colorimeter bzw. einem Spectrophotometer die 512 XYZ-Werte erhoben. Damit erhält man eine Abbildung von RGB in den XYZ-Farbraum: MATRIX
Matrizenmultiplikation: Transformation nach XYZ

Auf entsprechende Art und Weise könnte ein Drucker-Hersteller auch CMY oder CMYK im XYZ-Farbraum abbilden.

Auszug aus der Messreihe (die letzten acht Messungen bei Blau = 1.0 und Grün = 1.0):

Diese XYZ-Werte beschreiben auf dem Farbkopierer CLC 500 einen Farbverlauf, der von Zyan nach Weiss geht. Siehe dazu: Ivan Pontiggia: Color correction for a laser copier and implementation of a testbed, Université de Neuchâtel, 1993. Abbildung: die Farben MIT Blauanteil (gif).

Der Operator setcolorspace

Der Operator setcolorspace dient dazu, den CIE-Farbraum für die Seitenbeschreibung festzulegen (source gamut). Ein Beispiel für setcolorspace (CIE 1931 XYZ):

[/CIEBasedABC <<
 	/RangeABC [0 0.9505 0 1 0 1.0890]
	/RangeLMN [0 0.9505 0 1 0 1.0890]
	/WhitePoint [0.9505 1 1.0890]
>>] setcolorspace 
Der Operand im Beispiel ist ein Array, der aus dem Namen CIEBasedABC und einem Dictionary besteht, das drei Einträge enthält. Ein Range-Eintrag gibt jeweils den Wertebereich (von, bis) der drei Dimensionen A, B und C an; die Voreinstellung lautet [0 1 0 1 0 1]. Und WhitePoint ortet den "hellsten" Punkt im dreidimensionalen Farbraum.

Adobe Systems entschied, das XYZ-System als internen geräteunabhängigen Farbraum zu verwenden! Eine Farbraum-Definition vom Typ CIEBasedABC ist daher immer eine Transformation des XYZ-Raums; so kann z.B. CIE L*a*b* (gif) als XYZ-Transformation formuliert werden (mittels des Dictionary-Eintrags /DecodeLMN). Die Zwischendarstellung nennt sich LMN. Bei der Umrechnung

ABC -> LMN -> XYZ 
können maximal vier Phasen unterschieden werden:

  1. DecodeABC besteht aus drei Prozeduren, welche die Komponente A, B bzw. C transformieren.

  2. MatrixABC besitzt neun Werte; die Matrix wird mit dem Resultat von DecodeABC multipliziert.

  3. DecodeLMN besteht aus drei Prozeduren, welche die Komponente L, M bzw. N transformieren.

  4. MatrixLMN besitzt neun Werte; die Matrix wird mit dem Resultat von DecodeLMN multipliziert.

Diese vier Bezeichnungen entsprechen den Einträgen im Farbraum-Dictionary.

Fig. 4.5 im Reference Manual (2nd edition) gibt einen Ueberblick zum Thema "color specification".

Dazu ein Beispiel aus NextStep:

%!PS-Adobe-3.0 Resource-ColorSpace
%%DocumentSuppliedResources: colorspace NXCalibratedRGB
%%Creator: NeXT Computer, Inc.
%%CreationDate: 22 November 1991
%%LanguageLevel: 2
%%VMlocation: global
%%VMusage: 3444 632
%%EndComments
%%BeginResource: colorspace NXCalibratedRGB

%  NXCalibratedRGB -- based on the CCIR Rec 701 (XA/11) phosphor set, at D65
%
% Phosphor chromaticities:
% xr = .640 ; yr = .330;
% xg = .300 ; yg = .600;
% xb = .150 ; yb = .060;
% White point chromaticities:
% xw = .3127 ; yw = .3290;
%
[
  /CIEBasedABC <<
    /MatrixLMN [
		 .4124 .2126 .0193
		 .3576 .7152 .1192
		 .1805 .0722 .9505
    ]
    /WhitePoint [ 0.9505 1 1.089 ]
  >>
]
/NXCalibratedRGB exch /ColorSpace defineresource pop
%%EndResource
Der Operator defineresource definiert den CIE-Farbraum als Ressource namens NXCalibratedRGB. Dieser Farbraum wird als Transformation von XYZ beschrieben. Die Matrixmultiplikation mit LMN wandelt jeweils drei Farbwerte in XYZ um. Die Einträge DecodeABC, MatrixABC und DecodeLMN sind nicht erforderlich. Um direkt den setcolorspace-Operator aufzurufen, könnten Sie einfach die zweitletzte Zeile durch setcolorspace ersetzen.

Die Farbumwandlung vom CIE-Farbraum zu einem Farbgerät erfordert zwei Operationen:

  1. CIE-Farbwert anpassen gemäss Verhältnis zwischen Seitenbeschreibungsskala (source gamut) und Geräteskala (device gamut).

  2. Wert für Gerätefarbe (z.B. CMYK) erzeugen gemäss CIE-Mapping-Funktion.

Die Geräteskala und die Mapping-Funktionen sind geräteabhängig. Fig. 4.6 im Reference Manual (2nd edition) gibt einen Ueberblick über das Thema "color rendering". Die Ausdrucke über unterschiedliche Level-2-Drucker können mithilfe der Geräteprofile (der gerätespezifischen Color Rendering Dictionaries) nahezu optimal angepasst werden.

Der Operator setcolor

Nachdem ein Farbraum definiert worden ist, kann man den Operator setcolor aufrufen. Je nach Art des Farbraums bekommt der setcolor-Operator eine unterschiedliche Anzahl Operanden, bei CIE drei. Zwei Beispiele zum Auswählen einer Farbe:

0.3 0.1 0.05 setcolor % Farbraum CIE XYZ
50 100 0 setcolor % Farbraum CIE L*a*b*

Beide Beispiele geben im jeweiligen Farbraum eine rote Farbe.

Die vorne erwähnten acht XYZ-Messungen für den Laserkopierer CLC 500 können wie folgt interpretiert werden:

%!PS-Adobe-3.0 EPSF-3.0
%%Title: XYZ
%%Creator: (Peter Vollenweider)
%%CreationDate: 10 August 1993
%%BoundingBox: 0 92 64 100
%%LanguageLevel: 2
%%EndComments

%%BeginResource: colorspace XYZ

[/CIEBasedABC <<
	 /RangeABC [0.01 0.89 0.01 1 0.01 1.11]
	 /RangeLMN [0.01 0.89 0.01 1 0.01 1.11]
	 /WhitePoint [0.89 1 1.11]
>>] setcolorspace 

%%EndResource

/N 100 def   % Position oben

/LOOP {
   /N N 8 sub def
   0 1 7 {
	  /M exch 8 mul def  % Pos. horizontal
   	 /Z exch 100 div def  % Z vom Stack holen
   	 /Y exch 100 div def  % Y vom Stack holen
   	 /X exch 100 div def  % X vom Stack holen

   	 X Y Z setcolor
   	 M N 8 8 rectfill
	 
   } for
} def	 
	
16.24  24.02  59.97    
21.84  29.31  74.71  
35.67  43.46  88.47  
46.83  54.23  96.02  
59.20  65.71  102.76  
77.26  81.59  109.44  
87.99  90.26  111.29  
88.53  90.78  111.32
LOOP

showpage      

Die obige PostScript-Applikation definiert die Prozedur LOOP, welche für jede der acht Messungen ein kleines farbiges Quadrat druckt (rectfill). Ein Rechteck wird an der Position (M,N) plaziert. Bevor der Operator setcolor aufgerufen werden kann, muss die Applikation den XYZ-Farbraum definiert haben. Jede Messung besteht aus einem X-, Y- und Z-Wert; die Werte müssen nach dem Einlesen noch durch 100 dividiert werden. Zur Verdeutlichung werden die drei Farbwerte als Variablen X, Y, Z definiert.
XYZ

Abbildung: Die 512 XYZ-Messungen interpretiert

Falls Sie einen neueren PostScript-Viewer (z.B. GhostScript 3.0) haben, können Sie das entsprechende PostScript-Programm XYZ.ps anklicken.

Weitere Funktionen von Level 2.


CIEXYZ
Der Operator setcolorspace
Der Operator setcolor


Uni ZH | Informatikdienste | Color PostScript
Last update: Thursday, 11-Oct-2001 21:05:28 CEST by vo