[comp.graphics] List of Common CRT chromaticities?

douglasg@hpgrla.gr.hp.com (Douglas Gennetten) (04/19/91)

While there are many monitor vendors, there are relatively few CRT manufact-
urers. I am looking for a source of information where I can find a list
of these CRT makers and the chromaticities of there phosphors. I would like
to generate a 3x3 matrix and tonemap to convert from any colorimetric RGB to
any of the common CRTs. Also, anther desirable list which I'm sure is less
likely to be found is one showing who uses which CRTs in there monitors.

Thanks,

Douglas Gennetten
Hewlett Packard
Greeley Hardcopy Div.

hue@island.COM (Jon "Beer - It's not just for breakfast anymore" Hue) (04/26/91)

In article <330015@hpgrla.gr.hp.com> douglasg@hpgrla.gr.hp.com (Douglas Gennetten) writes:
>While there are many monitor vendors, there are relatively few CRT manufact-
>urers. I am looking for a source of information where I can find a list
>of these CRT makers and the chromaticities of there phosphors. I would like
>to generate a 3x3 matrix and tonemap to convert from any colorimetric RGB to
>any of the common CRTs. Also, anther desirable list which I'm sure is less
>likely to be found is one showing who uses which CRTs in there monitors.

Well, if no one else is going to bite...

This list is from a person at Sun Microsystems.  At the end is a little
program for calculating the matrix coefficients for RGB<->XYZ.

If anyone has any additions to this list, please send them to me.

-Jonathan		hue@island.COM

===============================================================================
Following the text-form data is the same data in tab-delimited form, if the 
mailers don't mangle it then you might be able to import it into a spreadsheet.  

-----

      IllA
  0.447570  0.407450  0.144980
      IllB
  0.348420  0.351610  0.299970
      IllC
  0.310060  0.316160  0.373780
      IllD
  0.312700  0.329100  0.358200
      IllE
  0.333333  0.333333  0.333333
      ChroCIE
  0.735  0.265  0.000
  0.274  0.717  0.009
  0.167  0.009  0.825
      ChroFCC
  0.670  0.330  0.000
  0.210  0.710  0.080
  0.140  0.080  0.780
      ChroEBU
  0.640  0.330  0.030
  0.290  0.600  0.110
  0.150  0.060  0.790
      ChroSMPTE
  0.630  0.340  0.030
  0.310  0.595  0.095
  0.155  0.070  0.775
      ChroXA11
  0.640  0.330  0.030
  0.300  0.600  0.100
  0.150  0.060  0.790
      IllE XYZfrRGB ChroCIE
  0.489989  0.310008  0.200003
  0.176962  0.812400  0.010638
  0.000000  0.009999  0.990001
      inv IllE XYZfrRGB ChroCIE
  2.364666 -0.896583 -0.468083
 -0.515155  1.426409  0.088746
  0.005203 -0.014407  1.009204
      IllC XYZfrRGB ChroFCC
  0.606864  0.173507  0.200335
  0.298903  0.586620  0.114477
  0.000000  0.066098  1.116151
      inv IllC XYZfrRGB ChroFCC
  1.910081 -0.532478 -0.288222
 -0.984631  1.999100 -0.028307
  0.058309 -0.118386  0.897612
      IllD XYZfrRGB ChroFCC
  0.587876  0.179185  0.183106
  0.289551  0.605817  0.104632
  0.000000  0.068261  1.020162
      inv IllD XYZfrRGB ChroFCC
  1.971776 -0.549677 -0.297531
 -0.953430  1.935752 -0.027410
  0.063796 -0.129525  0.982071
      IllD XYZfrRGB ChroEBU
  0.430303  0.341636  0.178228
  0.221875  0.706834  0.071291
  0.020170  0.129586  0.938666
      inv IllD XYZfrRGB ChroEBU
  3.065147 -1.394203 -0.476101
 -0.968998  1.875492  0.041545
  0.067908 -0.228959  1.069837
      IllD XYZfrRGB ChroSMPTE
  0.393258  0.365363  0.191546
  0.212235  0.701261  0.086505
  0.018727  0.111966  0.957730
      inv IllD XYZfrRGB ChroSMPTE
  3.508344 -1.740952 -0.544422
 -1.068741  1.977213  0.035161
  0.056345 -0.197110  1.050670
      IllD XYZfrRGB ChroXA11
  0.412135  0.357675  0.180357
  0.212507  0.715350  0.072143
  0.019319  0.119225  0.949879
      inv IllD XYZfrRGB ChroXA11
  3.242979 -1.538336 -0.498920
 -0.968998  1.875492  0.041545
  0.055668 -0.204117  1.057698

