1. RAW 图基础概念
RAW 图是图像传感器(Image Sensor)直接输出的、未经任何 ISP(图像信号处理器)处理的原始像素数据。它保留了传感器每个像素点最原始的电荷转换信息,是图像质量分析和驱动参数调优的“第一手证据”。理解 RAW 图是进行骁龙 Camera 驱动调优的前提。
1.1 RAW 图定义
RAW 图本质上是传感器感光单元(Photosite)对光强响应的数字化记录。每个像素点只记录一种颜色分量(红、绿或蓝),且数据通常以 10bit、12bit 或 14bit 的线性格式存储。RAW 图具有以下核心特征:
- 线性响应:像素值与入射光强呈线性关系,未经过 Gamma 校正或色调映射。
- 高位深:通常为 10-14 bit,相比 8bit 的 YUV/RGB 图像保留了更丰富的亮度层次。
- 未去马赛克:每个像素仅包含一种颜色信息,需要通过去马赛克(Demosaic)算法插值出全彩色。
- 包含传感器元数据:RAW 文件通常包含增益、曝光时间、黑电平、温度等传感器状态信息。
调优要点: 在骁龙平台上,RAW 图采集是驱动参数调优的起点。通过分析 RAW 图的直方图、信噪比(SNR)和动态范围,可以判断传感器工作状态是否正常,进而调整黑电平、模拟增益、数字增益等关键参数。
1.2 Bayer 阵列模式
Bayer 阵列是单传感器彩色成像最常用的滤色片排列方式。它利用人眼对绿色更敏感的特性,在 2×2 像素单元中安排 2 个绿色(G)像素、1 个红色(R)像素和 1 个蓝色(B)像素。常见的 Bayer 模式包括:
| Bayer 模式 | 2×2 单元排列 | 常见传感器 | 骁龙平台适配说明 |
|---|---|---|---|
| RGGB | R G G B |
Sony IMX586, IMX766 | 默认模式,驱动中需正确配置 bayer_pattern 字段 |
| GRBG | G R B G |
Samsung ISOCELL GN1 | 需在 sensor 驱动中设置 mipi_bayer_pattern = GRBG |
| GBRG | G B R G |
OmniVision OV64B | 部分国产传感器常用,需注意 ISP 配置 |
| BGGR | B G G R |
Sony IMX363 | 较少见,但部分旧款传感器仍在使用 |
Bayer 模式的正确识别至关重要。如果驱动中配置的 Bayer 模式与传感器实际输出不匹配,会导致 ISP 处理后的图像出现严重的颜色错误(如红色变蓝色、绿色偏紫等)。
实战案例: 在某骁龙 8 Gen 2 项目中,调试人员误将 GRBG 传感器配置为 RGGB,导致预览画面整体偏紫。通过抓取 RAW 图并分析 2×2 像素块的 R/G/B 通道分布,确认了 Bayer 模式配置错误,修正后颜色恢复正常。
1.3 RAW 与 YUV/RGB 的区别
RAW、YUV 和 RGB 是图像处理流程中不同阶段的三种数据格式。理解它们的差异是进行 RAW 图质量分析的基础。
| 对比维度 | RAW | RGB | YUV |
|---|---|---|---|
| 数据来源 | 传感器直接输出 | RAW 经去马赛克后得到 | RGB 经色彩空间转换得到 |
| 位深 | 10-14 bit | 8-10 bit | 8-10 bit |
| 颜色信息 | 每个像素仅一种颜色 | 每个像素 R/G/B 三通道完整 | 亮度 Y + 色度 U/V |
| 数据量 | 最小(单通道) | 最大(三通道) | 中等(Y 全分辨率,UV 可下采样) |
| 线性度 | 线性 | 非线性(经 Gamma 校正) | 非线性 |
| 驱动调优用途 | 黑电平、增益、噪声分析 | 白平衡、色彩校正 | 亮度、对比度、饱和度 |
在骁龙 Camera 驱动调优中,RAW 图是唯一能够反映传感器原始性能的数据格式。YUV/RGB 图像已经经过了 ISP 的多种处理(如去马赛克、降噪、锐化、Gamma 校正等),这些处理会掩盖传感器本身的噪声特性和线性响应特征。因此,进行传感器性能评估和驱动参数调优时,必须基于 RAW 图进行分析。
常见误区: 不要使用 YUV 或 RGB 图像来评估传感器噪声水平。ISP 的降噪算法会显著降低噪声幅度,导致误判传感器性能。正确的做法是关闭所有 ISP 处理,直接抓取 RAW 图进行 SNR 和动态范围分析。
1.4 RAW 图在骁龙平台上的采集方式
在骁龙平台上,RAW 图采集通常通过以下方式实现:
- 使用 CamX 框架的 RAW 流:在 Camera 配置文件中添加 RAW 流(Stream),指定格式为 RAW10/RAW12/RAW16。
- 通过 QMMF(Qualcomm Multi-Media Framework)工具:使用 QMMF 的 raw_dump 功能直接抓取传感器输出。
- 使用 CHI(Camera Hardware Interface)的 Debug API:通过 CHI 提供的调试接口获取 RAW 帧。
- 使用第三方工具:如 imx390_capture、v4l2-ctl 等 Linux 工具。
推荐做法: 在驱动调优阶段,建议使用 CamX 框架的 RAW 流方式,因为它可以同时获取传感器元数据(如增益、曝光时间、黑电平),便于后续分析。采集时需注意设置正确的 Bayer 模式和位深,避免数据错位。
1.5 本章小结
- RAW 图是传感器最原始的像素数据,保留了完整的线性响应和高位深信息。
- Bayer 阵列有 RGGB、GRBG、GBRG、BGGR 四种常见模式,驱动配置必须与传感器实际输出一致。
- RAW 与 YUV/RGB 在数据来源、位深、颜色信息、线性度等方面存在本质区别。
- 在骁龙平台上进行驱动参数调优时,必须基于 RAW 图进行分析,避免 ISP 处理对原始数据的干扰。