自动曝光实现

Auto exposure implementation

我正在使用 android Camera2 API 进行自定义 AE 实现。目前的想法是将图像的平均亮度保持在某个灰度级(例如 128)。所以算法可以描述为:

calculate currentEV (using current shutterSpeed, currentISO and aperture);
calculate meanBrightness (using image data);
calculate desiredEV (using currentEV, currentMeanBrightness and desiredMeanBrightness);
calculate desiredShutterSpeed and desiredISO (using desiredEV)

此迭代算法正在运行。但如果与内置的相比,它看起来相当缓慢和笨拙。 我在互联网上和 android 源代码中搜索了有关 Camera2 API 中的 3A 例程的信息,但找不到具体的内容。一些演示文稿提到了 3A 库。我想知道,它是所有 android 设备的开源和标准吗?或者我在哪里可以获得有关移动设备中自动曝光实现的信息?

不幸的是,自动曝光算法通常是严密保密的,我不知道 Android 包含开源自动曝光代码的相机 HAL 的任何实现。

内置的自动曝光还可以使用硬件生成的统计数据和对其运行的设备非常熟悉(算法通常针对每个设备进行定制,高端设备更是如此),这可以允许更短的反馈回路和更有效的操作。

由于这些 statistics/etc 因设备而异,因此当前没有 camera2 API 接口来接收它们。