-----

FCC 1953
	x	y
R:	0.670	0.340		
G:	0.210	0.710		
B:	0.140	0.080		
Wh:	0.3100	0.3160	

Luma:  Y' = 0.2990 R' + 0.5870 G' + 0.1140 B'

Transfer:  light = volts^2.2

SMPTE RP145
	x	y	+-tol
R:	0.630	0.340	0.005	
G:	0.310	0.595	0.005	
B:	0.155	0.070	0.005	
Wh:	0.3127	0.3291	

Luma:  Y' = 0.2120 R' + 0.7010 G' + 0.0870 B'

Transfer:  light = [(volts+0.1115)/(1.+0.1115)]^(1/0.45)

Low light:  light = volts/4.0

Note:  luminance coefficients used in practice do not match white point.


EBU
	x	y
R:	0.640	0.330		
G:	0.290	0.600		
B:	0.150	0.060		
Wh:	0.3127	0.3291	

Luma:  Y' = 0.2990 R' + 0.5870 G' + 0.1140 B'

Transfer:  light = volts^2.8

Note:  luminance coefficients used in practice do not match white point.


CCIR XA/11 1990
	x	y
R:	0.640	0.330		
G:	0.300	0.600		
B:	0.150	0.060		
Wh:	0.3127	0.3290	

Luma:  Y' = 0.2125 R' + 0.7154 G' + 0.0721 B'

Transfer:  light = [(volts+0.0990)/(1.+0.0990)]^(1/0.45)

Low light:  light = volts/4.5


P22 e.g. Hit/Seiko
	x	y	+-tol	persist
R:	0.610	0.342	0.016	1200
G:	0.298	0.588	0.016	300
B:	0.151	0.064	0.016	250
Wh:	0.3130	0.3290	


Sony
	x	y	+-tol	persist
R:	0.625	0.340	0.030	1000
G:	0.280	0.595	0.030	40
B:	0.155	0.070	0.016	30
Wh:	0.2830	0.2980	0.030


Sony DDM-2800C
	x	y	+-tol	persist
R:	0.625	0.340	0.030	1000
G:	0.280	0.595	0.030	40
B:	0.155	0.070	0.200	30
Wh:	0.2710	0.2860	0.030


Mitsubishi
	x	y
R:	0.618	0.350		
G:	0.280	0.605		
B:	0.152	0.063		
Wh:	0.2830	0.2980	


Zenith FTM
	x	y	persist
R:	0.616	0.336		470
G:	0.324	0.580		41
B:	0.146	0.066		40
Wh:	0.3130	0.3290	


JVC
	x	y
R:	0.618	0.350		
G:	0.280	0.605		
B:	0.152	0.063		
Wh:	0.3127	0.3290	



Specification	Rx	Ry	Gx	Gy	Bx	By	Wx	Wy	Rtol	Gtol	Btol	Wtol	Tslope	Ttoe	Tnum	Tden	Yr	Yg	Yb	Rpers	Gpers	Bpers	note
FCC 1953	0.670	0.340	0.210	0.710	0.140	0.080	0.3100	0.3160							2.2		0.2990	0.5870	0.1140				
SMPTE RP145	0.630	0.340	0.310	0.595	0.155	0.070	0.3127	0.3291	0.005	0.005	0.005		4.0	0.1115		0.45	0.2120	0.7010	0.0870				luminance coefficients used in practice do not match white point.
EBU	0.640	0.330	0.290	0.600	0.150	0.060	0.3127	0.3291							2.8		0.2990	0.5870	0.1140				luminance coefficients used in practice do not match white point.
CCIR XA/11 1990	0.640	0.330	0.300	0.600	0.150	0.060	0.3127	0.3290					4.5	0.0990		0.45	0.2125	0.7154	0.0721				
																							
