Camera2 APP Flash 打闪流程及原理分析

Camera Flash打闪流程梳理
Flash打闪的条件有两个一个是AE_Mode 一个是Flash Mode两个参数决定Flash打闪的过程。
Flash mode有四个状态 AUTO OFF ON TORCH
1 AUTO 模式是在AE状态满足RequireFlash 状态时,在Capture请求过程中会进行打闪。Flash Mode 为Flash_Mode_SINGLE
,对应的AE_MODE为ON_AUTO_Flash
2 ON 状态时拍照时就会打闪,需要才Capture请求中代码Flash Mode参数,Flash Mode 为Flash_Mode SINGLE 对应下发的AE_Mode为ALWALWS_Flash
3 OFF为关闭闪光灯状态,capture请求时不做打闪.Flash Mode 为Flash_Mode OFF,对应的AE状态为MODE_ON 即可。
4 TORCH 状态的Flash_Mode 为Mode_TORCH.

Flash 需要打闪的流程
预拍照(预闪)-AF 收敛-Capture请求 这应一个过程
预拍照参数说明:需要下AE_TRIGGER 参数,参数value 为Start。Flash参数,不同的Flash 条件对应上面4个模式。
1预拍照结束的判定条件为AE状态返回PEPCAPTURE状态,当该状态返回即AETRIGGER结束,预闪结束。该流程结束后才可进行下一次的Capture请求动作。
2 下一步的Capture请求动作可以做AF的TRIGGER,即AF的收敛过程,当AF状态达到完成的几种状态后即可,进行主拍照流程。该流程不做Flash_Mode 参数的下发。
3 主拍照过程需要再次下发FLASH_MODE,该参数下发后再Capture请求过程会进行主闪的打闪过程。
4 拍照结束后需要释放AE AF的状态,从而保证下次拍照AF AE状态正常。
释放过程还是通过Capture请求过程完成,主要设定AE/AF TRIGGER的状态为CANCEL状态,即可取消上一次的TRIGGER过程。
取消TRIGGER过程后就可以进行预览参数的回复,即做一次预览的请求。
5 预览请求过程只要保持之前的预览参数,AE/AFTRIGGER的状态置为IDLE就可完成整个Flash拍照流程。

启用闪光灯原理分析:
当lux_index 值超过wled_trigger_idx参数值时将使用LED闪光灯。会有2次闪光,第一次是预览(聚光)模式,第二次是拍摄(闪光)模式。
启用自动闪光后,聚光模式(少量LED电流)照射目标以计算完全闪光模式的AE和AF。在部分版本中wled trigger代替wled_trigger_index,有一对trigger start lux index 和led trigger end lux index.增大wled trigger index参数的值,可以在更暗的场景中触发LEd闪光灯,减少该值,可以在更亮的场景中触发LED闪光灯。
确定预闪光与主闪光的驱动电流,这些值均可从闪光灯驱动程序代码中获取。计算驱动电流比率为预闪光灯电流/主闪光灯电流。然后将确定的比率降低约30%作为Flux Hi的初始估算值。目前Android软件仅支持Flux Hi,Flux Med和Flux Low不要调试。保持AEC Preview Flux 始终为1。如果快照曝光过度,增大Flux Hi,如果曝光不足,减小Flux Hi。

  • 2
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值