第2章:图像传感器与ISP基础——从光子到数字信号,理解RAW图与YUV的差异
各位同学,欢迎来到第二章。
上一章我们聊了课程的整体脉络。这一章,咱们得把镜头拉近,看看相机最底层的秘密——光子是怎么变成数字信号的。说白了,就是搞清楚RAW图和YUV到底是个啥,它们之间差在哪。
我做了十几年ISP,见过不少工程师把RAW和YUV混为一谈,结果调试白平衡时怎么调都不对。嗯,咱们今天就把这个坑填上。
2.1 从光子到数字信号:图像传感器的“像素工厂”
想象一下,你站在一片麦田里,阳光洒下来。每个麦穗就是一个像素。图像传感器的工作,就是数清楚每个麦穗接住了多少光子。
这个过程,我习惯把它拆成三步:
- 光子捕获:镜头把光线聚焦到传感器上。每个像素点(Photosite)上的光电二极管,把光子转换成电子。光子越多,电子越多。
- 电荷转电压:电子积累到一定程度,传感器读出电路会把电荷量转换成电压信号。这个电压是模拟的,连续变化。
- 模数转换(ADC):模拟电压被送到模数转换器,变成一串数字。这个数字,就是RAW数据的雏形。
这里有个关键点:传感器本身是色盲的。它只知道“这里光强是多少”,不知道“这是什么颜色”。
核心概念:RAW数据 = 未经过任何颜色处理的原始光强数字。它只记录了每个像素点的亮度值,没有颜色信息。
那颜色从哪来?靠的是传感器表面的彩色滤光片阵列(CFA)。最常见的,就是拜耳阵列(Bayer Pattern)。
2.2 拜耳阵列:为什么RAW图是“马赛克”
拜耳阵列,说白了就是在每个像素上盖一层彩色滤镜。人眼对绿色最敏感,所以绿色滤镜占一半,红色和蓝色各占四分之一。
一个典型的拜耳阵列长这样:
| R | G | R | G |
|---|---|---|---|
| G | B | G | B |
| R | G | R | G |
| G | B | G | B |
所以,你从传感器直接读出来的RAW图,每个像素只有一种颜色信息。它看起来就像一张“马赛克”图。这就是为什么RAW文件体积大,但信息量也最原始、最完整。
我的经验:我在项目中遇到过,有人直接用RAW图做显示,结果画面全是格子。记住,RAW不是给人看的,是给ISP吃的。
2.3 ISP的“魔法”:从RAW到YUV
ISP(图像信号处理器)就是负责把RAW图“翻译”成人眼能看懂的画面。这个过程,我称之为“魔法流水线”。
核心步骤包括:
- 黑电平校正:去掉传感器暗电流带来的底噪。
- 去马赛克(Demosaic):通过插值算法,给每个像素补全RGB三个通道的值。这是最关键的步骤之一。
- 白平衡:调整RGB增益,让白色物体在不同光源下看起来都是白的。
- 颜色校正矩阵(CCM):把传感器捕捉到的颜色,映射到标准色彩空间(如sRGB)。
- Gamma校正:调整亮度曲线,适应人的视觉特性。
经过这一系列操作,我们就得到了一个完整的RGB图像。但RGB图像有个问题:三个通道都包含亮度和颜色信息,数据量大,而且不利于压缩和后续处理。
所以,ISP通常会把RGB转换成YUV。
2.4 RAW vs YUV:核心差异对比
YUV,就是把亮度(Y)和色度(U、V)分开。人眼对亮度变化敏感,对颜色变化不敏感。所以,我们可以对U、V通道进行压缩,而几乎不影响画质。
我整理了一个对比表,方便你理解:
| 特性 | RAW图 | YUV图 |
|---|---|---|
| 数据来源 | 传感器直接输出 | ISP处理后输出 |
| 颜色信息 | 每个像素只有一种颜色(拜耳) | 每个像素都有完整的亮度和色度 |
| 位深 | 通常10bit、12bit、14bit | 通常8bit或10bit |
| 数据量 | 大(未压缩) | 小(可对UV压缩) |
| 用途 | ISP处理、后期调色 | 显示、编码、传输 |
| 是否可逆 | 是(原始数据) | 否(经过有损处理) |
避坑指南:我曾经在调试自动白平衡时,直接拿YUV图的Y通道做统计,结果发现色温判断总是偏。后来才意识到,Y通道已经经过了Gamma校正和颜色矩阵变换,不是原始的亮度信息了。做3A算法,一定要用RAW域的数据。
2.5 为什么3A算法离不开RAW图
你想想看,自动对焦(AF)、自动曝光(AE)、自动白平衡(AWB),这三个算法都需要最原始、最真实的光学信息。
- 自动对焦:需要RAW图的对比度信息来判断是否合焦。YUV图经过滤波,对比度信息已经失真。
- 自动曝光:需要RAW图的亮度统计来决定曝光时间。YUV图的亮度已经被人为调整过。
- 自动白平衡:需要RAW图的R、G、B原始比例来估算色温。YUV图的颜色已经经过CCM和Gamma校正,比例变了。
所以,在ISP架构中,3A算法模块通常直接挂在RAW数据流上,在去马赛克之前就完成统计和控制。
2.6 本章知识图谱:从光子到YUV的完整链路
下面这张图,是我手绘的ISP前端处理流程。你可以把它当作本章的“地图”。
从这张图你可以看到,3A算法直接挂在RAW数据流上,在去马赛克之前就完成统计。这是保证算法精度的关键。
2.7 小结:记住这三句话
- RAW是原料,YUV是成品。 原料保留了所有细节,但不好看;成品好看,但丢了一些原始信息。
- 3A算法必须吃RAW。 别拿YUV去算白平衡,那是给自己挖坑。
- ISP的魔法,就是从马赛克到彩色世界。 理解了这个过程,你才能驾驭后面的自动对焦、自动曝光和自动白平衡。