P22 e.g. Hit/Seiko	0.610	0.342	0.298	0.588	0.151	0.064	0.3130	0.3290	0.016	0.016	0.016									1200	300	250	
Sony	0.625	0.340	0.280	0.595	0.155	0.070	0.2830	0.2980	0.030	0.030	0.016	0.030								1000	40	30	
Sony DDM-2800C	0.625	0.340	0.280	0.595	0.155	0.070	0.2710	0.2860	0.030	0.030	0.200	0.030								1000	40	30	
Mitsubishi	0.618	0.350	0.280	0.605	0.152	0.063	0.2830	0.2980															
Zenith FTM	0.616	0.336	0.324	0.580	0.146	0.066	0.3130	0.3290												470	41	40	
JVC	0.618	0.350	0.280	0.605	0.152	0.063	0.3127	0.3290															
-----


/*
 * Program for calculating XYZ<->RGB matrix coefficients
 */
#include <stdio.h>

main()
{
    char s[80];
    double yr, yg, yb, yw;
    double xr, xg, xb, xw;
    double D;
    double Cr, Cg, Cb;
    double c11, c12, c13, c21, c22, c23, c31, c32, c33;
    
    fputs("Enter red x and y: ", stdout);
    fflush(stdout);
    gets(s);
    sscanf(s, "%lf %lf", &xr, &yr);
    fputs("Enter green x and y: ", stdout);
    fflush(stdout);
    gets(s);
    sscanf(s, "%lf %lf", &xg, &yg);
    fputs("Enter blue x and y: ", stdout);
    fflush(stdout);
    gets(s);
    sscanf(s, "%lf %lf", &xb, &yb);
    fputs("Enter white x and y: ", stdout);
    fflush(stdout);
    gets(s);
    sscanf(s, "%lf %lf", &xw, &yw);

    D = (xr*(yg-yb)) + (xg*(yb-yr)) + (xb*(yr-yg));
    fprintf(stderr, "D = %lf\n", D);
    Cr = (1.0/yw) * ((xw*(yg-yb)) + (xg*yb) - ((yw*(xg-xb)) + (xb*yg))) / D;
    Cg = (1.0/yw) * ((xw*(yb-yr)) + (xb*yr) - ((yw*(xb-xr)) + (xr*yb))) / D;
    Cb = (1.0/yw) * ((xw*(yr-yg)) + (xr*yg) - ((yw*(xr-xg)) + (xg*yr))) / D;
    
    putchar('\n');
    printf("X = %10.8fR + %10.8fG + %10.8fB\n", Cr*xr, Cg*xg, Cb*xb);
    printf("Y = %10.8fR + %10.8fG + %10.8fB\n", Cr*yr, Cg*yg, Cb*yb);
    printf("Z = %10.8fR + %10.8fG + %10.8fB\n", Cr*(1-(xr+yr)), Cg*(1-(xg+yg)),
	   Cb*(1-(xb+yb)));
    
    c11 = (((yg-yb) - (xb*yg)) + (yb*xg)) / (Cr*D);
    c12 = (((xb-xg) - (xb*yg)) + (yb*xg)) / (Cr*D);
    c13 = ((xg*yb) - (xb*yg)) / (Cr*D);
    c21 = (((yb-yr) - (yb*xr)) + (yr*xb)) / (Cg*D);
    c22 = (((xr-xb) - (yb*xr)) + (yr*xb)) / (Cg*D);
    c23 = ((xb*yr) - (xr*yb)) / (Cg*D);
    c31 = (((yr-yg) - (yr*xg)) + (yg*xr)) / (Cb*D);
    c32 = (((xg-xr) - (yr*xg)) + (yg*xr)) / (Cb*D);
    c33 = ((xr*yg) - (xg*yr)) / (Cb*D);
    
    putchar('\n');
    printf("R = %10.8fX + %10.8fY + %10.8fZ\n", c11, c12, c13);
    printf("G = %10.8fX + %10.8fY + %10.8fZ\n", c21, c22, c23);
    printf("B = %10.8fX + %10.8fY + %10.8fZ\n", c31, c32, c33);
}