图像传感器基础知识介绍
目录
cmos sensor
1. 定义
2. 理论基础
3. 功能
4. Camera 中的作用
成像
一、定义
二、核心概念
三、理论知识
1. 单像素:4T + CDS(信号怎么来)
2. 阵列读出:电荷如何变成一帧图
3. 像素阵列分区:有效区不是全部
四、一句话串起来
卷帘曝光
一、定义
二、理论知识
1. 某一时刻阵列上有几类行(对应左图中间色块)
2. 时序:Sensor Line vs Time(对应右图斜带)
3. 帘幕类比
4. 和全局快门对比
三、常见现象(开发/调参要知道)
四、和前面成像知识的衔接
五、一句话总结
帧结构
一、定义
二、时间层级:P_clock → Tline → Tframe
1. Pixel Clock(像素时钟,P_clock)
2. Line Time(行时间,Tline)
3. Frame Time(帧时间,Tframe)
三、消隐:水平消隐与垂直消隐
1. 水平消隐(H-blank / Line Blanking)
2. 垂直消隐(V-blank / Frame Blanking)
3. 曝光与行时间的关系
四、空间帧结构(以 IMX689 类为例)
五、和卷帘曝光的衔接
六、一句话总结
曝光和噪声
一、曝光时间:定义
二、曝光 vs 运动模糊
三、场景经验与曝光取舍
四、噪声:定义与三类核心噪声
五、噪声从哪来(读出链路)
六、噪声随信号怎么变
七、曝光和噪声怎么连起来
八、一句话
cmos sensor
1. 定义
CMOS Sensor:相机核心元件,位于 镜头与 ISP 之间,把镜头汇聚的 光信号 转成 ISP 可处理的 电信号 / 数字信号。
2. 理论基础
信号变换主线:
光子 → 像元电荷 → 模拟电压 → 列放大 → ADC → 数字图像 → ISP
- 像素阵列:完成光电转换
- 行驱动 + 时序:决定读哪一行、何时读
- 列放大 + 列 ADC:列并行读出并数字化(现代 CMOS 常见结构)
- 时钟 / 偏置:保证电路稳定工作
3. 功能
| 模块 | 作用 |
|---|---|
像敏单元阵列 | 感光 |
行驱动器 | 按行选通 |
列模拟读出 | 取出并放大模拟信号 |
时序控制逻辑 | 曝光与读出节拍 |
AD 转换器 | 模拟 → 数字 |
数据输出接口 | 向 ISP 送图 |
控制接口 | 配置曝光、增益、mode |
4. Camera 中的作用
光线 → Lens → CMOS → ISP → HAL/App
- 成像数据源:提供原始数字图(多为 RAW)
- 3A 执行端:曝光 / 增益等最终落到 Sensor 寄存器
- 规格边界:分辨率、帧率、噪声、动态范围等受 Sensor 能力约束
成像
一、定义
成像(Imaging):把场景中的光信息,转换成后续系统可用的数字图像信号的过程。
在 Camera 链路里,成像的核心发生在 Sensor:
光子 → 电荷 → 电压 →(放大)→ 数字码值 → 输出 RAW/数字图像
下雨接水——雨水是光子,桶是像素,接水过程是曝光;接完后量水深(读出)、倒空(复位),再接下一次。
二、核心概念
| 概念 | 含义 |
|---|---|
像素 Pixel | 最小感光单元,对应阵列中的一个点 |
PPD | Pinned Photodiode,钉扎光电二极管,感光并积累电荷,暗电流更低 |
曝光 Exposure | PPD 积累光生电荷的时间 |
FD | Floating Diffusion,浮置扩散节点,电荷在此转成电压 |
4T | 四管像素:TG / RST / SF / SEL(现代 CIS 主流) |
CDS | 相关双采样:先采 |
行选 / 列选 | 先选行接到列线,再经增益与 ADC 数字化 |
Active / Dummy / OPB | 有效区 / 哑元区 / 光学黑区,职责不同 |
BLC | 黑电平校正,用 OB 估计“无光基线”并扣除 |
三、理论知识
1. 单像素:4T + CDS(信号怎么来)
典型步骤(与课件一致):
- PPD 复位:RST、TG 打开,清掉 PPD 残荷
- 开始曝光:TG 关闭,PPD 积分光生电荷
- 采样复位电压
Vrst:经 SF、SEL 读 FD - 曝光结束并转移:TG 打开,电荷转入 FD,电压下降
- 采样信号电压
Vsig
有效信号:
Vsignal=Vrst−VsigVsignal=Vrst−Vsig
公开理论补充:
- TG 把 积分 与 读出节点 分开,才能做真正的 CDS,压低复位噪声(kTC)
- PPD 把电荷阱远离硅表面,有利于降暗电流、改善蓝光响应
- 电荷需尽量 完全转移,否则会出现残像(lag)
物理叠层大致为:微透镜 → 彩色滤光片 → 晶体管区 → 光电二极管 → 硅衬底。
2. 阵列读出:电荷如何变成一帧图
- 像素内 电荷/电压转换(CVC)
- 行选:该行各像素接到各自列线
- 列选 + 可编程增益:选出列信号并放大(增益控制)
- ADC:模拟 → 数字
- 经接口(如 MIPI)输出;部分处理可在 Sensor 片内或后续 ISP 完成
现代手机更多是 列并行 ADC(每列一路转换),与“逐列开关扫一遍”是同一思想的高速实现。
3. 像素阵列分区:有效区不是全部
| 区域 | 作用 |
|---|---|
Active | 真正成像(如 8000×6000 ≈ 48M) |
Opened Dummy | 保证边缘工艺一致性;给 demosaic/滤波提供邻域 |
OPB(Optical Black) | 遮光,只反映暗电流与电路偏置,供 BLC |
补充理论:
- 暗电流随 温度、曝光、增益、位置 变化
- ISP 常按增益/温度用不同黑电平;Bayer 常按 R/Gr/Gb/B 分别估 OB
- 黑电平不准会出现发灰、发黑不够、色偏、动态范围被吃掉等问题
四、一句话串起来
成像 = 像素桶接光子(曝光)→ 4T 转移并 CDS 得干净电压 → 行列读出放大 ADC 成数字 → 结合 Dummy/OPB 做边缘与黑电平支撑,最终输出可供 ISP 使用的图像数据。
卷帘曝光
一、定义
卷帘曝光(Rolling Shutter) 是 CMOS 传感器最常见的电子快门方式:
不是整幅图同时曝光,而是按行依次复位、依次读出。
某一行的 曝光时间 = 该行 Reset 到 Read 之间的时间间隔。
两路控制信号:
| 信号 | 作用 |
|---|---|
Reset(复位) | 清掉该行电荷,标记 开始曝光 |
Read(读出) | 读出该行已积累电荷,标记 结束曝光 |
空间上看:Reset 行与 Read 行始终隔开固定行数,像两道帘幕从上往下滚。
时间上看:每一行曝光时长相同,但 开始/结束时刻逐行错开。
二、理论知识
1. 某一时刻阵列上有几类行(对应左图中间色块)
从上到下大致是:
- 已读取、自由曝光(白):本帧已读完
- 读出行(红):当前正在读
- 受曝光控制(黄):正在为本帧积分
- 复位行(绿):正在清电荷、开始新曝光
- 未读取、自由曝光(白):还没轮到
Reset 和 Read 像两把“扫描刷”,保持固定间距往下扫。
2. 时序:Sensor Line vs Time(对应右图斜带)
- 纵轴:行号 0 → N−1
- 横轴:时间
- 一条斜带:各行开始曝光(Reset)
- 平行的另一条斜带:各行结束曝光(Read)
- 同一行上两斜带的水平距离 = 曝光时间(各行一样)
- 首行与末行的时间差 ≈ 整帧读出时间(readout / scan time)
例:若每行读出 10 μs、共 2048 行,则顶到底大约晚 2 ms。运动畸变主要取决于 读出时间,不只取决于曝光时间。
3. 帘幕类比
高速快门时(如 1/1000 s),“前帘(Reset)”和“后帘(Read)”形成一条很窄的缝,整幅从未同时全开。
这就是机械焦平面快门的电子版,也是闪光同步难、高速运动会变形的原因。
4. 和全局快门对比
| 卷帘 Rolling | 全局 Global | |
|---|---|---|
曝光 | 逐行开始、逐行结束 | 所有像素同时开始、同时结束 |
一帧时刻 | 顶底不是同一瞬间 | 整幅同一瞬间 |
运动 | 易斜切、果冻、拉伸 | 几何更稳 |
闪光/频闪 | 易出现条带(半幅亮) | 整幅可同步 |
代价 | 电路简单、功耗/噪声常更好、手机主流 | 像素更复杂、成本更高 |
还有一种 Global Reset:全部同时开始积分,但仍逐行结束读出——畸变减轻,但可能出现 上暗下亮(后面的行积分更久)。
三、常见现象(开发/调参要知道)
- Skew 斜切:快摇镜头时竖线变斜
- Jello 果冻:手抖/振动时画面像果冻晃
- Smear 拉伸:高速物体被拉长
- Banding 条带:闪光灯、PWM 灯只照亮部分行
- Flash 同步难:高速时没有“全开”瞬间
静止场景几乎看不出;高速、振动、闪光时才会明显。
四、和前面成像知识的衔接
4T 像素讲的是 单行怎么积分、怎么 CDS 读出;
卷帘讲的是 这些行在时间上怎么排队:
单像素:Reset → 曝光积分 → 转移/CDS 读出
整阵列:第 0 行先 Reset/先读 → 第 1 行稍晚 → … → 最后一行最晚
所以:曝光时间由 Reset–Read 间隔 决定;果冻由 行与行之间的读出延迟 决定。
五、一句话总结
卷帘曝光 = CMOS 用 Reset/Read 两道扫描帘按行开关曝光;每行曝光时长相同,但时刻逐行错开,因而高速运动会产生果冻/斜切,闪光也难整幅同步。
帧结构
一、定义
帧结构(Frame Structure):CMOS 完成 一帧图像采集与输出 时,在时间和空间上如何组织数据。
它包含两层含义:
- 时间结构:像素时钟 → 行时间 → 帧时间(再叠加消隐)
- 空间/数据布局:一帧里不只是有效像素,还有嵌入行、PDAF、统计/陀螺等 metadata,以及行消隐、帧消隐
一句话:
一帧 = 按 Pixel Clock 吐出的若干行;每行有有效数据 + 行消隐;整帧有有效行 + 元数据行 + 垂直消隐。Hsync 管行,Vsync 管帧。
二、时间层级:P_clock → Tline → Tframe
时间层级
1. Pixel Clock(像素时钟,P_clock)
- ADC 读出 一个像素 所需时间,是 Sensor 时序的最小节拍
- TP=1/P_clockTP=1/P_clock
2. Line Time(行时间,Tline)
- 完成 一行 的复位、曝光相关操作、电荷转移、读出等所需时间
- Tline=N×(1/P_clock)Tline=N×(1/P_clock)
- NN 在调校/mode 配置时确定(对应 datasheet 里的
LINE_LENGTH_PCK) - 一行内部有 TX / RST / SEL 等脉冲;两次 TX 之间可对应最小积分
Min_int - 课件中一行可有多种搭配:Reset M + Read D、Reset D + Read M、Reset N + Read N、Reset M + Read N(Dummy 行与有效行交错,服务卷帘与 CDS)
3. Frame Time(帧时间,Tframe)
- Tframe=H×TlineTframe=H×Tline
- HH 是一帧总行数(有效行 + 消隐行等,对应
FRAME_LENGTH_LINES) - 帧率 FPS≈1/TframeFPS≈1/Tframe
对应同步信号:
- Hsync:一行一个脉冲,周期 ≈
Tline - Vsync:一帧一个周期,中间包含很多 Hsync,末尾常有
V_blank
三、消隐:水平消隐与垂直消隐
消隐
1. 水平消隐(H-blank / Line Blanking)
- 一行有效像素吐完后,到下一行开始前的空闲段
- 给内部逻辑用(复位/读出相位切换等)
- 拉长行周期
Tline→ 每行曝光粒度变化,也会 间接改帧率
2. 垂直消隐(V-blank / Frame Blanking)
- 一帧有效行结束后,给下一帧做准备
- 最短通常 ≥ 1 × Tline
- 拉长 V_blank 是调 FPS 的常用手段(总行数变多,
Tframe变长,帧率下降)
3. 曝光与行时间的关系
卷帘下,曝光常按 行时间的整数倍 配置:
Texp=X×TlineTexp=X×Tline
这与上一节「Reset 行与 Read 行隔开固定行数」是同一件事:隔了 XX 行,曝光就是 XX 个Tline。
四、空间帧结构(以 IMX689 类为例)
空间帧结构
一帧在输出流里通常是一张「大表」:
| 区域 | 作用 |
|---|---|
Embedded Data | 帧头嵌入信息(寄存器/状态等) |
Active Pixel | 真正成像的 RAW(Bayer) |
PDAF 行 | 相位对焦像素数据 |
User Defined | GYRO / FLICKER / AEHIST 等统计与辅助数据 |
Line Blanking | 每行右侧的水平消隐 |
Frame Blanking | 帧底垂直消隐 |
寄存器侧两个关键尺寸:
- 横向总长:
LINE_LENGTH_PCK(含有效像素 + 行消隐) - 纵向总长:
FRAME_LENGTH_LINES(含有效行 + 嵌入/统计行 + 帧消隐)
同步:
- Vsync:帧单位,FS(Frame Start)/ FE(Frame End)
- Hsync:行单位,一帧内有很多个 Hsync
- 脉宽、极性通常可配(
VSYNC_WID/HSYNC_WID)
软件解析 RAW 时,必须按这个布局 把有效像素和 metadata 拆开,不能把嵌入行、GYRO、直方图当成画面。
五、和卷帘曝光的衔接
P_clock 决定“吐一个像素多快”
Tline 决定“扫完一行(含消隐)要多久”
行间距 X 决定“曝光 = X × Tline”
Tframe 决定“一帧多久 → FPS”
Reset/Read 逐行错开 → 卷帘
所以:改曝光多半改 行间隔 / 积分行数;改帧率多半改 FRAME_LENGTH(V_blank)或 LINE_LENGTH(H_blank),并受 MIPI 带宽约束。
六、一句话总结
帧结构 = 用 P_clock 拼出行、用行拼出帧;消隐用来做内部操作并调节曝光/帧率;输出的一帧里既有画面 RAW,也有 PDAF/统计/嵌入数据,由 Hsync/Vsync 划界。
曝光和噪声
一、曝光时间:定义
曝光时间(Exposure Time):像素收集光子、进行积分的时长。
在卷帘里,它等于该行 Reset → Read 的间隔,常写成 X×TlineX×Tline。
物理含义:时间越长,桶里接的“雨水”(光子)越多,画面越亮;同时若物体在动,光斑会扫过更多像素。
二、曝光 vs 运动模糊
曝光与运动模糊
相对运动时,曝光窗口内同一物体的像会落在不同像素上,形成 运动模糊(拖影)。物体越快、曝光越长,拖得越厉害。
| 快门 | 典型效果 |
|---|---|
1/2000 ~ 1/250 s | 冻结动作,轮廓清楚 |
1/30 ~ 1/15 s | 边缘开始糊 |
1/8 ~ 1/3 s | 严重拖影,主体难辨 |
风车、弹琴的手,都是同一原理的直观例子。
三、场景经验与曝光取舍
场景与取舍
课件里的经验值:
- 道路监控 ITS:通常 < 1/60 s,避免车糊成条
- 飞鸟:大约 ≤ 1/125 s(约 10 ms) 才容易冻住翅膀
- 子弹/超高速:到 μs ~ ns 量级
夜景车灯则是反向用法:1/13 s → 0.5 s → 2 s → 10 s,轨迹越来越长,静止景物仍相对清晰。
和噪声绑在一起的取舍:
- 曝光加长:进光多、更亮;易糊;暗电流/热噪声随时间累积
- 曝光缩短:动作冻住;更暗;往往要 加增益,读出噪声被一起放大
手机 AE 本质就是在 糊、亮、噪 三者里找平衡。
四、噪声:定义与三类核心噪声
噪声链路与组成
噪声:器件在处理过程中自己产生的、与目标景物无关 的扰动。
课件强调的三类:
| 符号 | 名称 | 含义 |
|---|---|---|
σR | 读出噪声 Readout Noise | 电路读出引入;设计决定;对应“改变 ADC 1 bit 大约要多少电子”的下限 |
σS | 光子散粒噪声 Photon Shot | 光子到达是随机的,服从泊松统计,随信号增大而增大 |
σD | 暗电流散粒噪声 Dark Shot | 无光时硅中热激发电子形成暗电流,仍有统计涨落 |
有效噪声(不相关项平方和开根):
σeff=σD2+σR2+σS2σeff=σD2+σR2+σS2
五、噪声从哪来(读出链路)
按信号流,各段都会“加噪”:
| 环节 | 常见噪声 |
|---|---|
复位 Reset | FPN、复位噪声(kTC,CDS 可压) |
传感器感光 | 光子散粒、暗电流散粒、FPN、PRNU |
像素内放大 | 热噪声、1/f、FPN |
列电路 | 热噪声、1/f、FPN、复位噪声 |
片上放大 | 热噪声、1/f |
ADC | 量化噪声 |
FPN:固定图案噪声,帧间位置较稳。
PRNU:像素响应不均匀,强光下更明显。
1/f:低频闪烁噪声。
六、噪声随信号怎么变
在“平均信号 vs 噪声”的 log 图上,大致三段:
- 低信号 / 暗部:读出噪声托底,曲线接近水平
- 中等信号:光子噪声主导,大约 ∝S∝S
- 高信号接近满阱:PRNU 一类乘性不均匀开始显眼
所以:暗处噪主要看 读出噪声 + 暗电流;亮处噪主要看 光子统计 + PRNU。加增益会把暗部读出噪声抬高。课件中 IMX689/766/789 一类指标会给 Read Noise、DR、SNR,夜景/Qbin 模式往往读出噪声更低、DR/SNR 更好。
七、曝光和噪声怎么连起来
曝光↑ → 光子↑ → 信号↑ → 光子噪声↑但 SNR 通常变好;暗电流↑;运动模糊↑
曝光↓ → 更暗 → 常加 Gain → 读出噪声被放大;动作更清晰
和前面知识的接口:
- 曝光时长落在帧结构的 X×TlineX×Tline
- 暗电流校正要靠阵列里的 OPB + BLC
- 4T + CDS 主要打掉 复位噪声
八、一句话总结
曝光是“接光多久”:短则曝光短但易暗、易加增益变噪;长则更亮但易糊、暗电流升。噪声是链路各段叠加上的无关扰动,暗部看读出/暗电流,亮部看光子散粒和 PRNU。
