小米开放平台相机各场景下3A操作适配说明

在预览时AF可以由App控制触发对焦,也可以底层自动对焦,推荐使用底层自动对焦。

小米开放平台相机各场景下3A操作适配说明

1.Preview

在预览时AF可以由App控制触发对焦,也可以底层自动对焦,推荐使用底层自动对焦。

1.1.App手动对焦设置

  • CONTROL_AF_MODE_AUTO并不是AF自动模式,根据Google定义,是由App进行手动触发。App控制触发对焦逻辑是设置AF为Auto,然后App主动触发对焦。
  • App使用CONTROL_AF_TRIGGER触发对焦。CONTROL_AF_TRIGGER使用建议,CANCEL – START – IDLE;App何时触发对焦由App决定,比方App检测到加速度计和陀螺仪变化达到一定的阈值或者app为扫码软件,检测扫码一直无法解析扫码结果等(因为出现这种场景时物距发生了变化或者焦点模糊),具体场景具体调整。对于扫码等APP还可以设置AF测量区域,CONTROL_AF_REGIONS,尽量使用中心区域作为对焦点。

1.2.AF自动对焦设置

可以先检测AF有效模式,如果支持CONTINUOUS_PICTURE,设置即可,具体如下:

mCharacteristics.get(CameraCharacteristics.CONTROL_AF_AVAILABLE_MODES),CaptureRequest.CONTROL_AF_MODE_CONTINUOUS_PICTURE))。

CONTROL_AF_MODE设置为CONTROL_AF_MODE_CONTINUOUS_PICTURE。

2.Video

  • 可以先检测AF有效模式,如果支持CONTINUOUS_VIDEO,设置即可,具体如下:
mCharacteristics.get(CameraCharacteristics.CONTROL_AF_AVAILABLE_MODES),CaptureRequest.CONTROL_AF_MODE_CONTINUOUS_VIDEO))。

CONTROL_AF_MODE设置为CONTROL_AF_MODE_CONTINUOUS_VIDEO。

  • 注释

CONTROL_AF_MODE_CONTINUOUS_PICTURE和CONTROL_AF_MODE_CONTINUOUS_VIDEO的区别是前者在AF时会快速收敛,后者在AF时慢速收敛,因为录制视频时为了防止图像抖动,收敛过程需要慢一点,共同点是二者都为自动对焦。

3.Touch

Touch是为了在预览时对特定的区域进行3A权重提高,以便于得到预期的图像。当touch预览窗口某区域时,通用的操作流程是设置CONTROL_AF_REGIONS,CONTROL_AF_TRIGGER的流程还是CANCEL – START – IDLE。

4.Flash

Flash的实用场景通常在Touch,拍照和录像情况下使用,flash有两种操作模式,手动模式和自动模式,具体操作如下:

4.1.手动模式,即Torch模式

当需要打开flash时,设置CONTROL_AF_MODE为OFF/AUTO模式,同时设置FLASH_MODE为torch即可。

4.2.自动模式

自动模式是flash交给底层AE算法控制,具体如下两种常用模式:

ON_AUTO_FLASH:设置AF_Mode为此模式表示flash由AE根据当前亮度进行打开,关闭。

ON_ALWAYS_FLASH:设置AF_Mode为此模式表示flash每次操作都会打开。

5.拍照

拍照操作流程通常为触发3A,等待3A收敛,获取到3A收敛结果,进行拍照请求。

5.1.触发3A操作

CONTROL_AE_MODE根据是否需要闪光灯设置为ON_AUTO_FLASH,ON_ALWAYS_FLASH,ON。

CONTROL_AE_PRECAPTURE_TRIGGER设置建议 CANCEL-START-IDLE。

CONTROL_AF_MODE设置为AUTO,CONTINUOUS_VIDEO都可以。

CONTROL_AF_TRIGGER设置建议CANCEL-START-IDLE。

5.2.等待3A状态收敛

根据CaptureResult的metadata获取3A状态,如果3A都收敛了即可请求拍照

result.get(CaptureResult.CONTROL_AF_STATE);   //AF_State

result.get(CaptureResult.CONTROL_AE_STATE);   //AE_State

result.get(CaptureResult.CONTROL_AWB_STATE); //AEB_State 

5.3进行拍照请求

CONTROL_AE_MODE根据是否需要闪光灯设置为ON_AUTO_FLASH,ON_ALWAYS_FLASH,ON。

CONTROL_AF_MODE设置为AUTO,CONTINUOUS_VIDEO都可以。

最终下发拍照请求:

mCaptureSession.capture(request, mCaptureCallback, mBackgroundHandler); 

6.参考

https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics
https://developer.android.com/reference/android/hardware/camera2/CaptureRequest
https://github.com/googlearchive/android-Camera2Raw

编辑:yimen,如若转载,请注明出处:https://www.yimenapp.com/kb-yimen/12506/

部分内容来自网络投稿,如有侵权联系立删

(0)
上一篇 2022年11月24日 下午1:50
下一篇 2022年11月24日 下午1:53

相关推荐