MetalPetal基于 Metal 的图像处理框架
MetalPetal 是一个基于 Metal 的图像处理框架,旨在通过易于使用的编程接口为静态图像和视频提供实时处理。
MetalPetal 的设计考虑了以下目标。
-
易于使用的 API
提供方便的 API 并避免常见的陷阱。
-
表现
高效使用 CPU、GPU 和内存。
-
可扩展性
易于创建自定义过滤器以及插入自定义图像处理单元。
-
迅捷
为 Swift 程序员提供流畅的体验。
MetalPetal 的一些核心概念与 Apple 的 Core Image 框架中的非常相似。
MetalPetal 还做了很多优化。它会自动缓存函数、内核状态、采样器状态等。
它利用 Metal 特性,如可编程混合、无记忆渲染目标、资源堆和金属性能着色器,使渲染快速高效。在 macOS 上,MetalPetal 还可以利用 Apple 芯片的 TBDR 架构。
在渲染之前,MetalPetal 可以查看你的图像渲染图并找出进行渲染所需的最少中间纹理数量,从而节省内存、能源和时间。
如果可以连接多个“recipes”以消除冗余渲染通道,它还可以重新组织图像渲染图。( MTIContext.isRenderGraphOptimizationEnabled
)
优于 Core Image
-
完全可定制的 vertex 和 fragment functions
-
MRT(Multiple Render Targets)支持
-
一般性能更好。(需要详细的基准数据)
评论