2. ISP Pipeline 概述:RK ISP 架构、ISP 模块功能、RAW 域与 RGB 域处理、ISP 参数文件结构
在 RK 平台的多帧 HDR 调试中,ISP(Image Signal Processor)Pipeline 是决定图像质量的底层骨架。本章从 RK ISP 硬件架构出发,逐级拆解 ISP 模块功能,明确 RAW 域与 RGB 域的处理边界,并解析 ISP 参数文件的组织方式,为后续多帧合成场景的参数联合调试建立全局视图。
2.1 RK ISP 架构概览
RK 平台 ISP 采用模块化流水线设计,支持从 Sensor RAW 数据输入到 YUV 图像输出的全链路处理。其核心架构分为三大处理阶段:RAW 域预处理、RGB 域色彩重建、YUV 域后处理。多帧 HDR 合成通常介入 RAW 域与 RGB 域之间,利用多帧信息进行动态范围扩展。
2.2 ISP 核心模块功能
RK ISP 包含数十个可配置模块,下表列出与多帧 HDR 调试最相关的关键模块及其功能定位:
| 模块名称 | 所属域 | 核心功能 | HDR 调试关注点 |
|---|---|---|---|
| BLC(Black Level Correction) | RAW | 消除 Sensor 暗电流偏移,恢复黑电平零点 | 多帧间 BLC 参数必须一致,否则合成后出现偏色 |
| LSC(Lens Shading Correction) | RAW | 补偿镜头边缘亮度衰减和色彩偏移 | HDR 合成前需确保各帧 LSC 增益对齐 |
| AWB(Auto White Balance) | RAW | 计算 R/G/B 通道增益,校正色温偏差 | 多帧合成后需重新统计白平衡,避免色块分裂 |
| Demosaic | RGB | 将 Bayer 模式插值重建为全分辨率 RGB 图像 | HDR 合成后的 RAW 数据边缘更锐利,需调整插值权重 |
| CCM(Color Correction Matrix) | RGB | 通过 3x3 矩阵将 Sensor RGB 映射到标准色彩空间 | 高动态场景下 CCM 需配合 Tone Mapping 微调 |
| Gamma / Tone Mapping | RGB/YUV | 非线性映射压缩动态范围,适配显示设备 | 多帧 HDR 的 Tone Mapping 曲线需与曝光比联动 |
| NR(Noise Reduction) | YUV | 空域/时域降噪,抑制暗部噪声 | 多帧合成后暗部 SNR 提升,NR 强度可适当降低 |
2.3 RAW 域与 RGB 域处理边界
理解 RAW 域与 RGB 域的处理边界,对于定位 HDR 合成异常至关重要。两个域的数据特性与处理目标存在本质差异:
- RAW 域: 数据为 Sensor 原始 Bayer 格式,每个像素仅包含 R/G/B 中的一个颜色分量,位深通常为 10bit/12bit/14bit。处理目标为物理校正——消除 Sensor 与镜头引入的固定噪声和光学缺陷。
- RGB 域: 数据经过 Demosaic 插值后,每个像素包含完整的 R/G/B 三分量,位深扩展至 16bit 或 20bit。处理目标为色彩重建与美学映射——还原真实色彩并适配人眼视觉特性。
2.4 ISP 参数文件结构
RK 平台 ISP 参数以 XML 格式组织,通常命名为 isp_xxx.xml,包含从 Sensor 初始化到输出格式的完整配置。参数文件采用分层结构,核心节点如下:
<?xml version="1.0" encoding="utf-8"?>
<rkisp_parameters>
<!-- 全局配置 -->
<global>
<bit_depth>14</bit_depth>
<output_format>NV12</output_format>
<hdr_mode>multi_frame</hdr_mode>
</global>
<!-- RAW 域模块参数 -->
<raw_domain>
<blc>
<r_offset>64</r_offset>
<gr_offset>64</gr_offset>
<gb_offset>64</gb_offset>
<b_offset>64</b_offset>
</blc>
<lsc>
<mesh_file>lsc_mesh_ov50e.bin</mesh_file>
<strength>1.0</strength>
</lsc>
<awb_gain>
<r_gain>1.8</r_gain>
<b_gain>1.5</b_gain>
</awb_gain>
</raw_domain>
<!-- 多帧 HDR 合成参数 -->
<hdr_merge>
<frame_count>3</frame_count>
<exposure_ratio>
<ratio_1>1</ratio_1>
<ratio_2>16</ratio_2>
<ratio_3>256</ratio_3>
</exposure_ratio>
<motion_threshold>0.15</motion_threshold>
<merge_curve>hdr_merge_curve.csv</merge_curve>
</hdr_merge>
<!-- RGB 域模块参数 -->
<rgb_domain>
<demosaic>
<edge_threshold>0.3</edge_threshold>
<chroma_weight>0.7</chroma_weight>
</demosaic>
<ccm>
<matrix>
1.8 -0.5 -0.3
-0.2 1.6 -0.4
-0.1 -0.3 1.4
</matrix>
</ccm>
<gamma>
<curve_file>gamma_srgb.csv</curve_file>
</gamma>
</rgb_domain>
<!-- YUV 域模块参数 -->
<yuv_domain>
<nr>
<spatial_strength>0.5</spatial_strength>
<temporal_strength>0.3</temporal_strength>
</nr>
<sharpen>
<strength>0.6</strength>
<limit>0.4</limit>
</sharpen>
</yuv_domain>
</rkisp_parameters>
hdr_merge 节点中的 exposure_ratio 和 motion_threshold 是联合调试的核心参数,直接影响合成质量。
2.5 参数文件与多帧 HDR 的映射关系
在实际调试中,ISP 参数文件需要为每一帧单独维护一组 RAW 域参数,同时共享 RGB/YUV 域参数。下表展示了三帧 HDR 场景下的参数映射策略:
| 参数节点 | 短帧 (1/16x) | 中帧 (1x) | 长帧 (16x) | 共享/独立 |
|---|---|---|---|---|
| BLC 偏移 | 64 | 64 | 64 | 必须一致 |
| LSC 增益 | 1.0 | 1.0 | 1.0 | 必须一致 |
| AWB R/Gain | 1.8 | 1.8 | 1.8 | 必须一致 |
| Demosaic 阈值 | 0.3(合成后统一配置) | 共享 | ||
| CCM 矩阵 | 统一矩阵 | 共享 | ||
| Gamma 曲线 | 统一曲线 | 共享 | ||
| NR 强度 | 0.5(合成后统一配置) | 共享 | ||
<raw_domain> 配置块,并在 <hdr_merge> 中引用各帧的 RAW 参数 ID。RGB/YUV 域参数只需维护一份,减少调试复杂度。
2.6 本章小结
本章建立了 RK ISP Pipeline 的全局认知:从 Sensor RAW 输入到 YUV 输出,ISP 分为 RAW 域、RGB 域、YUV 域三大处理阶段。多帧 HDR 合成作为 RAW 域的核心环节,其参数配置必须与前后模块协同。ISP 参数文件采用分层 XML 结构,RAW 域参数按帧独立配置,RGB/YUV 域参数全局共享——这一结构是后续联合调试的配置文件基础。