1. RAW图像基础:从传感器到数字底片
做图像处理这些年,我经常被问到同一个问题:「RAW到底是个什么东西?跟JPEG有什么区别?」说实话,我刚入行时也懵过一阵子。记得第一次拿到索尼相机的.ARW文件,用普通看图软件打不开,我还以为是文件坏了……后来才明白,RAW压根就不是给「看」的,它是给「算」的。
这一章,咱们就把RAW的底裤扒干净。你理解了RAW,后面讲黑电平校正、去马赛克、白平衡,才能踩在实地上。
1.1 什么是RAW格式
RAW,直译就是「生的、未加工的」。它记录的是图像传感器每个像素点直接输出的原始电压值——说白了,就是一串数字,告诉你每个感光单元接收到了多少光子。
我习惯把RAW比作「数字底片」。传统胶片摄影,底片记录了最原始的光影信息,后期冲洗时可以调整曝光、对比度。RAW就是数码时代的底片,只不过冲洗过程变成了软件处理。
核心要点:RAW不是图像,是数据。它需要经过ISP(图像信号处理器)的渲染,才能变成我们肉眼能看到的画面。
1.2 RAW vs JPEG:一场「全熟牛排」与「和牛刺身」的较量
JPEG是什么?是相机内部ISP已经帮你「烹饪」好的成品。白平衡、锐化、降噪、伽马校正……全都做完了,然后压缩打包。你拿到手就能吃,但想回锅重做?没门。
RAW呢?是刚从传感器上切下来的「刺身」,什么都没动过。你想怎么调味都行。
我整理了一个对比表,你一看就明白:
| 对比维度 | RAW | JPEG |
|---|---|---|
| 位深度 | 12bit / 14bit(4096~16384级) | 8bit(256级) |
| 色彩空间 | 相机传感器原生色彩 | sRGB / Adobe RGB(已映射) |
| 白平衡 | 可后期任意调整 | 拍摄时已固定 |
| 动态范围 | 保留传感器全部动态范围 | 经过色调映射,高光阴影细节丢失 |
| 压缩 | 无损或有损(但保留原始数据) | 有损压缩,不可逆 |
| 文件大小 | 20~50MB(2400万像素) | 5~10MB |
| 适用场景 | 专业后期、高动态场景、暗光 | 快速分享、存储空间有限 |
我的经验:有一次在演播室拍LED大屏,JPEG拍出来高光一片死白,怎么拉都拉不回来。换成RAW,硬是从「过曝」里把屏幕上的文字给拽了回来。这就是位深度和动态范围的优势——你后期有「抢救」的空间。
1.3 RAW文件的存储结构:Bayer Pattern
好,现在咱们聊聊RAW文件里面到底存了什么。这就要说到Bayer Pattern了。
你想想看,一个CMOS传感器上的每个像素点,其实只能感知光的强度,它分不清颜色。那彩色照片是怎么来的?答案是在传感器表面覆盖一层彩色滤光片阵列(CFA),让每个像素只接收红、绿、蓝中的一种光。
最常见的排列方式就是Bayer Pattern。它长这样:
R G R G R G
G B G B G B
R G R G R G
G B G B G B
看到没?绿色像素的数量是红色和蓝色的两倍。为什么?因为人眼对绿色最敏感,多放绿色像素能模拟人眼的亮度感知。这个设计是柯达的Bayer博士在1976年提出的,到现在还在用——经典就是经典。
RAW文件里存的就是这些「R、G、B」的原始数值,每个像素只有一个颜色通道的值。至于每个像素缺失的另外两个颜色通道怎么补全?那是后面「去马赛克(Demosaic)」章节的事,这里先挖个坑。
注意:不同厂家的Bayer排列可能不一样。索尼常用RGGB,三星用GRBG,富士还有X-Trans排列。做ISP算法时,第一步就得确认Bayer Pattern的起始位置,否则颜色全乱套。我曾经因为搞错了一个像素偏移,调试了整整两天……
下面这张图展示了Bayer Pattern的完整数据流:
1.4 常见RAW文件扩展名
市面上的相机品牌那么多,每家都有自己的RAW格式。我整理了一份清单,方便你对照:
| 扩展名 | 品牌/标准 | 特点 |
|---|---|---|
| .DNG | Adobe(通用标准) | 开放格式,很多手机和相机支持。我个人最推荐用DNG做算法开发,因为文档公开,解析方便 |
| .ARW | Sony | 索尼α系列微单,压缩算法较复杂 |
| .CR2 / .CR3 | Canon | CR2是经典格式,CR3是新一代,加密更严 |
| .NEF | Nikon | 尼康的RAW,支持无损压缩 |
| .RAF | Fujifilm | 富士X-Trans排列,Bayer变种 |
| .ORF | Olympus | 奥林巴斯,微单常用 |
| .PEF | Pentax | 宾得,相对小众 |
避坑指南:做算法验证时,我建议统一转成DNG格式。为什么?因为DNG的Bayer数据排列规范、元数据字段标准,解析代码写一次就能通吃。我曾经被索尼ARW的「无损压缩」坑过——它的压缩算法不是简单的线性存储,解压错了数据全乱。用DNG就省心多了。
1.5 小结
这一章我们聊了:
- RAW是传感器的原始数据,不是图像
- RAW vs JPEG:位深度、动态范围、可编辑性的本质差异
- Bayer Pattern:每个像素只记录一种颜色,绿色占一半
- 常见RAW扩展名:DNG是通用标准,其他各家有各家的玩法