#include "colorspace_conversion_effect.h"
#include "util.h"
+#include "d65.h"
using namespace Eigen;
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)
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):
--- /dev/null
+#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)
+