按下手机的快门按钮,一张照片就诞生了。但在这不到一秒的时间里,发生了什么?

光线穿过镜头,撞击传感器表面。成千上万个微小的光电二极管同时工作,将光子转化为电子。这些电子经过放大、量化、处理,最终变成你看到的图像。

这个过程涉及物理、电子工程、信号处理多个学科的交叉。理解它,你就能理解为什么夜拍总是满是噪点、为什么像素数量不等于画质、以及计算摄影如何用软件弥补硬件的局限。

光电转换:爱因斯坦的诺贝尔奖

一切始于光电效应。1905年,爱因斯坦发表论文解释了这个现象:当光子撞击金属表面时,会将电子从原子中"踢"出来。这个发现为他赢得了1921年的诺贝尔物理学奖。

在图像传感器中,材料不是金属,而是硅。硅的原子结构让它成为理想的半导体材料。每个像素核心是一个光电二极管——本质上是一个被反向偏置的PN结。

当光子进入硅晶体时,如果能量足够(波长小于1100纳米),就会产生一个电子-空穴对。在电场的作用下,电子和空穴向相反方向移动,形成可测量的电流。

graph LR
    A[光子入射] --> B[硅晶格]
    B --> C[电子-空穴对产生]
    C --> D[电场分离]
    D --> E[光电流输出]

这里的关键参数是量子效率(Quantum Efficiency, QE)。它定义为:产生的电子数量除以入射的光子数量。

$$QE = \frac{N_{electrons}}{N_{photons}} \times 100\%$$

理想情况下,量子效率应该接近100%。但实际上,硅传感器的量子效率通常在40%-60%之间。原因很直观:

  • 紫光光子穿透太浅,在表面层被吸收
  • 红光光子穿透太深,在光电二极管下方才被吸收
  • 硅表面有反射损失

硅的量子效率随波长变化显著。峰值通常在500-600纳米(绿光),可达60%-70%。但在400纳米(紫光)和800纳米(红光)处会急剧下降。这就是为什么相机在红色和紫外波段的表现总不如绿色。

延伸思考:为什么量子效率不可能是100%

假设量子效率达到100%,每个光子都产生一个电子。这意味着什么?

传感器的读出电路会立刻饱和。一个典型的1.4微米像素,满阱容量大约是5000-15000个电子。如果每个光子都产生一个电子,在正常日光下,像素会在微秒级饱和。

所以,量子效率实际上是传感器设计中的权衡之一。更高的量子效率需要更大的光电二极管(占用更多像素面积),或者更厚的硅层(增加串扰)。

延伸思考:为什么红外能看到

硅对光的响应范围大约是350-1100纳米。这包含了可见光(400-700纳米)和部分红外(700-1100纳米)。这正是为什么很多相机能拍摄红外照片——只需移除镜头前的红外截止滤镜。

但超过1100纳米的光子能量太低,无法激发电子。这解释了为什么红外截止频率在物理学上是硬限制——你无法用硅传感器检测超过1100纳米的红外光。

动态范围的本质

动态范围不是一个营销数字,而是传感器物理特性的直接体现。

$$DR = 20 \times \log_{10}\left(\frac{FWC}{N_{read}}\right)$$

其中FWC是满阱容量,$N_{read}$是读出噪声。以分贝为单位的动态范围直接反映了传感器能同时记录最亮和最暗细节的能力。

一个关键认知:动态范围与像素尺寸直接相关。更大的像素有更大的满阱容量。但这带来另一个问题:像素越大,分辨率越低。

这就是为什么在相同传感器尺寸下,1200万像素的传感器动态范围通常优于4800万像素——后者每个像素更小,满阱容量更低。

噪声的物理学:读出噪声 vs 散粒噪声

两种噪声的性质截然不同。理解它们的区别,是理解相机"为什么会在某些情况下噪点多"的关键。

graph TB
    subgraph 噪声来源
    A[散粒噪声]
    B[读出噪声]
    C[暗电流噪声]
    end
    A --> D[与信号强度平方根成正比]
    B --> E[与信号强度无关]
    C --> F[与曝光时间和温度相关]
    D --> G[低光时相对影响大]
    E --> H[高ISO时被放大]
    F --> I[长曝光时显著]

