cmos sensor的曝光方式是按行进行的,而在日关灯下,日光灯是交流电下工作。在每一刻输出的能量并不相同。从而导致可能导致曝光接受的能量不同产生了flicker。
如下图所示,AC表示交流电,(我国为50Hz)。Light表示工作电压,Exposure表示理想曝光情况。在Exposure上的方框是实际设置的曝光。不同的宽度表示曝光的行数(基本上以行数为单位加上一些固定开销),而Exposure与方框的交线表示实际Pixels获取的能量。所以但左边两个大小设置不是理想曝光的倍数的时候由于曝光起始行的关系导致flicker。右侧俩个方框则不会出现该情况。从而避免flicker的产生。
所以自动曝光时间设定最好是n/100或者n/120(针对60HZ)。
下面来计算下曝光时间设定。
去除50Hz工频干扰:
One Line Exposure time = (1/ PCLK)*(OneLinePixelNumber + DummyPixelNumber)
Exposure Line = (1/100)/(One Line Exposure time)
去除60Hz工频干扰:
One Line Exposure time = (1/ PCLK)*(OneLinePixelNumber + DummyPixelNumber)
Exposure Line = (1/120)/(One Line Exposure time)
Camera寄存器中主要调整的就是Exposure Line的值,按整数倍设定可以去除曝光。这个是理论上算出的值。可以按实际中Camera输出图像的情况略有偏差,如果偏差过大就要考虑哪里算错了。
H3A
H3A模块是通过收集图像数据输出统计信息用于自动对焦,自动曝光,以及自动白平衡。主要分为:
Auto focus engine(AF)
Auto exposure and auto white balance engine(AE/AWB)
AF engine 主要通过图像数据提取red,green,bule信息,并提供累加值和峰值信息。指定的区域由“Paxel”组成。
AE/AWB engine 在抽样区间统计累加值预计饱和值。类似AF中的“Paxel”。“window”则是一个二维采样的累加区域。AE/AWB engine 将单帧的图像数据分成几个“window”。在“window”中进一步分成2*2的blocks。若2*2block均大于或者等于阈值,那么该block不会统计为未饱和。而所有大于阈值的像素会用阈值代替像素值再进行累加。
window0 data
Sub Sample Accum[1]
Sub Sample Accum[0]
Sub Sample Accum[3]
Sub Sample Accum[2]
Saturator Accum[1]
Saturator Accum[0]
Saturator Accum[3]
Saturator Accum[2]
具体需要阅读 H3A NDA手册获取。上述的统计值对应位置,并不对应颜 {MOD}。 关于手册获取的TI解答