我尝试在 Accelerate 框架中使用 vImage 缓冲区进行一些直方图计算,并将相机图像作为从 CVpixelbuffer 转换而来的 UIimage 提供。算法正常工作,但屏幕上处理的相机图像数据非常慢。我在 Apple 文档中阅读了一些关于在任务完成时释放缓冲区的信息。抓取缓冲区数据后,我写了两行代码。然而,什么都没有改变。请参阅缓冲区数据释放后的附加屏幕截图。SourceBuffer 和 histogramSourceBuffer 似乎未释放。我不知道如何在调试器中看到空闲缓冲区,但我的缓冲区显示有高度、宽度和数据信息。任何建议如何释放缓冲区以及如何确保它被释放。非常感谢
if let finalImage = try? sourceBuffer.createCGImage(format: format) {
sourceBuffer.free()
histogramSourceBuffer.free()
return UIImage(cgImage: finalImage)