【问题标题】:RGB to YUV using GLSL [closed]使用 GLSL 将 RGB 转为 YUV [关闭]
【发布时间】:2013-08-16 01:42:02
【问题描述】:

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

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

你能告诉我可以在 UBuntu box 上编译和运行的代码吗?

【问题讨论】:

    标签: opengl glsl rgb yuv color-space


    【解决方案1】:

    为了将来参考,可以在Gstreamer gst-plugins-gl codebase 中找到一堆 GLSL 着色器中的色彩空间转换:)

    【讨论】:

    • 这是一个死链接。
    【解决方案2】:

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

    我已经写了一个类似于您正在寻找的答案here。它从 RGB 转换为 YIQ,对色调进行一些转换并转换回来。如果需要,您可以使用 Y'CbCr 矩阵而不是 YIQ 进行颜色转换。

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

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

    【讨论】:

      【解决方案3】:

      此链接使用计算着色器 GLSL 实现了 YUV 4:2:2 v210 到 RGB 的实现。 YUV 4:2:2 v210 --> RGB GLSL source code

      【讨论】:

        猜你喜欢
        • 2012-02-22
        • 1970-01-01
        • 2019-09-19
        • 2013-06-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-05-20
        相关资源
        最近更新 更多