iPhone 上更快、更高效的 JPEG 转换和压缩

发布于 2024-09-27 14:11:44 字数 480 浏览 3 评论 0原文

我使用 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 CVImageBufferRefs into UIImages 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

心凉 2024-10-04 14:11:44

关注的是应用程序的响应能力,还是所需的实际压缩时间?将 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?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文