ISP PQ 工具用户指南
概述
本文档主要介绍 SpacemiT 图像调试,包含调试工具(Tuning Tool)、定标插件(Calibration Plugins)、图像分析工具(VRF viewer),平台调试辅助等。
缩略语
Name | Description |
---|---|
ISP | Image Signal Process |
VRF / vrf | RAW image with information at the end |
BLC | Black Level Correction |
LSC | Lens Shading Correction |
AWB | Auto White Balance |
AEC | Auto Exposure Control |
AF | Auto Focus |
OTP | One Time Programmable |
AEM | Auto Exposure Monitor |
AFM | Auto Focus Monitor |
CCM | Color Correction Matrix |
CT | Color Temperature |
BPC | Bad Pixel Correction |
CAC | Color Aberration Correction |
LTM | Local Tone Mapping |
PDC | Phase Detection Compensation |
Phase Detection Correction | |
PDAF | Phase Detection Auto Focus |
SE | Special Effect |
EIS | Electronic Image Stabilization |
CDAF | Contrast Detection Auto Focus |
FV | Focus Value |
SAD | Sum of absolute difference |
ROI | Region of Interest |
NR | Noise Reduction |
EE | Edge Enhancement |
HDR | High Dynamic Range |
Qn | Accuracy, 2n is double |
Tuning Tool 概述
Tuning Tool 框架
PC 端 tuning tool 安装
调试软件是免安装的压缩文件,解压即可使用,文件名为 AsrIspToolVX.X.X.X.rar
调试工具可通过该链接获取:https://archive.spacemit.com/tools/isp-tunning/
解压后包含如下文件:
调试环境准备
软硬件需求
-
硬件环境
- 台式电脑或笔记本电脑
- 1GHz 或更快的处理器
- 1GB RAM(32 位) 2GB RAM(64 位)
- 至少 10GB 可 用硬盘空间
- 1920 x 1080 屏幕分辨率或更高
- USB 端口
- 集成了 ASR ISP 的终端设备
-
软件环境
- Windows 7 64 位或以上版本的操作系统
设备连接
AsrIspTool 通过 USB 与终端设备连接,通过 ADB 与设备交互。
注意: 连接之前,设备需先启动 tuning server 线程,即启动 camera。
Tuning Tool 基本操作
Tuning Tool 主界面
双击 AsrIspTool.exe
,启动调试工具,主界面下图所示
-
Menu: 菜单功能区
- Open: 打开参数文件。
- Save: 保存参数文件。
- Save As: 参数文件另存为。
- IP Address: 保留。
- ADB (SN): ADB 方式连接终端设备,支持输入 ADB serial。
- Connect: 连接终端设备。
- View: 单窗口/水平叠加/垂直叠加显示。
- Format: 十进制/十六进制显示切换。
- Display: 矩阵编辑/行编辑/列编辑模式切换。
- Plugins: 插件。
- Frequency: 参数刷新速度调节。
- Capture: 抓取 VRF 数据(vrf)。
- Register: ISP 寄存器读写工具。
- I2C: I2C 读写工具。
- Push: 保留。
- Transfer: 保留。
- VRF: 看图工具。
- DNG: 保留。
-
Module list & Filter list: 模块列表
-
Parameter list: 参数列表
-
Log: 日志区
Online 基本操作
连接终端设备
打开工具后,选择 ADB (SN),点击 Connect,连接成功后会自动读取当前所有模块的参数,并以 500ms(可在功能菜单中修改 Frequency)为周期定时刷新只读参数。(如果多台终端与 PC 相连,可指定 serial。)
如果想将可读写参数也定时刷新,勾选右上角的 AutoUpdate 即可(勾选后参数不可设置)。
如果想单次读取所有参数,点击右上角的 Read 按钮。
注意: ADB 连接方式只适用于使用 Android 系统的项目,我们主要使用 TCP 网络连接开发板进行 tunning。
参数类型说明
-
可调参数
- 可勾选参数,例如
m_bAutoCalculateAEMWindow
。 - 可编辑参数,例如
m_nPreEndingPercentage
。 - 可编辑数组参数,例如
m_pSubROIPermil
,如果是二维数组,可切换矩阵/行/列编辑模式。
- 可勾选参数,例如
-
只读(灰色)
- 只读参数,例如
m_nAdjacentLumaSAD
。
- 只读参数,例如
-
特别说明
- 在插件或参数列表中修改参数后,会标红显示修改的内容,鼠标悬停时会显示原值。
实时修改参数
- 在模块列表区展开想要调试的模块列表。
- 在模块列表区点击想要修改的模块。
- 在参数列表区通过滑动条或者直接修改参数值,参数即时生效。
抓取 VRF 图
- 在菜单功能区点击 Capture 按钮。
- 选择 RAW,设置保存路径。
- 点击 Start Capturing,可生成 后缀为
.vrf
的原始图像。
Register 读写
- 在菜单功能区点击 Register 按钮。
- 设置 Address(寄存器地址)。
- 设置 Value (8bit)(寄存器值)。
- Read:读取寄存器。
- Write:写入寄存器。
- 设置 Value (32bit)(寄存器值)。
- Read:读取寄存器。
- Write:写入寄存器。
I2C 读写
- 在菜单功能区点击 I2C 按钮。
- 设置 Device ID(I2C 设备号)。
- 设置 Device Address(从设备地址)。
- 设置 Address Bytes(寄存器地址位宽)。
- 设置 Register Address(寄存器地址)。
- 设置 Value Bytes(寄存器值位宽)。
- 设置 Value(寄存器值)。
- Read:读取寄存器。
- Batch Read:文件导入批量读寄存器。
- Write:写入寄存器。
- Batch Write:文件导入批量写寄存器。
批量读写寄存器文件格式
文件格式为 {Address, Value}
,批量读写寄存器时,点击 Batch Read 或 Batch Write 导入 reg_batch.txt
。读取结果会在红色框中显示对应的日志,同时会生成同名 _read.txt
文件用于后续查看。
批量读写寄存器文件格式示例
保存参数
- 在菜单功能区点击 Save 按钮。
- 选择路径并设置文件名。
- 点击保存生成参数文件。
打开本地参数文件
在菜单功能区点击 Open 按钮,或者直接将参数文件拖曳到工具的对应模块中,该操作将把参数直接写入硬件。
Offline 基本操作
打开本地参数文件
- 在菜单功能区点击 Open 按钮,或者直接拖曳参数文件到工具中;
修改参数
- 在模块列表区展开想要调试的模块列表。
- 在模块列表区点击想要修改的模块。
- 在参数列表区通过滑动条或者直接修改参数值。
- 如果是一维向量,在参数编辑界面点击波形按钮可进入曲线编辑模式。
定标插件
- 在菜单功能区点击 Plugins 下拉菜单选择插件。
保存参数
- 在菜单功能区点击 Save 按钮,输入文件名,参数将保存至本地文件。
ISP 插件
本节介绍 BLC、LSC、AWB、CCM、Curve、Noise、PDC、PDAF 定标调试,以及调试辅助工具 General Information、Raw preprocessor。
标定插件支持 online(连接设备) 与 offline(导入参数文件),只有打开对应 Filter 参数时,插件才能打开。
BLC 定标与调试
BLC 定标 VRF 图要求
在全黑环境或将镜头完全遮挡采集 VRF 数据。
BLC 定标步骤
BLC 定标界面如下图
- 在 BLC 插件中点击 Load 导入 VRF 图。
- 选择 Pipe ID(非单 pipeline 可选)。
- 选择 Channel ID。
- 点击 Calibrate,校正结果显示在 Calibrated Result 界面。若结果不理想,也可手动修改 Result。
- 点击 Update,参数将更新到参数列表。若结果不理想,可点击 Cancel 重新校正。
BLC 定标说明
- Calibrated Result panel 显示 4 个通道,10bits 与 8bits 的值。参数保存到文件中会映射到 12bits。
- Channel ID:表示对应 2 ᵅ[倍 gain 下的 BLC 参数。BLC 可随 Gain 调整,从 1x 倍 gain 到 2048 倍 gain,共 12 个等级(见下图 Gain-BlackValue 示意图)。最后一档 manual 在 manual mode 使能时生效,此时 BLC 不随 gain 调整。
Gain – BlackValue 示意图
BLC 调试说明
BLC 参数位于 CDigitalGainFirmwareFilter。
- 若 BLC 不随增益变化,将 m_bManualMode 置为 1, 此时 BLC 值为 m_pGlobalBlackValueManual。
- 若 BLC 随增益变化,将 m_bManualMode 置为 0,此时 BLC 值为 m_pGlobalBlackValue。
LSC 定标与调试
LSC 定标 VRF 图要求
在灯箱环境(D65、 CWF、 A 光)或存在 shading 的环境中,使用 diffuse 挡住镜头,拍摄若干进光均匀的图片。
LSC 定标步骤
LSC 定标界面如下图
- 在 LSC 插件中点击 Load 导入 VRF 图。
- 选择 Pipe ID(非单 pipeline 可选)。
- 选择 Channel ID。
- 调整补偿的比例 Current Percentage,建议先设为 100%,后期可修改 strength 控制补偿强度。
- 点击 Calibrate,校正仿真结果显示在 Calibrated Image。
- 点击 Update,参数将更新到参数列表。若结果不理想,可点击 Cancel 重新校正。
LSC 定标说明
- Channel ID:
- 0:低色温补偿表
- 1:中色温补偿表
- 2:高色温补偿表
- manual:在 manual mode 使能时生效,此时 LSC 不随色温调整。
LSC 调试说明
LSC 可随 CT 或 CorrelatedCT 调整(见下图 CT-LSCProfile 示意图)。
- CT 定义:256 * AWB_RGain / AWB_BGain(可通过 AWB plugin 中的 CT 信息 / 4 获得)。
- CorrelatedCT 定义:相关色温,光源发出的光与某一色温的黑体辐射光相似的程度。
LSC 参数位于 CLSCFirmwareFilter
- LSC 需随色温变化,设置合适的 m_pCTIndex,以设置不同色温下的 Shading 表。
- 推荐使用:m_nCorrelationCT(在 CCTCalculatorFilter 中读取)。
注:LSC 插值依据可选择 AWBFilter 计算结果 CT(在 AWB 插件中读取 CT)或 CCTCalculatorFilter 计算结果 CCT(在 WbFirmwareFilter 中读取 m_nCorrelationCT)。
CCM 与 CCT 定标与调试
CCM 定标 VRF 图要求
在灯箱环境中使用拍摄 24 色卡,画面中色卡尽量对正,色卡居中,占画面约 1/9。
D65、CWF、A 光 是必要的光源。
CCM 定标步骤
CCM 定标界面如下图
- 在 CCM 插件中点击 Load 导入 VRF 图,VRF 使用 Raw preprocessor 插件补偿 LSC 和 PDF(如存在 PD 像素)。
- 在图中框选完整的色卡,保证 24 个 ROI 都落在色块之内。若拍摄图片不正或畸变严重,可点击 start,勾选期望单独调整的 ROI,然后手动拖动 ROI。
- 设定期望校正的饱和度。
- 点击 Calibrate,校正仿真结果显示在 Calibrated Result。
- 选择 Pipe ID(非单 pipeline 可选)。
- 选择 Channel ID。
- 点击 Update,参数将更新到参数列表。若结果不理想,可在 Saturation Table 中针对修改某一个 block 的饱和度,然后重新 calibrate。
CCT 定标步骤
CCM 定标界面如下图
- 定标步骤与 CCM 定标可同时进行,CCT 只需要 A 与 D65。
- CCM Calibrate A 光之后,选择 profile 2850K,点击 UpdateCTMatrix。
- CCM Calibrate D65 光之后,选择 profile 6500K,点击 UpdateCTMatrix。
- 结果将自动更新到 CCTCaluatorFilter 中 m_pCTMatrix_low / high 中。
CCM 定标说明
- Use Internal Curve – Calibration:无需勾选。
- Use Internal Curve – Render:无需勾选。
- Use AGTM:勾选。
- Target:保持 D50。
- View Environment:保持 D50。
- Calibrated Result:显示校正之后的仿真结果。
- CCM Result:列出了校正之后的色彩矩阵,此处亦可手动修改,点击 set 设到硬件中。
- Channel ID:
- 0:低色温 CCM 参数
- 1:中色温 CCM 参数
- 2:高色温 CCM 参数
- manual:在 manual mode 使能时生效,此时 CCM 不随色温调整。
- Make DNG Profile:reserved
- UpdateCTMatrix:更新 CCT matrix
- SaveImage:保存 render 出的图片
CCM 调试说明
CCM 可随色温调整(见下图 CCM-色温控制曲线)。
CCM 参数位于 CColorMatrixFirmwareFilter。
- CCM 需随色温变化,设置合适的 m_pCTIndex,以设置不同色温下的色彩矩阵。
- 推荐使用:CorrelatedCT。
注:CCM 插值依据可选择 AWBFilter 计算结果 CT(在 AWB 插件中读取 CT)或 CCTCalculatorFilter 计算结果 CCT(在 WbFirmwareFilter 中读取 m_nCorrelationCT)。
AWB 定标与调试
AWB 白点定标 VRF 图要求
AWB 定标无需额外拍图,完成 CCT 定标即可进行。
AWB 白点定标步骤
AWB 定标界面如下图
- 打开 AWB 插件。
- 点击 Optimize,定标参数将自动更新到参数界面
AWB 亮度定标
在 AE 调试完成之后,需对模组亮度进行定标, 从而得到 AWB 需要的 Lux,定标步骤如下:
在 AE 调试完成之后,需对模组亮度进行定标,从而得到 AWB 需要的 Lux,定标步骤如下:
- 相机置于灯箱,拍摄灯箱壁,光源选择 D65。
- 使用色温照度计测量灯箱照度,填入 AECFilter 中 m_nCalibSceneLux。
- 在 AECFilter 中读取 m_nExpIndexLong,填入 AECFilter 中 m_nCalibExposureIndex。
- 在 AECFilter 中读取 m_nLumQ16,填入 AECFilter 中 m_nCalibSceneLum。
参数名 | 说明 | 建议调试 | 特殊性 |
---|---|---|---|
m_nCalibExposureIndex | 亮度定标的曝光索引 | 是 | |
m_nCalibSceneLum | 亮度定标的场景亮度 | 是 | |
m_nCalibSceneLux | 定标场景对应的实际照度 | 是 | |
m_nSceneLux | AWB debug参数,当前AE计算得到的场景照度 | - | 只读 |
AWB Debug
Block debug 信息
连接设备,点击 AWB 插件,每个 block 的落点将以蓝色点显示在坐标轴上,AWB 统计图像显示为缩略图。
统计图上可框选区域(默认展示所有区域的落点),框选之后只会显示框中 block 的落点。
ROI 中的白点
点击 Show ROI,可以看到不同 ROI 中包含的 block 情况,白色为参与白平衡计算的 block,即落入 ROI 区域的 block。
下图可见具体 32X24 个 block 所属 ROI。
Block 的权重
勾选 auto update 会定时更新 lux 及统计图,并实时计算 block 的权重。
拖动 Weight Percentage,可以调整 debug 图上实际场景与 参与白平衡计算的 block 的比例。0% 显示实际场景,100% 显示参与白平衡计算的 block 的权重(权重参考热力图)。
若设为 100%,画面显示为全黑,表示该 lux 下所有 block 权重为 0。
设置 Weight Percentage 为 100%,以热力图形式显示 block 的权重,可以将鼠标拖动到期望了解的 block,热力图右侧会显示对应 block 的权重(AWB Frameinfo 也可以看到 debug 信息),下图鼠标选择的是 block[12][2],权重为 16。
白平衡 gain 的落点
RGB gain panel 模块,勾选 enabled,填入 Q12 精度的 RGB gain(debug 信息 CurrentResult),对应白平衡 gain 在色温坐标系中以蓝色方块呈现,色温坐标系通过鼠标从左上到右下框选放大,从右下到左上框选缩小。
当前白平衡 gain 在色温坐标系中以红色方块呈现。
AWB 调试说明
-
定标 Panel
- Calibrate Panel
- Visible:勾选将在坐标中显示该 ROI。
- Enable:勾选将使能该 ROI。
- Calibrate Files Panel
- Percentage:选取 VRF 图的比例。20%,表示选择中心 20% 的区域用于定标,图像中心的区域受到 shading 的影响较小。
- Optimize:自动定标。
- Load config:(reserved)
- Save config:(reserved)
- Load:导入 VRF。
- Calibrate:reserved。
- Update:更新参数到参数列表。
- Cancel:取消参数更新。
- ShowROI:显示各个 ROI 的百点情况。
- Calibrate Panel
-
调试 Panel
-
Control Panel
- Pipe ID:当前的 pipeline ID(非单 pipe 可选)。
- Auto Update:online 状态自动更新当前亮度与统计窗口(勾选时,在插件中将不能修改参数)。
- Manual Lux:固定当前亮度。
- Weight Percentage:debug 参数,调整显示白平衡统计块与块的权重。0% 显示统计块,100% 显示块权重热力图。
- RGB Gain:debug apply 的 gain,对应色温坐标系中红色的点。
- Luminance Boundary:参与 AWB 统计的像素的亮度区间(8 bit)。
- Valid Number:白平衡计算所需最少有效 block,[0,768]。
- Correct Limit Panel:block 限制区间,超出 Limit 且处于 ROI 的 block 将会在 XY 上方向映射。
-
Green Shift Panel
- Shift Max Weight:shift 权重,与 exposure shift 相乘得到最终的 shift 权重,最大 32,完 全偏向 outdoor gain。
- Green Number Threshold:落在 G 区的 block 的数目,在此区间则进入 green shift。
- Outdoor RGB Gain:green shift 目标 gain。
- Shift Weight:依据 exposure 调整 weight。
-
Luminance Panel
- Lux:亮度索引。
- Weight:对应 ROI 在当前亮度下的权重。
- Min / Max:luma 区间(8 bit)。
-
-
Debug Panel
-
RGB Gain Panel
- enabled:用于展示白平衡 gain 在色温坐标系的位置。
- RGB:白平衡 gain。
-
Gain Panel:debug 信息,鼠标在色温坐标系上滑动,可显示对应位置的 debug 信息。
- X Y:色温坐标系上点对应 XY 坐标。
- CT:色温坐标系上点对应 CT 值,可用于提供 LSC、CCM 插值依据。
- RGB:色温坐标系上点对应白平衡 gain。
- CCT、Tint:色温坐标系上点对应 CCT 与 Tint,可用于提供 LSC、CCM 插值依据。
- CCT curve:色温坐标系上显示 CCT curve。
- Vaild only:色温坐标系上只展示有效统计块。
- Applied Gain:当前场景白平衡 gain 落点,对应色温坐标系中红色的点。
- Block、Weight:鼠标在统计图上滑动,可显示对应 block 的位置及权重。
-
Curve 调试
Curve 调试步骤
Curve 调试界面如下图
- 打开 Curve 插件。
- 选择 Pipe ID(非单 pipeline 可选)。
- 选择 Channel ID。
- 鼠标滑至 Curve 上想要调节的点,左键拖动到期望位置。
- 点击 Update,参数将更新到参数列表。若结果不理想,可点击 Cancel 重新校正。
Curve 调试说明
- Channel ID:
- BacklightCurveManual:用于控制背景亮度,建议保持曲线不变,调整 strength 即可。
- ContrastCurveManual:用于控制对比度,建议保持曲线不变,调整 strength 即可。
- GTMCurve0:gain 为 m_pGainIndex[0] (Q4 精度)时的曲线。
- GTMCurve1:gain 为 m_pGainIndex[1] (Q4 精度)时的曲线。
- GTMCurve2:gain 为 m_pGainIndex[2] (Q4 精度)时的曲线。
注:当 m_nCurveSelectOption 设为 0 时,curve 依据当前 gain 做插值(见下图 Curve-Gain 控制曲线示意图)。
Curve 参数位于 CCurveFirmwareFilter。
- Curve 可随 gain 变化,设置合适的 m_pGainIndex,以设置不同 gain 下的 curve。
Noise 定标与调试
Noise 定标 RAW 图要求
在实验室环境中使用拍摄 24 色卡,画面中色卡尽量对正,色卡居中,占比约 1/9。
控制灯光亮度,依次拍摄 1、2、4、8、16、32、64、128、256、512、1024、2048 倍 Gain 下的色卡。
Noise 定标步骤
定标界面如下图
- 在 Noise 插件中点击 Load 导入 RAW 图,VRF 使用 Raw preprocessor 插件补偿 LSC 和 PDF(如存在 PD 像素)。
- 在图中框选色卡最下方的 6 个块,保证 6 个 ROI 都落在色块之内。若拍摄图片不正或畸变严重,可点击 start,勾选期望单独调整的 ROI,然后手动拖动 ROI。
- 设定 期望 Denois Strength。
- 点击 Calibrate,标定噪声水平显示在 Noise Result。
- 选择 Pipe ID。
- 选择 Channel ID。
- 点击 Update,参数将更新到参数列表。若结果不理想,可点击 Cancel 重新校正。
Noise 定标说明
- Noise Result:显示标定的噪声水平。
- Channel ID:
- 0:1 倍 gain 下的去噪参数。
- 1:2 倍 gain 下的去噪参数。
- 以此类推,11:2048 倍 gain 下的去噪参数。
- manual:manual mode 下的去噪参数。
PDAF 定标
PDAF 定标 VRF 图要求
在实验室环境中拍摄棋盘格,拍摄物距 2 米,棋盘格和 sensor 平行。
控制灯光亮度,使得增益尽量接近 1 倍。
拍摄马达从有效位置最小值到有效位置最大值的图像(将整个扫描区域均分成 30 段,31 个位置),共 31 张(vrf 文件名命名规范为 position.vrf,PD raw files 文件名 position_L.raw,position_R.raw)。
PDAF 定标步骤
PDAF 定标界面如下图
- 在 PDC 插件中点击 Load 选择 VRF 文件夹(若导入的是已抽出 PD 的 raw files,还需填写 raw 的宽高)。
- 点击 Calibrate,将显示图像分割为 5x5 的块所对应的块的 position – shift 图。
- 选择 Pipe ID(非单 pipeline 可选)。
- 点击 Update,CAFFilter 中 m_pPDShiftPositionLUT 参数将更新。
- 若结果不理想,可点击 Cancel 重新校正。
PDC 定标
PDC 用于将 PD 像素或 shadow 像素亮度补偿到正常亮度供 PDAF 对焦算法使用。
已知 PD 点,shadow 分布情况(m_pPixelMask 和 m_pPixelTypeMask)下,通过含 PD 点分布的图像,对 PDC 参数 m_pRatioBMap 进行标定。
PDC 定标 VRF 图要求
在灯箱环境 D65 中,使用毛玻璃拍摄灯箱壁。
PDC 定标步骤
- 在 PDC 插件中点击 Analyze,PDC plugin 判断 setting 中 m_pPixelMask 和 m_pPixelTypeMask 设置是否合理。如果不合理,需要调整这两个参数。
- Analyze 分析 setting,合理后,Load 按钮有效化。QuadBayer PD 可选择补偿方式(0-1 通道互补或 2-3 通道互补,四通道 PD 点数目相同时,还可选择四通道互补)。
- Load 图像成功后,右边会显示对应通道抽取的 PD 点组成的小图像。按下 Calibrate 按钮,会计算根据图像计算得到的 m_pRatioBMap,并将用新的 m_pRatioBMap 补偿过的 PD 点组成的小图像显示在右图中。
- Update 按钮会更新 PDC 参数中 m_pRatioBMap。若结果不理想,可点击 Cancel 重新校正。
- 选择 Pipe ID(非单 pipeline 可选)。
- 点击 Update,参数将更新到参数列表。若结果不理想,可点击 Cancel 重新校正。
PDC 定标说明
m_pPixelMask,m_pPixelTypeMask 说明
- 两个参数标定图像 PD,shadow 分布,分布以 32x32 周期分布。
- 如果 m_pPixelMask=1,则当前点为 PD 点,m_pPixelTypeMask 表示像素遮蔽的四种方向。
- 如果 m_pPixelMask=0,m_pPixelTypeMask>0,则当前点为 shadow 点。
- 两个参数一般由 sensor 厂商提供,如果没有则拍摄 RAW 图手工标定。
Raw preprocessor 插件
Raw preprocessor 插件说明
Raw preprocessor 插件用于 raw 预处理,支持 PD 点矫正,LSC 补偿,Unpack VRF(ASR RAW packed format)功能。
Raw preprocessor 插件使用
Raw preprocessor 界面如下图
- 在 Raw preprocessor 插件中设置 input 和 output VRF 文件。
- 选择对应的 pipe 以及 LSC channel。
- 选择期望的预处理功能,PDF,LSC,Unpack。
- 点击 Preprocess。
- Batch preprocess 支持文件夹导入,批处理 VRF 文件。