xSo*_*oDx 9 android gpgpu image-processing
我需要为Android构建图像处理应用程序。性能是主要要求,我正在寻求使用GPU计算。我想知道3种库中哪一种最适合使用。
我知道OpenGL主要用于图形,但也支持计算机着色器。
我不确定Android上对OpenCL的支持程度如何
RenderScript缺少文档,我认为它比其他库慢。
对于图像处理应用程序,最繁重的部分是处理(转换/操作)内存中图像的像素,而不是将图像渲染到屏幕/缓冲区。
当然,这种处理是通用的,需要通用的计算 API。
因此,我们可以消除 OpenGL ES。它支持着色器,但OpenGL ES着色语言非常有限,绝对不适合一般处理。
RenderScript,根据此:
RenderScript 不使用任何 GPU 或 DSP 内核。这是谷歌故意模糊的文档所助长的一种常见误解。RenderScript 曾经有一个 OpenGL ES 接口,但已被弃用,并且从未用于动画壁纸之外的其他用途。RenderScript 将使用多个 CPU 核心(如果可用),但我怀疑 RenderScript 将被 OpenCL 取代。
我在一家大型视频游戏公司工作,我们没有任何使用 RenderScript 的计划。我们认为 Vulkan 是更好的选择。我建议你也选择Vulkan,但问题是现在支持Vulkan的Android设备数量非常少。
因此,要回答您的问题,请使用 OpenCL。尽管 OpenCL 不是 Android 平台的一部分,但许多制造商提供驱动程序甚至 SDK 来支持 Android 上的 OpenCL。至少在支持的设备数量上比Vulkan要好。