首页 > 技术知识 > 正文

针对Hi3519DV500的ISP开发说明——AIDRC算法应用-hi3518erncv300芯片针对Hi3519DV500的ISP开发说明——AIDRC算法应用-hi3518erncv300芯片1

AIDRC简介

AIDRC(AI-based Dynamic Range Compression)是一种基于AI的新型的动态范围压缩算法,它能在宽动态场景下,更好地保留亮暗区(尤其是逆光区域)的细节,同时提升整体对比度,从而提高成像设备在宽动态场景的细节捕获能力。

提供接口及注意事项

ss_mpi_aidrc_init:初始化AIDRC模块。

【注意】

不支持多进程调用。

ss_mpi_aidrc_exit:去初始化AIDRC模块。

【注意】

不支持多进程调用。调用此接口去初始化AIDRC模块前,需要关闭AIDRC数据流开关。ss_mpi_aidrc_load_model:加载AIDRC的模型文件。

【注意】

调用该接口前必须先调用 ss_mpi_aidrc_init初始化AIDRC模块。调用该接口前AIDRC数据流需要保持关闭状态。相同类型的模型文件,如果图像宽高相等时,不能重复加载。支持多个模型文件的加载,或者同一模型文件、不同分辨率多次加载。不支持多进程调用。ss_mpi_aidrc_unload_model:卸载AIDRC的模型文件。

【注意】

应用程序退出前,需调用此接口释放已加载模型文件的内存资源,或者调用ss_mpi_aidrc_exit接口释放AIDRC的所有资源。不支持多进程调用。调用此接口前需要关闭AIDRC数据流开关。ss_mpi_aidrc_set_cfg:设置AIDRC算法相关配置参数。

【注意】

调用该接口前必须先调用ss_mpi_aidrc_init初始化AIDRC模块。调用该接口时AIDRC数据流需要保持关闭状态。如果调用了ss_mpi_aidrc_attach_vb_pool接口配置了vb,通过ss_mpi_aidrc_set_cfg接口配置的vb_cnt不会生效。ss_mpi_aidrc_get_cfg:获取AIDRC算法相关配置参数。

【注意】

调用该接口前必须先调用ss_mpi_aidrc_init初始化AIDRC模块。

ss_mpi_aidrc_enable:使能AIDRC数据流开关。

【注意】

调用此接口前需要先初始化VI、ISP模块。主进程调用该接口前必须先调用ss_mpi_aidrc_init初始化AIDRC模块,并调用ss_mpi_aidrc_load_model接口加载AIDRC模型文件。其他次进程(例如PQTools)支持使用该接口打开AIDRC数据流,无需初始化AIDRC,但需要主进程保证已经调用了ss_mpi_aidrc_init初始化过AIDRC模块。enable aidrc前有如下限制条件:

    – 对应的vi pipe必须已经创建。

    – 需要用户调用函数去分配VB池,VB大小计算使用函数ot_aidrc_get_out_buf_size,且分配的VB池需要attach对应的PIPE上。

5. AIDRC使能之后,延迟2帧生效。

6. AIDRC仅支持16bit的Bayer图像数据处理。

7. 调用该接口前,需要提前通过ss_mpi_sys_set_vi_aiisp_mode接口配置VI为OT_VI_AIISP_MODE_DEFAULT模式,或OT_VI_AIISP_MODE_AIDRC模式。

ss_mpi_aidrc_disable:关闭AIDRC数据流开关。

【注意】

主进程调用该接口前必须先调用ss_mpi_aidrc_init初始化AIDRC模块,并调用ss_mpi_aidrc_load_model接口加载AIDRC模型文件。其他次进程(例如PQTools)支持使用该接口关闭AIDRC数据流,无需初始化AIDRC,但需要主进程保证已经调用了ss_mpi_aidrc_init初始化过AIDRC模块。在VI模块销毁对应的pipe之前,需要先调用该接口关闭AIDRC功能,否则可能出现VB泄漏。ss_mpi_aidrc_set_attr:设置AIDRC的属性。

【注意】

调用该接口前必须先调用ss_mpi_aidrc_init初始化AIDRC模块,并调用ss_mpi_aidrc_load_model接口加载AIDRC模型文件。使能AIDRC数据流开关之后才能调用此接口成功设置AIDRC属性。ss_mpi_aidrc_get_attr:获取AIDRC的属性。

【注意】

使能AIDRC数据流开关之后才能调用此接口成功获取AIDRC属性

ss_mpi_aidrc_set_smooth: 设置AIDRC的开关平 滑过渡属性。

【注意】

调用该接口前必须先调用ss_mpi_aidrc_init初始化AIDRC模块,并调用ss_mpi_aidrc_load_model接口加载AIDRC模型文件。

ss_mpi_aidrc_get_smooth: 获取AIDRC的开关平 滑过渡属性。

【注意】

调用该接口前必须先调用ss_mpi_aidrc_init初始化AIDRC模块,并调用ss_mpi_aidrc_load_model接口加载AIDRC模型文件。

ss_mpi_aidrc_attach_vb_pool:将AIDRC输出绑定到指定的视频缓存VB池。

【注意】

调用该接口前必须先调用ss_mpi_aidrc_init初始化AIDRC模块。必须在使能AIDRC数据流开关之前调用此接口ss_mpi_aidrc_detach_vb_pool:将AIDRC输出与指定的视频缓存VB池解除绑定。

【注意】

调用该接口前必须先调用ss_mpi_aidrc_init初始化AIDRC模块。必须在使能AIDRC数据流开关之前调用此接口。ss_mpi_aidrc_set_thread_attr:设置AIDRC线程属性。

【注意】

调用该接口支持在调用ss_mpi_aidrc_init初始化AIDRC模块前或开启AIDRC通路后动态修改。

ss_mpi_aidrc_get_thread_attr:获取AIDRC线程属性。

【注意】

/

猜你喜欢