1. RAW域基础

各位同学好,我是老周。做图像信号处理这行十几年了,今天咱们聊聊RAW域的基础。说实话,很多工程师做了好几年ISP,对RAW的理解还停留在“就是原始数据”这个层面。但你要真想把图像质量调好,RAW域的这些细节,一个都绕不过去。

1.1 什么是RAW图像?

RAW图像,说白了就是传感器直接输出的“毛坯房”数据。它没经过任何美化,没做白平衡,没做去噪,甚至连颜色都没有。你想想看,一个像素点只记录了一个通道的亮度值——要么是R,要么是G,要么是B。

为什么这么设计?因为传感器本身是色盲的。它只能感知光的强度,分辨不出颜色。那颜色怎么来的?靠的是CFA(Color Filter Array),也就是颜色滤波阵列。

核心概念:RAW图像 = 传感器原始电荷信号 → ADC量化后的数字值。每个像素只包含一种颜色分量。

1.2 Bayer模式与CFA

最常见的CFA就是Bayer模式。它用2x2的单元重复排列:一个R,两个G,一个B。为什么G有两个?因为人眼对绿色最敏感,所以传感器给绿色通道分配了更多像素。

我记得刚入行那会儿,有个项目用了非Bayer的CFA排列,比如RGBW或者RYYB。当时调试起来真是头疼,因为传统的去马赛克算法全得重写。所以,除非你有特殊需求,否则老老实实用标准Bayer模式,能省掉80%的麻烦。

CFA类型 排列方式 常见应用 特点
标准Bayer RGGB 绝大多数手机/相机 绿色通道双倍采样,符合人眼特性
RGBW R+G+B+W 低光场景 增加白色像素提升进光量,但分辨率会下降
RYYB R+Y+Y+B 华为部分机型 黄色替代绿色,进光量提升约40%,但偏色难调

我的经验:调试Bayer模式时,建议先用纯色图卡验证每个通道的响应一致性。我曾经遇到过一颗传感器,G通道左右两侧的增益差了5%,结果拍出来的照片中间绿、两边紫,查了三天才发现是Bayer排列方向搞反了。

1.3 RAW数据的存储结构

RAW数据是线性存储的。每个像素的bit深度决定了它的动态范围。常见的深度有10bit、12bit、14bit。你可能会问:为什么不用8bit?因为8bit只有256个灰度级,对于传感器来说,信噪比和动态范围根本不够用。

举个例子:一个12bit的RAW,每个像素可以表示0~4095的灰度值。这意味着它能记录更暗的细节和更亮的高光。我做过一个对比测试:同一场景,10bit RAW的天空出现了明显的色阶断层,而12bit的就平滑得多。

bit深度 灰度级数 动态范围(理论) 常见场景
10bit 1024 约60dB 早期手机、低端摄像头
12bit 4096 约72dB 主流手机、微单
14bit 16384 约84dB 专业相机、工业检测

注意:RAW数据在存储时,通常不会直接按bit对齐。比如10bit数据,为了读写效率,很多传感器会把它pack成16bit或8bit对齐。你读RAW文件时,一定要搞清楚它的packing方式,否则解析出来的数据全是乱的。

1.4 黑电平的物理意义

黑电平,英文叫Black Level。它代表传感器在完全无光(镜头盖盖住)情况下的输出值。理论上应该是0,但实际上不是。因为传感器本身有暗电流,即使没有光,也会产生微弱的电荷。

我习惯把黑电平理解为“传感器的零偏”。这个值如果不校准,你拍出来的黑色就不是纯黑,而是发灰的。更严重的是,黑电平偏移会影响后续所有处理——白平衡、去噪、色彩校正,全都会跟着偏。

举个例子:一个12bit的传感器,黑电平是64。那么你读到的像素值如果是64,它对应的真实亮度应该是0。如果你不做黑电平减法,直接拿64去做白平衡,那暗部的颜色就会偏绿或偏紫。

关键公式:校正后的像素值 = RAW值 - 黑电平值

1.5 白平衡的物理意义

白平衡,很多人以为只是“让白色看起来是白色”。其实它的本质是:在不同光源下,恢复物体真实的反射率比例。

你想想看,同一张白纸,在日光灯下偏蓝,在白炽灯下偏黄。传感器记录到的R、G、B值是不一样的。白平衡要做的,就是给每个通道乘一个增益系数,让R:G:B的比例恢复到标准光源下的状态。

我记得有一次调试一个车载摄像头项目,客户反馈说“白天拍出来的树是绿色的,晚上拍出来就变成蓝色了”。我一看RAW数据,发现是AWB算法在低光下把Gain_R拉得太高,导致整个画面偏蓝。后来我手动限制了Gain_R的最大值,问题就解决了。

光源类型 色温(K) R/G增益比 B/G增益比
白炽灯 2800 1.8~2.2 1.0~1.2
日光 5500 1.0~1.2 1.0~1.2
阴天 6500 0.8~1.0 1.4~1.8

避坑指南:我曾经在调试白平衡时,发现某个通道的增益超过了4.0。结果画面暗部噪声被放大了好几倍,全是彩色噪点。后来我加了一个增益上限保护,超过3.0就改用相邻通道插值。效果好了很多。

1.6 本章知识结构图

下面这张图,我把本章的核心知识点串起来了。你可以把它当作一张“RAW域基础地图”,以后遇到问题,先看这张图定位。

RAW域基础知识结构图 RAW域基础知识结构 RAW图像 CFA与Bayer模式 RAW存储结构 黑电平与白平衡 标准Bayer / RGBW / RYYB 10bit / 12bit / 14bit 黑电平校正 白平衡增益 核心逻辑:传感器输出RAW → 理解CFA排列 → 掌握存储格式 → 校正黑电平 → 调整白平衡 每一步的错误都会累积到最终图像,所以RAW域处理必须严谨

1.7 本章小结

RAW域是ISP管线的起点,也是决定图像质量的天花板。你后面做的所有处理——去噪、锐化、色彩校正——都是在RAW数据的基础上进行的。如果RAW数据本身就有问题,后面再怎么调也是白搭。

我个人建议,刚接触ISP的同学,先把本章的四个概念吃透:Bayer模式、bit深度、黑电平、白平衡。不用急着去调算法,先把RAW数据读出来,看看每个通道的值,算算黑电平,试试手动白平衡。等你对RAW数据有了手感,再往下走会顺畅很多。