iPhone 上更快、更高效的 JPEG 转换和压缩
我使用 192 x 144 分辨率和 420v BGRA 格式,以 25fps 的速率从 iPhone 相机抓取帧图像。
我将 CVImageBufferRef 转换为 UIImage,然后调用 UIImageJPEGRepresenation(image, compressionQuality) 来获取图像的压缩 JPEG 版本。
使用 Instruments 中的时间分析器,我可以看到 75% 的 CPU 时间都花在获取图像的 JPEG 表示上,导致我需要在应用程序中完成的其他操作变慢。
它有一点波动,如果我将压缩设置为 1.0(即不压缩),则花费较少的时间;如果将其设置为 0.0(即完全压缩),则花费更多的时间。
有没有更有效的方法从 iPhone 相机获取图像的 JPEG 表示形式?
我可以在不将 CVImageBufferRef 转换为 UIImage 的情况下获得 JPEG 表示(从而省去相当昂贵的 Core Graphics 绘图操作)吗?
I'm grabbing frame images from the iPhone's camera at a rate of 25fps using a resolution of 192 x 144 and a 420v, BGRA format.
I'm converting the CVImageBufferRef
s into UIImage
s and then calling UIImageJPEGRepresenation(image, compressionQuality)
to get a compressed JPEG version of the image.
Using the Time Profiler in Instruments, I can see that 75% of my CPU time is spent getting the JPEG representation of the image, causing slow down with the other operations I need to accomplish in the app.
It fluctuates a little, spending less time if I set the compression to 1.0 (i.e., no compression) and spending more if I set it to 0.0 (i.e. full compression).
Is there a more efficient way to get a JPEG representation of an image from the iPhone's camera?
Can I get a JPEG representation without converting the CVImageBufferRef
to a UIImage
(and therefore cutting out a rather expensive Core Graphics drawing operation)?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
关注的是应用程序的响应能力,还是所需的实际压缩时间?将 JPEG 代码包装在一个块中并将其放入后台队列怎么样?
Is the concern the responsiveness of the application, or the actual compression time required? What about wrapping the JPEG code in a block and putting it on a background queue?