iPhone AVCapture:访问 CVPixelBuffer 很慢

发布于 2024-11-08 06:29:35 字数 285 浏览 0 评论 0原文

我一直在使用 CoreGraphics 在像素缓冲区周围创建位图上下文,并使用 CGBitmapContextCreateImage 提取图像,然后使用 CGContextDrawImage 在另一个(灰度)缓冲区中绘制该图像。
分析显示 CGContextDrawImage 需要花费大量时间,因此我认为可以通过直接访问原始 CVPixelBuffer 来避免它。但事实证明这要慢得多!

我猜想该缓冲区位于某些特殊的内存区域,由于某种原因访问速度很慢。

那么,将这些像素放入我可以快速处理的地方的最快方法是什么?

I've been using CoreGraphics to create a bitmap context around the pixel buffer and extract an image using CGBitmapContextCreateImage, then using CGContextDrawImage to draw that image in another (grayscale) buffer.
Profiling shows that CGContextDrawImage takes a lot of time, so I thought I would avoid it by accessing the original CVPixelBuffer directly. But it turns out that that's much slower!

I guess that buffer lies in some special memory area that is slow to access for some reason.

What's the fastest way to get those pixels into a place where I can process them quickly, then?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

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

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文