2. RK平台ISP管线概览:RK ISP整体架构、ISP Pipeline数据流、HDR模块在ISP中的位置

做RK平台ISP调试,第一件事不是调参数,而是搞清楚数据从哪来、到哪去、中间经过了谁。我见过不少新手,上来就对着3A算法猛调,结果发现图像偏色——其实问题出在RAW域的处理顺序上。所以这一章,咱们先把RK ISP的骨架搭起来。

2.1 RK ISP整体架构

RK的ISP不是一个黑盒子,它是一套可配置的硬件管线。说白了,就是Sensor把RAW数据扔进来,经过一串硬件模块处理,最后输出YUV或RGB图像。我习惯把整个架构分成三大块:

  • 输入前端:负责接收Sensor数据,做基本的坏点校正、黑电平校准、去噪。
  • 核心处理域:包括去马赛克、白平衡、颜色校正、Gamma、锐化等。HDR合成也在这里。
  • 输出后端:做缩放、裁剪、格式转换,最后送给显示或编码器。

你想想看,这就像一条流水线。每个工位干自己的活,顺序不能乱。比如,你如果在去马赛克之前做了锐化,那锐化会把RAW上的噪声放大,后面再插值就全是噪点。嗯,这里要注意。

核心要点:RK ISP的模块顺序是固定的,但每个模块的使能/旁路是可配的。调试时,先确认每个模块是否按预期工作,再调参数。

我在项目中遇到过,有人把Gamma校正放在了颜色校正前面,结果颜色怎么调都不对。后来查手册才发现,Gamma应该在颜色校正之后。所以,顺序就是规矩。

2.2 ISP Pipeline数据流

数据流听起来抽象,其实就一句话:像素值在每个模块里怎么变。我画了一张图,你看完就明白了。

RK ISP Pipeline 数据流 Sensor RAW BLC / DPC LSC / AWB 去马赛克 HDR合成 颜色校正 Gamma / 锐化 YUV输出 数据流关键点 1. RAW域处理(BLC/DPC/LSC/AWB)必须在去马赛克之前完成。 2. HDR合成通常在去马赛克之后、颜色校正之前,但RK也支持RAW域HDR。 3. Gamma校正必须在颜色校正之后,否则颜色会偏移。 4. 锐化放在最后,避免放大前面模块引入的噪声。 5. 每个模块都可以独立旁路,调试时建议逐个使能排查问题。

这张图里,我特意把HDR合成放在去马赛克之后。为什么?因为HDR需要RGB域的亮度信息来做融合权重,RAW域只有单通道,信息不够。当然,RK也支持RAW域HDR,但那是另一种玩法,后面章节会细讲。

2.3 HDR模块在ISP中的位置

HDR模块不是孤立的,它和前后模块有很强的依赖关系。我总结了一个表格,你看完就清楚它的位置和影响了。

模块 位置 对HDR的影响
BLC(黑电平校准) HDR之前 黑电平不准,HDR融合会出现偏色
DPC(坏点校正) HDR之前 坏点不校正,HDR会放大坏点
LSC(镜头阴影校正) HDR之前 阴影不校正,HDR融合权重会出错
AWB(自动白平衡) HDR之前 白平衡不准,HDR合成后颜色不一致
HDR合成 核心位置 融合多帧,扩展动态范围
颜色校正 HDR之后 HDR输出需要颜色校正来还原真实色彩
Gamma校正 HDR之后 HDR输出是线性域,Gamma转成非线性

调试小技巧:我建议你在调HDR之前,先把BLC、DPC、LSC、AWB这四个模块调稳。它们任何一个出问题,HDR都会跟着翻车。我曾经在一个项目里,BLC偏了2个LSB,结果HDR合成后暗部全是绿色。查了两天才找到原因。

2.4 避坑指南

做ISP调试,坑多。我挑几个常见的说说:

  • 模块顺序别乱动:RK的ISP硬件顺序是固定的,但有些平台允许软件重排。千万别为了省事把Gamma提前,颜色会崩。
  • HDR帧对齐:多帧合成时,帧与帧之间必须有亚像素对齐。RK的ISP有硬件对齐模块,但如果你手动关掉了,合成结果会重影。
  • 曝光时间差:HDR多帧的曝光时间差不能太大,否则运动物体会有鬼影。我一般控制在4倍以内。
  • 调试顺序:先调单帧,再开HDR。单帧都调不好,HDR就是灾难。

警告:千万不要在HDR合成之前做Gamma校正!Gamma是非线性变换,会破坏HDR融合所需的线性关系。我曾经见过有人这么干,结果高光区域全部过曝,暗部死黑,怎么调都救不回来。

好了,这一章的内容就这些。记住一句话:ISP管线是顺序执行的,HDR模块的位置决定了它的输入输出质量。把前后模块调好,HDR才能发挥真正实力。