Rec 2020,Rec 601和Rec DCI-P3 YUV到RGB矩阵

时间:2018-08-07 02:44:46

标签: c++ shader formula color-space

我正在寻找将YUV Rec2020,Rec 601和Rec DCI-P3转换为rgb的矩阵(或转换公式)。 例如对于Rec。 709,我有:

// HDTV  YCbCr coefficients
_shader->setUniform( "Koff", 0.0f, -0.5f, -0.5f );
_shader->setUniform( "Kr", 1.0f, 0.0f, 1.28033f );
_shader->setUniform( "Kg", 1.0f, -0.21482f, -0.38059f );
_shader->setUniform( "Kb", 1.0f, 2.12798f, 0.0f );

并在着色器中:

  vec2 tc = gl_TexCoord[0].st;
  pre.r = texture2D(YImage, tc.st).r;  // Y
  pre.g = texture2D(UImage, tc.st).r;  // U
  pre.b = texture2D(VImage, tc.st).r;  // V

  if ( coeffs )
  {
    pre += Koff;

    c.r = dot(Kr, pre);
    c.g = dot(Kg, pre);
    c.b = dot(Kb, pre);
  }

0 个答案:

没有答案