散粒噪声来自光子到达的随机性。即使光强完全恒定,每个像素接收到的光子数量也会有统计波动。这遵循泊松分布:

$$\sigma_{shot} = \sqrt{N}$$

其中$N$是平均光子数。散粒噪声无法消除——它是物理学基本原理决定的。

读出噪声来自读出电路:放大器的热噪声、ADC的量化误差等。这部分噪声与信号强度无关,每次读取都存在。

在光线充足时,信号强,散粒噪声也强,但相对比例小($\sigma/N = 1/\sqrt{N}$),信噪比高。在光线不足时,信号弱,读出噪声占主导地位,信噪比急剧下降。

ISO与噪声的真相

一个常见的误解:高ISO会产生更多噪声。

实际情况:提高ISO是在放大信号,噪声的绝对量并没有增加

当光线不足时,你有两个选择:

  1. 保持低ISO,后期提亮(放大读出噪声)
  2. 提高ISO,在模数转换前放大信号(读出噪声的相对贡献更小)

在许多现代传感器中,方案2的信噪比甚至更好。因为高ISO使用更高的模拟增益,减少了ADC噪声的贡献。

flowchart LR
    subgraph 低ISO路径
    A1[弱信号] --> B1[低增益放大] --> C1[ADC转换] --> D1[后期提亮]
    end
    subgraph 高ISO路径
    A2[弱信号] --> B2[高增益放大] --> C2[ADC转换] --> D2[输出]
    end
    B1 -.->|读出噪声未被放大| E1[信噪比更差]
    B2 -.->|读出噪声相对更小| E2[信噪比更好]

噪声看起来更明显,是因为信号被放大了,而散粒噪声(与信号绑定)也被同步放大了。噪声的相对比例并没有因为提高ISO而恶化。

暗电流:热噪声的具象化

即使在完全黑暗中,传感器也会输出信号。这就是暗电流——由热激发的电子。

暗电流的关键特性:

$$I_{dark} \propto t \times e^{-E_g/2kT}$$

其中$t$是曝光时间,$E_g$是硅的带隙,$k$是玻尔兹曼常数,$T$是绝对温度。

暗电流每5-10°C翻倍。这解释了为什么天文相机需要制冷——将传感器从室温(25°C)降到-20°C,暗电流可以降低约32倍。

在手机相机中,长曝光时暗电流会累积,形成"热点像素"——那些暗电流特别高的像素会在图像中显示为亮点。这就是为什么手机需要长曝光降噪功能——它会识别并减去这些热点像素的贡献。

满阱容量:饱和的物理学

每个像素像一个水桶,收集光生电子。当"水桶"装满时,就达到满阱容量。

$$FWC \approx C_{ox} \times A_{pixel}$$

其中$C_{ox}$是单位面积容量(与工艺相关),$A_{pixel}$是像素面积。

像素尺寸与满阱容量的关系

像素尺寸 典型满阱容量
0.8 µm ~2,000 e⁻
1.4 µm ~8,000 e⁻
2.4 µm ~25,000 e⁻
4.0 µm ~70,000 e⁻
6.0 µm ~150,000 e⁻

为什么这很重要?

当像素饱和时:

  1. 色彩信息丢失(高光溢出)
  2. 相邻像素的串扰增加
  3. 信号不再线性响应光强

这就是为什么曝光过度的高光部分是纯白——像素已经饱和,无法区分更亮的细节。

色彩还原:拜耳阵列的妥协方案

每个像素只能记录光的强度,无法区分颜色。如何实现彩色成像?

1976年,柯达公司的Bryce Bayer提出了一个巧妙的方案:在像素上方放置滤色片,让每个像素只能看到一种颜色。

R G R G R G
G B G B G B
R G R G R G
G B G B G B

这就是拜耳阵列。注意规律:绿色像素是红蓝的两倍。

为什么绿色多一倍?

人眼对绿色最敏感。绿色像素多一倍,能更好捕捉亮度信息。在去马赛克时,亮度信息的准确性对图像质量影响最大。

去马赛克:从不完整到完整

每个像素只有一种颜色信息,需要通过插值推断另外两种颜色。这个过程叫去马赛克(Demosaicing)。

