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 模式配置错误,修正后颜色恢复正常。
常见 Bayer 阵列模式对比 RGGB R G G B GRBG G R B G GBRG G B R G BGGR B G G R 说明: • 每个 2×2 单元包含 2 个绿色(G)、1 个红色(R)、1 个蓝色(B)像素。 • 绿色像素数量是红/蓝的两倍,符合人眼对绿色更敏感的特性。 • 驱动中 bayer_pattern 配置错误会导致 ISP 处理后的图像出现严重偏色。

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 和动态范围分析。
RAW → RGB → YUV 处理流程 RAW 传感器原始数据 去马赛克 RGB 全彩色图像 色彩空间转换 YUV 亮度+色度 调优要点:RAW 图是驱动参数调优的唯一可靠数据源。YUV/RGB 已受 ISP 处理影响,不能反映传感器原始性能。

1.4 RAW 图在骁龙平台上的采集方式

在骁龙平台上,RAW 图采集通常通过以下方式实现:

  1. 使用 CamX 框架的 RAW 流:在 Camera 配置文件中添加 RAW 流(Stream),指定格式为 RAW10/RAW12/RAW16。
  2. 通过 QMMF(Qualcomm Multi-Media Framework)工具:使用 QMMF 的 raw_dump 功能直接抓取传感器输出。
  3. 使用 CHI(Camera Hardware Interface)的 Debug API:通过 CHI 提供的调试接口获取 RAW 帧。
  4. 使用第三方工具:如 imx390_capture、v4l2-ctl 等 Linux 工具。
推荐做法: 在驱动调优阶段,建议使用 CamX 框架的 RAW 流方式,因为它可以同时获取传感器元数据(如增益、曝光时间、黑电平),便于后续分析。采集时需注意设置正确的 Bayer 模式和位深,避免数据错位。

1.5 本章小结

  • RAW 图是传感器最原始的像素数据,保留了完整的线性响应和高位深信息。
  • Bayer 阵列有 RGGB、GRBG、GBRG、BGGR 四种常见模式,驱动配置必须与传感器实际输出一致。
  • RAW 与 YUV/RGB 在数据来源、位深、颜色信息、线性度等方面存在本质区别。
  • 在骁龙平台上进行驱动参数调优时,必须基于 RAW 图进行分析,避免 ISP 处理对原始数据的干扰。