曝光调试

RV1126B 过曝主要靠 ISP35 的 AE(自动曝光) 调,不靠改应用随便压亮度。推荐路径如下。
结论先说
| 层级 | 位置 | 用途 |
|---|---|---|
| IQ 参数(主战场) | external/camera_engine_rkaiq/rkaiq/iqfiles/isp35/common/*.json → 设备 /etc/iqfiles/ | 改目标亮度、EV、过曝保护 |
| 在线调参工具 | PC 端 IQ Tool + 板端 rkaiq_tool_server(端口 5543) | 连 10.0.0.102 实时改 AE |
| 应用层 API | rk_aiq_user_api2_ae_* / rkipc isp.c | 代码里临时压曝光或开 HLC |
| 文档 | Redmine ISP35 Tuning Guide(SDK docs 里可能不全) | AE/OverExp 官方说明 |
EVB 默认传感器倾向 SC450AI,对应 IQ:
external/camera_engine_rkaiq/rkaiq/iqfiles/isp35/common/sc450ai_default_default.json
1. 先确认设备实际用的 Sensor / IQ
在已 adb connect 10.0.0.102 的终端:
adb shell
# 或已进 shell:
ls /etc/iqfiles/ /usr/share/iqfiles/ /oem/usr/share/iqfiles/ 2>/dev/null
ps | grep -E 'rkipc|rkaiq'
media-ctl -p 2>/dev/null | head -80
cat /sys/class/video4linux/v4l-subdev*/name 2>/dev/null
看实际加载的是 sc450ai_*.json 还是 imx415_*.json 等,后面只改对应文件。
rkipc 启动方式(SDK 里):
if [ -d "/usr/share/iqfiles" ];then
rkipc -a /usr/share/iqfiles &
2. 过曝优先改这 3 个 AE 参数(IQ JSON)
路径在 JSON 里:scene_isp35 → ae_calib → linAeCtrl(线性)/ hdrAeCtrl(HDR)。
以 SC450AI 默认为例:
"linAeCtrl": {
"sw_aeT_evBias_strg": 0,
...
"dynSetpoint": {
"sw_aeT_dynSetpoint_dot": [30, 30, 30, 30, 28, 26, 24]
},
"overExpCtrl": {
"sw_aeT_overExp_en": 0,
"sw_aeT_overExpBias_strg": 0,
...
}
| 参数 | 作用 | 过曝时怎么调 |
|---|---|---|
sw_aeT_dynSetpoint_dot | AE 目标亮度 | 整体降低,如 30→22~25 |
sw_aeT_evBias_strg | EV 补偿(约 -500~500) | 改负,如 -30 ~ -80 |
overExpCtrl.sw_aeT_overExp_en | 高光过曝保护 | 0→1,并可调 sw_aeT_overExpBias_strg / hiLitWgt |
注意:当前默认是 ae_strategy_lowlight_mode(偏保暗部),亮场景更容易偏亮;过曝明显时可配合过曝保护,或按 Tuning Guide 改策略。
3. 推荐工作流(两种)
方案 A:在线调(最快,推荐)
工具:
- 板端:
rkaiq_tool_server(源码:external/camera_engine_rkaiq/rkaiq_tool_server/) - PC:Rockchip IQ Tool / IQLab(SDK 外,一般从 Redmine/AVL 拿)
- 可选:
dumpcam(external/camera_engine_rkaiq/rkaiq/tools/dumpcam/)看 AE 状态
# PC
adb connect 10.0.0.102
adb forward tcp:5543 tcp:5543 # 若直连 IP 不通再用
# 设备:保证相机在跑(rkipc 等),再起 tool server
adb shell "which rkaiq_tool_server; rkaiq_tool_server -i /etc/iqfiles -d 0"
PC IQ Tool 连 10.0.0.102:5543(或 127.0.0.1:5543)→ 打开 AE → 降 SetPoint / 负 EvBias / 开 OverExp → 导出 JSON。
推回设备:
adb push your_sensor_xxx.json /etc/iqfiles/
adb shell "sync; killall rkipc; rkipc -a /etc/iqfiles &"
# 若启动脚本用 /usr/share/iqfiles,则推到同一路径并与 RkLunch 一致
说明:部分 Yocto 镜像会裁掉 rkaiq_tool_server/dumpcam,没有就从 SDK 编进 rootfs 或单独 adb push。
方案 B:离线改 IQ 再推
- 编辑 SDK:
external/camera_engine_rkaiq/rkaiq/iqfiles/isp35/common/<你的sensor>_*.json adb push到设备 IQ 目录,重启rkipc- 或改完后重新打包 rootfs / 整包烧录固化
4. 代码 / 应用层(临时验证)
API 头文件:
external/camera_engine_rkaiq/rkaiq/include/uAPI2/rk_aiq_user_api2_ae.h
示例(OverExp / EvBias):
external/camera_engine_rkaiq/rkisp_demo/demo/sample/sample_ae_module.c
里的 sample_set_OverExpCtrl()、rk_aiq_user_api2_ae_setLinExpAttr()。
rkipc 已有封装(手动曝光、HLC):
app/rkipc/common/isp/rv1126b/isp.c
rk_isp_set_exposure_mode/time/gain→ 手动压曝光验证rk_isp_set_hlc/rk_isp_set_hlc_level→ 高光抑制(rk_aiq_uapi2_setHLCMode/Strength)
适合“先确认是不是纯 AE 目标偏高”,不适合当最终量产标定。
5. 建议排查顺序
- 确认 sensor + 实际 IQ 文件名
- 白天过曝:先降
dynSetpoint+ 负evBias - 仍有高光炸:开
overExpCtrl,必要时开 rkipc HLC - 仍饱和:查
route里time/gain是否过大,以及是否该用 HDR - IQ Tool 调稳后,把 JSON 固化进
/etc/iqfiles(或 SDK iqfiles)再量产
文档
- 以 ISP35 Tuning Guide 为准(RV1126B / RKIPC 相关)
- 入口:
docs/cn/Common/ISP/The-Latest-Camera-Documents-Link.txt→ Rockchip Redmine document 53