1.8 积分时间 (integration time)
用户在使用camera拍摄时需要根据场景特点决定所采用的曝光时间(exposure time),或者让camera 在设定范围内自动选择最合适的曝光时间,这时所涉及的曝光时间概念主要与拍摄场景有关,一般是以毫秒为单位计算的绝对时间,也是用户比较熟悉和容易理解的概念。
而sensor 中用来控制曝光长短的寄存器参数称为积分时间,一般是以行为单位的,这个概念是源于sensor 的技术特性,一般不需要用户去理解。
曝光时间和积分时间存在确定的换算关系。比如说int_t=159,指的是sensor reset 信号和read 信号之间的间隔为159行,而每行所占的绝对时间(line_time)与sensor 主频(pixel clock, PCLK)的和每一行包含多少像素(行长 )有关,具体公式是:
line_time=h_size / pclk
其中h_size 为行长,以PCLK 数为单位,1/pclk 为一个时钟周期,即扫描一个像素需要花费的绝对时间
因此曝光时间与积分时间的换算公式如下:
exposure time = int_t * line_time
举例来说,假设一个1080p sensor PCLK=76MHz,每行配置成2000个PCLK(由有效像素和blanking组成),则有
line_time = 2000 / 76MHz = 26.32 us
如果某个场景需要10ms曝光时间,则sensor 积分时间应如下计算,
int_t = 10000us / 26.32us = 379.9 (行)
显然这个例子可以安全地将sensor 寄存器配置为380行,就能得到10ms的曝光时间。
但是当 int_t < 2 时问题就会变得有些复杂。假设计算出的理想积分时间是1.5行,此时自动曝光算法就很容易产生振荡,不停在1行和2行之间切换而无法稳定在一个固定值。因此有些sensor 会支持分数行,可以帮助解决这个问题。
1.9 工频闪烁 (flicker)
工频闪烁,通常发生在室内场景,曝光时间设置如果不是光源能量周期的整数倍,则图像不同位置处积累的信号强度不同,并呈周期性变化,这是单帧图像的情况。在视频序列上,如果满足一定条件,视频会出现条纹模式在垂直方向上缓慢移动。
(a) flicker (b) no flicker
工频闪烁的形成原因与CMOS sensor rolling shutter的工作原理相关,并且受交流电的频率影响。对于同样的积分时间t,sensor不同位置处的像点开始积分时所处电信号的相位不同,所以同样时间t 内能够积累的光子数也不同。如下图所示。
flicker 的本质是像素曝光起始点相对交流电的相位关系在不断变化。这个问题不仅存在于一帧图像内部,在帧与帧之间也存在同样的问题。
以电频率50Hz为例,如果sensor 工作在25或50fps(frame per second),则帧频率刚好与电频率同步,每帧图像的flicker 表现(明暗位置)与上一帧完全相同,所以明暗条纹在视频上是静止不动的。如果sensor工作在30或60fps,则每帧的flicker与上一帧会产生固定的相移,视频上的明暗条纹图样会在画面垂直方向上缓慢移动。
在室内,为了避免工频闪烁,曝光时间应设置为光源能量周期的整数倍。在中国,光源能量周期为10ms(交流电周期的1/2),在美国则为8.3ms,调整曝光时间时要特别注意这一点。
1.10 与CCD的对比
CCD技术的发展起源于1960年代,在2000年以前曾是image sensor 的主流解决方案,下图对比了CCD和CMOS读出方式的主要区别。
如图所示,CCD 器件通常只有一个电荷-电压转换器(Charge-Voltage Converter),当sensor读出像素数据时,每一行像素中积累的电荷需要在行电压的控制下一步步“蠕动”到下一行,直到最终抵达阵列所属的行缓冲(row buffer),然后开始在列电压的控制下继续一步步“蠕动”到阵列出口处的电荷-电压转换器,完成读出过程。
CCD的一个主要优点在于所有像素共享同一个电荷-电压转换器,所以像素一致性非常好。相比之下CMOS每个像素都有自己专用的电荷-电压转换器,一致性很不容易控制。
当CCD像素数多于200万时,所有像素共用一个电荷-电压转换器会严重影响读出速度,所以此时会考虑把像素设计成两个或四个阵列,每个阵列配备专用的行缓冲和电荷-电压转换器,可以成倍加快读出速度。
写到此处笔者回忆起一个沉痛的往事。笔者一好友曾试图对接某国产高端sensor,由于自己研发实力有限,便求助于北京的朋友空闲之余帮忙做做,结果不出意料地半年没什么结果。朋友有点着急了,付了50万研发费委托深圳本地的公司帮忙开发,该公司的主要业务是设计生产国产FPGA,接单的主要动力是推广自家的FPGA。sensor出图到是比较顺利,但是朋友很快发现国产FPGA 体积大功耗高,无法满足量产需求,于是朋友要求承接方提供源代码以迁移到X家FPGA,不料承接方以合同金额不包括源代码为由拒绝提供,于是50万瞬间沉没。万般无奈朋友只好雇人自己开发FPGA,如是就遇到了sensor四个阵列输出不同步的问题,厂家也讲不清楚四个阵列的输出时序到底该如何预测,好像是sensor想输出谁就输出谁,什么时候高兴什么时候输出。这就给FPGA设计增添了巨大的难度,朋友雇的年轻人无法应对如此巨大的技术挑战,坚持半年后离职,项目最终流产。
免责声明:文章内容来自互联网,本站不对其真实性负责,也不承担任何法律责任,如有侵权等情况,请与本站联系删除。
转载请注明出处:Understanding CMOS Image Sensor(一) https://www.yhzz.com.cn/a/10270.html