拍照打闪光灯,图片出现亮度分层的原因分析
  lus35PxzcpZF 2023年12月11日 27 0


1、问题背景

上周有读者咨询了一个图像异常的问题。拍照打闪光灯,图片出现亮度分层,一半过曝一半偏暗,问题现象如下图所示,本文主要分析一下,出现此问题现象的原因。

拍照打闪光灯,图片出现亮度分层的原因分析_isp

2、问题分析

读者那边反馈说是限制了 sensor 的最小曝光行就好了,之前没按照最小的配。

a、那为什么会导致这个问题,为什么限制了最小曝光行图像就正常了呢?

对于逐行曝光的 sensor 来说,sensor 的曝光过程是从第一行开始,到最后一行结束,逐行进行曝光的。

而拍照打闪光灯时,如果闪光灯闪的时间太短了,小于了 sensor 曝光一帧完成的时间,那就会导致图片上曝光完成的部分是亮的,未曝光的部分则是暗的。

所以当限制了最小曝光行后,sensor 曝光一帧完成的时间就变短了,这时应该就小于打闪光灯闪的时间了,此时 sensor 在闪光灯闪的这个时间段内就可以完成一帧图像的曝光,所以出图就正常了。

b、如何避免这种问题呢?

若 sensor 驱动中,按照 datasheet 正确配置了最小曝光,但如果闪光灯的闪烁时间还是小于sensor 最小曝光行该怎么办?

这里我观察了我自己的iphone手机关于拍照打闪光灯的情况,是在暗环境下去拍照,这时拍照,闪光灯会闪两下,第一次是常亮1-2s的状态,第二次闪的就快很多,

所以第一次1-2s的常亮状态,这个时间段就可以计算出正确的3a信息,到第二次闪时,直接把保存的正确的3a信息写入就好了,所以这样就不会存在曝光没完成的情况了。

有咨询了之前做手机的同事,这种打闪的情况都是比较难做的,所以目前的状态大多都是在常亮状态下拍照,来保证获取正确的3a信息。

3、问题延申:关于逐行曝光 sensor 的工作原理

a. 可以理解一下如下三句话,他们其实表达的都是一个意思

1帧图像曝光时间是10ms

1帧图像用积分时间11行完成了10ms的曝光,这里假设1行的曝光时间是0.91ms

1帧图像曝光10ms,一帧内所有的像素都曝光了10ms

注:另外关于曝光行,曝光时间,积分时间的概念可以看这篇文章:CMOS Sensor 的一些基本概念,及曝光相关的计算

b. 曝光过程:

如下示意图所示,假设积分时间是11H(也可以说曝光时间是11行),第一行一直曝光11行后(也可以理解为曝光11次),开始读出第一行,后面依次是每行曝光11行后,接着开始读出,直至读出整帧图像。

拍照打闪光灯,图片出现亮度分层的原因分析_问题分析_02

注:如上动态图非原创,是公司大佬绘制,用来培训所用。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年12月11日 0

暂无评论

lus35PxzcpZF