在iPhone上使用OpenGL ES卷积图像:可能吗?

iphone performance opengl-es computer-vision

3343 观看

1回复

1881 作者的声誉

我用谷歌搜索过几次,但我没有得到一个正确的答案。我有一个矩阵,我想用离散滤波器(例如用于边缘检测的Sobel算子)进行卷积。是否有可能在iPhone上使用OpenGL ES加速实现这一目标?

如果是,怎么样?如果不是,是否还有其他高性能技巧可以用来加速操作?精灵ARM装配操作可以快速完成吗?最终,我希望在iPhone的ARM处理器上尽可能快地进行卷积。

作者: gonzojive 的来源 发布者: 2010 年 11 月 24 日

回应 (1)


14

162458 作者的声誉

决定

您应该能够使用OpenGL ES 2.0下的可编程着色器执行此操作。我在iTunes U上的课堂视频中更详细地描述了OpenGL ES 2.0着色器。

虽然我没有做过图像卷积我自己,我描述了适用于Mac和iOS的一些GPU加速图像处理在这里。我提供了一个示例应用程序,它使用GLSL着色器(基于Apple开发的Core Image过滤器),从iPhone的相机源进行实时颜色跟踪。

自从我写这篇文章以来,我基于上面的例子创建了一个开源框架,该框架具有内置的图像卷积滤波器,范围从Sobel边缘检测到自定义3x3卷积内核。这些可以比CPU绑定的实现快100倍。

但是,如果您要在CPU上执行此操作,则可以使用Accelerate框架在iPhone的NEON SIMD单元上运行某些操作。特别是,FFT操作(通常是图像卷积滤波器中的关键组件,或者我听说过)通过使用Apple提供的例程可以获得~4-5倍的加速。

作者: Brad Larson 发布者: 25.11.2010 02:15
32x32