Getting 16bit RGBA data from ProRAW by using CIRAWFilter is quite slow in iOS 17

guard let rawfilter = CoreImage.CIRAWFilter(imageData: data, identifierHint: nil) else { return }
guard let ciImage = rawfilter.outputImage else { return }
let width = Int(ciImage.extent.width)
let height = Int(ciImage.extent.height)
let rect = CGRect(x: 0, y: 0, width: width, height: height)
                                
let context = CIContext()
guard let cgImage = context.createCGImage(ciImage, from: rect, format: .RGBA16, colorSpace: CGColorSpaceCreateDeviceRGB()) else { return }
print("cgImage prepared")
                                
guard let dataProvider = cgImage.dataProvider else { return }
let rgbaData = CFDataCreateMutableCopy(kCFAllocatorDefault, 0, dataProvider.data)

In iOS 16 this process is much faster than the same process in iOS 17

Is there a method to boost up the decoding speed?

Replies

I have a similar issue after upgrading to MacOS 14 and iOS 17 SDK. This simple command to access data "cgImage.dataProvider?.data" is much slower when accessing pixel 16 bits. It's roughly 10X slower than 8 bits data. It used to be really similar on previous SDK.