Understanding CMOS Image Sensor(二)
扫描二维码
随时随地手机看文章
转自知乎Camera技术专家 刘斯宁
链接:https://zhuanlan.zhihu.com/p/100777121
get="_blank">Understanding CMOS Image Sensor(一)
像素类型 (Pixel type)
2.1 被动像素 (Passive pixel)最简单的Pixel结构只有一个PN结作为感光结构,以及一个与它相连的reset晶体管(RS)作为一个开关,如下图所示。- 开始曝光前,像素的行选择地址会上电,于是RS使能,连通PN结与列选择器(column bus),同时列选择器会上电,使PN结上加高反向电压(如3.3 V),短暂延时后PN结内电子空穴对达到平衡,于是reset 操作完成,RS 信号失效,隔断PN结与column bus的连通。
- 开始曝光时,PN结内的硅在吸收光子激发出电子-空穴对。受PN结内电场的影响,电子会流向PN结的n 端,空穴会流向PN结的p-substrate。因此,曝光后的的PN结反向电压会降低。
- 曝光结束后,RS再次使能,读出电路会测量PN结内的电压,该电压与原反向电压之间的差值即正比于PN结接受到的光子数。
- 在读出感光信号后,会对PN结进行再次reset,准备下次曝光。
当sensor 控制逻辑需要读出阵列中的某个特定像素时,需要发出该像素的行地址和列地址,地址会被两个译码器(address decoder)解析并激活该像素所在的行选择线和列选择线,使该像素的PN结电容经过RS三级管连接到输出放大器上,如下图所示。
- PN结的电容小于读出电路上的电容,所以对电路噪声很敏感。
- PN结的信号需要先读出才进行放大,因此读出电路的噪声会被一起放大。
2.3 主动像素 (Active pixel)目前主流的CMOS传感器都采用Active Pixel 结构设计。下图所示的Active Pixel 结构称为3T结构,每个像素包含一个感光PN结和3个晶体管,即一个复位管RST,一个行选择器RS,一个放大器SF。3T结构的经典版图设计如下所示。
- 复位。使能RST给PN结加载反向电压,复位完成后撤销RST。
- 曝光。与Passive Pixel 原理相同。
- 读出。曝光完成后,RS会被激活,PN结中的信号被SF放大后读出。
- 循环。读出信号后,重新复位,曝光,读出,不断输出图像信号。
2.4 PPD结构为了解决复位kTC噪声,减小暗电流,在3T结构之后又出现了PPD结构(Pinned Photodiode Pixel),包括一个PN结感光区和4个晶体管,所以也称4T结构,它在3T结构的基础上增加了一个TX三极管起控制电荷转移的作用。PPD结构的经典版图设计如下所示。
2.5 PPD共享结构PPD结构有4个晶体管,有的设计甚至有5个,这大大降低了像素的填充因子(即感光区占整个像素面积的比值),这会影响传感器的光电转换效率,进而影响传感器的噪声表现。为了解决这个问题又出现了PPD共享结构,像素的感光区和读出电路由TX晶体管隔开,相邻像素之间可以共用读出电路,如下图所示。图中2x2像素共享一个读出电路,一共使用7个晶体管,平均一个像素1.75个晶体管。这样可以大大减少每个像素中读出电路占用的面积,提高填充因子。美中不足的是,由于这2x2个像素的结构不再一致,会导致固定模式噪声(FPN)的出现,需要在后续ISP处理中消除。
2.5 双相关采样(CDS)双相关采样即Correlated Double Samping,其基本思想是进行两次采样,先采样一个参考信号用于评估背景噪声,延迟很短时间后再采集目标信号,从第二次采样中减去参考信号即得到去除了大部分背景噪声的目标信号,其原理模型如下图所示。
3 CMOS Sensor特性
CMOS sensor的本质是计量光电转换事件的线性传感器,在一定意义上可以说是光子计数器,sensor上每个像素的读值都反映了指定时间内该像素捕获光子的数量。一个理想的sensor 应该具备以下一些特性- 输出与输入恒成正比(无sensor噪声,只有信号本身的噪声)
- 输入输出均可以无限大
- 高灵敏度,小的输入激励大的输出
- 高帧率
- 高分辨率
- 低功耗
- 工艺简单
- 低成本
以上关系用公式描述就是
S(N, t) = q(λ)·N·t
其中,S(N, t)是sensor的一个像素采集到的电子数, q(λ,)是sensor在波长λ处的光电转换效率,N是单位时间内入射到sensor表面的光子数(波长λ的单色光),t是曝光时间。sensor 最终输出的像素值是使用ADC对S(N,t)进行采样和AD转换得到的量化值,该值会有PV(Pixel Value),ADU(Analog-Digital Unit),DN(Digital Number),Output Code等多种表述方式,并且DN=g*S(N, t)其中符号g代表增益系数gain,意义是多少个光子能够激励出1个比特的DN值。下图描述了一个CMOS像素发生光电转换和收集光生电子的过程。3.1 量子效率 (Quantum Efficiency)
量子效率是描述光电器件光电转换能力的一个重要参数,它是在某一特定波长下单位时间内产生的平均光电子数与入射光子数之比。由于sensor存在三种像素,所以量子效率一般针对三种像素分别给出。下图是一个实际sensor的量子效率规格示例。3.2 势阱容量 (Saturation Capacity)
势阱容量又称Full Well Capacity,指一个像素的势阱最多能够容纳多少个光生电子,消费类的sensor一般以2000~4000较为常见,此值越大则sensor的动态性能越好。下图给出一个包含势阱容量规格的例子。下图是一些单反相机sensor的饱和阱容比较。
3.3 噪声 (Noise)
“噪声”的广义定义是:在处理过程中设备自行产生的信号,这些信号与输入信号无关。由于电子的无规则热运动产生的噪声在所有电子设备中普遍存在,是不可避免的,因此被重点研究,并赋予了很多名字,如本底噪声、固有噪声、背景噪声等,英文中常见noise floor, background noise等提法。如下图所示,器件的温度越高,电子的热运动越剧烈,产生的噪声也就越大。真实世界中的所有信号都是叠加了噪声的,图像信号也不例外,如下图所示,当有用信号的幅度小于背景噪声时,这个信号就淹没在噪声中而难以分辨,只有当有用信号的幅度大于噪声时这个信号才是可分辨的。
下图是对噪声图像的数值分析。
泊松分布是最重要的离散分布之一,它适合描述单位时间内随机事件发生的次数。举例来说,假设某高速公路在某时段的车流量是每小时1380辆,平均每分钟23辆,可是如果进一步以分钟为单位进行统计,我们就会发现某一分钟只通过了15辆,而另一分钟则通过了30辆,这个概率分布就需要用泊松分布来描述。同理,我们可以把这个例子中的车流换成芯片内流过PN结的电子流,或者换成通过镜头入射到像素的光子流,这两种情况在统计意义上是完全一样的,都需要用泊松分布来描述。下面这篇文章较详细地解释了泊松分布的推导过程和它的现实意义。泊松分布的现实意义是什么,为什么现实生活多数服从于泊松分布?9406 关注 · 79 回答问题
sensor 噪声中含有几部分分量:
- 暗散粒噪声(σD): 硅片中电子的热运动会导致一些价电子随机激发至导带中形成暗电流(dark current),所以即使完全没有光子入射,sensor也会存在一定的信号输出。在曝光过程中,暗电流的随机变化即形成暗散粒噪声。暗电流变化的主要原因是电子穿过PN结时会遇到PN结的电势屏障(barrier),电子穿越屏障需要经历动能-势能-动能的转换过程,所以需要耗费一些时间。暗散粒噪声在统计上服从泊松分布,与光信号的高低水平无关,但与传感器的温度有关,一般的规律是温度每升高8°C暗电流翻一倍。所以在设计电路时必须注意把容易发热的电子元件尽可能布置在远离sensor的地方。
- 读出噪声 (σR): 该噪声是在产生电子信号时生成的。Sensor中使用AD转换器(ADC)将模拟放大器输出的模拟电压采样为数字电压。由于数字信号的精度总是有限的,通常为10比特至14比特,幅值位于两个相邻数字之间的模拟信号会四舍五入到最接近的数值,所以这个过程会引入量化噪声,这是读出噪声的重要组成部分。该噪声由传感器的设计决定,意义是至少需要多少个电子才能驱动读出电路的ADC变化一个比特。它与信号高低水平和传感器温度无关。
- 光子散粒噪声(σS): Shot noise, 该噪声是与落于传感器像素上光子相关的统计噪声。在微观尺度下,光子流到达传感器的行为在时间和空间上都是不均匀的,就像统计高速公路上的车流,有时车流比较密集,过一会又变得稀疏。有时左边的车道密集,过一会右边的车道密集,整体上其统计规律符合泊松分布。光子散粒噪声是与被测信号的高低水平有关的,与传感器温度无关。
- 固定模式噪声 (σF): Fixed-pattern noise(FPN), 该噪声是由像素的空间不均匀性引起的,CMOS sensor 每个像素内都配置一个电荷电压放大器,每行、每列都有一些晶体管用于控制像素的复位和读出,这些器件的工作参数相对理论值的漂移就构成一种固定模式噪声。另外,坏像素、瑕疵像素也可以视为一种固定模式噪声。FPN效果大致上可以用下面的示意图模拟。
在所有像素中,总会有一些像素相对平均值漂移较大,这些像素称为离群像素(outliers),如下图所示。离群像素的数量能够反映sensor品质的好坏。
- 复位噪声 (σr): 卷帘曝光方式需要在先对势阱复位,将势阱中自由积累的电荷全部释放,为后续的读出准备。但是由于暗电流的存在,每次复位后都会残留一些大小随机的噪声信号,即复位噪声,其大小与像素结构、芯片温度、PN结电容有关,因此也称为kTC噪声。
- 1/f噪声 (σf): 1/f 噪声是一种低频噪声,在有些文献中也称flicker noise(闪烁噪声) 或pink noise(粉红噪声),它广泛存在于半导体器件中。在低频的时候1/f噪声一般显著高于电散粒噪声。
- 光响应非均匀性 (σp): 英文为PRNU,Photo Response Non-Uniformity。Bayer格式的sensor 通常存在四种像素(R,Gr,Gb,B),这四种像素的光电转换特性(即增益特性)不可能是完全一样的,不同种像素间存在种间差异,同种像素之间也存在个体差异,如下图所示。
- 串扰 : 英文为Crosstalk,在通信领域中指两条信号线之间由于屏蔽不良而发生了的信号耦合,一条线路上的信号通过线缆间存在的互感和互容馈送到了附近的信号线上,在模拟通信时代可能导致听到别人的通话。在sensor领域,串扰指的是入射到一个像素A的光信号没有在这个像素里被捕获,反而被其周围的像素B捕获,导致B产生了不该有的信号。
三星公司研发了ISOCELL技术用于抑制串扰,该技术使用metal grid制造电势屏障阻止电子进入相邻的像素,但是会引入一些新的问题,所以后来又发展出了ISOCELL Plus技术,该技术是在ISOCELL的基础上改进了材料,避免了metal grid 引起的不良反应。
索尼的HAD CCD技术给像素设计了一个特别的盖子,可以防止像素内的光电子逃逸,同时也防止像素外的自由电子进入像素内部。
噪声模型
下图测量了sensor中4种像素的光响应特性,从图种可以看出4种噪声的表现机理。PRNU体现的是红、绿、蓝三种像素的增益差异。对于任一种像素,光信号越强像素值抖动越大,这体现了光信号本身的散粒噪声。光信号为零时,输出幅度最小的像素体现了半导体的暗散粒噪声,而 红、绿、蓝三种像素之间的差异体现了FPN噪声。
目前的CMOS工艺水平已经非常先进,对于科学水平的sensor,读出噪声的典型值通常小于10 e-,在极限条件下甚至已经可以做到1e-。下图给出了一些常见单反sensor和仪器sensor的读出噪声水平。
本专栏的另一篇文章专题讨论了降噪的算法,可以结合阅读。刘斯宁:Understanding ISP Pipeline - Noise Reduction69 赞同 · 10 评论文章
3.4 信噪比 (SNR)
信噪比是一个电子设备或者电子系统中信号与噪声的比例,如下图所示。这里面的信号指的是来自设备外部需要通过这台设备进行处理的电子信号,而噪声是指该设备自行产生的无规则信号,并且该种信号并不随外部输入信号的变化而变化。一般认为,SNR=10dB 是可接受(acceptable)的图像质量标准,该值意味着信号幅度是噪声的3.16倍。而SNR=40dB 是优秀(excellent)的图像质量标准,该值意味着信号幅度是噪声的100倍,因此至少需要10000e-饱和阱容。介于中间的是SNR=30dB,该值要求像素提供1000e-以上的饱和阱容,这刚好是很多手机sensor的指标范围。
下图是一些单反相机的典型SNR对比。
下图是Canon 1D3 单反相机在不同ISO下的信噪比曲线,横坐标是曝光量,纵坐标是SNR,都是以"stop"为单位,即以2为底的log-log坐标。
在评估图像质量时,常用以下公式计算噪声和信噪比
3.5 动态范围 (Dynamic Range)
一个信号系统的动态范围被定义成最大不失真电平和噪声电平的比值,在实际应用中经常用以10为底的对数来表示,单位是分贝。对于胶片和感光元件来说,动态范围表示图像中所包含的从“最暗”至“最亮”的取值范围。根据ISO15739的定义,“最亮”指的是能够使输出编码值达到特定“饱和值”的亮度;而“最暗”指的是图像信噪比下降至1.0时的亮度。sensor 动态范围越大,所能表现的层次越丰富,所包含的色彩空间也越广。下图是用来测量sensor动态范围性能的常用方法。下图列举了一些典型单反相机sensor的动态范围指标,纵坐标可以理解为AD转换器的位数。例如12位ADC能够表示的动态范围是2^12=4096,而14位ADC能够表示2^14=16384,以此类推。
下图列举了一些典型场景的动态范围。
3.6 灵敏度 (Sensitivity)
CMOS sensor 对入射光功率的响应能力用灵敏度参数衡量,常用的定义是在1μm2单位像素面积上,标准曝光条件下(1Lux照度,F5.6光圈),在1s时间内积累的光子数能激励出多少mV的输出电压。在量子效率一定的情况下,sensor 的灵敏度主要取决于电荷/电压转换系数(Charge/Voltage Factor, CVF)。在下图的例子中,CVF =220uV/e,这意味着阱容2000e的像素能够激励出最大440mV的电压信号。- 在图像噪声水平接近的情况下,灵敏度高的sensor图像亮度更高、细节更丰富
- 在图像整体亮度接近的情况下,灵敏度高的sensor噪声水平更低,图像画质更细腻
EMVA 1288 定义了评价camera 灵敏度的标准,即多少个光子可以引起camera像素值变化1,即一个DN。根据量子力学的公式,
下图给出了普通灵敏度和高灵敏度sensor在噪声、亮度方面的效果对比。
3.7 填充系数 (Fill factor)一个像素不管实际面积多少,用于控制和读出的三极管和电路连线所占的面积是必须首先保证的,余下的面积才能用于制造感光PN结。假设一个像素小到只能勉强容纳几个必须的三极管,则填充系数降为零,这个像素就失去了意义。反之,像素面积越大,三极管和电路所占面积的比例就越小,像素的填充系数就越高,像素的成像质量也会越好。下图是一个像素版图的例子,这是一个采用PPD结构设计的像素,尽管面积很大,但实际也只取得了60%的填充系数。
为了大幅度地提高填充系数,人们不得不费心费力地在每个像素上方制造一个微透镜,将较大范围内的入射光会聚到较小的感光面上,这样可以将光能利用率提高到90%以上,也就是通过微透镜提高了等效填充系数,如下图所示。
3.8 像素尺寸(pixel pitch)最小的像素通常是出现在手机sensor上,典型尺寸1.1um,这差不多已经到了实用的极限了,安防和机器视觉sensor常用2.2um~4.2um大小的像素,而单反和广播级的sensor则倾向于用更大尺寸的像素。关于像素尺寸有两个非常经典的问题,假设你有两个桶,一大一小,那么
- 如果外边雨下的特别大,哪个桶先盛满水?OK,很显然是小的桶先满。
- 如果外边的雨是一滴一滴地偶尔掉下来,哪个桶更容易接到水?OK,很显然是大的那个。
一个sensor 的尺寸大小主要取决于感光阵列和处理电路所占的面积,而感光阵列的面积等于像素尺寸和像素数量的乘积。sensor 的像素数量有专用的术语叫做分辨率(resolution),可以用总数量描述,如2MP,3MP等(MP=MegaPixel,百万像素),或者写成宽乘以高的形式,如1920x1080,2048x1536 等。sensor 的大小也有专用的术语叫做光学格式(optical format),用sensor 封装后的对角线长度衡量,注意并不是sensor 光敏阵列的对角线长度。光学格式在技术发展的过程中已经完全标准化,形成了一系列固定的尺寸,方便与任何厂家生产的标准规格镜头进行适配。在进行像素密度计算时,设计人员需要准确地知道所选sensor 光敏阵列的尺寸,这个数据可以根据sensor 分辨率和像素尺寸计算得到,也可以快速地查表得到。下表给出了一些常见光学格式的光敏阵列尺寸。
3.9 成品率(yield)单纯从信噪比的角度考虑,像素的尺寸显然是越大越好。但是为什么手机sensor都是越做越小呢?这主要有两方面的原因,最终都能归结到成本问题。一个很容易理解的原因是,在芯片总面积一定的情况下,单个像素面积越大,芯片的总像素数就会越少,即sensor的分辨率就越低,这与人类追求高像素、高清晰度的目标是不符的。因此手机sensor的发展思路一直是依靠技术进步不断提高像素灵敏度同时缩减像素面积,在保证成像效果基本不损失的前提下,通过提高成品率来降低单个sensor的成本,扩大总收益。那么是否可以把芯片总面积扩大,既用大像素,也提供高像素数呢?在一定程度上是可以的,事实上单反、广播、武器、科研级的sensor就是这样做的,代价就是一片wafer(硅片)只能制造几十个sensor,单个sensor 的成本是相当感人的。
当然了,如果是用在天文望远镜这种不计成本的场合上,也有人会用一整片wafer制造一个超大的sensor,比如下面这货,是佳能在一个12英寸(直径300mm)wafer 上制造的单个CMOS sensor,面积 202×205mm2, 1600万像素, 帧率100fps,采用0.25μm工艺。
但是对于手机sensor这种消费市场,拍摄夜景并不是频繁和主要的需求,相反成本是最重要的考虑,所以sensor厂家会希望一片wafer能够产出2000个以上sensor。
显然sensor面积越大遇到瑕疵的概率也就越大,从数学上看,sensor遇到瑕疵(变成废品)概率与像素尺寸(pixel pitch)是平方关系而不是线性关系。假设wafer上的瑕疵是均匀分布的,当sensor面积大到一定程度的时候,就会出现无论如何也无法避开瑕疵的尴尬境地。
3.10 前照式工艺(FSI)传统CMOS sensor 工艺又称为FSI(Front Side Illumination)工艺,与传统的半导体工艺一样,它首先装夹固定好一片wafer(硅片),从wafer的一侧开始制造光敏PN结以及控制和读出电荷所需的晶体管,然后制造连接晶体管所需的金属线路(铝或铜),接下来制造Bayer滤光膜和微透镜。在整个制造过程中wafer只装夹固定一次,直到制造完成,最后的wafer大概就是下图所示的样子。
封装就是将晶片固定在塑料或金属外壳内部,形成最终产品的过程,与其它半导体芯片的封装过程基本是一样的。
根据sensor尺寸的不同,一个12英寸(直径300mm)的wafer粗略可以切出100~2000个sensor,但是能否收回制造成本还取决于成品率(yield),正常情况下厂家会期望成品率大于90%,如果很不幸有一半sensor 是废品则厂家大概率会血本无归。强烈推荐一个芯片制造的视频,和制造sensor过程是差不多的。为什么 CPU 这么贵?5987 赞同 · 571 评论回答
言归正传,在FSI工艺下,光线需要穿越多层电路结构才能抵达硅感光区,如下图所示。
下图是FSI像素在电子显微镜下的照片。
3.11 主光线角(CRA)主光线角(Chief Ray Angle, CRA)是衡量sensor 收集入射光能量的一个主要参考指标。尤其是对于经典的FSI工艺,由于多个金属布线层的存在导致CRA 不太容易提高。如下图所示,使用铜线可以在一定程度上改善CRA 但也会提高sensor 成本。
CRA 经常是限制sensor 性能的一个重要因素,而下面将要介绍的BSI 工艺则可以显著改善CRA,使之不再成为一个主要问题。
3.12 背照式工艺 (BSI)随着半导体工艺的进步,人们发现其实可以将wafer打磨得非常薄,让光线穿透wafer,从背面入射到感光PN结,这个想法无论在技术上还是成本上都已经变得可行,于是就产生了背照式工艺(Back Side Illumination, BSI)。BSI工艺的主要特点(也是难点)是生产过程中需要两次固定装夹,一次在wafer背面制造滤光膜和微透镜,一次在wafer正面制造感光PN结和电路结构。两次装夹定位的重复精度要求极高,才能保证光线能够通过背面的微透镜精准聚焦到PN结上。下图是BSI工艺的典型流程,中间一个非常关键的步骤就是"flip wafer"。
下图是FSI工艺和BSI工艺的原理对比。
下图是Sony BSI工艺的简介。
FSI 与 BSI 工艺效果对比 @ ISO6400左侧:Sony 20mp RX100 CMOS Sensor右侧:Sony 20mp RX100 II BSI CMOS Sensor
下图是另一个FSI工艺与BSI工艺效果对比的例子。
3.13 其它进展Sony 于2007年推出第一代Exmor系列CMOS 图像传感器。与传统CIS技术相比,Exmor 的主要特点是为每列像素配置了专用ADC和额外的CDS。由于ADC单元与像素的物理距离更近,并且由于大规模并行化可以降低单个器件的工作频率,所以极大地改善了sensor的噪声特性。而新增的CDS又进一步抑制数字噪声。
随着制造技术的进一步演进,在背照式工艺的基础上又发展出了堆栈式(Stacked)工艺。顾名思义,堆栈式工艺把两片或者更多片硅片上下堆叠在一起,最上层硅片全部用于制造像素的感光区,而sensor 控制所需的模拟、数字逻辑全部移到下层硅片,所以感光区占sensor靶面尺寸的比例可以接近100%,终于达到了sensor 效率的巅峰。
实际上,CMOS sensor 也可以设计称支持global shutter曝光方式。与CCD 类似,global shutter 的实现原理是每个曝光像素都伴随一个存储电容,感光阵列上所有像素同时曝光,然后光电子立即被转移到存储电容上并锁定,等待读出电路读出。下图是一种较新的global shutter 像素设计,该设计支持两种不同的增益系数,因此支持HDR功能。
3.14 Sensor for AI另外,近些年的发展趋势是在sensor 上集成内存和AI 运算单元,使sensor 本身就能够完成一些高级图像处理算法,实现sensor 的智能化。
3.15 ToF sensorToF 即 Time-of-flight,ToF sensor 主动向视场前方打出一组激光,然后追踪反射光被sensor捕获的时间,通过时间差计算前方障碍物的距离,从而形成深度图(depth image)。深度图的每个像素值代表目标距离camera的距离。为了形象地呈现深度信息,人们一般用红色代表近的距离,蓝色代表远的距离。
3.16 Sensor fusion车载是仅次于手机、安防的第三大sensor应用市场。车载应用的主要挑战是包括强光、高动态、雨雪雾等环境因素会对 sensor 成像造成严重干扰,目前单靠CMOS sensor本身的性能提升还不能很好地解决这些问题,所以人们在探索将可见光sensor、毫米波雷达、激光雷达等成像技术结合在一起,形成更为可靠的车载解决方案,保证在各种气象条件下都能稳定地检测出画面中的目标。索尼将此技术称为sensor fusion。
3.17 Foveon sensor研究发现,不同波长的光在硅材料中能够穿透的深度是不同的,下表是关于穿深的统计。
Foveon 公司开发了一款可以在一个像素上捕捉全部色彩的图像传感器,型号为Foveon X3。与传统的Bayer阵列原理不同,Foveon 利用了蓝光穿透距离小,红光穿透距离大的原理,采用三层感光元件堆叠布局,每层记录一个颜色通道。
3.14 宽动态(WDR)宽动态即Wide Dynamic Range,与之等价的一个术语是高动态即High Dynamic Range (HDR)。单从语法的角度看,WDR比HDR在语法上更严谨一些,因为形容一个范围可以说“宽窄”但很少说"高矮",除此之外其实并无技术层面的区别。从另一个角度看,当用水平的图表比较动态范围时,用WDR术语是最恰当的,如下图。
- Staggered 长短曝光帧融合,非同时曝光,存在运动伪影问题,短帧存在flicker问题
- Interleaved 行交替曝光,将像素以两行为单位分组,长、短交替曝光,存在分辨率损失
- Chopped 斩波曝光,主要解决flicker问题
- Lin-Log 函数响应,依赖特别的像素设计,LDR区间为线性响应,HDR区间变为log规律响应,缺点是FPN较大
- Dual-diode pixel,两种不同敏感度的像素呈棋盘格排列,长、短帧同时曝光,存在分辨率损失和运动伪影
- LOFIC 像素,用大电容收集像素溢出的电荷,原理与Split-diode pixel 有些类似
- Complementary carrier pixel,在LOF基础上使用电子-空穴两种互补载流子,显著提高阱容
- DCG 像素 (Dual Conversion Gain),每个像素可独立控制增益,等效于实现两种敏感度像素
- Split-diode pixel, 将每个像素的光敏区切成两块,分别负责短曝光和长曝光,没有分辨率损失和运动伪影
3.14.2 Interleaved第二种模式又称BME(Binned Multiplexed Exposure)。这种sensor每隔两行的曝光时间分别设为短曝光和长曝光。然后融合长短曝光的两帧图像,成为行数减半的一帧WDR图像。空间分辨率损失了一半,就好像是做了1x2binning,所以叫做BME。SONY IMX135 和IMX258使用了这一技术。
3.14.3 Chopped第三种模式主要用于解决WDR的短曝光容易遇到flicker的问题,需要针对短曝光做特别的斩波支持,具体可参考本文1.10小节。
3.14.4 Lin-log第四种模式是使像素具备log响应曲线,自动压缩输入信号的动态范围。当输入信号小于一定阈值时,像素表现为线性响应(linear),当输入大于该阈值后,输出的阻尼正比于信号强度,输出表现为log特性。
3.14.5 Dual-diode第五种模式又称SME( Spatially Multiplexed Exposure)。这种sensor在空间上以棋盘格的形式排列高感度和低感度两种像素,通过算法处理融合一帧WDR图像。
写到此处先悼念一下笔者的好友,Dr. Reberto Marchesini,一个特别温和友善的意大利人,在2010年加入AV之前曾在某sensor公司设计WDR sensor,就是用的这种WDR模式。曾有导演用他设计的sensor拍摄了一部电影,就是下面这个。
Reberto 一生与摩托车有缘。他第一次去AV面试的路上在路口被私家车刮碰了一下,住了两个月院。痊愈出院后第二次面试拿到了offer,他的小女朋友听到喜讯立即辞去了waitress工作回家做起了全职主妇。一年后的12月,Reberto 荣升硬件设计主管,在职务生效的第一天早上,他骑摩托车又被私家车刮碰了一下,不幸的是这次是在高速公路上,私家车时速130公里,亲爱的Reberto 同学当场就撒手西去了,再未醒来。笔者每次回忆起与他共事的愉快经历都不胜唏嘘,感慨世事无常。
3.14.6 LOFIC第六种模式全称是Lateral OverFlow Integration Capacitor,原理是每个像素都配置一个较大的电容用于收集因饱和而溢出的电荷,如下图所示。
2019年的报道是用2.8um像素实现了12万电子的最大阱容。
另据报导,此种技术可以实现高达200dB的动态范围。
3.14.7 Complementary carrier第七种模式的原理是引入空穴载流子,由于CDTI工艺可以容易实现较大的电容,所以可以实现跨越式的阱容提升,2018年的报道是用3.2um的像素实现了75万载流子的阱容。
3.14.8 DCG第八种模式由OmniVision提出,原理是每个像素可单独控制增益(使用下图中的CG信号),当工作在HDR模式时,只进行一次曝光,但分两次读出,一次使用HCG (high conversion gain)捕捉暗部信息,一次使用LCG(low conversion gain)捕捉亮部信息。
3.15 Retinex 算法人眼会针对局部的图像特点进行自适应,既能够增加局部的对比度,同时保留大动态范围。1963年E. Land 提出了Retinex 理论作为人类视觉的亮度和颜色感知模型,后人在此基础上发展了Retinex 系列算法,在彩色图像增强、图像去雾、彩色图像恢复方面具有很好的效果,也可以用于WDR融合。由于这种算法计算比较复杂,目前在sensor 端还暂未见产品应用,但是在图像后处理领域已经得到了非常好的应用。随着技术的发展可以预见Retinex 算法有一天将应用在camera ISP上甚至是直接集成到sensor上。
4 CMOS Sensor接口
一个CMOS sensor 至少会有两个接口,一个控制接口用于与MCU通信接受配置参数,一个数据接口用于输出像素数据。下图是一个实际sensor的框图。下面时一款OVsensor的框图,它的特点是自带AWB和AEC算法,可以省去后端ISP的成本。
下面时一款19MP CMOS sensor的框图,使用SPI控制接口和16-lane LVDS数据端口。
4.1 控制接口
目前主流的CMOS sensor多使用I2C串行总线接收主控MCU发来的的寄存器读写命令,I2C总线的最大时钟频率是400kHz。I2C总线是在SCLK为高电平的中间点对数据信号SDAT进行采样,因此数据信号需要在SCLK为低电平期间完成变化。I2C Read4.2 数据接口
早期的sensor常采用DVP等并口方式传输图像数据。随着sensor分辨率不断增加,体积不断缩小,并口的局限性越来越明显,难以满足带宽、体积、功耗等指标要求,所以目前主流的CMOS sensor已转为使用基于高速串行总线的MIPI接口,尤其是500万像素以上的sensor几乎全部采用MIPI接口。- 接入1个lane,时钟频率425MHz,数据速率850Mbps;
- 接入2个lane,共享同一时钟,时钟频率225MHz,数据速率900Mbps。
4.3 帧结构
Sensor的实际像点数量通常比标准的图像分辨率(如2048x1536,1920x1080等)要大一些,多出来的像点主要有两种作用,- 黑像素,即dark pixel,像点上方覆盖的是不透光的金属,相当于零输入的情况,用于检测像素的暗电流水平
- 滤波像素,即filter pixel,很多ISP算法会使用3x3或5x5大小的滤波窗口,因此需要在输出分辨率的基础上增加若干行、列使滤波窗口内全是有效像素。
以上图为例,sensor输出的每一行由以下单元组成
- 每一帧开始时同步信号VSYNC有效并持续4行时间(4 tline),
- 每一行开始时同步信号HSYNC有效并持续64个tp (1tp=2PCLK),
- 在HREF为高电平时每一行有效时间为640tp,无效时间为144tp,每一行时间为tline=784tp;
- 每一帧总行数是510,其中有效行数是480
- 采集一帧数据的时间是784*510tp。
4.4 曝光控制时序一般而言,用户向sensor 寄存器中写入的控制参数并不时立即生效的,而且不同参数生效的具体时间也不尽相同。举例来说,假设此时此刻sensor 正在采集第N帧之中,即第N帧的Frame Start 信号已经过去而Frame End 信号尚未到来,如果此时向sensor 寄存器写入新的积分时间,则对于某型号的Panasonic sensor,新的积分时间将在第N 2帧开始生效;如果此时向sensor 写入新的增益,则新的增益将在第N 1帧即开始生效。这个问题会导致第N 1帧采用不正确的增益进行曝光,画面会出现瞬间闪烁,这是不可接受的。为了使积分时间和增益能够同时生效,必须通过软件把两个参数分开配置,第N帧写入积分时间,第N 1帧写入增益,两个参数在第N 2帧同时生效,如下图所示。
4.5 多sensor同步有一类camera需要同时捕捉多路sensor的图像,通过一定的算法将多路图像拼接成一个整体,以获得更大的视野。
4.6 Companding 模式
目前主流的CMOS sensor几乎都是输出Bayer mosaic格式的数据,数据的位宽一般有8位、10位、12位、14位等级别。Bayer格式和数据位宽一般是sensor的固定参数,sensor型号一旦确定后,后续的MIPI和ISP必须能够支持或兼容该sensor的参数,否则系统将无法正常工作。多数sensor支持线性输出模式,即输出的像素值与像素采集的光信号成正比。也有一些sensor支持companding输出模式,对线性数据进行压缩编码,使编码数据可以用更少的带宽传输,降低器件成本。下图使一种典型的companding模式,将12位线性数据(0~4095)压缩编码成10位数据(0~1023)。这种输出方式要求后续的ISP必须支持decompanding,将10位数据恢复成12位数据才能获得正确的图像。5. 图像伪影 (Artifact)
5.1 摩尔纹 (Moiré)
摩尔纹源于法语,moiré 是一种纺织品,它的纹路类似于水波。在物理学中,摩尔纹指的是两列或两列以上的波在空间中重叠时发生叠加,从而形成新波形的现象。在图像处理领域,当sensor像素阵列的空间频率低于信号本身的频率时j就会发生频谱混叠(aliasing),图像上的表现就是出现摩尔纹,如下图所示。5.2 迷宫格 (Maze)
当图像中存在平行线时,经常会出现平行线的边缘刚好覆盖半个像素的情况,后续的ISP算法必须要决定这个像素到底是属于A物体还是B物体。就像抛硬币一样,ISP会有一半的概率做出相反的决定。如果平行线的间距足够小,则会有相当的概率发生两条平行线搭接到一起的情况。如下图所示。5.3 紫边 (Purple Fringing)
Chromatic Aberration
5.4 眩光与鬼影 (Flare)
由强光造成的照片发白、形成光晕的现象称作眩光(Flare)。当光源在画面上移动时,光晕也会在画面上漂浮游动,忽上忽下,忽左忽右,有如幽灵一般,所以称之为鬼影。我们知道镜头是由多枚镜片构成的,而镜片则是采用玻璃或塑料等材料制造,如果不进行特殊处理,镜片表面会反射大约5%左右的入射光线。当强光进入镜头时,各枚镜片的表面反射的光线会在镜头和摄像机内部多次反射,最终在sensor上映射出一连串的光晕,这就是眩光和鬼影产生的原因。5.5 面纱眩光 (Veiling glare)
实际的镜头内总会存在一些杂散光。所谓杂散光就是那些不是按照设计路径传播的光线,它们在镜片和镜筒内部多次反射和散射,最终会扩散到sensor上形成光晕。当镜头面向大面积强光的时候,杂散光的强度迅速提高,其作用范围也不再局限于图像的局部,而是像洪水一样扩散到整个sensor面积上,整体抬升了像素值,造成全局性的对比度下降,图像看起来像是蒙上了一层纱,所以这种现象称为面纱眩光,下图是一些实际的例子。5.6 条纹伪影 (Streaking Artifact)
Streak 原意是裸奔的意思,这里特指一些像素值溢出到相邻区域形成的伪影。CCD sensor 存在blooming/smearing现象会引发streak,但是这种机制在CMOS sensor 中并不存在。如果get="_blank">CMOS 图像中出现streak伪影,则多半是由算法原因引起的(滤波器、编码器等),比如下图的例子。