1. RAW域基础与3A概述

各位同学好,我是老周。在ISP领域摸爬滚打了十几年,今天咱们来聊聊RAW域和3A的那些事。

说实话,我刚入行那会儿,对RAW域的理解也仅限于“传感器出来的原始数据”。直到有一次调试一个低光场景,发现AWB怎么调都偏色,最后追根溯源,问题出在RAW域的黑电平校正上。从那以后,我养成了一个习惯——任何ISP问题,先查RAW域。

1.1 RAW图像格式详解

RAW图像是什么?说白了,就是图像传感器直接输出的、未经任何处理的原始数据。它记录了每个像素点的光电转换结果,通常以12bit或14bit的精度存储。

你想想看,我们平时看到的JPEG或PNG,都是经过白平衡、去马赛克、伽马校正等一系列处理后的成品。而RAW,就是那个“毛坯房”。

RAW的核心特征:

  • 线性数据:像素值与场景亮度呈线性关系
  • 高位深:通常10-14bit,远高于8bit的JPEG
  • 未压缩或无损压缩:保留全部传感器信息
  • 包含元数据:ISO、快门速度、增益等拍摄参数

我记得有一次调试一个手机项目,客户抱怨夜景模式噪点太多。我一看JPEG,确实惨不忍睹。但当我拿到RAW数据后,发现很多细节其实还在,只是被后续的降噪和压缩给抹掉了。这就是RAW的价值——它给了你最大的后期处理空间。

1.2 Bayer模式与CFA

图像传感器有个天生的缺陷:它只能感知光的强度,分辨不了颜色。那彩色图像是怎么来的?靠的就是CFA(Color Filter Array,彩色滤光片阵列)。

最常见的CFA模式就是Bayer模式,由Bryce Bayer在1976年发明。它的排列方式很简单:

位置 R G B
第1行 R G R
第2行 G B G
第3行 R G R

看到没?绿色像素占了50%,红色和蓝色各占25%。为什么?因为人眼对绿色最敏感,所以传感器也给了绿色更多“投票权”。

小知识:除了标准的Bayer RGGB,还有RGBW、RYYB等变种。华为的RYYB模式就是用黄色像素替换绿色像素,进光量提升了40%,但代价是色彩还原更难了。我在项目中遇到过RYYB的AWB调试,那叫一个头疼。

每个像素只能记录一种颜色,那完整的RGB图像怎么来?这就需要去马赛克(Demosaic)算法了。简单说,就是通过周围像素插值,把缺失的颜色信息补全。但这是后话,咱们在RAW域阶段,数据还是Bayer格式的。

1.3 3A(AE/AWB/AF)核心概念

3A是ISP流水线的三大支柱:AE(自动曝光)、AWB(自动白平衡)、AF(自动对焦)。它们共同决定了图像的亮暗、色彩和清晰度。

AE(自动曝光)

AE的目标很简单:让图像亮度适中。但实现起来并不容易。它需要根据场景亮度,调整曝光时间、模拟增益、数字增益,甚至光圈大小。

我习惯把AE分成三个阶段:

  1. 粗调:根据环境亮度估算初始曝光参数
  2. 精调:基于直方图或亮度统计,微调参数
  3. 稳定:防止曝光闪烁,加入迟滞和滤波

避坑指南:我曾经在一个项目中,AE在室内灯光下频繁跳变。查了两天才发现,是50Hz工频闪烁导致的。解决方案很简单——曝光时间设为20ms的整数倍。嗯,这种坑踩过一次就记住了。

AWB(自动白平衡)

AWB负责校正色温,让白色物体在任何光源下都呈现白色。它的核心是估计光源色温,然后计算R/G/B增益。

常见的AWB算法有:

  • 灰度世界法:假设场景平均色是灰色
  • 完美反射法:假设最亮像素是白色
  • 色温曲线法:基于色温查找表

说实话,没有一种算法是万能的。我在项目中通常采用多算法融合策略,根据场景置信度动态切换。

AF(自动对焦)

AF让镜头移动到合适位置,使目标清晰成像。在RAW域,AF主要依赖对比度检测(CDAF)或相位检测(PDAF)。

CDAF的原理很简单:移动镜头,找图像对比度最大的位置。但缺点是慢,需要来回搜索。PDAF则通过传感器上的专用相位检测像素,一次计算就能知道对焦方向,快得多。

你想想看,现在的手机为什么对焦那么快?就是因为用了PDAF。但PDAF也有代价——它会占用部分像素,影响图像质量。所以很多方案是PDAF粗调 + CDAF精调的组合。

1.4 ISP流水线中的RAW域位置

ISP流水线通常分为三个阶段:RAW域、RGB域、YUV域。RAW域是第一步,也是最关键的一步。

下面这张图展示了ISP流水线的整体架构,以及RAW域所处的环节:

ISP流水线架构与RAW域位置 ISP流水线架构 — RAW域位置 RAW域 RGB域 YUV域 传感器 RAW 数据 黑电平校正 LSC 镜头阴影校正 3A 统计(AE/AWB/AF) 去马赛克(Demosaic) 白平衡(AWB)增益 颜色校正矩阵(CCM) 伽马校正 RGB → YUV 转换 降噪(NR) 锐化(Sharpening) 编码输出(JPEG/HEIF) 3A反馈控制 说明:3A统计在RAW域完成,但AWB增益在RGB域应用,AE/AF反馈控制传感器曝光参数

从图中可以看到,3A统计是在RAW域完成的。为什么?因为RAW数据是线性的,没有经过伽马校正,统计结果更准确。如果放到RGB域或YUV域再做统计,数据已经被非线性变换污染了,精度会大打折扣。

我的经验:3A统计的窗口选择很有讲究。我习惯在RAW域划分多个统计窗口,每个窗口独立计算亮度均值和R/G/B比值。这样既能做全局AE,又能做局部AWB。有一次做人脸优先的AE,就是靠中心窗口加权实现的。