戈志伟,姚素英,徐江涛,宿晓慧
(天津大学电子信息工程学院,天津 300072)
CMOS 图像传感器(CMOS image sensor,CIS)由于与标准的 CMOS制造工艺相兼容,具有高集成度、图像信息随机读取、低功耗和低成本等一系列优势,在许多应用领域正日益挑战传统的 CCD图像传感器[1].
在 CIS成像过程中,曝光对图像质量的影响很大,如果曝光过度,则会使图像过亮而使图像看似被漂白过,失去图像细节部分;而如果曝光不足,则会导致图像过暗,同样也会失去图像细节.而更严重的是曝光过度和曝光不足的图像在后续处理过程中都不能在色彩上恢复,因为这些像素的三基色值已经超过了CIS的最大动态范围,就不能再恢复到图像真正的三基色值[2].所以,可以毫不夸张地说所采用的自动曝光算法的优劣直接影响到整个 CIS系统的成像质量.
在CIS领域,自动曝光控制技术是用来调节CIS中像素单元的曝光时间和前端模拟电路中数字可编程增益放大器的增益,使图像亮度达到目标亮度值范围内,以符合用户的需求.目前绝大多数的 CIS采用渐进式自动曝光,曝光过程比较缓慢[1].近年来 CIS在航空航天、监控系统、汽车电子等领域得到迅猛发展,显然在有些情况下传统的自动曝光控制方式不能再满足性能要求.尤其是应用于拍摄环境中光强变化剧烈的场合时,曝光过度和曝光不足这种现象更是明显,所以找到一种应用于CIS的快速自动曝光控制方法对其特殊的应用场合还是至关重要的.
应用于 CIS的绝大多数的自动曝光技术采用渐进式自动曝光,主要分4步.
第1步 设定自动曝光控制的基本参数,包括目标亮度标准值 Ytarget、亮度阈值 Ythd、亮度增益值Gtarget和亮度增益阈值Gthd.
第2步 对CIS进行曝光,提取图像并进行图像处理,计算曝光时间 T1、亮度增益 G1和图像亮度平均值Y1[3-4].
第3步 对图像处理后得到的数据进行分析,判断图像亮度值 Y1是否在目标曝光强度值范围内.若Y1不在目标亮度值范围内,则计算所需的亮度增益值,判断是否利用调整亮度增益值可以将曝光值调整到目标曝光强度值范围内,若不能调整到目标亮度值范围内,则计算最优曝光时间 T2和相应的亮度增益值G2.
第4步 用计算所得的最优曝光时间T2调整图像数据输入模块的曝光时间 T3,从而实现图像的曝光.
这种曝光控制方法的关键是如何计算最优曝光时间 T2及其相应的亮度增益值 G2,一般方法中为了防止自动曝光控制的不稳定,采用固定步长控制方式(分为亮度增益步长控制和曝光补偿控制)或将曝光时间成倍增加或减少来达到目标亮度值范围[1-5].但是当外部环境的光强从明亮突变为黑暗或者相反变化时,采用这两种曝光调节方式来达到令人满意的图像的过程就比较缓慢,尤其是固定步长控制方法,步长大小的取值尤为重要,若步长选择过小,则会使曝光过程更加缓慢,而步长如果取得过大,在显示图像时经常由于曝光值始终不能落在所设定的曝光范围内而出现图像明暗抖动的现象,更加影响曝光的实际效果.若物体在拍摄环境中移动速度过快或物体所处环境光亮剧烈变化而导致物体表面的光强快速变化时,采用此种曝光方法就不能使图像及时、准确地曝光而失去图像细节,所以需要设计一种快速自动曝光方法来解决上述问题.
鉴于以上提出的问题,为了达到更满意的图像效果,基于CIS的两种感光特性而设计了一种快速自动曝光控制方法[6].第1个感光特性曲线如图1所示.
图1 曝光输出值与曝光时间的关系Fig.1 Relationship between output signal and exposure time
在图1中,将亮度增益值G固定,当调节曝光时间 T时,曝光输出值 Y与曝光时间 T基本上是呈正比例关系.只有在曝光时间比较短的情况下,当调节曝光时间时,会在曲线上出现一个非线性关系[7],如图2所示.
图2 积分时间较短时的曝光输出值与曝光时间的关系Fig.2 Relationship between output signal and exposure time Fig.2 for short exposure time conditions
CIS的第2个感光特性曲线如图3所示.在图3中,将曝光时间 T固定而调节亮度增益值 G,曝光输出值Y与亮度增益值G呈现为一种简单的正比例关系.其中图1和图3中曲线中呈现出的水平直线是由于感光像素已达到饱和状态而呈现满幅值.由以上对CIS的感光特性的分析,可以对CIS的曝光特性建立一个数学模型.在外界光照不变的情况下,光强可以用式(1)表达且此值是一个常量值.
图3 曝光输出值与亮度增益值的关系Fig.3 Relationship between output signal and gain value
因而只要计算出曝光时间T1、亮度增益值G1和图像曝光强度统计值 Y1,从而判断出当前光强,就可以设定一个固定的亮度增益值 G2,进而求出最优曝光时间为
根据以上理论分析,就能够实现快速自动曝光来快速控制曝光时间和亮度增益值的调整.
与传统的采用固定步长控制曝光方法不同,快速自动曝光基于 CMOS器件的感光特性建立数学模型,基于查找表方式采用多次曝光快速逼近的策略来实现快速曝光控制.具体控制分为以下几个步骤(算法描述中假定图像亮度在目标亮度值之下).
设定曝光控制的基本参数,包括目标亮度标准值Ytarget、亮度阈值 Ythd、极低亮度阈值 Ylowthd、亮度增益值 Gtarget、光强范围查找表(look-up table,LUT)Llight[n]以及对应的亮度增益值 Glight[n][3].其中设定Ylowthd的原因是在低亮度下,曝光强度值与曝光时间之间呈现非线性关系而致使计算出现误差,所以,选择一个Ylowthd值可以使模型结果更加精确.
因为光强范围查找表需要先期实验来总结出不同曝光场景下的图像亮度和曝光参数之间的对应关系,而光强的范围从几 lx(在暗光情况下)到几万lx(在晴朗的天空下),将如此宽范围的光照都集成到LUT中需要占很大的存储空间,所以采用文献[3,8]中提到的利用对数运算的性质将对光强寻址转化成整数值寻址的方法.对式(1)两侧进行取对数操作,得到
如果在光强范围 Lmin~Lmax下进行曝光控制,则当前光强可以表示为
式中:Ln为 LUT中地址 n处的光强值;N为 LUT中地址范围;初始值L0为光强范围的最小值Lmin.通过式(4)表示光强 Ln,lgnL成为一个线性函数.对式(4)两边进行取对数操作得到
利用式(5)将n项lgnL相加,可以得到地址值
通过式(6)可以将LUT中的当前光强 Ln表示为整数,从而可以利用整数来寻址进行查找表操作.对于10位精度的CIS,可以将含有数万项的LUT压缩到只包括 1 024项,从而可以大大简化这一过程.相对于普通 LUT中占用大的存储空间来讲,对数运算对硬件的消耗还是较小的.此外,光强LUT中各对应项的选取需要对所采用 CIS的各项参数了解并结合实际评测参数来设定,所采用的CIS由笔者所在课题组设计,能够保证LUT中数据的精确性.
设定好各必需参数之后,对CIS进行曝光并通过镜头方式(through the lens,TTL) 施行区域测光,同传统自动曝光处理方法相同提取图像并进行图像处理,计算曝光时间 T1、亮度增益 G1和图像曝光强度统计值 Y1.考虑到在高对比度光照的情况,将图像分成 N×N(从硬件实现的角度考虑,N取值为 2的幂次方)大小的块.此种算法通过赋予每个图像块不同的权重,无论是在背光还是在前光情况下,能够保证取景中所假设的主体位置始终得到最好曝光[9].
判断曝光强度值 Y1是否在目标曝光强度值范围内,即判断是否满足
若 Y1不在此曝光范围内,则判断 Y1是否低于所设定的极低亮度阈值Ylowthd;若Y1低于Ylowthd,则增加曝光时间或亮度增益值,使T2=T1N或使亮度增益值G2=G1N,N 取值为 2的幂次方,这样在硬件实现时只需要利用移位操作就可以实现乘法运算.类似于变步长方式调整曝光时间的方法,N值大小取决于 Y1的大小[10].通过对 CIS进行下一轮曝光,直到满足Y1> Ylowthd的条件.
如果已经满足Y1> Ylowthd,则计算平均光强,即
由光强查找表 Llight[i]确定亮度阈值 G2=Glight[i],从而求出曝光时间
根据计算得出的曝光时间T2调整CIS图像数据输入模块的曝光时间T3,使之避免由于交流电供电的灯光周期性闪烁而产生的图像闪烁现象[11-12],即
式中:f为交流电流的频率;N′为正整数.具体调整操作是根据由查找表计算得到的曝光时间 T2来决定N′的确定值,使 T2最接近 T3,从而既能保证正确曝光,又能保证去除图像闪烁现象.
最后,调整图像的亮度增益值,即
由此产生的图像曝光强度统计值就在曝光强度值范围内,从而实现了快速自动曝光调节.
为评估所提出的算法,基于 MATLAB开发了自动曝光算法验证平台,主要验证传统自动曝光算法和快速自动曝光算法:①算法的速度;②算法的精度.其中算法的速度是本文所要评估的重点,但是要达到满意的图像质量,算法的精度也非常重要.
在验证中,总共取 20幅图像对所提出算法以及传统算法进行验证,包括暗光下 5幅图像,强光下 5幅图像,暗光突变到强光下的 5幅图像,强光突变到暗光下的5幅图像.其中暗光的范围从6,lx到200,lx,强光的范围从4 000 lx到30 000 lx,并在此算法中假定目标亮度值为 500.表 1给出了传统自动曝光算法和快速自动曝光算法在暗光情况下的表现情况.
从表1中的数据可以得出,传统自动曝光算法在暗光情况下达到曝光强度范围所需的平均帧数为12.6,平均误差为 6.25%,而快速自动曝光算法在暗光情况下达到曝光强度范围所需的平均帧数为 3.6,平均误差为6.85%.
表1 暗光下两种自动曝光算法评估Tab.1 Assessment of two automatic exposure algorithms for Tab.1 dark light conditions
由以上的分析可见,在暗光情况下,所提出的快速算法在速度上有很大提升,并且误差没有很大损失.但是对处于 200 lx附近的光强,此算法在速度上虽然很快,但是精度上有很大损失,所以仍需要对200 lx左右的LUT进行测试并加以改进.
表 2给出了传统自动曝光算法和快速自动曝光算法在强光情况下的表现情况.
表2 强光下两种自动曝光算法评估Tab.2 Assessment of two automatic exposure algorithms for Tab.2 bright light conditions
从表2可以得出,传统自动曝光算法在强光情况下达到曝光强度范围所需的平均帧数为 8.8,平均误差为 2.74%,而快速自动曝光算法在强光情况下达到曝光强度范围所需的平均帧数为 3.6,平均误差为5.61%.
由以上分析可见,对处于4 000 l,x到30 000 l,x的强光情况下,本文中所提出的快速曝光算法在速度上有很大的提升,但是总体误差相较而言有损失.由表中数据可知只有在4 000 l,x左右的光强下算法误差大,在其余光照情况下,误差还能够接受.所以,还需要在照度不是很强的情况下对算法以及LUT进行优化.
由以上强光和暗光情况下的曝光分析可知,提出的算法能够快速地将曝光时间和增益值调整到适当的值而实现图像快速、正确地曝光.在实际验证中,对光强变化剧烈的情况进行验证,图像曝光效果令人满意,而且能够修正在传统曝光算法中出现的图像抖动现象.
所提出的算法已经在一款 VGA像素阵列的CMOS图像传感器的评估平台得到FPGA验证.此算法在硬件上划分为以下功能单元:亮度统计、曝光强度值判断并根据结果来调节曝光时间和亮度增益值、利用查找表计算目标曝光时间、计算去除闪烁现象的曝光时间并依此得出亮度增益值以及最后将曝光时间和亮度增益值写入到 CIS控制寄存器中得到正确曝光的图像.由于文中算法利用 CMOS器件的感光特性建立了数学模型,利用此模型将查找表操作和判断曝光强度值、调节曝光时间和亮度增益结合在一起,既能保证减小由于 CMOS器件的曝光非线性化而产生的误差,同时利用对数运算的性质来设计查找表而能够大大减小面积的开销.而本文中所提出的快速自动曝光控制方法能够有效地减小得到正确曝光图像的迭代次数,同传统的自动曝光方法相比,由于此算法的总体运算量大大减小,从而能够有效地降低系统的功耗.图4为采用FPGA验证平台实现此算法的实际效果图.本文中采取暗光和强光下的两幅图片来进行效果的比较,结果显示本文中所提出的算法能够对曝光不足和曝光过度的原始图像进行正确曝光.
图4 本文算法的实际效果Fig.4 Image processed by proposed algorithm
针对应用于 CMOS图像传感器的传统固定步长自动曝光方法曝光过程缓慢的缺点,提出了一种快速自动曝光控制方法.基于 CMOS器件的感光特性,建立数学模型来实现算法.通过算法验证,本文中所提出的算法在各种光照情况下与传统的自动曝光算法相比,速度有很大的提升,同时能够保证精度受较小影响.本文中采用 FPGA实现快速曝光算法,已在一款 VGA像素阵列的 CMOS图像传感器评估平台得到实际验证.
[1] Nilsson M,Weerasinghe C,Lichman S. Design and implementation of a CMOS sensor based video camera incorporating a combined AWB/AEC module [C]// The 2003 IEEE International Conference on Acoustics,Speech and Signal Processing. Hong Kong,China,2003:Ⅱ-477-480.
[2] Wen-Chung K,Chien-Chih H. Adaptive exposure control and real-time image fusion for surveillance systems [C]//International Symposium on Circuits and Systems. Island of Kos,Greece,2006:935-938.
[3] Kuno T,Sugiura H,Matoba N. A new automatic exposure system for digital still cameras[J]. IEEE Transactions on Consumer Electronics,1998,44(1):192-199.
[4] Kremens Roberk, Nitin Sampat,Shyam Venkataraman.System implications of implementing auto-exposure on consumer digital cameras [C]// SPIE Conference on Sensors,Cameras,and Applications for Digital Photography.San Jose,1999:93-99.
[5] Cho Myung Hee,Lee Soek Gun,Nam Byung Deok. The fast auto exposure algorithm based on the numerical analysis [C]// SPIE Conference on Sensors,Cameras,and Applications for Digital Photography. San Jose,1999:120-128.
[6] Xiao D avid,Yang Dong. Digital Pixel CMOS Image Sensors [D]. California CA:Department of Electrical Engineering,Stanford University,1999.
[7] Canaan Sungkuk Hong. On-Chip Spatial Image Processing with CMOS Active Pixel Sensors[D]. Ontario,Canada:Department of Electical Engineering,University of Waterloo,2001.
[8] Liang Jiayi,Qin Yajie,Hong Zhiliang. An auto-exposure algorithm for detecting high contrast lighting conditions[C]// Proceedings of IEEE International Conference on ASIC. Guilin,China,2007:725-728.
[9] Kao Wenchung,Chen Shouhung,Sun Taihua. An integrated software architecture for real-time video and audio recording systems[J]. IEEE Transactions on Consumer Electronics,2005,51:879-884.
[10] 周荣政. 数码相机处理器设计及系统集成研究 [D].上海:复旦大学电子工程系,2004.Zhou Rongzheng. Design of Digital Camera Processor and Study of System Integration[D]. Shanghai:Department of Electrical Engineering,Fudan University,2004(in Chinese).
[11] Henderson Robert. Method of Detecting Flicker,and Video Camera Using The Method:US,6900834 [P].2005-05-31.
[12] 贡 青,李锦萍,闵子建,等. 一种基于 CMOS图像传感器的 Flicker自动检测方法[J]. 首都师范大学学报:自然科学版,2007,28(2):32-35.Gong Qing,Li Jinping,Min Zijian,et al. A method of auto Flicker detection based on CMOS image sensor [J].Journal of Capital Normal University:Natural Science Edition,2007,28(2):32-35(in Chinese).