Merge branch 'master' into 1.0
[libdcp.git] / src / colour_matrix.cc
1 /*
2     Copyright (C) 2013-2014 Carl Hetherington <cth@carlh.net>
3
4     This program is free software; you can redistribute it and/or modify
5     it under the terms of the GNU General Public License as published by
6     the Free Software Foundation; either version 2 of the License, or
7     (at your option) any later version.
8
9     This program is distributed in the hope that it will be useful,
10     but WITHOUT ANY WARRANTY; without even the implied warranty of
11     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12     GNU General Public License for more details.
13
14     You should have received a copy of the GNU General Public License
15     along with this program; if not, write to the Free Software
16     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
17
18 */
19
20 #include "colour_matrix.h"
21
22 /* sRGB color matrix for XYZ -> RGB.  This is the same as the one used by the Fraunhofer
23    EasyDCP player, I think.
24 */
25
26 double const dcp::colour_matrix::xyz_to_rgb[3][3] = {
27         {  3.24096989631653,   -1.5373831987381,  -0.498610764741898 },
28         { -0.96924364566803,    1.87596750259399,  0.0415550582110882 },
29         {  0.0556300804018974, -0.203976958990097, 1.05697154998779 }
30 };
31
32 double const dcp::colour_matrix::srgb_to_xyz[3][3] = {
33         {0.4124564, 0.3575761, 0.1804375},
34         {0.2126729, 0.7151522, 0.0721750},
35         {0.0193339, 0.1191920, 0.9503041}
36 };
37
38 double const dcp::colour_matrix::rec709_to_xyz[3][3] = {
39         { 0.412390799265959,  0.357584339383878, 0.180480788401834 },
40         { 0.21263900587151,   0.715168678767756, 0.0721923153607337 },
41         { 0.0193308187155918, 0.119194779794626, 0.950532152249661 }
42 };