最简单的方法是双线性插值:

对于绿色像素(缺失R和B):

$$G = G_{pixel}$$

$$R = \frac{R_{left} + R_{right}}{2}$$

$$B = \frac{B_{top} + B_{bottom}}{2}$$

但这种方法在边缘处会产生伪影。现代算法会考虑边缘方向:

# 简化的边缘感知去马赛克
def demosaic_edge_aware(bayer):
    for each pixel:
        # 计算梯度方向
        gradient = calculate_gradient(neighbors)
        # 沿边缘方向插值
        color = interpolate_along_edge(gradient, neighbors)

去马赛克伪影

  1. 拉链效应:在高对比度边缘出现锯齿
  2. 摩尔纹:拍摄规则纹理时出现的彩虹图案
  3. 颜色混淆:细小细节被错误着色

这些伪影正是为什么拍摄建筑、织物等规则纹理时容易出现奇怪图案的原因。

像素架构演进:从3T到堆栈式

3T像素:最简设计

最基础的CMOS像素包含三个晶体管(3T):

graph LR
    subgraph Pixel
    PD[光电二极管]
    RST[复位晶体管]
    SF[源跟随器]
    RS[行选择]
    end
    PD --> RST --> SF --> RS

工作流程:

  1. 复位:清除光电二极管中的电荷
  2. 积分:光生电荷累积
  3. 读出:选择行,输出信号

4T像素:相关双采样

3T像素的问题:复位噪声。每次复位后,电容上会残留随机电荷。

4T像素增加了传输门,允许相关双采样:

  1. 先读取复位后的噪声电平
  2. 再读取信号电平
  3. 相减得到真实信号

这种方法可以消除复位噪声,代价是额外的晶体管占用像素面积。

从前照式到背照式

前照式(FSI):光线先经过金属布线层,再到达光电二极管。

问题:

  • 金属线会阻挡部分光线
  • 像素越小,金属占比越大,量子效率越低

背照式(BSI):将硅基底减薄,让光线从背面进入,直接照射光电二极管。

graph TB
    subgraph FSI
    L[光线] --> M[金属层] --> P[光电二极管]
    end
    subgraph BSI
    L2[光线] --> P2[光电二极管] --> M2[电路层]
    end

量子效率提升显著:BSI传感器峰值量子效率可达70%-90%,而FSI通常只有40%-60%。

但BSI制造更复杂:

  • 需要将硅减薄到几微米
  • 需要背面处理工艺
  • 成本更高

堆栈式传感器:速度的革命

堆栈式传感器将光电二极管阵列和信号处理电路分开到两层芯片:

┌─────────────────┐
│  光电二极管层   │  <- 只负责光电转换
├─────────────────┤
│  信号处理电路层  │  <- ADC、数字处理等
└─────────────────┘

优势:

  • 像素区域100%用于感光
  • 读出速度大幅提升(并行处理)
  • 可以集成更复杂的ADC和处理电路

代价:

  • 芯片成本更高
  • 层间连接需要精确对准

ISP处理流水线:从RAW到成品

RAW文件记录的是传感器直接输出——每个像素只有一个颜色值,线性响应光强。ISP(图像信号处理器)将这个"原始"数据转换为美观的图像。

完整的ISP流水线

flowchart TB
    A[RAW数据] --> B[黑电平校正]
    B --> C[坏像素校正]
    C --> D[白平衡]
    D --> E[去马赛克]
    E --> F[色彩校正]
    F --> G[降噪]
    G --> H[锐化]
    H --> I[伽马校正]
    I --> J[色彩空间转换]
    J --> K[JPEG/HEIF编码]

黑电平校正

传感器即使在完全黑暗时也会输出非零值(暗电流+读出噪声偏移)。黑电平校正减去这个基准值:

$$V_{corrected} = V_{raw} - V_{black}$$

这个值需要准确测量,否则会出现:

  • 校正过低:暗部细节丢失
  • 校正过高:暗部偏绿(暗电流光谱特性)

白平衡

不同光源的色温不同。白平衡的目标是让白色物体在任何光源下都呈现中性灰。

简化模型:

$$R' = R / G_r$$

$$G' = G$$

$$B' = B / G_b$$

