From: Steinar H. Gunderson Date: Sat, 3 Nov 2012 14:06:43 +0000 (+0100) Subject: Add a separate header file for the D65 white point. X-Git-Tag: 1.0~214 X-Git-Url: https://git.sesse.net/?p=movit;a=commitdiff_plain;h=57061265db1842d85c96bc678297d13b30661ab8;ds=sidebyside Add a separate header file for the D65 white point. --- diff --git a/colorspace_conversion_effect.cpp b/colorspace_conversion_effect.cpp index ea4390a..baced38 100644 --- a/colorspace_conversion_effect.cpp +++ b/colorspace_conversion_effect.cpp @@ -4,6 +4,7 @@ #include "colorspace_conversion_effect.h" #include "util.h" +#include "d65.h" using namespace Eigen; @@ -17,9 +18,6 @@ static const double rec601_525_y_R = 0.340, rec601_525_y_G = 0.595, rec601_525_y static const double rec601_625_x_R = 0.640, rec601_625_x_G = 0.290, rec601_625_x_B = 0.150; static const double rec601_625_y_R = 0.330, rec601_625_y_G = 0.600, rec601_625_y_B = 0.060; -// The D65 white point. Given in both Rec. 601 and 709. -static const double d65_x = 0.3127, d65_y = 0.3290; - ColorspaceConversionEffect::ColorspaceConversionEffect() : source_space(COLORSPACE_sRGB), destination_space(COLORSPACE_sRGB) @@ -64,7 +62,7 @@ Matrix3d get_xyz_matrix(Colorspace space) Vector3d d65_XYZ( d65_x / d65_y, 1.0, - (1.0 - d65_x - d65_y) / d65_y + d65_z / d65_y ); // We have, for each primary (example is with red): diff --git a/d65.h b/d65.h new file mode 100644 index 0000000..86f423b --- /dev/null +++ b/d65.h @@ -0,0 +1,13 @@ +#ifndef _D65_H +#define _D65_H 1 + +// The D65 illuminant, which is the standard white point (ie. what you should get +// for R=G=B=1) for almost all video color spaces in common use. It has a color +// temperature roughly around 6500 K, which is sort of bluish; it is intended to +// simulate average daylight conditions. +// +// The definition (in xyz space) is given, for instance, in both Rec. 601 and 709. +static const double d65_x = 0.3127, d65_y = 0.3290, d65_z = 1.0 - d65_x - d65_y; + +#endif // !defined(_D65_H) +