Sensor 的结构
sensor 的硬件结构
每个像素的结构
Microlens(微透镜)。 每个像素点的最上方有个微透镜,增加透光量。有镜头就有 CRA 的问题,超出一定角度的光线无法被收集,需要和镜头进行匹配。
- Photodiode(硅感光区)捕获光子,激发光生电子。
- 势阱,用电场捕获、存储光生电子。
- 电路,将电荷数量变换为电压信号,以及复位、选择、读出逻辑。
滤光膜,选择性透过三种波长中的一种。
细说 CRA
CRA 是 Chief Ray Angle 的缩写,意思是主光角。从镜头的传感器一侧,可以聚焦到像素上的光线的最大角度被定义为一个参数,称为主光角 (CRA)。对于主光角的一般性定义是:此角度处的像素响应降低为零度角像素响应的 80%。
我们在挑选 Lens 的时候会有一个 CRA 的参数,在选择 sensor 的时候同样有一个 CRA 的参数,一般我们要求 Lens 的 CRA 曲线与 senosr 的 CRA 曲线完全匹配,如果实在不能匹配,我们也要求在同样的像高位置,CRA 相差不能超过 3 度,而且最好是 Lens 的 CRA 比 sensor 的 CRA 小,否则将会导致成像照度或色彩问题。
普通的 FSI 的 sensor 都有一个类似光子井的结构用来收集光子:
当 CRA 增加的时候,光线会被金属电路层阻挡掉一部分,导致 sensor 接受光的效能降低。
对于 BSI 的 sensor,这种影响也会更小:
怎样选择 Sensor 的 CRA:
- 广角镜头:这时一般 Lens 的 CRA 比较大,需要选择 CRA 大于 25 度的 Sensor 或者 BSI 的 Sensor;一般用于手机、安防、玩具、网络摄像头等。
- 超长焦镜头:这时一般 Lens 的 CRA 比较小,需要选择 CRA 为 0 度的 Sensor;一般用于安防、机器视觉等。
- 变焦镜头:这时 Lens 的 CRA 是变化的,一般需要根据实际应用选择,最好采用大 pixel,BSI 的 Sensor;一般用于安防等。
sensor 的纵向结构
对于前照式 CMOS,光透过电路会发生反射,造成每个像素点之间的干扰。背照式的结构(感光层在电路的上方)不会受到电路的影响。
在背照式工艺的基础上又发展出了堆栈式(Stacked)工艺。顾名思义,堆栈式工艺把两片或者更多片硅片上下堆叠在一起,最上层硅片全部用于制造像素的感光区,而 sensor 控制所需的模拟、数字逻辑全部移到下层硅片,所以感光区占 sensor 靶面尺寸的比例可以接近 100%,终于达到了 sensor 效率的巅峰。
细说 CFA(color filter array)
每个像素点上覆盖有一种颜色的滤光片,从而去感知每种颜色的亮度。
Bayer 格式:绿色分量为总像素数的一半,红色蓝色各为总像素的四分之一。
AD 转换及读出
sensor 会使用一个行选信号 (Row Select) 和一个列选信号 (Column Select) 来选中一个存储单元 (Pixel),被选中的存储单元与输出放大器联通,将其存储的电荷数转换成电压值输出到阵列外部。
- 每个像素内置一个电荷/电压放大器(Charge/Voltage Converter, CVC),将像素势阱中电荷的数量转换成电压信号。
- 读出逻辑选中某一行,该行所有像素的电荷/电压放大器的输出信号与列输出信号联通。
- 读出逻辑继续选中某一列,该列信号与可编程输出放大器(Output Amplifier)联通,被选中的像素的电压信号被放大一定倍数。
- 放大后的电压信号经 ADC 转换器后变成数字信号,最后通过一定的接口协议(如 MIPI)输出到外部。
调节相机的 ISO 其实就是调节这里的放大器放大倍率以及经过 AD 转换后的数字量乘以一个倍率,很容易理解模拟放大器的噪声更小,因为 AD 转换器本身存在一定的精度损失以及 AD 固有的噪声都会被数字增益放大。具体在设计的时候根据用户设置的 ISO 将其转换成具体的增益值,然后如果模拟增益足够就只用模拟增益,如果模拟增益不够,那么先将模拟增益拉满再设置数字增益。
总结
sensor 会通过微透镜将光线聚在一起(更多的光子照射到感光元件上)然后通过 Bayer Filter 分别获取红绿蓝三原色,这样每个像元上将可以获取一种颜色,再经过感光元件将光子转换成电信号存储起来。然后该信号会经过经过模拟放大器,将信号放大,再经过 AD 转换器获得数字信号,经过 MIPI 等物理接口将信号发送出去(对于集成 ISP 的模组还会经过 ISP 的处理再将信号发送出去)。
像素类型 (Pixel type)
被动像素 (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,准备下次曝光。
这种像素结构因为读出电路完全位于像素外面所以称为 Passive Pixel,其优点是 PN 结可以独占像素面积,缺点是噪声较大,主要有 2 个原因:
- PN 结的电容小于读出电路上的电容,所以对电路噪声很敏感。
- PN 结的信号需要先读出才进行放大,因此读出电路的噪声会被一起放大。
当 RS 使能且列选择器通高电平时,在电路原理上相当于对 PN 结的电容进行充电,但是充电后得到的电压值却有一定的随机性,一方面每个 PN 结的实际电容大小会服从一定的概率分布,结与结之间存在固定的偏差,这会构成一种固定模式噪声(Fixed Pattern Noise, FPN);另一方面由于电路中存在暗电流噪声,即使是同一个结每次充电后得到的实际电压也不完全一样,这就构成了另一种模式的噪声,它与 PN 结的结构、温度和结电容大小都有关,称为 kTC 噪声。
像素 kTC 噪声
在研究 PN 结的噪声特性时可将其简化为下图所示的由电阻电容形成的低通滤波网络。
可以证明,由电子热运动引起的宽带热噪声经 PN 结滤波后反应在结电容上的输出噪声功率用 kT/C 描述,其中 T 为 PN 结温度,C 为结电容,k 为常系数,因此合称 kTC 噪声。
主动像素 (Active pixel)
目前主流的 CMOS 传感器都采用 Active Pixel 结构设计。下图所示的 Active Pixel 结构称为 3T 结构,每个像素包含一个感光 PN 结和 3 个晶体管,即一个复位管 RST,一个行选择器 RS,一个放大器 SF。
3T 结构的工作方式是:
- 复位:使能 RST 给 PN 结加载反向电压,复位完成后撤销 RST。
- 曝光:与 Passive Pixel 原理相同。
- 读出:曝光完成后,RS 会被激活,PN 结中的信号被 SF 放大后读出。
- 循环:读出信号后,重新复位,曝光,读出,不断输出图像信号。
基于 PN 结的 Active Pixel 流行与 90 年代中期,它解决了很多噪声问题。但是由 PN 结复位引入的 kTC 噪声却并没有得到解决。
PPD 结构
为了解决复位 kTC 噪声,减小暗电流,在 3T 结构之后又出现了 PPD 结构(Pinned Photodiode Pixel),包括一个 PN 结感光区和 4 个晶体管,所以也称 4T 结构,它在 3T 结构的基础上增加了一个 TX 三极管起控制电荷转移的作用。
PPD 的出现是 CMOS 性能的巨大突破,它允许相关双采样(CDS)电路的引入,消除了复位引入的 kTC 噪声,运放器引入的 1/f 噪声和 offset 噪声。 它的工作方式如下:
- 曝光。
- 复位:曝光结束时使能 RST,将读出区(n+区)复位到高电平。
- 读复位电平:读出 n+区的电平,其中包含运放的 offset 噪声,1/f 噪声以及复位引入的 kTC 噪声,将读出的信号存储在第一个电容中。
- 电荷转移:使能 TX,将电荷从感光区完全转移到 n+区准备读出,这里的机制类似于 CCD 中的电荷转移。
- 读信号电平:将 n+区的电压信号读出到第二个电容。这里的信号包括:光电转换产生的信号,运放产生的 offset,1/f 噪声以及复位引入的 kTC 噪声。
- 信号输出:将存储在两个电容中的信号相减(如采用 CDS,即可消除 Pixel 中的主要噪声),得到的信号在经过模拟放大,然后经过 ADC 采样,即可进行数字化信号输出。
PPD 像素结构有如下优点:
- 读出结构(n+区)的 kTC 噪声完全被 CDS 消除。
- 运放器的 offset 和 1/f 噪声,都会因 CDS 得到明显改善。
- 感光结构因复位引起的 kTC 噪声,由于 PPD 电荷的全转移,变的不再存在。
- 光敏感度,它直接取决于耗尽区的宽度,由于 PPD 的耗尽区一直延伸到近 Si−SiO2 界面,PPD 的光感度更高。
- 由于 p-n-p 的双结结构,PPD 的电容更高,能产生更高的动态范围。
- 由于 Si−SiO2 界面由一层 p+覆盖,减小了暗电流。
PPD 共享结构
PPD 结构有 4 个晶体管,有的设计甚至有 5 个,这大大降低了像素的填充因子(即感光区占整个像素面积的比值),这会影响传感器的光电转换效率,进而影响传感器的噪声表现。为了解决这个问题又出现了 PPD 共享结构,像素的感光区和读出电路由 TX 晶体管隔开,相邻像素之间可以共用读出电路,如下图所示。
图中 2x2 像素共享一个读出电路,一共使用 7 个晶体管,平均一个像素 1.75 个晶体管。这样可以大大减少每个像素中读出电路占用的面积,提高填充因子。美中不足的是,由于这 2x2 个像素的结构不再一致,会导致固定模式噪声(FPN)的出现,需要在后续 ISP 处理中消除。
双相关采样(CDS)
双相关采样即 Correlated Double Samping,其基本思想是进行两次采样,先采样一个参考信号用于评估背景噪声,延迟很短时间后再采集目标信号,从第二次采样中减去参考信号即得到去除了大部分背景噪声的目标信号,其原理模型如下图所示。
CDS 成立的条件是在两次采样间背景噪声的幅度变化不大,因此它对去除固定噪声(FPN)和低频噪声效果比较理想,如 1/f 噪声,kTC 噪声等。
光谱响应曲线
下图是 IMX290 每个红绿蓝滤光片的光谱响应曲线。
这是人眼视锥细胞对光谱的响应曲线
由于人眼和 sensor 对光谱的感应曲线不同,同一个物体感知到的颜色不同。因此颜色需要一个转换关系。ISP 中的 CCM(色彩校正矩阵)就此诞生,利用一个 3x3 的矩阵,将 sensor 感知到的 RGB 颜色,校准成我们看到的 RGB 颜色。
Sensor 的曝光
sensor 的曝光时间和快门时间是一个概念,都是 sensor 的感光时间。曝光(快门)时间越长,图像就越亮。
当控制快门时间,仍然达不到期望的亮度,就需要调节 sensor 的感光度(ISO)。CMOS sensor 的感光度就是它的增益。增益是用模拟或数字的方法进行放大,不可避免的会放大噪声,因此拍摄时一般快门优先。
当拍摄高速运动的物体或者手抖的时候,容易产生运动模糊,就需要降低快门时间。
sensor 的曝光方式有两种,卷帘曝光和全局曝光。
卷帘曝光(rolling shutter)
- 一个 reset 信号负责将某一行像素清零,使其从零开始积累电荷。
- 一个 read 信号负责选择某一行,读出该行信号。
这两个信号的工作时序是 reset 信号在先,read 信号在后,之间相差一个恒定的间隔,这个间隔在空间上看是两个信号前后相差固定的行数,在时间上看是一行像素被清零后,等待固定的时间后即被读出。
显然,sensor read 信号与 reset 信号之间的时间间隔就是每个像素能够积累光信号的时间,也就是人们所熟知的“曝光时间(exposure time)”,在技术领域则更多会使用“积分时间(integration time)”这个术语,它一般是以行为单位的一个量,能够精确地反映像素曝光过程的物理本质和实现原理。
下图是卷帘曝光拍摄高速运动的物体的现象。
这是 IMX290 的 sensor 曝光与输出示意图
黄色区域是 sensor 处于感光的时间,蓝色区域是 sensor 每一行数据的输出时间,红色是曝光开始的时间。XHS 是进行每个操作的最小时间单位。
从时间先后来看,一幅图像是从第一行开始曝光,一个 XHS 之后,再从第二行开始曝光,依次类推。图像的第一行曝光结束后,进行输出,输出数据的时间是一个 XHS,依此类推。
卷帘曝光带来的问题:
- 日光灯下有横条纹。 日光灯属于频闪灯,跟当地的供电频率有关,如果当地的供电是 50Hz 的正弦波(国内),日光灯就会以 100Hz 的频率闪烁。sensor 每行的起始曝光时间是不同的,这就导致了每一行曝光时的亮度不同。因此会出现横条纹 解决方法: - 控制曝光时间是 1/100 的整数倍,这样每行的曝光时间都是一个周期的整数倍,亮度就保持一致了 - 控制帧率为 25/50 帧,不能解决横条纹的问题,但是可以让每帧图像中的横条纹固定在相同的位置。1/25 是 1/100 的整数倍,可以使不同图像中每一行曝光的开始时间都相差四个周期。保证了每张图像中同一行的亮度是一致的
- Rolling shutter(拍摄快速运动的物体会有失真)。 因为每一行曝光开始的时间不同,当物体快速运动时,每行抓拍下来的物体位置都不同,造成了物体的变形。 解决方法: - 加大图像输出的速度(提高帧率也可行,本质上改变的就是输出速度) - 调整抓拍的时间和角度,比如远处的车辆每帧移动的像素点较少,可以去抓拍稍远处的车辆 - 使用全局曝光的 sensor
Interlaced 曝光
为了改善 rolling shutter 曝光方式存在的问题,有人提出了 Interlaced 曝光和读出方式,如下图所示,新的曝光顺序将一帧拆分成 8 组,第一组包含行号 {0,8,16,24...},第二组包含行号 {1,9,17,25,...} ,以此类推,第八组包含行号 {7,15,23,31,....} 。这种曝光方式的优点是组与组之间的曝光延时为一帧时间的八分之一,以 1080p@30fps 为例,一帧的读出时间大致在 28ms 左右,在新的曝光方式下像素间的最大曝光延时仅为 3.5ms,可以更好地捕捉运动场景。
工频闪烁 (flicker)
flicker 的本质是像素曝光起始点相对交流电的相位关系在不断变化。这个问题不仅存在于一帧图像内部,在帧与帧之间也存在同样的问题。
以电频率 50Hz 为例,如果 sensor 工作在 25 或 50fps(frame per second),则帧频率刚好与电频率同步,每帧图像的 flicker 表现(明暗位置)与上一帧完全相同,所以明暗条纹在视频上是静止不动的。如果 sensor 工作在 30 或 60fps,则每帧的 flicker 与上一帧会产生固定的相移,视频上的明暗条纹图样会在画面垂直方向上缓慢移动。
全局曝光(global shutter)
每一行的起始曝光和终止曝光的时间一致,目前只有电警设备上用到,价格昂贵。因为电警设备有爆闪灯,爆闪灯亮的时间很短。如果使用卷帘曝光的 sensor,一幅图像才曝光几行灯就熄灭了,所以必须要用全局曝光的传感器。
与 CCD 对比
CCD 的一个主要优点在于所有像素共享同一个电荷-电压转换器,所以像素一致性非常好。相比之下 CMOS 每个像素都有自己专用的电荷-电压转换器,一致性很不容易控制。
当 CCD 像素数多于 200 万时,所有像素共用一个电荷-电压转换器会严重影响读出速度,所以此时会考虑把像素设计成两个或四个阵列,每个阵列配备专用的行缓冲和电荷-电压转换器,可以成倍加快读出速度。
参考文献
https://www.qinxing.xyz/posts/e6f0524a/
https://zhuanlan.zhihu.com/p/100777121