Camera flicker相信在一部分中低端机里可以看到的现象(拍灯最为明显)。
在了解Camera flicker前,先了解一些词汇。
快门:快门是照相机用来控制感光片有效曝光时间的机构。是照相机的一个重要组成部分,它的结构、形式及功能是衡量照相机档次的一个重要因素。
关于曝光,分为Global Shutter和Rolling Shutter。Global Shutter即整幅场景在同一时间曝光实现的,Sensor所有像素点同时收集光线,同时曝光。在曝光开始的时候,sensor开始收集光线;曝光结束时,光线收集电路被切断。Sensor值读出来即为一幅画面。
Rolling Shutter即通过逐行曝光的方式实现的。在曝光开始的时候,Sensor逐行扫描进行曝光,直至所有像素点均被曝光。同一帧画面不同行下,各行存在着很多像素点。行与行之间的像素的曝光时长是一致的。然而行与行之间的像素曝光的开始时间是不相同的。所以不同行在相同的曝光时长下,接受的能量也就不一定相同,进而形成了flicker。
以220V 50HZ的交流电信号为例,信号周期为20ms,然而功率周期为10ms,灯的亮度随着功率的变化而变化,即1秒钟灯会发生100次闪烁。因人眼对光强变化有一定的迟滞和适应性,所以无法观察到光源的亮度变化,但依然会增加人眼的疲劳程度。然而对于Camera Sensor而言,没有人眼的迟滞和适应过程,所以对光源亮度的变化是比较敏感的。
(图片来自网络)
上图为在工频的环境下,sensor 一帧内每一行曝光的亮度的变化。
分别有10ms、8ms、12ms三种曝光时长。
曝光是sensor的每一个像素的能量积累,这里使用面积表示,面积是由积分计算所得。可以看出只有当曝光时长为功率周期10ms时,前后的面积是稳定不变的,即所获得的能量始终不变,即最终表现的亮度始终如一。
所以为避免flicker,最好的即是让曝光时长为光能量周期的整数倍时间。