【发布时间】:2020-11-22 21:50:18
【问题描述】:
我需要对包含 RGB 像素数据的 Data 执行简单的数学运算。目前我这样做是这样的:
let imageMean: Float = 127.5
let imageStd: Float = 127.5
let rgbData: Data // Some data containing RGB pixels
let floats = (0..<rgbData.count).map {
(Float(rgbData[$0]) - imageMean) / imageStd
}
return Data(bytes: floats, count: floats.count * MemoryLayout<Float>.size)
这行得通,但是太慢了。我希望我可以使用Accelerate 框架更快地计算这个,但不知道如何做到这一点。我保留了一些空间,以便每次启动此函数时都不会分配它,如下所示:
inputBufferDataNormalized = malloc(width * height * 3) // 3 channels RGB
我尝试了一些功能,例如vDSP_vasm,但我无法使其工作。有人可以指导我如何使用它吗?基本上我需要更换这个地图功能,因为它需要的时间太长。并且可能一直使用预先分配的空间会很棒。
【问题讨论】:
标签: swift accelerate-framework