iphone - 在 iPhone 上使用 OpenGL ES 卷积图像 : possible?

标签 iphone performance opengl-es computer-vision

我用谷歌搜索了几次,但没有得到直接的答案。我有一个矩阵,我想与离散滤波器(例如用于边缘检测的 Sobel 算子)进行卷积。是否可以在 iPhone 上使用 OpenGL ES 以加速方式完成此操作?

如果是的话,怎么样?如果不是,我可以使用其他高性能技巧来加速操作吗?神奇的 ARM 汇编操作可以快速完成吗?最终,我希望在 iPhone 的 ARM 处理器上尽可能快地执行卷积。

最佳答案

您应该能够在 OpenGL ES 2.0 下使用可编程着色器来完成此操作。我在 iTunes U 类(class)的视频中更详细地描述了 OpenGL ES 2.0 着色器。

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

自从我写这篇文章以来,我创建了一个 open source framework基于上面的示例,该示例具有内置图像卷积滤波器,范围从 Sobel 边缘检测到自定义 3x3 卷积核。它们的运行速度比受 CPU 限制的实现快 100 倍。

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

关于iphone - 在 iPhone 上使用 OpenGL ES 卷积图像 : possible?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4270737/

相关文章:

sql - Grails过滤器统计信息插入效果

objective-c - 如何通过渐变的 alpha 屏蔽 cocos2d 中的 Sprite ?

iphone - 存储大量数据和潜在的 App Store 提交问题

java - 为什么 Java 排序优于原语计数排序

iphone - RestKit:更改 RKObjectManager 的基本 URL

c++ - 我怎样才能改进/替换我认为是性能热点的 sprintf?

ios - 在 iOS 中渲染水彩画

java - 恢复 opengl 应用程序后 Android 6 上的屏幕伪像

javascript - 使用 JavaScript/jquery 复制 url 并粘贴到桌面、ios 和 android 上的剪贴板按钮

iphone - 只要按下按钮,应用程序就会崩溃