2014-06-11 172 views
23

核心图像和GPUImage框架(除了GPUImage是开源的)之间的主要区别是什么?一目了然,它们的界面看起来非常相似......将一系列过滤器应用于输入以创建输出。我看到一些小的差异,例如GPUImage具有易于使用的LookupFilter。我正试图弄清楚为什么有人会选择一个照片过滤应用程序。核心图像和GPUImage之间的主要区别

+2

你读过关于GPUImage的自述文件的任何信息吗?这里全部概述。 –

+0

谢谢..假设导出已过滤的视频比核心图像还要快吗? –

+0

GPUImage不一定比Core Image快,反之亦然。有时候是,有时并非如此。你应该看看哪个框架最适合你的需求。 – lxt

回答

75

由于GPUImage的作者,你可能要采取什么样的我与盐粮说。我应该首先说我对Core Image团队以及他们如何继续更新框架有极大的尊重。在我写GPUImage之前,我是一名沉重的Core Image用户,我根据Core Image在Mac上的工作原理设计了许多设计元素。

两个框架在不断地发展,所以今天做了一个对比可能不是在几个月内如此。我可以指出当前的功能和基准,但是我们不能保证在我们任何一方更新时都不会翻转。

我的哲学与GPUImage是创造与周围着色渲染的OpenGL(ES)四边形一个轻量级的包装,并用简单的界面可以这样做。正如我前面所说的,我从Core Image的方面着手,但是​​我也改变了他们过去绊倒我的界面部分。我还扩展了一些内容,因为核心图像只处理图像处理,而我挂钩电影回放,相机输入,视频录制和图像捕获。

当我最初是围绕想法此踢,核心图片还没有来的iOS。当我发布它时,Core Image刚刚被添加到iOS。但是,当时iOS支持的筛选器数量为was fairly limited(例如,无模糊),而iOS上的Core Image不允许您创建自定义内核,就像它在Mac上所做的那样。

GPUImage提供的手段,做图像和视频在iOS上,其中核心映像未定制的GPU加速运算。大多数开始使用它的人都是这样做的,因为他们有一些效果,他们无法使用库存核心图像过滤器。

最初,GPUImage也是had significant performance advantages for many common operations。但是,Core Image团队已经在每个iOS版本中显着提高了处理速度,现在情况非常接近。对于某些操作,GPUImage速度更快,对于其他操作,Core Image更快。他们看起来雇用了一些pretty clever optimizations for things like blurs,我已经开始复制像我的GPUImageiOSBlurFilter这样的东西。他们还将智能化的多阶段操作结合在一起,我将过滤步骤视为分离和分离的项目。在iOS上的某些情况下,这给了我一个优势,我试图最近减少这种内存的后果,但他们比我更好地处理多种类型的滤波器链。

的iOS 8引入了核心形象定制的内核支持在iOS上,它一直有在Mac上。这使得在iOS上的Core Image中编写自己的自定义过滤器和其他操作成为可能,因此对于GPUImage而言,这将不再是一个优势。当然,任何想要定位旧iOS版本的人仍然会受到Core Image可以在那里做什么的限制,其中GPUImage的目标可以回溯到iOS 4.0。

核心图像在iOS应用程序在后台时能够进行过滤(首先是基于CPU,但是iOS 8现在增加了GPU端支持),但它具有一些整洁的功能,其中GPUImage的依赖在OpenGL ES上防止应用程序在后台运行。在iOS 8中可能会遇到这种限制,但我还没有完成所有文档。

我对GPUImage的兴趣来自机器视觉领域。图像过滤器是一个有趣的分心,但我想用这个框架来探索GPU加速图像分析的可能性。我正在研究任意对象识别和跟踪操作,这就是我将继续向框架发展的方向。但是,您有框架the code,所以您不必依靠我。

2

这是一个古老的线程,但我认为值得注意的是,GPUImage还具有一些Core Image中不存在的特性:特别是hough变换和多个边缘检测滤波器。

核心图像似乎全部都是关于应用过滤器和效果的 - 很高兴看到GPUImage在图像/视频分析方面有更多的探索,有点像openCV,但以更有效的方式。

相关问题