gpt4 book ai didi

android - 为什么 Android 的 ImageReader 类这么慢?

转载 作者:太空狗 更新时间:2023-10-29 14:39:25 25 4
gpt4 key购买 nike

我尝试了 OpenCV for Android 3.4.1 的全新 JavaCamera2View 但它太慢了(~15fps 仅显示相机 View )。当我尝试使用较旧的 JavaCameraView 时,它给了我很好的结果(~30fps,这是我相机的极限)。

我想知道为什么 Camera2 版本这么慢,并研究了实现。我注释掉了图像的所有处理和渲染(只是让相机绘制到内部 ImageReader 对象,然后使用 acquireLastImage() 方法读取它),它仍然是 15每秒帧数。但是,当我将目标表面从 ImageReader 对象更改为 View 本身的表面时,它突然给了我 30 fps。

那么问题来了,为什么 ImageReader 类这么慢?我的猜测是 ImageReader 正在使用 OpenGL 和 glReadPixels() 从 Surface 读取图像,这非常慢,因为它需要将图像从 GPU 内存传输到 CPU 内存(或者可能是等待 GPU 刷新?),但我不能确定,因为 ImageReader 所做的全部隐藏在 native 代码中。

或者 ImageReader 很好,OpenCV 是否遗漏了什么?

我使用的是 ASUS Zenfone 4 Max,Android 7.1.1。

最佳答案

我猜它与 LEGACY 相机 HAL 有某种关系。我最近也遇到了这个问题,实际上,如果您只使用 glReadPixel,您可以获得比 ImageReader 更好的帧速率。检查这个答案: https://stackoverflow.com/a/51083567/2606068

关于android - 为什么 Android 的 ImageReader 类这么慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51006362/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com