0

我在互联网上找到了一些信息,如果 Core-Image 的任何尺寸大于 2048(宽度或高度或两者),则 Core-Image 在 CPU 上处理图像。它看起来是真的,因为即使在 3200x2000 图像上应用 CIFilter 也非常慢。如果我在 2000x2000 图像上做同样的事情,它会快得多。是否可以告诉 Core-Image 始终处理 GPU 上的所有图像?或者我发现的信息不正确?

4

2 回答 2

1

GPU 上的处理并不总是更快,因为您的图像数据首先必须加载到 GPU 内存,进行处理,然后再传回。

您可以使用kCIContextUseSoftwareRenderer强制软件渲染(在 CPU 上),但恐怕没有常量可以强制在 GPU 上渲染。此外,软件渲染在模拟器中不起作用。

于 2012-09-28T14:26:39.540 回答
0

最大尺寸取决于您正在使用的设备。对于 iPhone 3GS/4 和 iPad 1,它是 2048*2048。对于后来的 iPhone/iPad,它是 4096*4096。在 OSX 上,这取决于您的显卡和/或操作系统版本(2、4、8 或 16K²)。

绕过限制的一种可能方法是将图像平铺成低于限制的部分,并分别处理每个平铺。然后你必须在之后将这些部分重新组合在一起。

于 2014-05-05T01:04:06.893 回答