如何使用GPU将RGB帧转换为YUV?

时间:2013-08-12 22:08:58

标签: android opengl-es glsl rgb yuv

我正在寻找h / w加速方式将RGB帧转换为YUV(比如YUV420)在android中。 我确实看到Renderscript为YUV到RGB转换做了这样的操作。我正在寻找RGB到YUV。

对于带有SGX530 GPU核心的Cortex-A8的嵌入式系统(基于Android 4.0.3),我需要这个。我喜欢在一个720p ARGB帧上执行此操作,该帧不断变换为每秒10帧。在ARM A8内核上执行此操作是不可接受的。这就是为什么我正在寻找一种使用GPU计算的方法。 我想象Renderscript或基于OpenGL的实现可以解决这个问题。但是不知道如何。

此处的博文http://www.mdk.org.pl/2007/11/17/gl-colorspace-conversions提供了使用GStreamer和OpenGL进行RGB到YUV转换的示例。
我正在寻找适用于Android的东西。

编辑: 链接http://slouken.blogspot.com/2011/02/mpeg-acceleration-with-glsl.html有很好的指针。还在研究。

1 个答案:

答案 0 :(得分:1)

使用GPU真的有必要吗? Cortex-A8具有NEON支持,可以像GPU一样快速地转换帧。有一个非常好的c库来处理CPU h / w加速:http://code.google.com/p/libyuv/