其中$G_r$和$G_b$是红蓝通道相对于绿色的增益系数。

色彩校正矩阵

传感器的RGB响应与人眼的色彩感知不完全匹配。需要通过3x3矩阵转换:

$$\begin{bmatrix} R' \\ G' \\ B' \end{bmatrix} = \begin{bmatrix} a_{11} & a_{12} & a_{13} \\ a_{21} & a_{22} & a_{23} \\ a_{31} & a_{32} & a_{33} \end{bmatrix} \begin{bmatrix} R \\ G \\ B \end{bmatrix}$$

这个矩阵通常基于标准色彩空间(如sRGB)计算,确保图像在不同设备上显示一致。

降噪:保留细节与消除噪声的平衡

降噪的核心困境:如何在去除噪声的同时保留细节?

双边滤波:考虑空间距离和像素值差异

$$w(p) = \exp\left(-\frac{||p-q||^2}{2\sigma_d^2} - \frac{(I_p - I_q)^2}{2\sigma_r^2}\right)$$

非局部均值:搜索整幅图像中的相似块

$$I'(p) = \frac{\sum_q w(p,q) I_q}{\sum_q w(p,q)}$$

现代ISP使用深度学习模型进行降噪,可以更好地理解图像内容,区分噪声和细节。

锐化:增强边缘的艺术

锐化的目标是增强边缘对比度,同时避免放大噪声。

非锐化掩蔽:检测并保护已经锐利的区域

$$I_{sharp} = I + \alpha \cdot \text{Laplacian}(I) \cdot M_{mask}$$

自适应锐化:根据局部对比度调整锐化强度

$$\alpha(x,y) = \alpha_{base} \cdot \left(1 - \frac{\sigma_{local}}{\sigma_{max}}\right)$$

伽马校正

传感器的输出是线性的,但人眼的感知是非线性的。伽马校正确保图像显示符合人眼感知:

$$V_{display} = V_{linear}^{1/\gamma}$$

典型值:$\gamma \approx 2.2$(sRGB标准)

镜头阴影校正

镜头边缘的光学特性导致图像边缘变暗。需要通过增益图补偿:

$$G(x,y) = \frac{I_{center}}{I(x,y)}$$

这个增益图通常在工厂校准时测量,存储在相机固件中。

计算摄影:用算法弥补硬件

多帧堆栈降噪

拍摄多张照片,对齐后平均。信噪比提升:

$$SNR_{stacked} = SNR_{single} \cdot \sqrt{N}$$

N帧堆栈后,噪声降低$\sqrt{N}$倍。4帧堆栈可以降低一半噪声,16帧降低四分之三。

挑战

  • 需要精确对齐(亚像素级)
  • 运动物体需要分离处理
  • 需要在短时间内完成(手持拍摄)

对齐算法

  1. 特征检测(角点、边缘)
  2. 特征匹配
  3. 单应性矩阵估计
  4. 图像变换

HDR合成:扩展动态范围

不同曝光的照片组合,保留各自的优点:

短曝光保留高光细节,长曝光保留暗部细节。合并后:

$$I_{HDR}(x) = \begin{cases} I_{short}(x) & \text{if } I_{short} < T_{sat} \\ I_{long}(x) & \text{otherwise} \end{cases}$$

其中$T_{sat}$是饱和阈值。

Ghosting问题:运动物体在合并时出现残影。现代算法会检测运动区域,只使用单帧或特殊处理。

夜景模式:在极限弱光下成像

夜景模式是极限挑战:

  • 每个像素可能只有几个光子
  • 散粒噪声极强
  • 需要长时间曝光(暗电流累积)

解决方案

  1. 多帧长时间曝光堆栈
  2. AI去马赛克(针对低信噪比优化)
  3. AI降噪(学习噪声模式)
  4. 智能曝光选择(针对不同区域选择不同曝光)

像素合并:等效大像素

将相邻像素的电荷合并:

$$Q_{merged} = Q_1 + Q_2 + Q_3 + Q_4$$

优势:

  • 满阱容量增加4倍
  • 读出噪声只贡献一次
  • 信噪比提升2倍(理论)

代价:

  • 分辨率降低4倍
  • 空间细节丢失

