exi*_*guy 4 performance hal android-ndk android-camera android-camera2
Android 最近宣布了原生Camera API ,根据他们的说法,它相当于 Java android.hardware.camera2类。我们什么时候应该考虑使用 NDK/C++ API?如果我们使用 C++ 代码,是否有任何性能改进——比如预处理帧?他们的原生 API 是否允许您插入可以作为 HAL3 管道一部分的代码,例如图像处理/计算机视觉代码?
为了简化实现,API 主要供没有太多 Java 组件的应用程序使用。
对于应用程序只是通过 JNI 将相机图像缓冲区传递到本机代码的用例,性能可能会稍好一些,但从 Java android.media.Image 对象访问直接 ByteBuffers 的开销不是很高。但是设置一堆 Java 代码来做到这一点可能很烦人;例如,OpenCV 可以直接在其 Android 相机包装器中使用 NDK,而不是 OpenCV 过去使用的私有(不保证稳定)本机接口。
它还可以用作其他本机系统组件的稳定接口,以获取相机数据,主要用于各种 OEM 扩展。
NDK API 对实际图像处理管道的控制并不比 Java 多。
主要的缺点是与 Java API 不同,NDK API 仅支持LIMITED或更好的相机设备;没有对 LEGACY 设备的兼容性支持。它还不支持重新处理,这不太常用于 NDK API 更有意义的连续处理应用程序类型。
| 归档时间: |
|
| 查看次数: |
4816 次 |
| 最近记录: |