gpt4 book ai didi

ios - 使用 GPUImage 与 Core Image 与 UIImage 解压?

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:42:28 24 4
gpt4 key购买 nike

我们正在构建一个可处理大量图像的应用程序。我们对 Core Image、GPUImage 和 UIImage 以及它如何解压缩图像感兴趣。我们已经熟悉这样一个事实,即在后台线程上对图像进行解压缩将有助于消除 UI 滚动时的卡顿或抖动。然而,我们并不十分了解这种减压工作在哪里进行。我们还使用 UIImage 对图像进行了一些裁剪。那么问题来了:

背景:我们一直支持 iPhone 4 的所有设备,但很快可能会放弃 iPhone 4,转而使用 iPhone 4S 作为我们最古老的设备。

1) 图像的解压缩是在 GPU 上完成的吗? ... 核心形象? GPU图像? UIImage?

2) 可以在 GPU 上裁剪图像吗? ... 核心形象? GPU图像? UIImage?

3) 根据我们的设备配置文件,GPU 支持是否存在差异?

基本上,我们希望尽可能多地卸载 GPU 以释放设备上的 CPU。此外,我们希望在 GPU 上执行比在 CPU 上执行速度更快的任何操作。

最佳答案

回答你关于解压缩的问题:Core Image、GPUImage 和 UIImage 都使用几乎相同的方式从磁盘加载图像。对于 Core Image,您从 UIImage 开始,对于 GPUImage,您可以在 the GPUImagePicture source 中看到它目前依赖于通常通过 UIImage 获得的 CGImageRef。

UIImage 在 CPU 端进行图像解压缩,我研究过的其他用于提高 GPUImage 图像加载性能的库也是这样做的。 GPUImage 中图像加载的最大瓶颈是必须将图像加载到 UIImage 中,然后通过 Core Graphics 将其上传到纹理中。我正在寻找更直接的方法来获取像素数据,但迄今为止我尝试过的所有解压缩例程最终都比原生 UIImage 加载慢。

可以在 GPU 上裁剪图像,Core Image 和 GPUImage 都可以让您这样做。由于图像加载开销,这可能比通过 Core Graphics 裁剪快,也可能不快,因此您需要自己针对您关心的图像尺寸进行基准测试。更复杂的图像处理操作,如颜色调整等。generally end up being overall wins on the GPU for most image sizes on most devices .如果可以减少此图像加载开销,GPU 端处理将在更多情况下获胜。

就具有设备类别的 GPU 功能而言,不同的 iOS 设备之间存在显着的性能差异,但功能往往基本相同。片段着色器处理性能在 iPhone 4、4S、5 和 5S 设备之间可能存在数量级差异,对于某些操作,5S 比 4 快 1000 倍。A6 和 A7 设备有一些旧设备所没有的扩展,但这些只在非常特殊的情况下发挥作用。

最大的区别往往是 GPU 硬件支持的最大纹理大小,iPhone 4 和更早的设备限制为 2048x2048 纹理,而 iPhone 4S 和更高版本支持 4096x4096 纹理。这会限制可使用 GPUImage 等工具在 GPU 上处理的图像大小。

关于ios - 使用 GPUImage 与 Core Image 与 UIImage 解压?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25565790/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com