Opengl 使用GLSL将RGB转换为YUV

Opengl 使用GLSL将RGB转换为YUV,opengl,glsl,rgb,yuv,color-space,Opengl,Glsl,Rgb,Yuv,Color Space,我正在寻找可以将RGB帧(例如像素格式为ARGB)转换为YUV(例如YUV420)的示例GLSL片段着色器代码。 想象一个大小为1920x1080的RGB帧。我喜欢使用片段着色器将其转换为YUV帧。 你能给我指一下可以在UBuntu box上编译和运行的代码吗?首先,你应该知道你的问题措词不当。没有人会为您编写示例代码。您可以使用搜索引擎(甚至搜索此站点)将代码从RGB转换为YUV 我已经写了一个和你想要的答案相似的答案。它从RGB转换为YIQ,对色调进行一些变换,然后再转换回来。如果需要,可

我正在寻找可以将RGB帧(例如像素格式为ARGB)转换为YUV(例如YUV420)的示例GLSL片段着色器代码。

想象一个大小为1920x1080的RGB帧。我喜欢使用片段着色器将其转换为YUV帧。


你能给我指一下可以在UBuntu box上编译和运行的代码吗?

首先,你应该知道你的问题措词不当。没有人会为您编写示例代码。您可以使用搜索引擎(甚至搜索此站点)将代码从RGB转换为YUV

我已经写了一个和你想要的答案相似的答案。它从RGB转换为YIQ,对色调进行一些变换,然后再转换回来。如果需要,可以使用Y'CbCr矩阵进行颜色转换,而不是YIQ

不过,它不会向下转换为4:2:0。不过,这应该很容易做到。一旦是Y'CbCr格式,您可以根据需要对适当的频道进行下采样。我建议首先在这些通道上进行低通滤波,以避免锯齿伪影


我不使用Linux,所以没有在Ubuntu上测试过。祝你好运。

为了将来的参考,可以在以下位置找到GLSL着色器中的一系列颜色空间转换:)

此链接有一个YUV 4:2:2 v210到RGB的实现,使用计算着色器GLSL

这是一个死链接。