XYZ2RGB电影放映机用的编码色彩空间到普通投影用的色彩空间转换

数字电影拷贝使用MJPEG2000编码,色彩空间是XYZ色域,且带有gamma校正,gamma系数为2.6

我们在解码该视频后,需要进行空间转换转换到普通放映设备所需要的RGB色彩空间。

转换分4步完成:

1)将XYZ 转换到 XYZ Linear线性空间 即做一次幂运算 XYZLinear = pow(XYZ, 2.6)

2)将XYZLinear空间转换到RGBLinear空间,转换矩阵为

const float XYZ_to_RGB_Coeff_sRGB_D65[16] =
{
     3.2404542f, -1.5371385f, -0.4985314f, 0.0000000f,
    -0.9692660f,  1.8760108f,  0.0415560f, 0.0000000f,
     0.0556434f, -0.2040259f,  1.0572252f, 0.0000000f,
     0.0000000f,  0.0000000f,  0.0000000f, 1.0000000f
};

3)转换后的结果要做截取,取值范围不能超过如8bit为[0,255],浮点则为[0.0F, 1.0F]

4)将RGBLinear空间转换到BT709空间,即增加2.22gamma,RGB709 = pow(rgblinear, 1/2.22)

我们知道我们的电影显示遵循BT.601,BT.709,BT.2020等标准,当前通常情况下为709标准

由于色域标准太多,我们对其转换处理要特别小心,否则转换系数或转换流程错误,会导致错误的颜色显示。

 

你可能感兴趣的:(XYZ,RGB,BT.709)