【发布时间】:2026-01-09 22:50:02
【问题描述】:
我正在尝试了解这些计算,以便在 OpenGL 片段着色器上将 YUV420P 转换为 RGB。在https://en.wikipedia.org/wiki/YUV 上有很多计算,但没有一个看起来像下面的那个。为什么要在第一部分使用0.0625 和0.5 和0.5?第二部分是从哪里来的?
yuv.r = texture(tex_y, TexCoord).r - 0.0625;
yuv.g = texture(tex_u, TexCoord).r - 0.5;
yuv.b = texture(tex_v, TexCoord).r - 0.5;
rgba.r = yuv.r + 1.596 * yuv.b
rgba.g = yuv.r - 0.813 * yuv.b - 0.391 * yuv.g;
rgba.b = yuv.r + 2.018 * yuv.g;
这可能是某些特定 YUV 配色方案的特殊颜色转换,但我在互联网上找不到任何东西。
【问题讨论】:
标签: image-processing opengl matrix video glsl