BT709
scene_referred=true:
if (x < 4.5f * REC709_BETA)
x = x / 4.5f;
else
x = powf((x + (REC709_ALPHA - 1.0f)) / REC709_ALPHA, 1.0f / 0.45f);
return x;
scene_referred=false: 2.4
iec61966-2-1 (SRGB)
if (x < 12.92f * SRGB_BETA)
x = x / 12.92f;
else
x = powf((x + (SRGB_ALPHA - 1.0f)) / SRGB_ALPHA, 2.4f);
return x;
iec61966-2-4 (xvycc)
scene_referred=true:
if (x < 4.5f * REC709_BETA)
x = x / 4.5f;
else
x = powf((x + (REC709_ALPHA - 1.0f)) / REC709_ALPHA, 1.0f / 0.45f);
return x;
}
scene_referred=false:
if (x < 0.0f || x > 1.0f)
return copysign(rec_709_inverse_oetf(std::fabs(x)), x);//1/0.45
else
return copysign(rec_1886_eotf(std::fabs(x)), x);//2.4
网友评论