这就是为什么4800万像素的手机拍夜景时,实际输出是1200万——4合1像素合并。

快门类型:卷帘vs全局

卷帘快门:逐行读取

CMOS传感器通常采用卷帘快门:逐行曝光、逐行读取。

Row 1:  ████████░░░░░░░░
Row 2:   ████████░░░░░░░░
Row 3:    ████████░░░░░░░░
        |─────|─────|
         t1    t2    t3

每行的曝光时间不同,当拍摄运动物体时会产生畸变:

果冻效应

  • 垂直物体倾斜
  • 旋转物体变形
  • 快速移动物体拉长/压缩

全局快门:同时曝光

全局快门让所有像素同时开始和结束曝光:

All Rows: ████████
              ↓
           Shutter Closes
              ↓
           All Read Out

优势:

  • 无运动畸变
  • 高速摄影准确

代价:

  • 需要每个像素额外的存储电容(增加像素面积)
  • 量子效率略低
  • 成本更高

自动对焦:相位检测原理

相位检测对焦(PDAF)

将入射光分成两束,检测它们的相位差:

graph LR
    L[入射光] --> S[分束器]
    S --> A[左光束]
    S --> B[右光束]
    A --> LA[左侧像素]
    B --> RA[右侧像素]
    LA --> C[相位差计算]
    RA --> C
    C --> D[对焦距离]

当对焦准确时,两束光在传感器上重合,相位差为零。当失焦时,两束光分离,产生相位差。

$$\Delta x = f \cdot \tan(\theta)$$

其中$\Delta x$是传感器上的位移,$f$是焦距,$\theta$是分束角度。

片上PDAF

在传感器上嵌入特殊的PDAF像素,这些像素的微透镜被设计为只接收特定方向的光:

┌─────────┬─────────┐
│  左遮蔽  │  右遮蔽  │   <- PDAF像素
│  ▓▓▓▓▓  │  ▓▓▓▓▓  │
├─────────┼─────────┤
│   普通   │   普通   │   <- 成像像素
│   像素   │   像素   │
└─────────┴─────────┘

双像素技术:每个像素都能做相位检测,无需特殊PDAF像素。代价是更复杂的读出电路。

传感器尺寸:不只是画幅

传感器尺寸的影响远超"画幅大小"这个表象。

画幅与等效焦距

$$f_{equivalent} = f_{actual} \times \frac{sensor_{size}}{full\_frame}$$

APS-C(约1.5x裁剪)传感器上,50mm镜头等效于全画幅上的75mm。

景深差异

相同等效焦距和光圈下,更大传感器的景深更浅:

$$DOF \propto \frac{f^2 \cdot c}{f_{equivalent}^2}$$

弱光性能的本质

在相同等效焦距下,更大传感器收集更多光(更大的物理光圈)。这就是为什么"全画幅弱光好"——不是传感器本身更神奇,而是物理光圈更大,收集的光更多。

像素密度与衍射极限

当像素足够小时,衍射成为分辨率限制因素。衍射极限角:

$$\theta_{diffraction} = 1.22 \frac{\lambda}{D}$$

在f/8光圈下,衍射极限约300线对/毫米。对于像素间距小于3微米的传感器,f/8时衍射已经开始影响分辨率。

这就是为什么手机相机很少用小光圈——衍射已经限制了分辨率。

未来的挑战与方向

图像传感器技术仍在快速演进:

更大的堆栈:三层甚至四层堆栈,将AI处理直接集成到传感器 全局快门普及:随着技术成熟,成本下降 更高量子效率:新材料(如有机光电二极管) 动态范围扩展:多次曝光融合、对数响应传感器

但物理学的基本限制不会消失。更小的像素永远意味着更小的满阱容量。更高的分辨率永远意味着更大的数据量。计算摄影能弥补很多,但不能突破物理极限。

理解这些原理,你才能理解为什么:

  • 夜景模式需要几秒钟——它在堆栈十几帧
  • 数码变焦不如光学变焦——它不能创造不存在的细节
  • 高像素不等于高画质——像素尺寸、传感器尺寸、镜头质量共同决定

技术不是魔法。每一项"智能功能"背后,都是物理学与工程学的精心权衡。