如果需要gc2093摄像头开启hdr功能,iq文件支持hdr模式,分三步走:1、设备树配置启动hdr功能 ,2、IQ文件的参数确认 3、应用程序的场景切换。
查阅数据手册确认支持HDR_X2模式

查阅include/uapi/linux/rk-camera-module.h

在设备树中添加配置rockchip,camera-hdr-mode = <5>,如下图所示:

在gc2093驱动中添加打印信息定位是否启动生效

烧写替换内核后,可以查看dmesg | grep 2093,确认hdr_mode是否为5

确认设备树配置生效,但是v4l2抓图会卡住, 后续发现会被rkaiq_3A_server 启动后覆盖掉了

下⾯是⼀个标准的IQ⽂件JSON层级视图,其中main_scene为顶级数组, sub_scene为main_scene的⼦级,核⼼的IQ参数保存在每⼀个scene_ISP35结构中,当需要切换参数的时候,我们只需要指定参数所在的main_scene的名称和sub_scene的名称,程序即可找到对应的参数并完成切换
标准iq文件支持主场景normal和hdr ,在normal场景下可能还支持子场景day和night,如下图所示:

详细参数说明,

查阅使用gc2093的iq仅支持hdr主场景

3.3.1 启动hdr方法
1、通过rkaiq_3a_server启动
2、应用程序调用librkaiq实现
以上方法使用都可以使用这俩个api实现切换,详细参与原厂指南《Rockchip_Development_Guide_ISP35_CN.pdf》,具体api说明如下:
先使用rk_aiq_uapi2_sysctl_preInit_scene切换到normal或者hdr主场景,哪个子场景

再使用rk_aiq_uapi2_sysctl_prepare跑到具体做模式

3.3.2 启动hdr生效(以rkaiq_3A_server为例)
源码路径:external/camera_engine_rkaiq/rkaiq_3A_server/rkaiq_3A_server.cpp
查阅rkaiq_3A_server源码,默认跑iq文件的normal主场景,这是导致hdr启动失败的原因。

由于使用iq文件只有hdr场景,如下图所示,修改rkaiq_3A_server.cpp源码
将场景固定为RK_AIQ_WORKING_MODE_ISP_HDR2,代码如下:
static void init_engine(struct rkaiq_media_info *media_info)
{
int index;
rk_aiq_working_mode_t work_mode = RK_AIQ_WORKING_MODE_ISP_HDR2;
if (work_mode){
rk_aiq_uapi2_sysctl_preInit_scene(media_info->sensor_entity_name, "hdr","day");
ERR("rkaiq engine prepare mode0x%x main_scene: hdr, sub_scene:day !\n",work_mode);
}
else{
rk_aiq_uapi2_sysctl_preInit_scene(media_info->sensor_entity_name, "normal","day");
ERR("rkaiq engine prepare mode0x%x main_scene: normal, sub_scene:day !\n",work_mode);
}
media_info->aiq_ctx = rk_aiq_uapi2_sysctl_init(media_info->sensor_entity_name,
IQ_PATH, NULL, NULL);
/* 3A server has listened stream events already */
rk_aiq_uapi2_sysctl_setListenStrmStatus(media_info->aiq_ctx, false);
if (has_mul_cam)
rk_aiq_uapi2_sysctl_setMulCamConc(media_info->aiq_ctx, 1);
if (rk_aiq_uapi2_sysctl_prepare(media_info->aiq_ctx,
width, height, work_mode)) {
ERR("rkaiq engine prepare failed !\n");
exit(-1);
}
}
修改后重新编译rkaiq_3a_server,再启动服务,查看打印信息可知:成功启动hdr功能,如下图所示:

具体需要以iq文件为准,实现顺序是先切摄像头主场景/子场景,再切对应的工作模式。
全部0条评论
快来发表一下你的评论吧 !