Color Space
Color Space
Color Space
Contents
1. Introduction
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Formulas
Primaries and Matrices
Gamut Restrictions and Tests
Inverse Gamma Correction
CIE
L*=50
NTSC
L*=50
sRGB
L*=1/10/.../90/99
AdobeRGB
L*=10/.../90
ProPhotoRGB
L*=10/.../90
3D Views
Linear and Standard Nonlinear CIELab
Human Gamut in CIELab
Low Chromaticity
sRGB
L*= 50 with RGB Numbers
PostScript Kernels
Mapping CIELab to xyY
Number of Different Colors
HLS-Hue for sRGB in CIELab
References
2
4
10
11
12
13
14
15
26
35
44
47
48
49
50
51
56
59
60
62
1.1 Introduction
CIE XYZ is an absolute color space (not device dependent). Each visible color has
non-negative coordinates X,Y,Z.
CIE xyY, the horseshoe diagram as shown below, is a perspective projection of XYZ
coordinates onto a plane xy. The luminance is missing.
CIELab is a nonlinear transformation of XYZ into coordinates L*, a*,b*.
The gamut for any RGB color system is a triangle in the CIE xyY chromaticity diagram,
here shown for the CIE primaries, the NTSC primaries, the Rec.709 primaries (which
are also valid for sRGB and therefore for many PC monitors) and the non-physical
working space ProPhotoRGB. The white points are individually defined for the color
spaces.
The CIELab color space was intended for equal perceptual differences for equal changes in the coordinates L*, a* and b*. Color differences deltaE are defined as Euclidian
distances in CIELab.
This document shows color charts in CIELab for several RGB color spaces.
.0
y
0.9
ProPhoto
520 525
55
530
0.8
535
540
50
545
0.7
550
555
505
560
0.6
565
570
500
0.5
0.4
0.3
0.2
NTSC CIE
575
sRGB
580
585
590
595
600
605
60
620
635
700
495
490
Wavelengths in nm
485
Purple line
480
0.
0.0
0.0
475
470
460
380
0.
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9 x .0
1.2 Introduction
CIELab uses new coordinates L*,a* and b* by functions as described in the next chapter. The true shape of the human gamut in CIELab is shown in chapter 13. This results
in huge areas for higher luminance.
Just to show the orientation together with the gamut triangle for the primaries we proceed as follows:
Convert the contour points x,y for Y=1 into RGB. Divide R,G,B by the maximum of
R,G,B. Convert R,G,B to L*,a*,b*.
The gamut triangle in x yY has to be replaced by a representation of a color cube with
corners R,G,B and Y(yellow),C,M. The gray axis is at a*= b*= 0. Therefore the area is
confined by a distorted hexagon. A similar diagram can be found in [1].
Later it will be shown that the actual gamut, which depends on the luminance, is a
smaller area inside the hexagon.
-250 -225 -200 -75 -50 -25 -00 -75 -50 -25 0
b*
250
225
225
200
200
75
75
Green
50
50
25
25
00
00
Red
75
75
50
50
25
25
-25
-25
-50
-50
-75
-75
-00
-25
Gamut
-00
CIE primaries
WP Eq.Energy
-25
-50
-75
-200
-225
-50
Blue
-75
Contour for
R-Y-G-C-B-M-R
hexagon
Outer blue area
human gamut
-200
-225
-250
-250
-250 -225 -200 -75 -50 -25 -00 -75 -50 -25 0
a*
C' G
2.4
else
((0.055 + C') /.055)
7.787
X
+
6
6
else
Y 3
i f Y > 0.008856
Y =
else
7.787 Y + 6 6
Z 3
i f Z > 0.008856
Z =
7.787
Z
+
6
6
e
lse
L* =
a* =
b* =
6 Y 6
500 ( X Y )
200 ( Y Z )
a* / 500 + Y
Z = b* / 200 + Y
X3
if X > 0.206893
Y3
if Y > 0.206893
(Y
6
6)
/
7.787
else
Z3
if Z > 0.206893
X n X
Yn Y
Z n Z
X =
Y =
Z =
Crx X = C xr
X
( B C xr ) X = Crx B X
C/ G
2.92C if C 0.00304
2.4
0.055 else
.055 C
=
=
=
x y
Yx/y
Yz/y
XYZ to xyY
D
x
y
z
=
=
=
=
X+Y+Z
X/D
Y/D
Z /D
0.008856 = 0.2068930
6 / 6
= 0.3793
6 0.008856 3
c
Y
X,a
b
Base vector a points into X-direction, b into negative Z-direction and c is along the
diagonal in XYZ.
L, A and B are normalized substitutes for L*, a* and b*.
X
Y = C x r
Z
R
G
B
R
X
G = C r x Y
B
Z
D
U
V
= (x r x b )(y g y b ) (y r y b )(x g x b )
= (x w x b )(y g y b ) (yw y b )(x g x b )
= (x r x b )(yw y b ) (y r y b )(x w x b )
u
v
w
= U/D
= V/D
= u v
Cxr
u x r / yw
= u y r / yw
u z r / yw
v x g / yw
v y g / yw
v z g / yw
w x b / yw
w y b / yw
w z b / yw
Cr x = C xr
In the next formulas use c xr ik for c ik
D
= c (c 22 c 33 c 23 c 32 ) c2 (c 2 c 33 c 23 c 3 ) + c3 (c 2 c 32 c 22 c 3)
c rx = ( c 22 c 33 c 23 c 32 ) / D
c rx2 = ( c2 c 33 c3 c 32 ) / D
c rx3 = ( c2 c 23 c3 c 22 ) / D
c rx 2 = ( c 2 c 33 c 23 c 3 ) / D
c rx 22 = ( c c 33 c3 c 3 ) / D
c rx 23 = ( c c 23 c3 c 2 ) / D
c rx 3 = ( c 2 c 32 c 22 c 3 ) / D
c rx 32 = ( c c 32 c2 c 3 ) / D
c rx 33 = ( c c 22 c2 c 2 ) / D
=
=
=
=
xn yn
Yn x n / y n
Yn z n / y n
zw
Yw
Xw
Zw
=
=
=
=
xw yw
Yw x w / y w
Yw z w / y w
Cone response
+0.895 +0.2664 0.64
Mcx = 0.7502 +.735 +0.0367
+0.0389 0.0685 +.0296
Cn
Cw
n
= n = Mcx X n
n
w
= w = Mcx X w
w
n / w
= 0
0
0
n / w
0
0
0
n / w
Bradford matrix
= Mcx
D Mcx
The
matrices
CxrD50 and w
on the next page
contain the XYZ coordinates of the RGB primaries.
E.g. for n
D65
The
X first
= column
B X delivers the base vector R in XYZ, the second G and the third B.
D50
D65
For ICC profiles the matrices are multiplied by the Bradford matrix B. Then the base
vectors mean adapted primaries. The original primaries under D65 (sRGB, AdobeRGB(98)) should look alike the adapted primaries under D50.
This can easily lead to confusions. We use strictly not-adapted primaries and consider
the Bradford transformation as an additional feature which can be applied. This should
not change physical primaries or working space primaries.
x
0.7347
0.2738
0.666
0.3333
0.3457
WP=Eq.Energy
y
0.2653
0.774
0.0089
0.3333
0.3585
R
G
B
W
N
Z
0.0000
0.000
0.9903
.0003
0.825
Matrix Crx
2.3650 -0.8967 -0.468
-0.55 .4264 0.0887
0.0052 -0.044 .0089
Matrix Cxr
0.4899 0.300
0.769 0.824
0.0000 0.000
0.200
0.006
0.9903
Matrix Crx
.3458 -0.2556 -0.05
-0.5446 .5083 0.0205
0.0000 0.0000 .220
Matrix B
0.9979 -0.004 -0.0295
-0.0097 .083 -0.0086
-0.0074 0.035 0.888
Matrix B-inv
.0024 0.0036
0.0096 0.9820
0.0089 -0.06
0.036
0.006
.224
Matrix B
.0000 -0.0000 0.0000
0.0000 .0000 -0.0000
-0.0000 0.0000 .0000
x
0.6700
0.200
0.400
0.300
0.3457
WP=NTSC
y
z
0.3300 -0.0000
0.700 0.0800
0.0800 0.7800
0.360 0.3740
0.3585 0.2958
y
0.2653
0.8404
0.000
0.3585
0.3585
WideGamut RGB
G=2.2
X
0.6070
0.734
0.2006
0.980
0.9643
x
0.7347
0.596
0.0366
0.3457
0.3457
Y
Z
0.2990 -0.0000
0.5864 0.066
0.46 .75
.0000 .835
.0000 0.825
R
G
B
W
N
x
0.7347
0.52
0.566
0.3457
0.3457
y
0.2653
0.8264
0.077
0.3585
0.3585
z
0.0000
0.0000
0.9633
0.2958
0.2958
z
0.0000
0.0584
0.8257
0.2958
0.2958
0.2006
0.46
.75
Matrix Crx
.4622 -0.845 -0.2734
-0.5228 .4479 0.0682
0.0346 -0.0958 .2877
Matrix B
.0377 0.054 -0.0584
0.070 .0057 -0.089
-0.020 0.0205 0.6898
Matrix B-inv
0.9648 -0.064
-0.060 0.994
0.073 -0.0298
0.082
0.0259
.4503
Matrix B
.0000 -0.0000 0.0000
0.0000 .0000 -0.0000
-0.0000 0.0000 .0000
x
0.6400
0.3000
0.500
0.327
0.3457
y
0.3300
0.6000
0.0600
0.3290
0.3585
WP=D65
Y
0.226
0.752
0.0722
.0000
.0000
Z
0.093
0.92
0.9505
.089
0.825
Matrix Crx
3.240 -.5374 -0.4986
-0.9692 .8760 0.046
0.0556 -0.2040 .0570
Matrix Cxr
0.424 0.3576
0.226 0.752
0.093 0.92
0.805
0.0722
0.9505
Matrix B
.0479 0.0229 -0.0502
0.0296 0.9904 -0.07
-0.0092 0.05 0.759
Matrix B-inv
0.9555 -0.023
-0.0284 .000
0.023 -0.0205
0.0633
0.020
.3304
x
0.6400
0.200
0.500
0.327
0.3457
y
0.3300
0.700
0.0600
0.3290
0.3585
z
0.0300
0.000
0.7900
0.3583
0.2958
OptiRGB
G=2.4
X
0.424
0.3576
0.805
0.9505
0.9643
WP=D65
z
0.0300
0.0800
0.7900
0.3583
0.2958
R
G
B
W
N
G=2.2
X
0.5767
0.856
0.882
0.9505
0.9643
Y
0.2973
0.6274
0.0753
.0000
.0000
Z
0.0270
0.0707
0.993
.089
0.825
Matrix Crx
2.046 -0.5650 -0.3447
-0.9692 .8760 0.046
0.034 -0.84 .052
Matrix Cxr
0.5767 0.856
0.2973 0.6274
0.0270 0.0707
0.882
0.0753
0.993
Matrix B
.0479 0.0229 -0.0502
0.0296 0.9904 -0.07
-0.0092 0.05 0.759
Matrix B-inv
0.9555 -0.023
-0.0284 .000
0.023 -0.0205
0.0633
0.020
.3304
10
x
0.6658
0.929
0.355
0.327
0.3457
G=.8
X
0.7978
0.352
0.033
0.9643
0.9643
Y
0.288
0.78
0.000
.0000
.0000
Z
0.0000
0.0000
0.825
0.825
0.825
Matrix Cxr
0.7978 0.352
0.288 0.78
0.0000 0.0000
0.033
0.000
0.825
Matrix B-inv
.0000 0.0000 -0.0000
-0.0000 .0000 0.0000
0.0000 0.0000 .0000
WP=D50
Matrix Cxr
0.6070 0.734
0.2990 0.5864
-0.0000 0.066
AdobeRGB(98)
R
G
B
W
N
R
G
B
W
N
Matrix Crx
.9097 -0.5324 -0.2882
-0.9850 .9998 -0.0283
0.0582 -0.82 0.8966
X
0.4899
0.300
0.200
.0000
0.9643
WP=D50
Y
0.769
0.824
0.006
.0000
.0000
NTSC RGB
z
0.0000
0.0088
0.8246
0.3334
0.2958
ProPhoto RGB
G=2.2
G=2.2
X
0.765
0.00
0.468
0.9643
0.9643
Y
0.2587
0.7247
0.065
.0000
.0000
Z
0.0000
0.052
0.7739
0.825
0.825
Matrix Cxr
0.765 0.00
0.2587 0.7247
0.0000 0.052
0.468
0.065
0.7739
Matrix B-inv
.0000 0.0000 -0.0000
-0.0000 .0000 0.0000
0.0000 0.0000 .0000
WP=D65
y
0.3340
0.786
0.0399
0.3290
0.3585
z
0.0002
0.0255
0.8246
0.3583
0.2958
G=2.2
X
0.673
0.576
0.755
0.9505
0.9643
Y
0.3097
0.6386
0.057
.0000
.0000
Z
0.0002
0.0208
.0680
.089
0.825
Matrix Crx
.8436 -0.4458 -0.284
-0.8954 .7848 0.0608
0.07 -0.0347 0.9352
Matrix Cxr
0.673 0.576
0.3097 0.6386
0.0002 0.0208
0.755
0.057
.0680
Matrix B
.0479 0.0229 -0.0502
0.0296 0.9904 -0.07
-0.0092 0.05 0.759
Matrix B-inv
0.9555 -0.023
-0.0284 .000
0.023 -0.0205
0.0633
0.020
.3304
11
Black
C=C 2.2
Red
sRGB
According to profile informations, NTSC, CIE-RGB and AdobeRGB(98) use the simple
Gamma correction (no linear part) with G=2.2. ProPhoto uses G=1.8.
Gamma encoded values C, here for gray R=G=B are nearly a linear function of L*.
255
2.0
.8
Dens
.6
RGB
.4
.2
.0
Black
Linear
0.8
0.6
0.4
Blue
Red
G=2.4+slope / sRGB
Gray
Density
0.2
0
20
40
60
80
0
L* 00
12
6. CIE L*=50
The illustrations were made by PostScript EPS programs as vector graphics
Converted to PDF by Acrobat Distiller they are still vector graphics
Eventually the appearance can be improved by Smooth Line Art = Off
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
0 20 30 40 50 60 70 80 90 00
b*
00
90
90
80
80
70
70
60
60
50
50
40
40
30
30
20
20
0
0
-0
-0
-20
-20
-30
-30
-40
-50
-60
-70
-80
-90
L* = 50
-40
CIE primaries
White Eq.Energy
Reference D50
Bradford yes
Gamma 2.2
Dot mark for
out of gamut
Clipping for
R-Y-G-C-B-M
hexagon
Outer blue area
human gamut
-50
-60
-70
-80
-90
-00
-00
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
13
0 20 30 40 50 60 70 80 90
a*
7. NTSC L*= 50
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
0 20 30 40 50 60 70 80 90 00
b*
00
90
90
80
80
70
70
60
60
50
50
40
40
30
30
20
20
0
0
-0
-0
-20
-20
-30
-30
-40
-50
-60
-70
-80
-90
L* = 50
-40
NTSC primaries
White NTSC
Reference D50
Bradford yes
Gamma 2.2
Dot mark for
out of gamut
Clipping for
R-Y-G-C-B-M
hexagon
Outer blue area
human gamut
-50
-60
-70
-80
-90
-00
-00
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
14
0 20 30 40 50 60 70 80 90
a*
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
0 20 30 40 50 60 70 80 90 00
b*
00
90
90
80
80
70
70
60
60
50
50
40
40
30
30
20
20
0
0
-0
-0
-20
-20
-30
-30
-40
-50
-60
-70
-80
-90
L* =
-40
709 primaries
White D65
Reference D50
Bradford yes
Gamma sRGB
Dot mark for
out of gamut
Clipping for
R-Y-G-C-B-M
hexagon
Outer blue area
human gamut
-50
-60
-70
-80
-90
-00
-00
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
15
0 20 30 40 50 60 70 80 90
a*
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
0 20 30 40 50 60 70 80 90 00
b*
00
90
90
80
80
70
70
60
60
50
50
40
40
30
30
20
20
0
0
-0
-0
-20
-20
-30
-30
-40
-50
-60
-70
-80
-90
L* = 0
-40
709 primaries
White D65
Reference D50
Bradford yes
Gamma sRGB
Dot mark for
out of gamut
Clipping for
R-Y-G-C-B-M
hexagon
Outer blue area
human gamut
-50
-60
-70
-80
-90
-00
-00
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
16
0 20 30 40 50 60 70 80 90
a*
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
0 20 30 40 50 60 70 80 90 00
b*
00
90
90
80
80
70
70
60
60
50
50
40
40
30
30
20
20
0
0
-0
-0
-20
-20
-30
-30
-40
-50
-60
-70
-80
-90
L* = 20
-40
709 primaries
White D65
Reference D50
Bradford yes
Gamma sRGB
Dot mark for
out of gamut
Clipping for
R-Y-G-C-B-M
hexagon
Outer blue area
human gamut
-50
-60
-70
-80
-90
-00
-00
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
17
0 20 30 40 50 60 70 80 90
a*
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
0 20 30 40 50 60 70 80 90 00
b*
00
90
90
80
80
70
70
60
60
50
50
40
40
30
30
20
20
0
0
-0
-0
-20
-20
-30
-30
-40
-50
-60
-70
-80
-90
L* = 30
-40
709 primaries
White D65
Reference D50
Bradford yes
Gamma sRGB
Dot mark for
out of gamut
Clipping for
R-Y-G-C-B-M
hexagon
Outer blue area
human gamut
-50
-60
-70
-80
-90
-00
-00
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
18
0 20 30 40 50 60 70 80 90
a*
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
0 20 30 40 50 60 70 80 90 00
b*
00
90
90
80
80
70
70
60
60
50
50
40
40
30
30
20
20
0
0
-0
-0
-20
-20
-30
-30
-40
-50
-60
-70
-80
-90
L* = 40
-40
709 primaries
White D65
Reference D50
Bradford yes
Gamma sRGB
Dot mark for
out of gamut
Clipping for
R-Y-G-C-B-M
hexagon
Outer blue area
human gamut
-50
-60
-70
-80
-90
-00
-00
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
19
0 20 30 40 50 60 70 80 90
a*
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
0 20 30 40 50 60 70 80 90 00
b*
00
90
90
80
80
70
70
60
60
50
50
40
40
30
30
20
20
0
0
-0
-0
-20
-20
-30
-30
-40
-50
-60
-70
-80
-90
L* = 50
-40
709 primaries
White D65
Reference D50
Bradford yes
Gamma sRGB
Dot mark for
out of gamut
Clipping for
R-Y-G-C-B-M
hexagon
Outer blue area
human gamut
-50
-60
-70
-80
-90
-00
-00
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
20
0 20 30 40 50 60 70 80 90
a*
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
0 20 30 40 50 60 70 80 90 00
b*
00
90
90
80
80
70
70
60
60
50
50
40
40
30
30
20
20
0
0
-0
-0
-20
-20
-30
-30
-40
-50
-60
-70
-80
-90
L* = 60
-40
709 primaries
White D65
Reference D50
Bradford yes
Gamma sRGB
Dot mark for
out of gamut
Clipping for
R-Y-G-C-B-M
hexagon
Outer blue area
human gamut
-50
-60
-70
-80
-90
-00
-00
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
21
0 20 30 40 50 60 70 80 90
a*
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
0 20 30 40 50 60 70 80 90 00
b*
00
90
90
80
80
70
70
60
60
50
50
40
40
30
30
20
20
0
0
-0
-0
-20
-20
-30
-30
-40
-50
-60
-70
-80
-90
L* = 70
-40
709 primaries
White D65
Reference D50
Bradford yes
Gamma sRGB
Dot mark for
out of gamut
Clipping for
R-Y-G-C-B-M
hexagon
Outer blue area
human gamut
-50
-60
-70
-80
-90
-00
-00
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
22
0 20 30 40 50 60 70 80 90
a*
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
0 20 30 40 50 60 70 80 90 00
b*
00
90
90
80
80
70
70
60
60
50
50
40
40
30
30
20
20
0
0
-0
-0
-20
-20
-30
-30
-40
-50
-60
-70
-80
-90
L* = 80
-40
709 primaries
White D65
Reference D50
Bradford yes
Gamma sRGB
Dot mark for
out of gamut
Clipping for
R-Y-G-C-B-M
hexagon
Outer blue area
human gamut
-50
-60
-70
-80
-90
-00
-00
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
23
0 20 30 40 50 60 70 80 90
a*
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
0 20 30 40 50 60 70 80 90 00
b*
00
90
90
80
80
70
70
60
60
50
50
40
40
30
30
20
20
0
0
-0
-0
-20
-20
-30
-30
-40
-50
-60
-70
-80
-90
L* = 90
-40
709 primaries
White D65
Reference D50
Bradford yes
Gamma sRGB
Dot mark for
out of gamut
Clipping for
R-Y-G-C-B-M
hexagon
Outer blue area
human gamut
-50
-60
-70
-80
-90
-00
-00
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
24
0 20 30 40 50 60 70 80 90
a*
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
0 20 30 40 50 60 70 80 90 00
b*
00
90
90
80
80
70
70
60
60
50
50
40
40
30
30
20
20
0
0
-0
-0
-20
-20
-30
-30
-40
-50
-60
-70
-80
-90
L* = 99
-40
709 primaries
White D65
Reference D50
Bradford yes
Gamma sRGB
Dot mark for
out of gamut
Clipping for
R-Y-G-C-B-M
hexagon
Outer blue area
human gamut
-50
-60
-70
-80
-90
-00
-00
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
25
0 20 30 40 50 60 70 80 90
a*
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
0 20 30 40 50 60 70 80 90 00
b*
00
90
90
80
80
70
70
60
60
50
50
40
40
30
30
20
20
0
0
-0
-0
-20
-20
-30
-30
-40
-50
-60
-70
-80
-90
L* = 0
-40
AdobeRGB(98)
White D65
Reference D50
Bradford yes
Gamma 2.2
Dot mark for
out of gamut
Clipping for
R-Y-G-C-B-M
hexagon
Outer blue area
human gamut
-50
-60
-70
-80
-90
-00
-00
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
26
0 20 30 40 50 60 70 80 90
a*
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
0 20 30 40 50 60 70 80 90 00
b*
00
90
90
80
80
70
70
60
60
50
50
40
40
30
30
20
20
0
0
-0
-0
-20
-20
-30
-30
-40
-50
-60
-70
-80
-90
L* = 20
-40
AdobeRGB(98)
White D65
Reference D50
Bradford yes
Gamma 2.2
Dot mark for
out of gamut
Clipping for
R-Y-G-C-B-M
hexagon
Outer blue area
human gamut
-50
-60
-70
-80
-90
-00
-00
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
27
0 20 30 40 50 60 70 80 90
a*
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
0 20 30 40 50 60 70 80 90 00
b*
00
90
90
80
80
70
70
60
60
50
50
40
40
30
30
20
20
0
0
-0
-0
-20
-20
-30
-30
-40
-50
-60
-70
-80
-90
L* = 30
-40
AdobeRGB(98)
White D65
Reference D50
Bradford yes
Gamma 2.2
Dot mark for
out of gamut
Clipping for
R-Y-G-C-B-M
hexagon
Outer blue area
human gamut
-50
-60
-70
-80
-90
-00
-00
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
28
0 20 30 40 50 60 70 80 90
a*
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
0 20 30 40 50 60 70 80 90 00
b*
00
90
90
80
80
70
70
60
60
50
50
40
40
30
30
20
20
0
0
-0
-0
-20
-20
-30
-30
-40
-50
-60
-70
-80
-90
L* = 40
-40
AdobeRGB(98)
White D65
Reference D50
Bradford yes
Gamma 2.2
Dot mark for
out of gamut
Clipping for
R-Y-G-C-B-M
hexagon
Outer blue area
human gamut
-50
-60
-70
-80
-90
-00
-00
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
29
0 20 30 40 50 60 70 80 90
a*
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
0 20 30 40 50 60 70 80 90 00
b*
00
90
90
80
80
70
70
60
60
50
50
40
40
30
30
20
20
0
0
-0
-0
-20
-20
-30
-30
-40
-50
-60
-70
-80
-90
L* = 50
-40
AdobeRGB(98)
White D65
Reference D50
Bradford yes
Gamma 2.2
Dot mark for
out of gamut
Clipping for
R-Y-G-C-B-M
hexagon
Outer blue area
human gamut
-50
-60
-70
-80
-90
-00
-00
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
30
0 20 30 40 50 60 70 80 90
a*
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
0 20 30 40 50 60 70 80 90 00
b*
00
90
90
80
80
70
70
60
60
50
50
40
40
30
30
20
20
0
0
-0
-0
-20
-20
-30
-30
-40
-50
-60
-70
-80
-90
L* = 60
-40
AdobeRGB(98)
White D65
Reference D50
Bradford yes
Gamma 2.2
Dot mark for
out of gamut
Clipping for
R-Y-G-C-B-M
hexagon
Outer blue area
human gamut
-50
-60
-70
-80
-90
-00
-00
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
31
0 20 30 40 50 60 70 80 90
a*
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
0 20 30 40 50 60 70 80 90 00
b*
00
90
90
80
80
70
70
60
60
50
50
40
40
30
30
20
20
0
0
-0
-0
-20
-20
-30
-30
-40
-50
-60
-70
-80
-90
L* = 70
-40
AdobeRGB(98)
White D65
Reference D50
Bradford yes
Gamma 2.2
Dot mark for
out of gamut
Clipping for
R-Y-G-C-B-M
hexagon
Outer blue area
human gamut
-50
-60
-70
-80
-90
-00
-00
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
32
0 20 30 40 50 60 70 80 90
a*
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
0 20 30 40 50 60 70 80 90 00
b*
00
90
90
80
80
70
70
60
60
50
50
40
40
30
30
20
20
0
0
-0
-0
-20
-20
-30
-30
-40
-50
-60
-70
-80
-90
L* = 80
-40
AdobeRGB(98)
White D65
Reference D50
Bradford yes
Gamma 2.2
Dot mark for
out of gamut
Clipping for
R-Y-G-C-B-M
hexagon
Outer blue area
human gamut
-50
-60
-70
-80
-90
-00
-00
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
33
0 20 30 40 50 60 70 80 90
a*
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
0 20 30 40 50 60 70 80 90 00
b*
00
90
90
80
80
70
70
60
60
50
50
40
40
30
30
20
20
0
0
-0
-0
-20
-20
-30
-30
-40
-50
-60
-70
-80
-90
L* = 90
-40
AdobeRGB(98)
White D65
Reference D50
Bradford yes
Gamma 2.2
Dot mark for
out of gamut
Clipping for
R-Y-G-C-B-M
hexagon
Outer blue area
human gamut
-50
-60
-70
-80
-90
-00
-00
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
34
0 20 30 40 50 60 70 80 90
a*
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
0 20 30 40 50 60 70 80 90 00
b*
00
90
90
80
80
70
70
60
60
50
50
40
40
30
30
20
20
0
0
-0
-0
-20
-20
-30
-30
-40
-50
-60
-70
-80
-90
L* = 0
-40
ProPhoto primaries
White D50
Reference D50
Bradford no
Gamma .8
Dot mark for
out of gamut
Clipping for
R-Y-G-C-B-M
hexagon
Outer blue area
human gamut
-50
-60
-70
-80
-90
-00
-00
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
35
0 20 30 40 50 60 70 80 90
a*
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
0 20 30 40 50 60 70 80 90 00
b*
00
90
90
80
80
70
70
60
60
50
50
40
40
30
30
20
20
0
0
-0
-0
-20
-20
-30
-30
-40
-50
-60
-70
-80
-90
L* = 20
-40
ProPhoto primaries
White D50
Reference D50
Bradford no
Gamma .8
Dot mark for
out of gamut
Clipping for
R-Y-G-C-B-M
hexagon
Outer blue area
human gamut
-50
-60
-70
-80
-90
-00
-00
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
36
0 20 30 40 50 60 70 80 90
a*
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
0 20 30 40 50 60 70 80 90 00
b*
00
90
90
80
80
70
70
60
60
50
50
40
40
30
30
20
20
0
0
-0
-0
-20
-20
-30
-30
-40
-50
-60
-70
-80
-90
L* = 30
-40
ProPhoto primaries
White D50
Reference D50
Bradford no
Gamma .8
Dot mark for
out of gamut
Clipping for
R-Y-G-C-B-M
hexagon
Outer blue area
human gamut
-50
-60
-70
-80
-90
-00
-00
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
37
0 20 30 40 50 60 70 80 90
a*
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
0 20 30 40 50 60 70 80 90 00
b*
00
90
90
80
80
70
70
60
60
50
50
40
40
30
30
20
20
0
0
-0
-0
-20
-20
-30
-30
-40
-50
-60
-70
-80
-90
L* = 40
-40
ProPhoto primaries
White D50
Reference D50
Bradford no
Gamma .8
Dot mark for
out of gamut
Clipping for
R-Y-G-C-B-M
hexagon
Outer blue area
human gamut
-50
-60
-70
-80
-90
-00
-00
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
38
0 20 30 40 50 60 70 80 90
a*
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
0 20 30 40 50 60 70 80 90 00
b*
00
90
90
80
80
70
70
60
60
50
50
40
40
30
30
20
20
0
0
-0
-0
-20
-20
-30
-30
-40
-50
-60
-70
-80
-90
L* = 50
-40
ProPhoto primaries
White D50
Reference D50
Bradford no
Gamma .8
Dot mark for
out of gamut
Clipping for
R-Y-G-C-B-M
hexagon
Outer blue area
human gamut
-50
-60
-70
-80
-90
-00
-00
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
39
0 20 30 40 50 60 70 80 90
a*
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
0 20 30 40 50 60 70 80 90 00
b*
00
90
90
80
80
70
70
60
60
50
50
40
40
30
30
20
20
0
0
-0
-0
-20
-20
-30
-30
-40
-50
-60
-70
-80
-90
L* = 60
-40
ProPhoto primaries
White D50
Reference D50
Bradford no
Gamma .8
Dot mark for
out of gamut
Clipping for
R-Y-G-C-B-M
hexagon
Outer blue area
human gamut
-50
-60
-70
-80
-90
-00
-00
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
40
0 20 30 40 50 60 70 80 90
a*
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
0 20 30 40 50 60 70 80 90 00
b*
00
90
90
80
80
70
70
60
60
50
50
40
40
30
30
20
20
0
0
-0
-0
-20
-20
-30
-30
-40
-50
-60
-70
-80
-90
L* = 70
-40
ProPhoto primaries
White D50
Reference D50
Bradford no
Gamma .8
Dot mark for
out of gamut
Clipping for
R-Y-G-C-B-M
hexagon
Outer blue area
human gamut
-50
-60
-70
-80
-90
-00
-00
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
41
0 20 30 40 50 60 70 80 90
a*
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
0 20 30 40 50 60 70 80 90 00
b*
00
90
90
80
80
70
70
60
60
50
50
40
40
30
30
20
20
0
0
-0
-0
-20
-20
-30
-30
-40
-50
-60
-70
-80
-90
L* = 80
-40
ProPhoto primaries
White D50
Reference D50
Bradford no
Gamma .8
Dot mark for
out of gamut
Clipping for
R-Y-G-C-B-M
hexagon
Outer blue area
human gamut
-50
-60
-70
-80
-90
-00
-00
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
42
0 20 30 40 50 60 70 80 90
a*
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
0 20 30 40 50 60 70 80 90 00
b*
00
90
90
80
80
70
70
60
60
50
50
40
40
30
30
20
20
0
0
-0
-0
-20
-20
-30
-30
-40
-50
-60
-70
-80
-90
L* = 90
-40
ProPhoto primaries
White D50
Reference D50
Bradford no
Gamma .8
Dot mark for
out of gamut
Clipping for
R-Y-G-C-B-M
hexagon
Outer blue area
human gamut
-50
-60
-70
-80
-90
-00
-00
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
43
0 20 30 40 50 60 70 80 90
a*
b*
No artifacts for
Smooth Line Art Off
a*
CIE
a*b* axes
-100 /100
L* 1/ 99
b*
NTSC
a*
b*
sRGB
a*
44
L*
b*
b*
a*
a*
sRGB
L*
L*
a*b* axes
-100 /100
L* 0/100
a*
b*
a*
b*
L*
L*
a*
a*
b*
b*
L*
L*
b*
a*
b*
a*
45
11.3 3D Views
b*
a*
CIE
a*b* axes
-100 /100
L* 0 / 95
b*
NTSC
a*
b*
sRGB
a*
46
L* = 100 Y /Yn
a* = 500 (X/Xn - Y/Yn )
b* = 200 (Y/ Yn - Z/Zn )
Here we can see that the colors are too light for low luminance. This is the reason for
the introduction of the nonlinear CIELab conversion, though the cubic root law is also
not perfect.
sRGB
Linear
a*b* axes
-100 /100
L* 0 / 95
b*
a*
b*
a*
47
sRGB
Nonlinear
L*
b*
a*
L*
b*
a*
L*
b*
a*
48
-6
-4
-2
0 2 4 6 8 20
b*
20
8
8
6
6
4
4
2
2
0
0
-2
-2
-4
-4
-6
-6
-8
-0
-2
-4
-6
-8
L* = 50
-8
709 primaries
White D65
Reference D50
Bradford yes
Gamma sRGB
Dot mark for
out of gamut
Clipping for
R-Y-G-C-B-M
hexagon
Outer blue area
human gamut
-0
-2
-4
-6
-8
-20
-20
-20 -8 -6 -4 -2 -0 -8
-6
-4
-2
49
0 2 4 6 8
a*
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
0 20 30 40 50 60 70 80 90 00
b*
90
80
70
60
50
40
30
20
0
0
-0
-20
-30
-40
-50
-60
-70
-80
-90
-00
00
0
0
6
44
4
0
0
0
0
6
44
4
0
0
0
0
6
44
4
0
0
0
0
6
44
4
0
0
0
0
6
44
42
3
6
0
0
7
44
42
40
4
0
0
7
44
42
62
63
0
0
7
45
42
8
82
0
0
7
45
42
99
00
0
0
7
45
43
6
7
7
0
0
8
45
43
4
34
34
0
0
8
46
43
5
5
0
0
9
46
44
8
69
69
0
0
9
47
44
6
86
709 primaries 86
0
0
White 0 D65
47
45
3
203
Reference D50 204
0
0
Bradford
0 yes
48
46
22
22
Gamma sRGB
0
0
Dot mark for49 46
9
239
239
out of gamut
0
0
Clipping for
2
50
47
R-Y-G-C-B-M
5
255
255
hexagon 0
0
3
5
48
Outer blue area
5
255
255
human gamut
0
0
4
52
49
5
255
255
L* = 50
32
38
0
29
38
0
25
38
0
8
38
0
2
39
9
0
39
42
0
39
63
0
39
82
0
39
00
0
40
7
0
40
34
0
40
52
0
4
69
0
4
86
0
42
204
0
43
22
0
44
239
0
44
255
0
45
255
0
46
255
67
35
0
66
35
0
64
35
0
62
35
0
58
35
2
53
35
43
44
36
64
3
36
83
0
36
00
0
36
7
0
37
35
0
37
52
0
38
69
0
38
86
0
39
204
0
40
222
0
40
239
0
4
255
0
42
255
0
43
255
90
3
0
89
3
0
87
3
0
86
32
0
83
32
5
80
32
44
75
32
65
69
32
83
59
32
0
45
33
8
5
33
35
0
34
52
0
34
69
0
35
87
0
35
204
0
36
222
0
37
239
0
38
255
0
39
255
0
40
255
08
27
0
07
27
0
06
27
0
05
27
0
03
28
7
0
28
45
97
28
65
92
28
84
86
28
0
77
29
8
65
29
35
47
30
52
0
30
69
0
3
87
0
3
204
0
32
222
0
33
240
0
34
255
0
35
255
0
36
255
24
23
0
24
23
0
23
23
0
22
23
0
20
23
20
8
23
46
5
23
66
23
84
06
24
0
00
24
9
92
25
36
80
25
53
64
26
70
36
26
87
0
27
204
0
28
222
0
29
240
0
30
255
0
3
255
0
32
255
39
7
0
39
7
0
38
7
0
37
8
0
36
8
22
34
8
47
32
8
67
28
8
85
24
9
02
9
9
9
2
9
36
04
20
53
93
20
70
77
2
87
54
22
205
0
23
222
0
24
240
0
25
255
0
26
255
0
27
255
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
50
53
0
53
0
52
0
5
2
0
50
2
25
49
2
49
47
2
68
44
2
85
40
3
02
36
3
9
30
3
36
23
4
53
4
5
70
03
5
87
88
6
205
66
7
222
6
8
240
0
9
255
0
20
255
0
22
255
67
04
0
66
05
0
66
05
0
65
05
0
64
05
27
63
05
50
6
05
69
58
05
86
55
06
03
5
06
20
46
07
37
40
07
53
33
08
70
24
09
88
2
0
205
97
223
75
2
240
34
3
255
0
4
255
0
6
255
80
96
0
79
96
0
79
97
0
78
97
0
77
97
30
76
97
5
74
97
69
72
98
87
69
98
04
66
98
20
6
99
37
56
00
54
50
00
7
42
0
88
32
02
205
20
03
223
05
04
240
83
06
255
45
07
255
0
09
255
92
87
0
92
87
0
9
87
0
9
87
0
90
87
32
89
87
53
87
88
70
85
88
87
83
89
04
80
89
2
76
90
37
7
90
54
65
9
7
58
92
88
50
93
205
40
94
223
27
96
24
97
255
89
99
255
5
00
255
205
75
0
204
75
0
204
75
0
203
75
4
202
75
34
20
76
54
200
76
7
98
77
88
96
77
05
93
78
2
89
78
38
85
79
55
80
80
7
74
8
88
67
83
206
58
84
223
47
85
24
34
87
255
7
89
255
94
9
255
27
59
0
26
59
0
26
60
0
25
60
0
25
60
37
24
60
55
22
6
73
2
6
89
208
62
05
206
63
22
203
64
38
99
65
55
94
66
72
89
67
89
82
69
206
74
7
223
65
73
24
54
75
255
40
77
255
22
79
255
229
35
0
228
35
0
228
35
0
227
35
6
227
36
39
226
36
57
225
37
74
223
38
90
22
39
06
28
4
22
25
42
39
22
44
55
208
46
72
203
48
89
97
50
206
90
52
224
8
55
24
72
58
255
60
60
255
45
63
255
240
0
0
240
0
0
240
0
0
239
0
20
239
0
4
238
0
58
237
0
75
235
0
9
233
0
07
23
0
23
228
0
39
225
0
56
22
0
73
26
0
90
2
8
207
205
7
224
97
23
242
88
29
255
78
35
255
65
40
255
252
0
0
252
0
0
25
0
0
25
0
25
250
0
43
249
0
60
248
0
76
247
0
92
245
0
08
243
0
24
24
0
40
237
0
56
234
0
73
230
0
90
225
0
207
29
0
224
22
0
242
204
0
255
95
0
255
84
0
255
0 20 30 40 50 60 70 80 90
90
80
70
60
50
40
30
20
0
0
-0
-20
-30
-40
-50
-60
-70
-80
-90
-00
a*
primaries) def
def /yr 0.33000 def
def /yg 0.71000 def
def /yb 0.08000 def
/PrimsWide
{/txtP (WideGamut
/xr 0.734700 def
/xg 0.115173 def
/xb 0.156608 def
} def
primaries) def
/yr 0.265299 def
/yg 0.826432 def
/yb 0.017658 def
/PrimsProP
{/txtP (ProPhoto primaries) def
/xr 0.734698 def /yr 0.265302 def
/xg 0.159599 def /yg 0.840401 def
/xb 0.036600 def /yb 0.000107 def
} def
/PrimsAd98
{/txtP (AdobeRGB(98)) def
/xr 0.64000 def /yr 0.33000 def
/xg 0.21000 def /yg 0.71000 def
/xb 0.15000 def /yb 0.06000 def
} def
/PrimsOpti
{/txtP (OptiRGB) def
/xr 0.6658 def /yr 0.3340 def %610
/xg 0.1929 def /yg 0.7816 def %535
/xb 0.1355 def /yb 0.0399 def %465
} def
/WhiteEqE
{/xw 0.3333 def /yw 0.3333
/txtW (Eq.Energy ) def
} def
/WhiteD65
{/xw 0.3127 def /yw 0.3290
/txtW (D65) def
} def
/WhiteNTSC % Illuminant C
{/xw 0.3100 def /yw 0.3160
/txtW (NTSC) def
} def
/White3000K % R.W.G.Hunt,
{/xw 0.4368 def /yw 0.4041
/txtW (3000K) def
} def
/White4000K
{/xw 0.3804 def /yw 0.3767
/txtW (4000K) def
} def
/WhiteD50
{/xw 0.3457 def /yw 0.3585
/txtW (D50) def
} def
/White6000K
def
def
def
Measuring Colours
def
def
def
51
0.3318 def
0.3165 def
0.3048 def
0.3333 def
def
0.3290 def
0.3160 def
0.3585 def
/MakeBrad
{% ICC-Spec p.110
% Cone = CX*X; X = XC*Cone
% Cone Response
/CX11 0.8951 def /CX12 0.2664 def /CX13 -0.1614 def
/CX21 -0.7502 def /CX22 1.7135 def /CX23 0.0367 def
/CX31 0.0389 def /CX32 -0.0685 def /CX33 1.0296 def
% Inverse Cone Response
/D CX22 CX33 mul CX23 CX32 mul sub CX11 mul
CX21 CX33 mul CX23 CX31 mul sub CX12 mul sub
CX21 CX32 mul CX22 CX31 mul sub CX13 mul add def
/XC11 CX22 CX33 mul CX23 CX32 mul sub D div
def
/XC12 CX12 CX33 mul CX13 CX32 mul sub D div neg def
/XC13 CX12 CX23 mul CX13 CX22 mul sub D div
def
/XC21 CX21 CX33 mul CX23 CX31 mul sub D div neg def
/XC22 CX11 CX33 mul CX13 CX31 mul sub D div
def
/XC23 CX11 CX23 mul CX13 CX21 mul sub D div neg def
/XC31 CX21 CX32 mul CX22 CX31 mul sub D div
def
/XC32 CX11 CX32 mul CX12 CX31 mul sub D div neg def
/XC33 CX11 CX22 mul CX12 CX21 mul sub D div
def
% Source
/Yws 1 def
/zw 1 xw sub yw sub def
/Xws xw yw div Yws mul def
/Zws zw yw div Yws mul def
% PCS
/Ywp 1 def
/zn 1 xn sub yn sub def
/Xwp xn yn div Ywp mul def
/Zwp zn yn div Ywp mul def
% Cone Source
/Rs CX11 Xws mul CX12
/Gs CX21 Xws mul CX22
/Bs CX31 Xws mul CX32
% Cone PCS
/Rp CX11 Xwp mul CX12
/Gp CX21 Xwp mul CX22
/Bp CX31 Xwp mul CX32
/a11 Rp Rs div def
52
X21
X22
X23
X21
X22
X23
X21
X22
X23
mul
mul
mul
mul
mul
mul
mul
mul
mul
add
add
add
add
add
add
add
add
add
XC13
XC13
XC13
XC23
XC23
XC23
XC33
XC33
XC33
X31
X32
X33
X31
X32
X33
X31
X32
X33
mul
mul
mul
mul
mul
mul
mul
mul
mul
add
add
add
add
add
add
add
add
add
% Inverse Bradford
/D BM22 BM33 mul BM23 BM32 mul sub BM11
BM21 BM33 mul BM23 BM31 mul sub BM12
BM21 BM32 mul BM22 BM31 mul sub BM13
/MB11 BM22 BM33 mul BM23 BM32 mul sub D
/MB12 BM12 BM33 mul BM13 BM32 mul sub D
/MB13 BM12 BM23 mul BM13 BM22 mul sub D
/MB21 BM21 BM33 mul BM23 BM31 mul sub D
/MB22 BM11 BM33 mul BM13 BM31 mul sub D
/MB23 BM11 BM23 mul BM13 BM21 mul sub D
/MB31 BM21 BM32 mul BM22 BM31 mul sub D
/MB32 BM11 BM32 mul BM12 BM31 mul sub D
/MB33 BM11 BM22 mul BM12 BM21 mul sub D
mul
mul
mul
div
div
div
div
div
div
div
div
div
sub
add def
def
neg def
def
neg def
def
neg def
def
neg def
def
def
def
def
def
def
def
def
def
def
BM12
BM12
BM12
BM22
BM22
BM22
BM32
BM32
BM32
CR21
CR22
CR23
CR21
CR22
CR23
CR21
CR22
CR23
mul
mul
mul
mul
mul
mul
mul
mul
mul
add
add
add
add
add
add
add
add
add
BM13
BM13
BM13
BM23
BM23
BM23
BM33
BM33
BM33
CR31
CR32
CR33
CR31
CR32
CR33
CR31
CR32
CR33
mul
mul
mul
mul
mul
mul
mul
mul
mul
53
add
add
add
add
add
add
add
add
add
def
def
def
def
def
def
def
def
def }
B iga exp
exp 1.055
exp 1.055
exp 1.055
def
mul
mul
mul
}
0.055 sub } ifelse def
0.055 sub } ifelse def
0.055 sub } ifelse def } ifelse
54
}
}
}
}
}
}
%Choose one
/W 0 def
W 0 eq { WhiteEqE
W 1 eq { WhiteD65
W 2 eq { WhiteNTSC
W 3 eq { White3000K
W 4 eq { White4000K
W 5 eq { WhiteD50
W 6 eq { White6000K
W 7 eq { White7000K
W 8 eq { White8000K
W 9 eq { White9300K
if
if
if
if
if
if
%Choose one
/N 5 def
N 0 eq { RefEqE }
N 1 eq { RefD65 }
N 2 eq { RefNTSC}
N 5 eq { RefD50 }
}
}
}
}
}
}
}
}
}
}
if
if
if
if
if
if
if
if
if
if
if
if
if
if
%Choose one
/B 1 def
B 0 eq { /Brad false def } if
B 1 eq { /Brad true def } if
%Choose one
/L 5 def
L 0 eq {/L* 0.01 def} if
L 1 eq {/L* 0.1 def} if
L 2 eq {/L* 0.2 def} if
L 3 eq {/L* 0.3 def} if
L 4 eq {/L* 0.4 def} if
L 5 eq {/L* 0.5 def} if
L 6 eq {/L* 0.6 def} if
L 7 eq {/L* 0.7 def} if
L 8 eq {/L* 0.8 def} if
L 9 eq {/L* 0.9 def} if
L 10 eq {/L* 0.99 def} if
MakeBrad
PrimToMat
55
L
= 10, 20 .. 90
Radius = 10, 20 ..120
Angle = 0, 15 .. 345
OptiRGB
xr = 0.6658 yr = 0.3340 610nm
xg = 0.1929 yg = 0.7816 535nm
xb = 0.1355 yb = 0.0399 465nm
Gamma=2.2
D65
0.8
520 525
50
530
535
OptiRGB
0.7
540
545
550
505
555
AdobeRGB(98)
560
0.6
565
570
500
0.4
0.3
0.2
575
sRGB
0.5
580
585
590
595
600
605
60
620
635
700
495
490
485
480
0.
0.0
0.0
475
470
460
380
0.
0.2
0.3
0.4
0.5
56
0.6
0.7
0.8
0.9 x .0
10, 20 .. 90
-120,-110 .. +120
-120,-110 .. +120
.0
y
0.9
55
0.8
520 525
50
530
535
OptiRGB
0.7
540
545
550
505
555
AdobeRGB(98)
560
0.6
565
570
500
0.4
0.3
0.2
575
sRGB
0.5
580
585
590
595
600
605
60
620
635
700
495
490
485
480
0.
0.0
0.0
475
470
460
380
0.
0.2
0.3
0.4
0.5
57
0.6
0.7
0.8
0.9 x .0
.0
y
0.9
55
0.8
520 525
50
530
535
OptiRGB
0.7
540
545
550
505
555
AdobeRGB(98)
560
0.6
565
570
500
0.4
0.3
0.2
575
sRGB
0.5
580
585
590
595
600
605
60
620
635
700
495
490
485
480
0.
0.0
0.0
475
470
460
380
0.
0.2
0.3
0.4
0.5
58
0.6
0.7
0.8
0.9 x .0
Test results
Mode
Pixels
Colors Source sRGB
Colors 256/256/256
Colors 100/256/256
Colors 50/128/128
Random
1.000.000
969.864
795.538
611.904
146.712
Portrait
1.000.000
182.629
89.451
47.006
9.485
The random image uses the whole sRGB space, the portrait only a small part. Therefore
a loss of levels by percentage because of quantization is more likely for the portrait.
Number N of colors in CIELab for sRGB,
aRGB = AdobeRGB(98) and pRGB=ProPhotoRGB:
N=0
Define RGB space
For L*=0 To 100 Step 2 Do
For a*=-128 To +128 Step 2 Do
For b*=-128 To +128 Step 2 Do
Begin
Convert L*,a*,b* into R,G,B
If R,G,B in [0...255] Then N=N+1
End
N=8*N
Number N
sRGB
832.752
aRGB 1.208.912
pRGB 2.659.728
59
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
0 20 30 40 50 60 70 80 90 00
b*
00
90
90
80
80
70
70
60
60
50
50
40
40
30
30
20
20
0
0
-0
-0
-20
-20
-30
-30
-40
-50
-60
L* all
-40
709 primaries
White D65
Reference D50
Bradford yes
Gamma sRGB
-50
-60
-70
-80
-90
-70
Clipping for
R-Y-G-C-B-M
hexagon
Outer blue area
human gamut
-80
-90
-00
-00
-00 -90 -80 -70 -60 -50 -40 -30 -20 -0 0
60
0 20 30 40 50 60 70 80 90
a*
RGB
Lab
61
20. 1 References
[1]
R.W.G.Hunt
Measuring Colour
Fountain Press England
1998
M.Nielsen + M.Stokes
The Creation of the sRGB ICC Profile
http://www.srgb.com/c55.pdf
Year unknown, after 1998
[7]
[8]
[9] G.Hoffmann
Color Order Systems RGB/HLS/HSB
http://docs-hoffmann.de/hlscone03052001.pdf
[10] http://www.brucelindbloom.com
[11] M.D.Fairchild
Color Appearance Models
John Wiley & Sons, Ltd
England, 2005
[12] Jn Morovi
Color Gamut Mapping
John Wiley & Sons, Ltd
2008
62
20. 2 References
[13] http://www.eci.org/doku.php?id=en:downloads
[14] http://www.fogra.org/products-de/icc/Readme04d.pdf
[15] http://www.fogra.org/products-de/icc/FograCharDaten_ECIProfile.pdf
[16] http://www.eci.org/doku.php?id=de:start
This doc:
http://docs-hoffmann.de/cielab03022003.pdf
Gernot Hoffmann
February 03 / 2003 + September 10 / 2013
Website
Load Browser / Click here
63