iOS CGImageRef像素着色器

时间:2012-04-04 00:07:07

标签: image-processing opengl-es shader quartz-2d cgimage

我正在开发iOS的图像处理应用程序,我的应用程序的各个阶段之一是基于矢量的图像分色/颜色检测。

现在,我已经编写了代码,每个像素可以确定分色的颜色,但是我认为,如果使用iOS,处理器中的每个像素都会非常困难。因此,我想知道是否可以使用图形处理器;

我想创建一种“像素着色器”,它使用OpenGL-ES或其他一些渲染技术来快速处理和分色图像。我不知道从哪里开始(我为Unity3D编写了简单的着色器,但从未为它们完成底层编程)。

有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:2)

我打算走到这边,建议你试试Brad Larson的GPUImage framework,它将自己描述为“一个获得BSD许可的iOS库,可让你将GPU加速滤镜和其他效果应用于图像,现场摄像机视频和电影“。我没有使用它,并假设你需要做一些GL读取来添加你自己的过滤,但它将处理这么多的样板文件并提供了许多预先打包的过滤器,它绝对值得研究。这听起来并不像你对OpenGL特别感兴趣,所以没有理由去研究它。

我将添加唯一的考虑因素,在iOS 4下我发现在CPU上工作(使用GCD在核心之间分配)通常比在GPU上需要能够读取结果的GPU更快。结束任何类型的串行访问。这是因为OpenGL的设计通常是为了上传一个图像然后将其转换成它想要的任何格式,如果你想将它读回来,那么它会将它转换回你期望接收它的一种格式并将其复制到你想要它。那么你在GPU上节省了多少钱,因为GL驱动程序必须分流和重新安排内存。从iOS 5开始,Apple推出了一种特殊的机制,可以有效地为您提供对OpenGL纹理存储的直接CPU访问,因此可能不再受到关注。

相关问题