iPhone AVCapture:访问 CVPixelBuffer 很慢
我一直在使用 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论