【问题标题】:How to convert RGB frame to YUV in android using GPU?如何使用GPU在android中将RGB帧转换为YUV?
【发布时间】:2013-08-12 22:08:58
【问题描述】:

我正在寻找在 android 中将 RGB 帧转换为 YUV(比如 YUV420)的硬件加速方法。 我确实看到 Renderscript 具有将 YUV 转换为 RGB 的特性。不过,我正在寻找 RGB 到 YUV。

我需要这个用于带有 SGX530 GPU 内核的 Cortex-A8 的嵌入式系统(基于 Android 4.0.3)。我喜欢在以每秒 10 帧的速度不断变化的 720p ARGB 帧上执行此操作。在 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 有很好的指示。还在研究中。

【问题讨论】:

标签: android opengl-es glsl rgb yuv


【解决方案1】:

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

【讨论】:

  • 这是一个很棒的链接。我会试一试。假设您有 900MHz ARM 处理器和一个 1080p 帧缓冲区,需要以每秒 10-15 帧的速度转换为 YUV,这个库的 cpu 负载是多少?谢谢
  • 我不知道 CPU 负载会是多少。找出答案的最简单方法是尝试一下。 1080p @ 15 fps 的有根据的猜测是大约 40 - 50% 的 CPU 负载,但实际值取决于您对帧的其他操作以及获取它们的方式。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多