AIISP 开发参考
前言
本文为使用AIISP的软件开发工程师和图像质量开发工程师而写,目的是为您在开发过程中提供使用指导和帮助。
说明:
本文以Hi3519DV500为例,未有特殊说明,Hi3516DV500与Hi3519DV500内容完全一致,Hi3516CV608与Hi3516CV610内容一致。
与本文档相对应的产品版本如下。
在本文中可能出现下列标志,它们所代表的含义如下。
修订记录累积了每次文档更新的说明。最新版本的文档包含以前所有文档版本的更新内容。
概述
AIBNR
AIBNR概述
AIBNR(AI-based Bayer Noise Reduce)是一种新型的去噪算法,它能使成像设备在更低照度时噪声去除更干净,细节保留更多,从而提高成像设备极低照度的感光能力。本文主要介绍AIBNR的接口说明和使用注意事项。
AIBNR参考帧普通模式性能支持3072 x 1728@30fps,无参考帧模式支持3072 x 1728@40fps。Hi3516CV610最大支持2688 x 1520@12fps。
说明:
Hi3516CV608和Hi3516CV610-10B板型不支持AIBNR,初始化和使能接口已做限制。Hi3519DV500和Hi3516CV610其他板型支持AIBNR。
AIBNR基本概念
- sfs (spatial filter strength),即空域去噪强度。
- tfs (temporal filter strength),即时域去噪强度。
AIBNR性能
性能跟加载的模型相关,详细的性能数据请参考本文档模型列表中的数据。
AIDRC
AIDRC概述
AIDRC(AI-based Dynamic Range Compression)是一种基于AI的新型的动态范围压缩算法,它能在宽动态场景下,更好地保留亮暗区(尤其是逆光区域)的细节,同时提升整体对比度,从而提高成像设备在宽动态场景的细节捕获能力。本文主要介绍AIDRC的接口说明和使用注意事项。
AIDRC NORMAL模式性能支持3840x2160@30fps,ADVANCED模式支持3072x1728@30fps。
说明:
Hi3516CV610不支持AIDRC。
AIDRC基本概念
- strength:即细节增强强度,值越大,对细节的增强程度越明显。
- threshold:噪声抑制阈值,值越大,越能够规避对噪声的放大。
- AIDRC NORMAL模式:仅处理画面细节,资源消耗较小。
- AIDRC ADVANCED模式:同时处理画面细节和亮度,进一步提升整体对比度,资源消耗稍大。
AIDRC性能
AIDRC_MODE_NORMAL模式性能数据如表1所示。
表 1 AIDRC_MODE_NORMAL模式性能数据
AIDRC_MODE_ADVANCED模式性能数据如表2。
表 2 AIDRC_MODE_ADVANCED模式性能数据
AI3DNR
AI3DNR概述
AI3DNR(AI-based 3D Noise Reduce)是一种基于AI的新型的3维降噪算法,它是YUV域的降噪算法。本文主要介绍AI3DNR的接口说明和使用注意事项。
说明:
Hi3516CV610不支持AI3DNR。
AI3DNR基本概念
- YUV net:表示YUV都经过AI的处理。
- UV net:表示仅针对图像的UV数据进行AI的处理。
AI3DNR性能
表 1 AI3DNR性能
API参考
AIBNR为用户提供以下API:
- ss_mpi_aibnr_init:初始化AIBNR模块。
- ss_mpi_aibnr_exit:去初始化AIBNR模块。
- ss_mpi_aibnr_load_model:加载AIBNR的模型文件。
- ss_mpi_aibnr_unload_model:卸载AIBNR的模型文件。
- ss_mpi_aibnr_set_cfg:设置AIBNR算法相关配置参数。
- ss_mpi_aibnr_get_cfg:获取AIBNR算法相关配置参数。
- ss_mpi_aibnr_enable:使能AIBNR数据流开关。
- ss_mpi_aibnr_disable:关闭AIBNR数据流开关。
- ss_mpi_aibnr_query_status:查询数据流运行状态。
- ss_mpi_aibnr_set_attr:设置AIBNR的属性。
- ss_mpi_aibnr_get_attr:获取AIBNR的属性。
- ss_mpi_aibnr_set_thread_attr:设置AIBNR线程属性。
- ss_mpi_aibnr_get_thread_attr:获取AIBNR线程属性。
- ss_mpi_aibnr_get_input_frame:获取AIBNR处理前的输入帧数据。
- ss_mpi_aibnr_release_input_frame:释放AIBNR处理前的输入帧数据。
- ss_mpi_aibnr_get_output_frame:获取AIBNR处理后的输出帧数据。
- ss_mpi_aibnr_release_output_frame:释放AIBNR处理后的输出帧数据。
- ss_mpi_aibnr_set_model_attr:设置模型的属性。
- ss_mpi_aibnr_get_model_attr:获取模型的属性。
- ss_mpi_aibnr_query_model_list:查询模型的列表。
AIDRC为用户提供以下API:
- ss_mpi_aidrc_init:初始化AIDRC模块。
- ss_mpi_aidrc_exit:去初始化AIDRC模块。
- ss_mpi_aidrc_load_model:加载AIDRC的模型文件。
- ss_mpi_aidrc_unload_model:卸载AIDRC的模型文件。
- ss_mpi_aidrc_set_cfg:设置AIDRC算法相关配置参数。
- ss_mpi_aidrc_get_cfg:获取AIDRC算法相关配置参数。
- ss_mpi_aidrc_enable:使能AIDRC数据流开关。
- ss_mpi_aidrc_disable:关闭AIDRC数据流开关。
- ss_mpi_aidrc_query_status:查询数据流运行状态。
- ss_mpi_aidrc_set_attr:设置AIDRC的属性。
- ss_mpi_aidrc_get_attr:获取AIDRC的属性。
- ss_mpi_aidrc_set_smooth: 设置AIDRC的开关平滑过渡属性。
- ss_mpi_aidrc_get_smooth: 获取AIDRC的开关平滑过渡属性。
- ss_mpi_aidrc_set_thread_attr:设置AIDRC线程属性。
- ss_mpi_aidrc_get_thread_attr:获取AIDRC线程属性。
- ss_mpi_aidrc_get_output_frame:获取AIDRC处理后的输出帧数据。
- ss_mpi_aidrc_release_output_frame:释放AIDRC处理后的输出帧数据。
AI3DNR为用户提供以下API:
- ss_mpi_ai3dnr_init:初始化AI3DNR模块。
- ss_mpi_ai3dnr_exit:去初始化AI3DNR模块。
- ss_mpi_ai3dnr_load_model:加载AI3DNR的模型文件。
- ss_mpi_ai3dnr_unload_model:卸载AI3DNR的模型文件。
- ss_mpi_ai3dnr_set_cfg:设置AI3DNR算法相关配置参数。
- ss_mpi_ai3dnr_get_cfg:获取AI3DNR算法相关配置参数。
- ss_mpi_ai3dnr_enable:使能AI3DNR数据流开关。
- ss_mpi_ai3dnr_disable:关闭AI3DNR数据流开关。
- ss_mpi_ai3dnr_query_status:查询数据流运行状态。
- ss_mpi_ai3dnr_set_attr:设置AI3DNR的属性。
- ss_mpi_ai3dnr_get_attr:获取AI3DNR的属性。
- ss_mpi_ai3dnr_set_smooth:设置AI3DNR的开关平滑过渡属性。
- ss_mpi_ai3dnr_get_smooth:获取AI3DNR的开关平滑过渡属性。
- ss_mpi_ai3dnr_set_thread_attr:设置AI3DNR线程属性。
- ss_mpi_ai3dnr_get_thread_attr:获取AI3DNR线程属性。
- ss_mpi_ai3dnr_get_input_frame:获取AI3DNR处理前的输入帧数据。
- ss_mpi_ai3dnr_release_input_frame:释放AI3DNR处理前的输入帧数据。
- ss_mpi_ai3dnr_get_output_frame:获取AI3DNR处理后的输出帧数据。
- ss_mpi_ai3dnr_release_output_frame:释放AI3DNR处理后的输出帧数据。
AIBNR API参考
ss_mpi_aibnr_init
【描述】
初始化AIBNR模块。
【语法】
【参数】
无
【返回值】
失败,请参见错误码。 |
【需求】
- 头文件:ss_mpi_aibnr.h
- 库文件:libss_mpi_aibnr.a
【注意】
- 不支持多进程调用。接口调用需要和VI、ISP所在的主进程保持同进程。
- Hi3516CV608和Hi3516CV610-10B板型不支持调用。
【举例】
无
【相关主题】
无
ss_mpi_aibnr_exit
【描述】
去初始化AIBNR模块。
【语法】
【参数】
无
【返回值】
失败,请参见错误码。 |
【需求】
- 头文件:ss_mpi_aibnr.h
- 库文件:libss_mpi_aibnr.a
【注意】
- 不支持多进程调用。接口调用需要和VI、ISP所在的主进程保持同进程。
- 调用此接口去初始化AIBNR模块前,需要关闭AIBNR数据流开关。
【举例】
无
【相关主题】
无
ss_mpi_aibnr_load_model
【描述】
加载AIBNR的模型文件。
【语法】
【参数】
【返回值】
失败,请参见错误码。 |
【需求】
- 头文件:ss_mpi_aibnr.h
- 库文件:libss_mpi_aibnr.a
【注意】
- 调用该接口前必须先调用ss_mpi_aibnr_init初始化AIBNR模块。
- 调用该接口前AIBNR数据流需要保持关闭状态。
- 对于Hi3519DV500芯片,相同类型的模型文件,如果图像宽高相等时,不能重复加载;支持多个模型文件的加载,或者同一模型文件、不同分辨率多次加载。
- 对于Hi3516CV610芯片,支持加载多个相同分辨率的模型。
- 不支持多进程调用。接口调用需要和VI、ISP所在的主进程保持同进程。
- 对于Hi3519DV500芯片,WDR模式不支持加载无参考模型,切长帧模式时,需要提前加载线性模型。
- 对于Hi3519DV500芯片,如果模型文件中相同参考类型、线性wdr类型有多个模型,调用该接口会把模型文件中指定的分辨率、参考类型、线性wdr类型的模型都加载到系统中,总共加载的模型个数不能超过模型总数的上限。
- 不支持同时加载多个二进制模型文件。
- 不支持在__attribute__((constructor))函数里调用。
- Hi3516CV610不支持在线编译,每个模型文件只支持固定的一种分辨率。
【举例】
无
【相关主题】
无
ss_mpi_aibnr_unload_model
【描述】
卸载AIBNR的模型文件。
【语法】
【参数】
【返回值】
失败,请参见错误码。 |
【需求】
- 头文件:ss_mpi_aibnr.h
- 库文件:libss_mpi_aibnr.a
【注意】
- 应用程序退出前,需调用此接口释放已加载模型文件的内存资源,或者调用ss_mpi_aibnr_exit接口释放AIBNR的所有资源。
- 不支持多进程调用。接口调用需要和VI、ISP所在的主进程保持同进程。
- 调用此接口前需要关闭AIBNR数据流开关。
- 离线模型在调用此接口前,需要保证加载模型时分配的内存没有被释放。
【举例】
无
【相关主题】
无
ss_mpi_aibnr_set_cfg
【描述】
设置AIBNR算法相关配置参数。
【语法】
【参数】
|
取值范围:[0, OT_VI_MAX_PHYS_PIPE_NUM)。详见《MPP 媒体处理软件V6.0 开发参考》“视频输入”章节。 |
||
【返回值】
失败,请参见错误码。 |
【需求】
- 头文件:ss_mpi_aibnr.h
- 库文件:libss_mpi_aibnr.a
【注意】
- 调用该接口前必须先调用ss_mpi_aibnr_init初始化AIBNR模块。
- 调用该接口时AIBNR数据流需要保持关闭状态。
- 如果未调用此接口,默认为有参考帧模式。
- 如果是拍照场景,必须调用此接口设置为无参考帧模式。
【举例】
无
【相关主题】
无
ss_mpi_aibnr_get_cfg
【描述】
获取AIBNR算法相关配置参数。
【语法】
【参数】
|
取值范围:[0, OT_VI_MAX_PHYS_PIPE_NUM)。详见《MPP 媒体处理软件V6.0 开发参考》“视频输入”章节。 |
||
【返回值】
失败,请参见错误码。 |
【需求】
- 头文件:ss_mpi_aibnr.h
- 库文件:libss_mpi_aibnr.a
【注意】
调用该接口前必须先调用ss_mpi_aibnr_init初始化AIBNR模块。
【举例】
无
【相关主题】
无
ss_mpi_aibnr_enable
【描述】
使能AIBNR数据流开关。
【语法】
【参数】
|
取值范围:[0, OT_VI_MAX_PHYS_PIPE_NUM),详见《MPP 媒体处理软件V6.0 开发参考》“视频输入”章节。 |
【返回值】
失败,请参见错误码。 |
【需求】
- 头文件:ss_mpi_aibnr.h
- 库文件:libss_mpi_aibnr.a
【注意】
- 调用此接口前需要先初始化VI、ISP模块。
- 同一个pipe,支持与ai3dnr的uvnet同时开启,不支持与aidrc同时开启。
- 主进程调用该接口前必须先调用ss_mpi_aibnr_init初始化AIBNR模块,并调用ss_mpi_aibnr_load_model接口加载AIBNR模型文件。
-
其他次进程(例如PQTools)支持使用该接口打开AIBNR数据流,无需初始化AIBNR,但需要主进程保证已经调用了ss_mpi_aibnr_init来初始化AIBNR模块。enable aibnr前有如下限制条件:
- 对应的vi pipe必须已经创建,且建议使用pipe0,在其他pipe上开启时,PQ效果不是最佳的。
- 需要用户调用函数去分配VB池,VB大小计算使用函数ot_aibnr_get_pic_buf_size,详见《MPP 媒体处理软件V6.0 开发参考》“系统控制”章节,且分配的VB池需要attach对应的PIPE上。
-
AIBNR使能之后,延迟2帧生效。
- AIBNR仅支持12bit的Bayer图像数据处理。如果sensor输入非12bit的Bayer图像,需设置VI PIPE输出的图像数据格式为Bayer 12bit。
- 调用该接口前,需要提前通过ss_mpi_sys_set_vi_aiisp_mode接口配置VI为OT_VI_AIISP_MODE_DEFAULT模式,只支持VI离线。
- 线性模式下建议在pipe0上使用AIBNR。
- Hi3516CV610的AIBNR只有pipe0支持,且只支持RGGB pattern,不支持wdr,FPN在AIBNR之后,如果AIBNR和FPN同时开启,可能会影响FPN效果,建议不要同时开启。
-
AIBNR的使用有如下限制:
- VI的FE和BE之间必须离线,且不支持vi pipe低延时,不支持vi卷绕;
- vi pipe通路不能开压缩;
- Hi3519DV500只支持有FE的VI pipe,不支持虚拟VI pipe,不支持VI pipe灌raw。Hi3516CV610不支持VI dev灌raw,支持pipe灌raw,灌raw使用的vb需要来自于aibnr使用的user vb池,且灌raw的帧信息中的isp_frame_info的dgain_agamma_en设置为TD_TRUE。从未开启AIBNR的FE获取的raw,回灌到开启AIBNR的pipe前需要离线将raw做预处理,参考《图像质量调试工具使用指南》“AIBNR向板端倒灌RAW图像”章节。
- VI PIPE属性需要设置为非压缩、线性格式。
-
除了以上限制,AIBNR的WDR模式使用有如下限制:
- 建议在长帧所在的pipe开启AIBNR;
- 不支持blend模式;
- 超性能场景可能会出现WDR长短帧丢帧不同步,进而导致WDR融合效果异常。
-
Hi3516CV610 AIBNR处理后,图像四边存在几个像素点的马赛克pattern异常,推荐打开vpss crop功能,上下左右各裁剪8个像素点,可以解决该效果异常问题。
- Hi3516CV610 AIBNR只支持stride是16的整数倍的图像。
- Hi3516CV608和Hi3516CV610-10B板型不支持调用。
【举例】
无
【相关主题】
无
ss_mpi_aibnr_disable
【描述】
关闭AIBNR数据流开关。
【语法】
【参数】
|
取值范围:[0, OT_VI_MAX_PHYS_PIPE_NUM)。详见《MPP 媒体处理软件V6.0 开发参考》“视频输入”章节。 |
【返回值】
失败,请参见错误码。 |
【需求】
- 头文件:ss_mpi_aibnr.h
- 库文件:libss_mpi_aibnr.a
【注意】
- 主进程调用该接口前必须先调用ss_mpi_aibnr_init初始化AIBNR模块。
- 其他次进程(例如PQTools)支持使用该接口关闭AIBNR数据流,无需初始化AIBNR,但需要主进程保证已经调用了ss_mpi_aibnr_init初始化过AIBNR模块。
- 在VI模块销毁对应的pipe之前,需要先调用该接口关闭AIBNR功能,否则可能出现VB泄漏。
【举例】
无
【相关主题】
无
ss_mpi_aibnr_query_status
【描述】
查询数据流运行状态。
【语法】
【参数】
|
取值范围:[0, OT_VI_MAX_PHYS_PIPE_NUM)。详见《MPP 媒体处理软件V6.0 开发参考》“视频输入”章节。 |
||
【返回值】
失败,请参见错误码。 |
【需求】
- 头文件:ss_mpi_aibnr.h
- 库文件:libss_mpi_aibnr.a
【注意】
- 主进程调用该接口前必须先调用ss_mpi_aibnr_init初始化AIBNR模块。
- 其他次进程(例如PQTools)支持使用该接口获取AIBNR数据流运行状态,无需初始化AIBNR,但需要主进程保证已经调用了ss_mpi_aibnr_init初始化过AIBNR模块。
【举例】
无
【相关主题】
无
ss_mpi_aibnr_set_attr
【描述】
设置AIBNR的属性。
【语法】
【参数】
|
取值范围:[0, OT_VI_MAX_PHYS_PIPE_NUM)。详见《MPP 媒体处理软件V6.0 开发参考》“视频输入”章节。 |
||
【返回值】
失败,请参见错误码。 |
【需求】
- 头文件:ss_mpi_aibnr.h
- 库文件:libss_mpi_aibnr.a
【注意】
- 调用该接口前必须先调用ss_mpi_aibnr_init初始化AIBNR模块,并调用ss_mpi_aibnr_load_model接口加载AIBNR模型文件。
- 使能AIBNR数据流开关之后才能调用此接口成功设置AIBNR属性。
- 当attr->enable为TD_FALSE时,bnr_bypass必须为TD_FALSE。
- 当attr->blend为TD_TRUE时,bnr_bypass必须为TD_FALSE。
- wdr通路下,blend必须为TD_FALSE。Hi3516CV610不支持blend。
- input_depth和output_depth调试时才设置,正常情况下建议设置为0,设置大于0时,会导致多占用VB,需要分配VB池时在原来基础上多分配 (input_depth+output_depth) 个VB,否则可能会导致卡住。
【举例】
无
【相关主题】
无
ss_mpi_aibnr_get_attr
【描述】
获取AIBNR的属性。
【语法】
【参数】
|
取值范围:[0, OT_VI_MAX_PHYS_PIPE_NUM)。详见《MPP 媒体处理软件V6.0 开发参考》“视频输入”章节。 |
||
【返回值】
失败,请参见错误码。 |
【需求】
- 头文件:ss_mpi_aibnr.h
- 库文件:libss_mpi_aibnr.a
【注意】
使能AIBNR数据流开关之后才能调用此接口成功获取AIBNR属性。
【举例】
无
【相关主题】
无
ss_mpi_aibnr_set_thread_attr
【描述】
设置AIBNR线程属性。
【语法】
【参数】
【返回值】
失败,请参见错误码。 |
【需求】
- 头文件:ss_mpi_aibnr.h
- 库文件:libss_mpi_aibnr.a
【注意】
不支持多进程调用。接口调用需要和VI、ISP所在的主进程保持同进程。
【举例】
无
【相关主题】
无
ss_mpi_aibnr_get_thread_attr
【描述】
获取AIBNR线程属性。
【语法】
【参数】
【返回值】
失败,请参见错误码。 |
【需求】
- 头文件:ss_mpi_aibnr.h
- 库文件:libss_mpi_aibnr.a
【注意】
不支持多进程调用。接口调用需要和VI、ISP所在的主进程保持同进程。
【举例】
无
【相关主题】
无
ss_mpi_aibnr_get_input_frame
【描述】
获取AIBNR处理前的输入帧数据。
【语法】
【参数】
|
取值范围:[0, OT_VI_MAX_PHYS_PIPE_NUM)。详见《MPP 媒体处理软件 V6.0 开发参考》“视频输入”章节。 |
||
当milli_sec设为-1时,表示阻塞模式,程序一直等待,直到获取到图像才返回。如果milli_sec等于0时,表示非阻塞模式。如果milli_sec大于0时,表示超时等待模式,参数的单位是毫秒,指超时时间,在此时间内如果没有获取到图像,则超时返回。 |
【返回值】
失败,请参见错误码。 |
【需求】
- 头文件:ss_mpi_aibnr.h
- 库文件:libss_mpi_aibnr.a
【注意】
- 调用该接口前必须先调用ss_mpi_aibnr_init初始化AIBNR模块,并调用ss_mpi_aibnr_load_model接口加载AIBNR模型文件。
- 调用该接口前必须先调用ss_mpi_aibnr_set_attr接口配置队列深度input_depth,只有队列深度大于0,才能获取到图像。
- 调用该接口获取图像,不会影响AIBNR的处理。
【举例】
无
【相关主题】
无
ss_mpi_aibnr_release_input_frame
【描述】
释放AIBNR处理前的输入帧数据。
【语法】
【参数】
|
取值范围:[0, OT_VI_MAX_PHYS_PIPE_NUM)。详见《MPP 媒体处理软件 V6.0 开发参考》“视频输入”章节。 |
||
【返回值】
失败,请参见错误码。 |
【需求】
- 头文件:ss_mpi_aibnr.h
- 库文件:libss_mpi_aibnr.a
【注意】
- 该接口需要与ss_mpi_aibnr_get_input_frame配合使用。
- 获取到的图像数据需要调用该接口及时归还,并且要在关闭数据流之前归还,否则可能导致VB异常。
【举例】
无
【相关主题】
无
ss_mpi_aibnr_get_output_frame
【描述】
获取AIBNR处理后的输出帧数据。
【语法】
【参数】
|
取值范围:[0, OT_VI_MAX_PHYS_PIPE_NUM)。详见《MPP 媒体处理软件 V6.0 开发参考》“视频输入”章节。 |
||
当milli_sec设为-1时,表示阻塞模式,程序一直等待,直到获取到图像才返回。如果milli_sec等于0时,表示非阻塞模式。如果milli_sec大于0时,表示超时等待模式,参数的单位是毫秒,指超时时间,在此时间内如果没有获取到图像,则超时返回。 |
【返回值】
失败,请参见错误码。 |
【需求】
- 头文件:ss_mpi_aibnr.h
- 库文件:libss_mpi_aibnr.a
【注意】
- 调用该接口前必须先调用ss_mpi_aibnr_init初始化AIBNR模块,并调用ss_mpi_aibnr_load_model接口加载AIBNR模型文件。
- 调用该接口前必须先调用ss_mpi_aibnr_set_attr接口配置队列深度output_depth,只有队列深度大于0,才能获取到图像。
- 调用该接口获取图像,不会影响AIBNR的处理。
【举例】
无
【相关主题】
无
ss_mpi_aibnr_release_output_frame
【描述】
释放AIBNR处理后的输出帧数据。
【语法】
【参数】
|
取值范围:[0, OT_VI_MAX_PHYS_PIPE_NUM)。详见《MPP 媒体处理软件 V6.0 开发参考》“视频输入”章节。 |
||
【返回值】
失败,请参见错误码。 |
【需求】
- 头文件:ss_mpi_aibnr.h
- 库文件:libss_mpi_aibnr.a
【注意】
- 该接口需要与ss_mpi_aibnr_get_output_frame配合使用。
- 获取到的图像数据需要调用该接口及时归还,并且要在关闭数据流之前归还,否则可能导致VB异常。
【举例】
无
【相关主题】
无
ss_mpi_aibnr_set_model_attr
【描述】
设置模型的属性。
【语法】
【参数】
【返回值】
失败,请参见错误码。 |
【需求】
- 头文件:ss_mpi_aibnr.h
- 库文件:libss_mpi_aibnr.a
【注意】
- 调用该接口前必须先调用ss_mpi_aibnr_init初始化AIBNR模块,并调用ss_mpi_aibnr_load_model接口加载AIBNR模型文件。
- 该接口不是必须调用,若没有调用,默认使用auto模式,模型加载时默认会分配好模型适用的ISO段,根据ISO自适应使用模型。
- 线性和wdr场景需要单独调用该接口配置模型属性,可以都不配置,或只配置线性或者wdr的模型属性。
-
当第一个参数为FALSE,表示配置线性场景下的模型属性:
若参数attr的op_type为OT_OP_MODE_MANUAL,表示设置为手动模式,要求线性场景下,固定使用id等于manual_id的模型,且要求manual_id的模型已加载好;
若参数attr的op_type为OT_OP_MODE_AUTO,表示设置为自动模式,要求线性场景下,不同的ISO段使用auto_id数组中对应的模型,且要求auto_id数组中的模型已加载好;
-
auto_id数组对应的ISO段起始ISO为100, 200, 400, 800, 1600, 3200, 6400, 12800, 25600, 51200, 102400, 204800, 409600, 819200, 1638400, 3276800,特别的,ISO小于200时使用第一段,例如auto_id[0] = 0,auto_id[1] = 1,表示ISO小于200时使用id为0的模型,ISO大于等于200且小于400时使用id为1的模型。
- 调用该接口指定使用的模型如果被卸载了,会导致业务异常。
- 对于Hi3516CV610,如果模型多次加载和卸载后,如果有不同分辨率的模型,不支持自适应选择对应分辨率的模型,需要调用该接口重新设置模型属性。
【举例】
无
【相关主题】
ss_mpi_aibnr_get_model_attr
【描述】
获取模型的属性。
【语法】
【参数】
【返回值】
失败,请参见错误码。 |
【需求】
- 头文件:ss_mpi_aibnr.h
- 库文件:libss_mpi_aibnr.a
【注意】
- 调用该接口前必须先调用ss_mpi_aibnr_init初始化AIBNR模块。
- 该接口不是必须调用,线性和wdr场景需要单独调用该接口配置模型属性,当第一个参数为FALSE,表示获取线性场景下的模型属性。
- 该接口获取的默认值不一定是有效值,例如:系统只加载了线性模型,当调用该接口获取wdr场景的模型属性时,获取到的模型id为0,但id为0的wdr模型并未加载。
【举例】
无
【相关主题】
ss_mpi_aibnr_query_model_list
【描述】
查询模型的列表。
【语法】
【参数】
【返回值】
失败,请参见错误码。 |
【需求】
- 头文件:ss_mpi_aibnr.h
- 库文件:libss_mpi_aibnr.a
【注意】
- 调用该接口前必须先调用ss_mpi_aibnr_init初始化AIBNR模块。
- 该接口不是必须调用,获取的模型信息包含模型id和是否是wdr,不区分分辨率。
- Hi3519DV500芯片,当同一个模型文件通过配置不同分辨率加载了多次时,模型num只会计算一次。
- Hi3516CV610芯片,同一模型加载多次,模型num会累加。
【举例】
无
【相关主题】
AIDRC API参考
ss_mpi_aidrc_init
【描述】
初始化AIDRC模块。
【语法】
【参数】
无
【返回值】
失败,请参见错误码。 |
【需求】
- 头文件:ss_mpi_aidrc.h
- 库文件:libss_mpi_aidrc.a
【注意】
不支持多进程调用。接口调用需要和VI、ISP所在的主进程保持同进程。
【举例】
无
【相关主题】
无
ss_mpi_aidrc_exit
【描述】
去初始化AIDRC模块。
【语法】
【参数】
无
【返回值】
失败,请参见错误码。 |
【需求】
- 头文件:ss_mpi_aidrc.h
- 库文件:libss_mpi_aidrc.a
【注意】
- 不支持多进程调用。接口调用需要和VI、ISP所在的主进程保持同进程。
- 调用此接口去初始化AIDRC模块前,需要关闭AIDRC数据流开关。
【举例】
无
【相关主题】
无
ss_mpi_aidrc_load_model
【描述】
加载AIDRC的模型文件。
【语法】
【参数】
【返回值】
失败,请参见错误码。 |
【需求】
- 头文件:ss_mpi_aidrc.h
- 库文件:libss_mpi_aidrc.a
【注意】
- 调用该接口前必须先调用 ss_mpi_aidrc_init初始化AIDRC模块。
- 调用该接口前AIDRC数据流需要保持关闭状态。
- 相同类型的模型文件,如果图像宽高相等时,不能重复加载。
- 支持多个模型文件的加载,或者同一模型文件、不同分辨率多次加载。
- 不支持多进程调用。接口调用需要和VI、ISP所在的主进程保持同进程。
- 不支持在__attribute__((constructor))函数里调用。
【举例】
无
【相关主题】
无
ss_mpi_aidrc_unload_model
【描述】
卸载AIDRC的模型文件。
【语法】
【参数】
【返回值】
失败,请参见错误码。 |
【需求】
- 头文件:ss_mpi_aidrc.h
- 库文件:libss_mpi_aidrc.a
【注意】
- 应用程序退出前,需调用此接口释放已加载模型文件的内存资源,或者调用ss_mpi_aidrc_exit接口释放AIDRC的所有资源。
- 不支持多进程调用。接口调用需要和VI、ISP所在的主进程保持同进程。
- 调用此接口前需要关闭AIDRC数据流开关。
- 离线模型在调用此接口前,需要保证加载模型时分配的内存没有被释放。
【举例】
无
【相关主题】
无
ss_mpi_aidrc_set_cfg
【描述】
设置AIDRC算法相关配置参数。
【语法】
【参数】
|
取值范围:[0, OT_VI_MAX_PIPE_NUM)。详见《MPP 媒体处理软件V6.0 开发参考》“视频输入”章节。 |
||
【返回值】
失败,请参见错误码。 |
【需求】
- 头文件:ss_mpi_aidrc.h
- 库文件:libss_mpi_aidrc.a
【注意】
- 调用该接口前必须先调用ss_mpi_aidrc_init初始化AIDRC模块。
- 调用该接口时AIDRC数据流需要保持关闭状态。
【举例】
无
【相关主题】
无
ss_mpi_aidrc_get_cfg
【描述】
获取AIDRC算法相关配置参数。
【语法】
【参数】
|
取值范围:[0, OT_VI_MAX_PIPE_NUM)。详见《MPP 媒体处理软件V6.0 开发参考》“视频输入”章节。 |
||
【返回值】
失败,请参见错误码。 |
【需求】
- 头文件:ss_mpi_aidrc.h
- 库文件:libss_mpi_aidrc.a
【注意】
调用该接口前必须先调用ss_mpi_aidrc_init初始化AIDRC模块。
【举例】
无
【相关主题】
无
ss_mpi_aidrc_enable
【描述】
使能AIDRC数据流开关。
【语法】
【参数】
|
取值范围:[0, OT_VI_MAX_PIPE_NUM),详见《MPP 媒体处理软件V6.0 开发参考》“视频输入”章节。 |
【返回值】
失败,请参见错误码。 |
【需求】
- 头文件:ss_mpi_aidrc.h
- 库文件:libss_mpi_aidrc.a
【注意】
- 调用此接口前需要先初始化VI、ISP模块。
- 同一个pipe,支持与ai3dnr的uvnet同时开启,不支持与aibnr同时开启。
- 主进程调用该接口前必须先调用ss_mpi_aidrc_init初始化AIDRC模块,并调用ss_mpi_aidrc_load_model接口加载AIDRC模型文件。
- 其他次进程(例如PQTools)支持使用该接口打开AIDRC数据流,无需初始化AIDRC,但需要主进程保证已经调用了ss_mpi_aidrc_init初始化过AIDRC模块。
- 只支持raw域的pipe上开启,只支持在主pipe上开启。
- VI FE和BE之间需要离线。
-
enable aidrc前有如下限制条件:
- 对应的vi pipe必须已经创建。
- DRC必须开启。
- 需要用户调用函数去分配VB池,VB大小计算使用函数ot_aidrc_get_in_buf_size 和ot_aidrc_get_out_buf_size,详见《MPP 媒体处理软件V6.0 开发参考》“系统控制”章节,且分配的VB池需要调用VI接口attach对应的PIPE上。
-
AIDRC使能之后,延迟2帧生效。
- 调用该接口前,需要提前通过ss_mpi_sys_set_vi_aiisp_mode接口配置VI为OT_VI_AIISP_MODE_DEFAULT模式。
【举例】
无
【相关主题】
无
ss_mpi_aidrc_disable
【描述】
关闭AIDRC数据流开关。
【语法】
【参数】
|
取值范围:[0, OT_VI_MAX_PIPE_NUM)。详见《MPP 媒体处理软件V6.0 开发参考》“视频输入”章节。 |
【返回值】
失败,请参见错误码。 |
【需求】
- 头文件:ss_mpi_aidrc.h
- 库文件:libss_mpi_aidrc.a
【注意】
- 主进程调用该接口前必须先调用ss_mpi_aidrc_init初始化AIDRC模块。
- 其他次进程(例如PQTools)支持使用该接口关闭AIDRC数据流,无需初始化AIDRC,但需要主进程保证已经调用了ss_mpi_aidrc_init初始化过AIDRC模块。
- 在VI模块销毁对应的pipe之前,需要先调用该接口关闭AIDRC功能,如果开启了smooth平滑切换功能,关闭时需要保证VI有数据流。
- 默认情况下,为了效果平滑过渡,在调用ss_mpi_aidrc_disable接口时,会平滑处理几帧过渡后再返回,可能会导致该接口调用耗时较长,如果不想因为等待平滑过渡导致接口调用耗时长,可以调用ss_mpi_aidrc_set_smooth接口将平滑切换的功能关闭后,再调用ss_mpi_aidrc_disable接口。
【举例】
无
【相关主题】
无
ss_mpi_aidrc_query_status
【描述】
查询数据流运行状态。
【语法】
【参数】
|
取值范围:[0, OT_VI_MAX_PIPE_NUM)。详见《MPP 媒体处理软件V6.0 开发参考》“视频输入”章节。 |
||
【返回值】
失败,请参见错误码。 |
【需求】
- 头文件:ss_mpi_aidrc.h
- 库文件:libss_mpi_aidrc.a
【注意】
- 主进程调用该接口前必须先调用ss_mpi_aidrc_init初始化AIDRC模块。
- 其他次进程(例如PQTools)支持使用该接口查询数据流运行状态,无需初始化AIDRC,但需要主进程保证已经调用了ss_mpi_aidrc_init初始化过AIDRC模块。
【举例】
无
【相关主题】
无
ss_mpi_aidrc_set_attr
【描述】
设置AIDRC的属性。
【语法】
【参数】
|
取值范围:[0, OT_VI_MAX_PIPE_NUM)。详见《MPP 媒体处理软件V6.0 开发参考》“视频输入”章节。 |
||
【返回值】
失败,请参见错误码。 |
【需求】
- 头文件:ss_mpi_aidrc.h
- 库文件:libss_mpi_aidrc.a
【注意】
- 调用该接口前必须先调用ss_mpi_aidrc_init初始化AIDRC模块,并调用ss_mpi_aidrc_load_model接口加载AIDRC模型文件。
- 使能AIDRC数据流开关之后才能调用此接口成功设置AIDRC属性。
【举例】
无
【相关主题】
无
ss_mpi_aidrc_get_attr
【描述】
获取AIDRC的属性。
【语法】
【参数】
|
取值范围:[0, OT_VI_MAX_PIPE_NUM)。详见《MPP 媒体处理软件V6.0 开发参考》“视频输入”章节。 |
||
【返回值】
失败,请参见错误码。 |
【需求】
- 头文件:ss_mpi_aidrc.h
- 库文件:libss_mpi_aidrc.a
【注意】
使能AIDRC数据流开关之后才能调用此接口成功获取AIDRC属性。
【举例】
无
【相关主题】
无
ss_mpi_aidrc_set_smooth
【描述】
设置AIDRC的开关平滑过渡属性。在使能情况下关闭AIDRC数据流,会进行平滑关闭,导致切换耗时较长;在不使能情况下关闭AIDRC的数据流,会直接关闭AIDRC。
【语法】
【参数】
|
取值范围:[0, OT_VI_MAX_PIPE_NUM)。详见《MPP 媒体处理软件V6.0 开发参考》“视频输入”章节。 |
||
【返回值】
失败,请参见错误码。 |
【需求】
- 头文件:ss_mpi_aidrc.h
- 库文件:libss_mpi_aidrc.a
【注意】
调用该接口前必须先调用ss_mpi_aidrc_init初始化AIDRC模块,如果没有调用该接口设置平滑属性,则默认会平滑切换。
【举例】
无
【相关主题】
无
ss_mpi_aidrc_get_smooth
【描述】
获取AIDRC的开关平滑过渡属性。
【语法】
【参数】
|
取值范围:[0, OT_VI_MAX_PIPE_NUM)。详见《MPP 媒体处理软件V6.0 开发参考》“视频输入”章节。 |
||
【返回值】
失败,请参见错误码。 |
【需求】
- 头文件:ss_mpi_aidrc.h
- 库文件:libss_mpi_aidrc.a
【注意】
调用该接口前必须先调用ss_mpi_aidrc_init初始化AIDRC模块。
【举例】
无
【相关主题】
无
ss_mpi_aidrc_set_thread_attr
【描述】
设置AIDRC线程属性。
【语法】
【参数】
【返回值】
失败,请参见错误码。 |
【需求】
- 头文件:ss_mpi_aidrc.h
- 库文件:libss_mpi_aidrc.a
【注意】
不支持多进程调用。接口调用需要和VI、ISP所在的主进程保持同进程。
【举例】
无
【相关主题】
无
ss_mpi_aidrc_get_thread_attr
【描述】
获取AIDRC线程属性。
【语法】
【参数】
【返回值】
失败,请参见错误码。 |
【需求】
- 头文件:ss_mpi_aidrc.h
- 库文件:libss_mpi_aidrc.a
【注意】
不支持多进程调用。接口调用需要和VI、ISP所在的主进程保持同进程。
【举例】
无
【相关主题】
无
ss_mpi_aidrc_get_output_frame
【描述】
获取AIDRC处理后的输出帧数据。
【语法】
td_s32 ss_mpi_aidrc_get_output_frame(td_s32 pipe, ot_video_frame_info *frame, ot_aiisp_mem_info *out_data[], td_u32 out_data_num,td_s32 milli_sec);
【参数】
|
取值范围:[0, OT_VI_MAX_PHYS_PIPE_NUM)。详见《MPP 媒体处理软件 V6.0 开发参考》“视频输入”章节。 |
||
当milli_sec设为-1时,表示阻塞模式,程序一直等待,直到获取到图像才返回。如果milli_sec等于0时,表示非阻塞模式。如果milli_sec大于0时,表示超时等待模式,参数的单位是毫秒,指超时时间,在此时间内如果没有获取到图像,则超时返回。 |
【返回值】
失败,请参见错误码。 |
【需求】
- 头文件:ss_mpi_aidrc.h
- 库文件:libss_mpi_aidrc.a
【注意】
- 调用该接口前必须先调用ss_mpi_aidrc_init初始化AIDRC模块,并调用ss_mpi_aidrc_load_model接口加载AIDRC模型文件。
- 调用该接口前必须先调用ss_mpi_aidrc_set_attr接口设置enable = TD_TRUE,队列深度output_depth>0,才能获取到图像。
- 调用该接口获取图像,不会影响AIDRC的处理。
- 输出数据的虚拟地址需根据物理地址调用ss_mpi_sys_mmap_cached映射,使用后需调用ss_mpi_sys_munmap反映射。详见《MPP 媒体处理软件 V6.0 开发参考》“系统控制”章节。
【举例】
无
【相关主题】
无
ss_mpi_aidrc_release_output_frame
【描述】
释放AIDRC处理后的输出帧数据。
【语法】
【参数】
|
取值范围:[0, OT_VI_MAX_PHYS_PIPE_NUM)。详见《MPP 媒体处理软件 V6.0 开发参考》“视频输入”章节。 |
||
【返回值】
失败,请参见错误码。 |
【需求】
- 头文件:ss_mpi_aidrc.h
- 库文件:libss_mpi_aidrc.a
【注意】
- 该接口需要与ss_mpi_aidrc_get_output_frame配合使用。
- 获取到的图像数据需要调用该接口及时归还,并且要在关闭数据流之前归还,否则可能导致VB异常。
【举例】
无
【相关主题】
无
AI3DNR API参考
ss_mpi_ai3dnr_init
【描述】
初始化AI3DNR模块。
【语法】
【参数】
无
【返回值】
失败,请参见错误码。 |
【需求】
- 头文件:ss_mpi_ai3dnr.h
- 库文件:libss_mpi_ai3dnr.a
【注意】
不支持多进程调用。接口调用需要和VI、ISP所在的主进程保持同进程。
【举例】
无
【相关主题】
无
ss_mpi_ai3dnr_exit
【描述】
去初始化AI3DNR模块。
【语法】
【参数】
无
【返回值】
失败,请参见错误码。 |
【需求】
- 头文件:ss_mpi_ai3dnr.h
- 库文件:libss_mpi_ai3dnr.a
【注意】
- 不支持多进程调用。接口调用需要和VI、ISP所在的主进程保持同进程。
- 调用此接口去初始化AI3DNR模块前,需要关闭AI3DNR数据流开关。
【举例】
无
【相关主题】
无
ss_mpi_ai3dnr_load_model
【描述】
加载AI3DNR的模型文件。
【语法】
【参数】
【返回值】
失败,请参见错误码。 |
【需求】
- 头文件:ss_mpi_ai3dnr.h
- 库文件:libss_mpi_ai3dnr.a
【注意】
- 调用该接口前必须先调用ss_mpi_ai3dnr_init初始化AI3DNR模块。
- 调用该接口前AI3DNR数据流需要保持关闭状态。
- 相同类型的模型文件,如果图像宽高相等时,不能重复加载。
- 支持多个模型文件的加载,或者同一模型文件、不同分辨率多次加载。
- 不支持多进程调用。接口调用需要和VI、ISP所在的主进程保持同进程。
- 不支持在__attribute__((constructor))函数里调用。
【举例】
无
【相关主题】
无
ss_mpi_ai3dnr_unload_model
【描述】
卸载AI3DNR的模型文件。
【语法】
【参数】
【返回值】
失败,请参见错误码。 |
【需求】
- 头文件:ss_mpi_ai3dnr.h
- 库文件:libss_mpi_ai3dnr.a
【注意】
- 应用程序退出前,需调用此接口释放已加载模型文件的内存资源,或者调用ss_mpi_ai3dnr_exit接口释放AI3DNR的所有资源。
- 不支持多进程调用。接口调用需要和VI、ISP所在的主进程保持同进程。
- 调用此接口前需要关闭AI3DNR数据流开关。
- 离线模型在调用此接口前,需要保证加载模型时分配的内存没有被释放。
【举例】
无
【相关主题】
无
ss_mpi_ai3dnr_set_cfg
【描述】
设置AI3DNR算法相关配置参数。
【语法】
【参数】
|
取值范围:[0, OT_VI_MAX_PIPE_NUM)。详见《MPP 媒体处理软件V6.0 开发参考》“视频输入”章节。 |
||
【返回值】
失败,请参见错误码。 |
【需求】
- 头文件:ss_mpi_ai3dnr.h
- 库文件:libss_mpi_ai3dnr.a
【注意】
- 调用该接口前必须先调用ss_mpi_ai3dnr_init初始化AI3DNR模块。
- 调用该接口时AI3DNR数据流需要保持关闭状态。
【举例】
无
【相关主题】
无
ss_mpi_ai3dnr_get_cfg
【描述】
获取AI3DNR算法相关配置参数。
【语法】
【参数】
|
取值范围:[0, OT_VI_MAX_PIPE_NUM)。详见《MPP 媒体处理软件V6.0 开发参考》“视频输入”章节。 |
||
【返回值】
失败,请参见错误码。 |
【需求】
- 头文件:ss_mpi_ai3dnr.h
- 库文件:libss_mpi_ai3dnr.a
【注意】
调用该接口前必须先调用ss_mpi_ai3dnr_init初始化AI3DNR模块。
【举例】
无
【相关主题】
无
ss_mpi_ai3dnr_enable
【描述】
使能AI3DNR数据流开关。
【语法】
【参数】
|
取值范围:[0, OT_VI_MAX_PIPE_NUM),详见《MPP 媒体处理软件V6.0 开发参考》“视频输入”章节。 |
【返回值】
失败,请参见错误码。 |
【需求】
- 头文件:ss_mpi_ai3dnr.h
- 库文件:libss_mpi_ai3dnr.a
【注意】
- 调用此接口前需要先初始化VI、ISP模块。
- 同一个pipe,net_type = OT_AI3DNR_NET_TYPE_UV时,支持与aibnr和aidrc同时开启。
- AI3DNR开启时,建议传统3DNR也开启。
- 主进程调用该接口前必须先调用ss_mpi_ai3dnr_init初始化AI3DNR模块,并调用ss_mpi_ai3dnr_load_model接口加载AI3DNR模型文件。
- 其他次进程(例如PQTools)支持使用该接口打开AI3DNR数据流,无需初始化AI3DNR,但需要主进程保证已经调用了ss_mpi_ai3dnr_init初始化过AI3DNR模块。
- 只支持在主pipe上开启。
-
enable ai3dnr前有如下限制条件:
- 对应的vi pipe必须已经创建。
- 需要用户调用函数去分配VB池,并且要调用ss_mpi_vb_set_supplement_cfg 函数将supplement_cfg 加上OT_VB_SUPPLEMENT_BNR_MOT_MASK,VB大小计算使用函数ot_ai3dnr_get_out_buf_size,详见《MPP 媒体处理软件V6.0 开发参考》“系统控制”章节,且分配的VB池需要attach对应的PIPE上。
- 必须开启BNR,并且要求BNR时域开关打开。
- 当ai3dnr配置的net_type = OT_AI3DNR_NET_TYPE_UV时,不能打开VI 通道的mirror、flip、crop功能,不支持VI的FMU功能和通道低延时功能,VI 通道属性需要设置为非压缩、线性、YVU420SP输出格式,否则会导致ai3dnr数据通路异常。
-
AI3DNR使能之后,延迟2帧生效。
- 调用该接口前,需要提前通过ss_mpi_sys_set_vi_aiisp_mode(详见《MPP 媒体处理软件V6.0 开发参考》“系统控制”章节)接口配置VI为OT_VI_AIISP_MODE_DEFAULT模式。
【举例】
无
【相关主题】
无
ss_mpi_ai3dnr_disable
【描述】
关闭AI3DNR数据流开关。
【语法】
【参数】
|
取值范围:[0, OT_VI_MAX_PIPE_NUM)。详见《MPP 媒体处理软件V6.0 开发参考》“视频输入”章节。 |
【返回值】
失败,请参见错误码。 |
【需求】
- 头文件:ss_mpi_ai3dnr.h
- 库文件:libss_mpi_ai3dnr.a
【注意】
- 主进程调用该接口前必须先调用ss_mpi_ai3dnr_init初始化AI3DNR模块。
- 其他次进程(例如PQTools)支持使用该接口关闭AI3DNR数据流,无需初始化AI3DNR,但需要主进程保证已经调用了ss_mpi_ai3dnr_init初始化过AI3DNR模块。
- 在VI模块销毁对应的pipe之前,需要先调用该接口关闭AI3DNR功能,如果开启了smooth平滑切换功能,关闭时需要保证VI有数据流。
- 默认情况下,为了效果平滑过渡,在调用ss_mpi_aidrc_disable接口时,会平滑处理几帧过渡后再返回,可能会导致该接口调用耗时较长,如果不想因为等待平滑过渡导致接口调用耗时长,可以调用ss_mpi_aidrc_set_smooth接口将平滑切换的功能关闭后,再调用ss_mpi_aidrc_disable接口。
【举例】
无
【相关主题】
无
ss_mpi_ai3dnr_query_status
【描述】
查询数据流运行状态。
【语法】
【参数】
|
取值范围:[0, OT_VI_MAX_PIPE_NUM)。详见《MPP 媒体处理软件V6.0 开发参考》“视频输入”章节。 |
||
【返回值】
失败,请参见错误码。 |
【需求】
- 头文件:ss_mpi_ai3dnr.h
- 库文件:libss_mpi_ai3dnr.a
【注意】
- 主进程调用该接口前必须先调用ss_mpi_ai3dnr_init初始化AI3DNR模块。
- 其他次进程(例如PQTools)支持使用该接口查询数据流运行状态,无需初始化AI3DNR,但需要主进程保证已经调用了ss_mpi_ai3dnr_init初始化过AI3DNR模块。
【举例】
无
【相关主题】
无
ss_mpi_ai3dnr_set_attr
【描述】
设置AI3DNR的属性。
【语法】
【参数】
|
取值范围:[0, OT_VI_MAX_PIPE_NUM)。详见《MPP 媒体处理软件V6.0 开发参考》“视频输入”章节。 |
||
【返回值】
失败,请参见错误码。 |
【需求】
- 头文件:ss_mpi_ai3dnr.h
- 库文件:libss_mpi_ai3dnr.a
【注意】
- 调用该接口前必须先调用ss_mpi_ai3dnr_init初始化AI3DNR模块,并调用ss_mpi_ai3dnr_load_model接口加载AI3DNR模型文件。
- 使能AI3DNR数据流开关之后才能调用此接口成功设置AI3DNR属性。
- input_depth和output_depth调试时才设置,正常情况下建议设置为0,设置大于0时,会导致多占用VB,需要分配VB池时在原来基础上多分配 (input_depth+output_depth) 个VB,否则可能会导致卡住。
- 当ai3dnr配置的net_type = OT_AI3DNR_NET_TYPE_YUV时,通过该接口配置参数后,需要立即调用ss_mpi_vi_set_pipe_3dnr_param接口,设置的adv_param信息才会生效。
【举例】
无
【相关主题】
无
ss_mpi_ai3dnr_get_attr
【描述】
获取AI3DNR的属性。
【语法】
【参数】
|
取值范围:[0, OT_VI_MAX_PIPE_NUM)。详见《MPP 媒体处理软件V6.0 开发参考》“视频输入”章节。 |
||
【返回值】
失败,请参见错误码。 |
【需求】
- 头文件:ss_mpi_ai3dnr.h
- 库文件:libss_mpi_ai3dnr.a
【注意】
使能AI3DNR数据流开关之后才能调用此接口成功获取AI3DNR属性。
【举例】
无
【相关主题】
无
ss_mpi_ai3dnr_set_smooth
【描述】
设置AI3DNR的开关平滑过渡属性。在使能情况下关闭AI3DNR数据流,会进行平滑关闭,导致切换耗时较长;在不使能情况下关闭AI3DNR的数据流,会直接关闭AI3DNR。
【语法】
【参数】
|
取值范围:[0, OT_VI_MAX_PIPE_NUM)。详见《MPP 媒体处理软件V6.0 开发参考》“视频输入”章节。 |
||
【返回值】
失败,请参见错误码。 |
【需求】
- 头文件:ss_mpi_ai3dnr.h
- 库文件:libss_mpi_ai3dnr.a
【注意】
- 调用该接口前必须先调用ss_mpi_ai3dnr_init初始化AI3DNR模块。
- 如果没有调用该接口设置平滑属性,则默认会平滑切换。
- 当前版本暂不支持设置平滑切换
【举例】
无
【相关主题】
无
ss_mpi_ai3dnr_get_smooth
【描述】
获取AI3DNR的开关平滑过渡属性。
【语法】
【参数】
|
取值范围:[0, OT_VI_MAX_PIPE_NUM)。详见《MPP 媒体处理软件V6.0 开发参考》“视频输入”章节。 |
||
【返回值】
失败,请参见错误码。 |
【需求】
- 头文件:ss_mpi_ai3dnr.h
- 库文件:libss_mpi_ai3dnr.a
【注意】
调用该接口前必须先调用ss_mpi_ai3dnr_init初始化AI3DNR模块。
【举例】
无
【相关主题】
无
ss_mpi_ai3dnr_set_thread_attr
【描述】
设置AI3DNR线程属性。
【语法】
【参数】
【返回值】
失败,请参见错误码。 |
【需求】
- 头文件:ss_mpi_ai3dnr.h
- 库文件:libss_mpi_ai3dnr.a
【注意】
调用该接口支持在调用ss_mpi_ai3dnr_init初始化AI3DNR模块前或开启AI3DNR通路后动态修改。
【举例】
无
【相关主题】
无
ss_mpi_ai3dnr_get_thread_attr
【描述】
获取AI3DNR线程属性。
【语法】
【参数】
【返回值】
失败,请参见错误码。 |
【需求】
- 头文件:ss_mpi_ai3dnr.h
- 库文件:libss_mpi_ai3dnr.a
【注意】
无
【举例】
无
【相关主题】
无
ss_mpi_ai3dnr_get_input_frame
【描述】
获取AI3DNR处理前的输入帧数据。
【语法】
【参数】
|
取值范围:[0, OT_VI_MAX_PIPE_NUM)。详见《MPP 媒体处理软件 V6.0 开发参考》“视频输入”章节。 |
||
当milli_sec设为-1时,表示阻塞模式,程序一直等待,直到获取到图像才返回。如果milli_sec等于0时,表示非阻塞模式。如果milli_sec大于0时,表示超时等待模式,参数的单位是毫秒,指超时时间,在此时间内如果没有获取到图像,则超时返回。 |
【返回值】
失败,请参见错误码。 |
【需求】
- 头文件:ss_mpi_ai3dnr.h
- 库文件:libss_mpi_ai3dnr.a
【注意】
- 调用该接口前必须先调用ss_mpi_ai3dnr_init初始化AI3DNR模块。
- 调用该接口前必须先调用ss_mpi_ai3dnr_set_attr接口配置队列深度input_depth,只有队列深度大于0,才能获取到图像。
- 调用该接口获取图像,不会影响AI3DNR的处理,整个pipe通路不会受到影响。
- 当milli_sec设为-1时,表示阻塞模式,程序一直等待,直到获取到图像才返回。如果milli_sec等于0时,表示非阻塞模式。如果milli_sec大于0时,表示超时等待模式,参数的单位是毫秒,指超时时间,在此时间内如果没有获取到图像,则超时返回。
【举例】
无
【相关主题】
无
ss_mpi_ai3dnr_release_input_frame
【描述】
释放AI3DNR处理前的输入帧数据。
【语法】
【参数】
|
取值范围:[0, OT_VI_MAX_PIPE_NUM)。详见《MPP 媒体处理软件 V6.0 开发参考》“视频输入”章节。 |
||
【返回值】
失败,请参见错误码。 |
【需求】
- 头文件:ss_mpi_ai3dnr.h
- 库文件:libss_mpi_ai3dnr.a
【注意】
- 该接口需要与ss_mpi_ai3dnr_get_input_frame配合使用。
- 获取到的图像数据需要调用该接口及时归还,并且要在关闭数据流之前归还,否则可能导致VB异常。
【举例】
无
【相关主题】
无
ss_mpi_ai3dnr_get_output_frame
【描述】
获取AI3DNR处理后的输出帧数据。
【语法】
【参数】
|
取值范围:[0, OT_VI_MAX_PIPE_NUM)。详见《MPP 媒体处理软件 V6.0 开发参考》“视频输入”章节。 |
||
当milli_sec设为-1时,表示阻塞模式,程序一直等待,直到获取到图像才返回。如果milli_sec等于0时,表示非阻塞模式。如果milli_sec大于0时,表示超时等待模式,参数的单位是毫秒,指超时时间,在此时间内如果没有获取到图像,则超时返回。 |
【返回值】
失败,请参见错误码。 |
【需求】
- 头文件:ss_mpi_ai3dnr.h
- 库文件:libss_mpi_ai3dnr.a
【注意】
- 调用该接口前必须先调用ss_mpi_ai3dnr_init初始化AI3DNR模块。
- 调用该接口前必须先调用ss_mpi_ai3dnr_set_attr接口配置队列深度output_depth,只有队列深度大于0,才能获取到图像。
- 调用该接口获取图像,不会影响AI3DNR的处理,整个pipe通路不会受到影响。
- 当milli_sec设为-1时,表示阻塞模式,程序一直等待,直到获取到图像才返回。如果milli_sec等于0时,表示非阻塞模式。如果milli_sec大于0时,表示超时等待模式,参数的单位是毫秒,指超时时间,在此时间内如果没有获取到图像,则超时返回。
【举例】
无
【相关主题】
无
ss_mpi_ai3dnr_release_output_frame
【描述】
释放AI3DNR处理后的输出帧数据。
【语法】
【参数】
|
取值范围:[0, OT_VI_MAX_PIPE_NUM)。详见《MPP 媒体处理软件 V6.0 开发参考》“视频输入”章节。 |
||
【返回值】
失败,请参见错误码。 |
【需求】
- 头文件:ss_mpi_ai3dnr.h
- 库文件:libss_mpi_ai3dnr.a
【注意】
- 该接口需要与ss_mpi_ai3dnr_get_output_frame配合使用。
- 获取到的图像数据需要调用该接口及时归还,并且要在关闭数据流之前归还,否则可能导致VB异常。
【举例】
无
【相关主题】
无
数据类型
AIISP各个算法公共的数据类型定义如下:
- OT_AIISP_MAX_MODEL_NUM:定义模型文件最大支持加载数。
- OT_AIISP_AUTO_ISO_NUM:定义根据ISO自动调节的数目。
- OT_AIISP_MAX_NAME_LEN:定义字符串名称最大长度。
- ot_aiisp_mem_info:模型文件内存信息。
- ot_aiisp_model:模型文件信息。
- ot_aiisp_thread_attr:定义AIISP线程属性。
- ot_aiisp_type:定义AIISP算法类型。
- ot_aidm_pool:定义AIDM算法vb池信息。
- ot_aiisp_pool:定义AIISP vb池信息。
AIBNR模块相关数据类型定义如下:
- ot_aibnr_model:AIBNR模型文件信息。
- OT_AIBNR_NLC_LUT_NUM:定义NLC LUT表的长度。
- ot_aibnr_nlc:定义AIBNR nlc参数。
- ot_aibnr_tnr:定义AIBNR 时域参数。
- ot_aibnr_auto_attr:定义AIBNR图像效果参数。
- ot_aibnr_manual_attr:定义AIBNR手动参数。
- ot_aibnr_attr:定义AIBNR属性。
- ot_aibnr_ref_mode:定义AIBNR参考帧模式。
- ot_aibnr_cfg:定义AIBNR算法配置参数。
- ot_aibnr_pool:定义AIBNR算法vb池信息。
- ot_aibnr_model_attr:定义AIBNR模型属性信息。
- ot_aibnr_model_info:定义AIBNR已加载的单个模型信息。
- ot_aibnr_model_list:定义AIBNR已加载的模型列表信息。
- ot_aibnr_status:定义AIBNR数据流运行状态。
AIDRC模块相关数据类型定义如下:
- OT_AIDRC_LMIX_NODE_NUM:定义AIDRC Local Mixing(细节增强)LUT节点个数。
- ot_aidrc_model:定义AIDRC模型文件信息。
- ot_aidrc_blend:定义AIDRC的融合参数。
- ot_aidrc_param:定义AIDRC参数。
- ot_aidrc_attr:定义AIDRC属性。
- ot_aidrc_cfg:定义AIDRC算法配置参数。
- ot_aidrc_mode:定义AIDRC模式。
- ot_aidrc_smooth:定义AIDRC算法平滑切换参数。
- ot_aidrc_pool:定义AIDRC算法vb池信息。
- ot_aidrc_status:定义AIDRC数据流运行状态。
AI3DNR模块相关数据类型定义如下:
- OT_AI3DNR_GAMMA_LUT_NUM:定义AI3DNR的gamma表的大小。
- OT_AI3DNR_BAYERNR_DENOISE_Y_LUT_NUM:定义AI3DNR的y分量去噪强度表的大小。
- ot_ai3dnr_net_type:AI3DNR 网络类型。
- ot_ai3dnr_model:AI3DNR模型文件信息。
- ot_ai3dnr_strength:定义AI3DNR 去噪强度属性。
- ot_ai3dnr_auto_adv_param:定义Hi3519DV500的3DNR自动模式高级参数
- ot_ai3dnr_adv_v1:定义Hi3519DV500的AI3DNR接口。
- ot_ai3dnr_manual_adv_param:定义Hi3519DV500的3DNR手动模式高级参数。
- ot_ai3dnr_adv_param_v1:定义Hi3519DV500的3DNR高级参数。
- ot_ai3dnr_adv_param:定义3DNR高级参数属性。
- ot_ai3dnr_attr:定义AI3DNR属性。
- ot_ai3dnr_cfg:定义AI3DNR算法配置参数。
- ot_ai3dnr_smooth:定义AI3DNR算法平滑切换参数。
- ot_ai3dnr_pool:定义AI3DNR算法vb池信息。
- ot_ai3dnr_status:定义AI3DNR数据流运行状态。
公共数据类型
OT_AIISP_MAX_MODEL_NUM
【说明】
定义模型文件最大支持加载数。
【定义】
【注意事项】
无
【相关数据类型及接口】
无
OT_AIISP_AUTO_ISO_NUM
【说明】
定义根据ISO自动调节的数目。
【定义】
【注意事项】
无
【相关数据类型及接口】
无
OT_AIISP_MAX_NAME_LEN
【说明】
定义字符串名称最大长度。
【定义】
【注意事项】
无
【相关数据类型及接口】
无
ot_aiisp_mem_info
【说明】
模型文件内存信息。
【定义】
【成员】
【注意事项】
无
【相关数据类型及接口】
ot_aiisp_model
【说明】
模型文件信息。
【定义】
typedef struct {
td_bool preempted_en;
ot_aiisp_mem_info mem_info;
ot_size image_size;
} ot_aiisp_model;
【成员】
【注意事项】
- 用户需要保证内存中所存储的模型文件信息的完整性和正确性,否则可能导致运行异常。
- 模型文件加载时需指定所支持的图像分辨率。
- 支持的图像分辨率宽高都必须是4的整数倍。
- 图像分辨率宽高最小支持120x88,最大支持4096x4096。
- 允许AIISP推理过程中被打断抢占,可能会导致AIISP的性能下降。
- Hi3516CV610不支持在线编译,preempted_en设置无效。
【相关数据类型及接口】
无
ot_aiisp_thread_attr
【说明】
定义AIISP线程属性。
【定义】
【成员】
绑定的CPU ID,取值范围为[0, core_num -1],core_num表示CPU的核数,如果CPU是双核,cpu_id的范围为[0,1]。 |
【注意事项】
无
【相关数据类型及接口】
无
ot_aiisp_type
【说明】
定义AIISP算法类型。
【定义】
typedef enum {
OT_AIISP_TYPE_AIBNR = 0,
OT_AIISP_TYPE_AIDRC = 1,
OT_AIISP_TYPE_AIDM = 2,
OT_AIISP_TYPE_AI3DNR = 3,
OT_AIISP_TYPE_BUTT
} ot_aiisp_type;
【成员】
【注意事项】
无
【相关数据类型及接口】
无
ot_aidm_pool
【说明】
定义AIDM算法vb池信息。
【定义】
【成员】
【注意事项】
无
【相关数据类型及接口】
无
ot_aiisp_pool
【说明】
定义AIISP vb池信息。
【定义】
typedef struct {
ot_aiisp_type aiisp_type;
union {
ot_aibnr_pool aibnr_pool; /* AUTO:ot_aiisp_type:OT_AIISP_TYPE_AIBNR */
ot_aidrc_pool aidrc_pool; /* AUTO:ot_aiisp_type:OT_AIISP_TYPE_AIDRC */
ot_aidm_pool aidm_pool; /* AUTO:ot_aiisp_type:OT_AIISP_TYPE_AIDM */
ot_ai3dnr_pool ai3dnr_pool; /* AUTO:ot_aiisp_type:OT_AIISP_TYPE_AI3DNR */
};
} ot_aiisp_pool;
【成员】
【注意事项】
无
【相关数据类型及接口】
无
AIBNR数据类型
ot_aibnr_model
【说明】
AIBNR模型文件信息。
【定义】
typedef struct {
ot_aiisp_model model;
td_bool is_wdr_mode;
ot_aibnr_ref_mode ref_mode;
td_bool nlc_en;
} ot_aibnr_model;
【成员】
【注意事项】
- 无参考帧模式仅支持配置为线性。
- 加载多个模型时,如果nlc_en配置成不同的值,模型之间相互切换会功能异常。
- Hi3519DV500支持的图像分辨率的宽和高必须是4的整数倍。
- Hi3516CV610的图像分辨率宽高最小支持960x544。
- Hi3516CV610的普通模型(含low iso和高iso模型)的图像宽必须是32的整数倍,宽最大支持3840。
- Hi3516CV610的pro模型的图像宽必须是32的整数倍,宽最大支持2688。
- Hi3516CV610支持的图像分辨率高必须是8的整数倍。
- Hi3516CV610的AIBNR模型不支持在线编译,不支持nlc,不支持wdr。
【相关数据类型及接口】
无
OT_AIBNR_NLC_LUT_NUM
【说明】
定义NLC LUT表的长度。
【定义】
【注意事项】
无
【相关数据类型及接口】
无
OT_AIBNR_LUT_LENGTH
【说明】
定义AIBNR LUT表长表的长度。
【定义】
【注意事项】
无
【相关数据类型及接口】
无
OT_AIBNR_LUT_LENGTH_S
【说明】
定义AIBNR LUT表短表的长度。
【定义】
【注意事项】
无
【相关数据类型及接口】
无
ot_aibnr_nlc
【说明】
定义AIBNR nlc参数。
【定义】
typedef struct {
td_bool enable;
td_u8 step_bit;
td_u16 r_fact[OT_AIBNR_NLC_LUT_NUM];
td_u16 b_fact[OT_AIBNR_NLC_LUT_NUM];
} ot_aibnr_nlc;
【成员】
【注意事项】
- nlc功能只支持细节优先的模型。
- 开启nlc功能,不支持wdr模式。
【相关数据类型及接口】
无
ot_aibnr_tnr
【说明】
定义AIBNR 时域参数。
【定义】
typedef struct {
td_bool load_ref_en;
td_u8 motion_gain;
td_u8 motion_thr;
td_u8 motion_noise_control;
td_u8 tf_speed_fine;
td_u8 tf_speed_coarse;
} ot_aibnr_tnr;
【成员】
【注意事项】
- 仅Hi3516CV610的pro模型支持。
- load_ref_en = 0时,模型再次切换为pro模型时不会刷新参考帧,如果画面内容发生了变化,可能会导致输出结果异常,例如画面有残影。当aibnr数据流开启且最开始选择了pro模型,内存会重新分配,即使load_ref_en = 0也不会导致画面残影。
- AIBNR图像效果使能开关从关到开时,load_ref_en = 0时,pro模型不会重新加载参考帧。
- load_ref_en参数可以动态设置,但是只在pro模型开启时或切换到pro模型时才会生效。
【相关数据类型及接口】
无
ot_aibnr_auto_attr
【说明】
定义AIBNR图像效果参数。
【定义】
typedef struct {
td_u32 sfs[OT_AIISP_AUTO_ISO_NUM];
td_u32 tfs[OT_AIISP_AUTO_ISO_NUM];
} ot_aibnr_auto_attr;
【成员】
【注意事项】
参数调节请参考《ISP图像调优指南》AIBNR章节。
【相关数据类型及接口】
无
ot_aibnr_manual_attr
【说明】
定义AIBNR手动参数。
【定义】
typedef struct {
td_u32 sfs;
td_u32 tfs;
td_u32 bright_denoise_strength;
td_u32 dark_denoise_strength;
ot_aibnr_nlc nlc;
ot_aibnr_tnr tnr;
} ot_aibnr_manual_attr;
【成员】
【注意事项】
- 若使用Hi3516CV610的pro模型,sfs 主要影响运动区域,bright_denoise_strength 主要影响运动区域的亮区,dark_denoise_strength 主要影响运动区域的暗区。
- Hi3516CV610不支持一致性校正功能。
【相关数据类型及接口】
ot_aibnr_attr
【说明】
定义AIBNR属性。
【定义】
typedef struct {
td_bool enable;
td_bool bnr_bypass;
td_bool blend;
td_u32 input_depth;
td_u32 output_depth;
ot_op_mode op_type;
ot_aibnr_manual_attr manual_attr;
ot_aibnr_auto_attr auto_attr;
} ot_aibnr_attr;
【成员】
BNR Bypass开关,默认值为TD_FALSE。详细请参考《ISP图像调优指南》文档AIBNR章节中AIBNR与BNR切换。 |
|
normal模式blend开关,Hi3519DV500默认值为TD_TRUE,Hi3516CV610默认值为TD_FALSE。 |
|
【注意事项】
- 本版本暂只支持手动模式参数,不支持自动模式参数配置。
- blend开启后,会延时3帧才生效。Hi3516CV610不支持blend。
- 未加载VGS模块时,不能关闭图像效果使能开关。
【相关数据类型及接口】
无
ot_aibnr_ref_mode
【说明】
定义AIBNR参考帧模式。
【定义】
typedef enum {
OT_AIBNR_REF_MODE_NORM = 0,
OT_AIBNR_REF_MODE_NONE,
OT_AIBNR_REF_MODE_BUTT
} ot_aibnr_ref_mode;
【成员】
【注意事项】
如果是拍照场景,需选用AIBNR无参考帧模式;当前版本只支持参考帧普通模式。
【相关数据类型及接口】
ot_aibnr_cfg
【说明】
定义AIBNR算法配置参数。
【定义】
【成员】
【注意事项】
无
【相关数据类型及接口】
无
ot_aibnr_pool
【说明】
定义AIBNR算法vb池信息。
【定义】
【成员】
【注意事项】
无
【相关数据类型及接口】
无
ot_aibnr_model_attr
【说明】
定义AIBNR模型属性信息。
【定义】
typedef struct {
ot_op_mode op_type;
td_u8 manual_id;
td_u8 auto_id[OT_AIISP_AUTO_ISO_NUM];
} ot_aibnr_model_attr;
【成员】
【注意事项】
- auto_id数组对应的ISO段起始ISO为100, 200, 400, 800, 1600, 3200, 6400, 12800, 25600, 51200, 102400, 204800, 409600, 819200, 1638400, 3276800,特别的,ISO小于200时使用第一段,例如auto_id[0] = 0,auto_id[1] = 1,表示ISO小于200时使用id为0的模型,ISO大于等于200且小于400时使用id为1的模型。
- auto_id的初始值会被最后加载模型的auto_id默认值覆盖。
【相关数据类型及接口】
ot_aibnr_model_info
【说明】
定义AIBNR已加载的单个模型信息。
【定义】
【成员】
【注意事项】
模型信息包含模型id和是否是wdr,不区分分辨率。
【相关数据类型及接口】
ot_aibnr_model_list
【说明】
定义AIBNR已加载的模型列表信息。
【定义】
typedef struct {
td_u32 num;
ot_aibnr_model_info info[OT_AIISP_MAX_MODEL_NUM];
} ot_aibnr_model_list;
【成员】
【注意事项】
- 当num=0,info的内容无效。
- 获取的模型信息包含模型id和是否是wdr,不区分分辨率。
- Hi3519DV500芯片,当同一个模型文件通过配置不同分辨率加载了多次时,模型num只会计算一次。
- Hi3516CV610芯片,同一模型加载多次,模型num会累加。
【相关数据类型及接口】
ot_aibnr_status
【说明】
定义AIBNR数据流运行状态。
【定义】
【成员】
【注意事项】
无
【相关数据类型及接口】
AIDRC数据类型
OT_AIDRC_LMIX_NODE_NUM
【说明】
AIDRC Local Mixing(细节增强)LUT节点个数。
【定义】
【注意事项】
无。
【相关数据类型及接口】
ot_aidrc_model
【说明】
AIDRC模型文件信息。
【定义】
【成员】
【注意事项】
无
【相关数据类型及接口】
无
ot_aidrc_blend
【说明】
AIDRC融合参数。
【定义】
typedef struct {
td_u8 tone_mapping_wgt_x;
td_u8 detail_adjust_coef_x;
td_u8 local_mixing_bright_x[OT_AIDRC_LMIX_NODE_NUM];
td_u8 local_mixing_dark_x[OT_AIDRC_LMIX_NODE_NUM];
td_u8 blend_luma_max;
td_u8 blend_luma_bright_min;
td_u8 blend_luma_bright_threshold;
td_u8 blend_luma_dark_min;
td_u8 blend_luma_dark_threshold;
td_u8 blend_detail_max;
td_u8 blend_detail_bright_min;
td_u8 blend_detail_bright_threshold;
td_u8 blend_detail_dark_min;
td_u8 blend_detail_dark_threshold;
td_u8 detail_adjust_coef_blend;
} ot_aidrc_blend;
【成员】
CurveX融合权重。值越大,越倾向CurveX的效果;仅在OT_AIDRC_MODE_ADVANCED模式下生效,此版本暂不支持该模式。取值范围:[0x0, 0x80],默认值为0。 |
|
local_mixing_bright_x[OT_AIDRC_LMIX_NODE_NUM] |
FilterX对应的正向细节增强系数,索引为亮度值。取值范围:[0x0, 0x80],默认值为 {64, 64, 64, 64, 64, 64, 64, 72, 80, 88, 96, 96, 96, 96, 96, 96,96, 96, 96, 96, 88, 80, 72, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64} |
local_mixing_dark_x[OT_AIDRC_LMIX_NODE_NUM] |
FilterX对应的负向细节增强系数,索引为亮度值。取值范围:[0x0, 0x80],默认值为 {64, 64, 64, 64, 64, 64, 64, 72, 80, 88, 96, 96, 96, 96, 96, 96,96, 96, 96, 96, 88, 80, 72, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64} |
Filter和FilterX基于亮度的融合权重的最大值(全局)。取值范围:[0x0, 0xFF],默认值为200,融合权重0xFF代表完全选择Filter,0x0代表完全选择FilterX,下同。 |
|
【注意事项】
无
【相关数据类型及接口】
ot_aidrc_param
【说明】
定义AIDRC参数。
【定义】
【成员】
【注意事项】
无
【相关数据类型及接口】
ot_aidrc_attr
【说明】
定义AIDRC属性。
【定义】
typedef struct {
td_bool enable;
td_u32 input_depth;
td_u32 output_depth;
ot_aidrc_param param;
} ot_aidrc_attr;
【成员】
【注意事项】
无
【相关数据类型及接口】
无
ot_aidrc_cfg
【说明】
定义AIDRC算法配置参数。
【定义】
【成员】
【注意事项】
无
【相关数据类型及接口】
无
ot_aidrc_mode
【说明】
定义AIDRC模式。
【定义】
typedef enum {
OT_AIDRC_MODE_NORMAL = 0x0,
OT_AIDRC_MODE_ADVANCED,
OT_AIDRC_MODE_BUTT
} ot_aidrc_mode;
【成员】
【注意事项】
无
【相关数据类型及接口】
无
ot_aidrc_smooth
【说明】
定义AIDRC算法平滑切换参数。
【定义】
【成员】
【注意事项】
如果不配置平滑切换参数,默认会平滑切换。
【相关数据类型及接口】
无
ot_aidrc_pool
【说明】
定义AIDRC算法vb池信息。
【定义】
【成员】
【注意事项】
无
【相关数据类型及接口】
无
ot_aidrc_status
【说明】
定义AIDRC数据流运行状态。
【定义】
【成员】
【注意事项】
无
【相关数据类型及接口】
AI3DNR数据类型
OT_AI3DNR_GAMMA_LUT_NUM
【说明】
定义AI3DNR的gamma表的大小。
【定义】
【注意事项】
无
【相关数据类型及接口】
无
OT_AI3DNR_BAYERNR_DENOISE_Y_LUT_NUM
【说明】
定义AI3DNR的y分量去噪强度表的大小。
【定义】
【注意事项】
无
【相关数据类型及接口】
无
ot_ai3dnr_net_type
【说明】
AI3DNR 网络类型。
【定义】
typedef enum {
OT_AI3DNR_NET_TYPE_Y = 0,
OT_AI3DNR_NET_TYPE_UV,
OT_AI3DNR_NET_TYPE_YUV,
OT_AI3DNR_NET_TYPE_BUTT
} ot_ai3dnr_net_type;
【成员】
【注意事项】
AI3DNR Y、YUV网络类型,当前版本不支持。
【相关数据类型及接口】
无
ot_ai3dnr_model
【说明】
AI3DNR模型文件信息。
【定义】
【成员】
【注意事项】
只支持OT_AI3DNR_NET_TYPE_UV模式。
【相关数据类型及接口】
无
ot_ai3dnr_strength
【说明】
定义AI3DNR 去噪强度属性。
【定义】
typedef struct {
td_u32 denoise_fg;
td_u32 denoise_bg;
td_u32 depattern_fg;
td_u32 depattern_bg;
td_u32 sharp_str;
td_u32 coring_str;
td_u8 denoise_y_alpha;
td_u8 denoise_y_fg_str_lut[OT_AI3DNR_BAYERNR_DENOISE_Y_LUT_NUM];
td_u8 denoise_y_bg_str_lut[OT_AI3DNR_BAYERNR_DENOISE_Y_LUT_NUM];
td_u8 gamma_lut[OT_AI3DNR_GAMMA_LUT_NUM];
td_u32 uv_denoise_fg;
td_u32 uv_denoise_bg;
td_u32 uv_coring_str;
} ot_ai3dnr_strength;
【成员】
【注意事项】
无
【相关数据类型及接口】
无
ot_ai3dnr_auto_adv_param
【说明】
定义Hi3519DV500的3DNR自动模式高级参数。
【定义】
typedef struct {
td_u32 param_num;
ot_ai3dnr_adv_v1 ATTRIBUTE *adv_param;
} ot_ai3dnr_auto_adv_param;
【成员】
NR自动模式高级参数数组指针。设置时,表示存放adv_param参数的内存指针。 获取时,表示接收adv_param参数的内存指针,该内存大小应该大于等于sizeof(ot_ai3dnr_adv_v1)*param_num(注意:这里param_num表示设置时的param_num)。 |
【注意事项】
- adv_param指向的数组成员个数都必须与param_num一致。
- adv_param与3DNR标准参数中的iso存在一一对应关系。param_num、ISO值与nr_param参数为动态参数,用户可根据需求自由配置,其中最大组合数目不得大于16,ISO值必须从小到大配置,范围为[100, 3276800]。
- 如图像实际ISO值超出用户配置的ISO边界值,按边界值计算。
【相关数据类型及接口】
无
ot_ai3dnr_adv_v1
【说明】
定义Hi3519DV500的AI3DNR接口
【定义】
typedef struct {
td_u8 adv_mode; /* RW; Range: [0, 3]; */
ot_nr_v1_adv_iey adv_ie_y[2];
ot_nr_v1_adv_sfy adv_sf_y[2];
} ot_ai3dnr_adv_v1;
【成员】
AI3DNR 增强参数。ot_nr_v1_adv_iey定义见《Hi3519DV500/Hi3516DV500 3DNR参数配置说明》。 |
|
AI3DNR 空域参数。ot_nr_v1_adv_sfy定义见《Hi3519DV500/Hi3516DV500 3DNR参数配置说明》。 |
【注意事项】
无
【相关数据类型及接口】
无
ot_ai3dnr_manual_adv_param
【说明】
定义Hi3519DV500的3DNR手动模式高级参数。
【定义】
【成员】
【注意事项】
无
【相关数据类型及接口】
无
ot_ai3dnr_adv_param_v1
【说明】
定义Hi3519DV500的3DNR高级参数。
【定义】
typedef struct {
ot_op_mode op_mode;
ot_ai3dnr_manual_adv_param manual_adv_param;
ot_ai3dnr_auto_adv_param auto_adv_param;
} ot_ai3dnr_adv_param_v1;
【成员】
【注意事项】
无
【相关数据类型及接口】
无
ot_ai3dnr_adv_param
【说明】
定义3DNR高级参数属性。
【定义】
typedef struct {
ot_nr_version nr_version;
union {
ot_ai3dnr_adv_param_v1 nr_adv_param_v1;
};
} ot_ai3dnr_adv_param;
【成员】
【注意事项】
在YUV net时才有效,当前版本暂不支持。
【相关数据类型及接口】
无
ot_ai3dnr_attr
【说明】
定义AI3DNR属性。
【定义】
typedef struct {
td_bool enable;
td_u32 input_depth;
td_u32 output_depth;
ot_ai3dnr_strength strength;
ot_ai3dnr_adv_param adv_param;
} ot_ai3dnr_attr;
【成员】
【注意事项】
无
【相关数据类型及接口】
无
ot_ai3dnr_cfg
【说明】
定义AI3DNR算法配置参数。
【定义】
【成员】
模型文件支持的网络模式,默认值为OT_AI3DNR_NET_TYPE_UV。 |
【注意事项】
AI3DNR Y、YUV网络类型,当前版本不支持。
【相关数据类型及接口】
无
ot_ai3dnr_smooth
【说明】
定义AI3DNR算法平滑切换参数。
【定义】
【成员】
【注意事项】
当前版本暂不支持。
【相关数据类型及接口】
无
ot_ai3dnr_pool
【说明】
定义AI3DNR算法vb池信息。
【定义】
【成员】
【注意事项】
无
【相关数据类型及接口】
无
ot_ai3dnr_status
【说明】
定义AI3DNR数据流运行状态。
【定义】
【成员】
【注意事项】
无
【相关数据类型及接口】
Proc调试信息
概述
调试信息采用了Linux下的proc文件系统,可实时反映当前系统的运行状态,所记录的信息可供问题定位及分析时使用。
【文件目录】
/proc/umap
【信息查看方法】
- 在控制台上可以使用cat命令查看信息,cat /proc/umap/aiisp;也可以使用其他常用的文件操作命令,例如 cp /proc/umap/aiisp,将文件拷贝到当前目录。
- 在应用程序中可以将上述文件当作普通只读文件进行读操作,例如fopen、fread等。
说明:
参数在描述时有以下两种情况需要注意:
- 取值为{0, 1}的参数,如未列出具体取值和含义的对应关系,则参数为1时表示肯定,为0时表示否定。
- 取值为{aaa, bbb, ccc}的参数,未列出具体取值和含义的对应关系,但可直接根据取值aaa、bbb或ccc判断参数含义。
Proc信息说明
AIBNR调试信息说明
【调试信息】
~ # cat /proc/umap/aiisp
[AIISP] Version: [HI3519DV500_MPP_V1.0.0.0 B010 Release], Build Time[Apr 7 2023, 14:41:22]
----------------------------------------aiisp framework: 2023031000--------------------------------------------------------
aiv type proc init vdb init_cnt
0 1 1
----------------------------------------aibnr plugin: 2023112000--------------------------------------------------------
----------------------------------------model attr----------------------------------------------------------------------
type op_type manual_id auto_id
linear auto 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
wdr auto 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
----------------------------------------model info----------------------------------------------------------------------
id name width height blk olp node_num is_wdr ref_mode preempted_en compile(us) nlc
0 denoise_20240319 2688 1520 2688 0 1 N ref N 436927 N
1 denoise_20240319 2688 1520 2688 0 1 Y ref N 397134 N
----------------------------------------agent 0-------------------------------------------------------------------------
type pos ref task_num max_pipe_num ini_cpu_core
0 0 1 2 4 -1
----------------------------------------executor------------------------------------------------------------------------
thread status run_count cpu_core
Start running 1980 -1
----------------------------------------monitor-------------------------------------------------------------------------
thread status run_count cpu_core
Start sleeping 1381 -1
----------------------------------------detail--------------------------------------------------------------------------
pipe enable running link_setup pending_task
0 Y Y Y 0
realtime_rate average_rate succ_cnt fail_cnt enable_cnt disable_cnt
30 30.0 595 0 1 0
try_pipe_fail try_plugin_fail get_task_fail prepare_task_fail submit_task_fail submit_task_succ
196 798 0 0 0 595
----------------------------------------station 0: 66.5%----------------------------------------------------------------
active max_pipe_num max_task_num svp_mode free_task busy_task
Y 4 8 active 8 0
models work_buf_id work_buf_size links reg_task
2 0 8528640 1 2
total success failure bypass working
595 595 0 0 0
----------------------------------------aibnr pipe info-----------------------------------------------------------------
pipe 0 1 2 3 4 5 6
enable Y N N N N N N
----------------------------------------pipe 0 attr---------------------------------------------------------------------
enable bnr_bypass blend in_depth out_depth op_type sfs tfs bds dds is_wdr ref_mode
Y N N 0 0 0 31 31 128 128 N ref
----------------------------------------tnr attr------------------------------------------------------------------------
load_ref mot_gain mot_thr noise_ctl tf_spd_f tf_spd_c
Y 12 128 128 85 77
----------------------------------------nlc attr------------------------------------------------------------------------
nlc_en step_bit
Y 3
r_fact:
1043 1043 1029 1024 1021 1020 1019 1018 1017 1017 1016 1015 1014 1014 1013 1013
1012 1012 1012 1011 1011 1011 1010 1010 1010 1010 1009 1009 1008 1008 1008 1000
b_fact:
1024 1024 1027 1028 1029 1029 1029 1029 1027 1024 1021 1019 1018 1016 1015 1013
1011 1009 1008 1006 1005 1004 1004 1004 1003 1003 1003 1002 1002 1002 1002 1000
----------------------------------------status--------------------------------------------------------------------------
active bnr_bypass blend long_frm pattern lost_cnt iso k b
Y N N N RGGB 0 196 0.010937 0.001811
model_id pool_id block_reason
0 5 none
----------------------------------------task load: 84.6%----------------------------------------------------------------
----------------------------------------detail--------------------------------------------------------------------------
is_run pending in_num ref_num out_num in_busy in_free ref_busy ref_free
1 1 1 1 1 0 8 2 1
first_total(ms) enable -> try try -> ready ready -> execute execute -> finish finish -> send
39 13 0 2 23 0
Hi3516CV610:
# cat /proc/umap/aiisp
[AIISP] Version: [HI3516CV610_MPP_V1.0.0.0 B010 Release], Build Time[Apr 8 2026, 10:34:15]
----------------------------------------aiisp framework: 2023112000-----------------------------------------------------
aiv type proc init vdb init_cnt
0 1 1
----------------------------------------aibnr plugin: 2023112000-------------------------------------------------------------
----------------------------------------model attr---------------------------------------------------------------------------
type op_type manual_id auto_id
linear auto 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
wdr auto 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
----------------------------------------model info---------------------------------------------------------------------------
id name width height blk olp node_num is_wdr ref_mode preempted_en compile(us) nlc
0 aibnr_20240826 2560 1440 1280 64 2 N ref N 0 N
1 aibnr_highiso_20250124 2560 1440 1280 64 2 N ref N 0 N
----------------------------------------agent 0------------------------------------------------------------------------------
type pos ref task_num max_pipe_num ini_cpu_core
0 0 1 1 1 -1
----------------------------------------executor-----------------------------------------------------------------------------
thread status run_count cpu_core
Start running 1785 -1
----------------------------------------monitor------------------------------------------------------------------------------
thread status run_count cpu_core
Start sleeping 443 -1
----------------------------------------detail-------------------------------------------------------------------------------
pipe enable running link_setup pending_task
0 Y Y Y 0
realtime_rate average_rate succ_cnt fail_cnt enable_cnt disable_cnt
12 12.0 304 0 1 0
try_pipe_fail try_plugin_fail get_task_fail prepare_task_fail submit_task_fail submit_task_succ
913 521 0 0 0 304
----------------------------------------station 0 load: 67.3%----------------------------------------------------------------
active max_pipe_num max_task_num svp_mode free_task busy_task
Y 1 1 active 1 0
models work_buf_id work_buf_size links reg_task
2 0 9916096 1 1
total success failure bypass working
304 304 0 0 0
----------------------------------------aibnr pipe info----------------------------------------------------------------------
pipe 0
enable Y
----------------------------------------pipe 0 attr--------------------------------------------------------------------------
enable bnr_bypass blend in_depth out_depth op_type sfs tfs bds dds is_wdr ref_mode
Y N N 0 0 1 31 204 128 128 N ref
----------------------------------------tnr attr-----------------------------------------------------------------------------
load_ref mot_gain mot_thr noise_ctl tf_spd_f tf_spd_c
Y 12 128 128 85 77
----------------------------------------nlc attr-----------------------------------------------------------------------------
nlc_en step_bit
N 3
----------------------------------------status-------------------------------------------------------------------------------
active bnr_bypass blend long_frm pattern lost_cnt iso k b
Y N N N RGGB 0 100 0.011228 0.003147
model_id pool_id block_reason
1 1 none
----------------------------------------task load: 68.1%---------------------------------------------------------------------
----------------------------------------detail-------------------------------------------------------------------------------
is_run pending in_num ref_num out_num in_busy in_free ref_busy ref_free
1 1 1 1 1 0 8 2 0
first_total(ms) enable -> try try -> ready ready -> execute execute -> finish finish -> send
376 15 300 5 55 0
【注意事项】
当某个算法初始化并且数据流首次使能之后,才能查看到该算法相关的proc信息。
【调试信息分析】
记录当前已加载的模型信息、任务运行信息、用户设置信息、算法运行信息等。
【参数说明】
aiisp framework: 2023031000(Hi3519DV500)/2023112000(Hi3516CV610)(资源初始化情况) |
||
任务的负载。表示单位时间内(aibnr软件处理时间+硬件处理时间)/单位时间,推理时间包含了被打断后处理其他任务的时间。 |
||
AIDRC调试信息说明
~ # cat /proc/umap/aiisp
[AIISP] Version: [HI3519DV500_MPP_V1.0.0.0 B010 Release], Build Time[Apr 7 2023, 14:41:22]
----------------------------------------aiisp framework: 2023031000--------------------------------------------------------
aiv type proc init vdb init_cnt
1 1 1
----------------------------------------aidrc plugin: 2023112000--------------------------------------------------------
----------------------------------------model info----------------------------------------------------------------------
model_id name width height blk_width node_num preempted_en compile(us)
0 normal_aidrc 3840 2160 1920 2 N 2121221
----------------------------------------agent 256-----------------------------------------------------------------------
type pos ref task_num max_pipe_num ini_cpu_core
1 0 1 2 15 -1
----------------------------------------executor------------------------------------------------------------------------
thread status run_count cpu_core
Start sleeping 607 -1
----------------------------------------monitor-------------------------------------------------------------------------
thread status run_count cpu_core
Start sleeping 423 -1
----------------------------------------detail--------------------------------------------------------------------------
pipe enable running link_setup pending_task
0 Y N Y 0
realtime_rate average_rate succ_cnt fail_cnt enable_cnt disable_cnt
30 0.0 185 0 1 0
try_pipe_fail try_plugin_fail get_task_fail prepare_task_fail submit_task_fail submit_task_succ
37 273 0 0 0 185
----------------------------------------station 256: 57.9%--------------------------------------------------------------
active max_pipe_num max_task_num svp_mode free_task busy_task
Y 15 30 active 30 0
models work_buf_id work_buf_size links reg_task
1 256 16621568 1 2
total success failure bypass working
185 185 0 0 0
----------------------------------------aidrc pipe info-----------------------------------------------------------------
pipe 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
enable N N Y N N N N N N N N N N N N
----------------------------------------pipe 0 attr---------------------------------------------------------------------
enable strength threshold mode out_depth smooth
Y 7 1 normal 0 Y
detail_adj_coef_x tone_mapping_wgt_x
0 0
luma_max luma_bright_min luma_bright_thr luma_dark_min luma_dark_thr
200 0 40 0 60
detail_max detail_bright_min detail_bright_thr detail_dark_min detail_dark_thr detail_adj_coef_bld
200 0 20 0 20 0
----------------------------------------status--------------------------------------------------------------------------
active pattern model_id in_pool_id out_pool_id
Y BGGR 0 5 6
----------------------------------------detail--------------------------------------------------------------------------
is_run pending in_num out_num in_busy in_free
0 0 1 1 0 8
is_cmp
N
first_total(ms) enable -> try try -> ready ready -> execute execute -> finish finish -> send
57
【参数说明】
|
normal:NORMAL模式,仅处理画面细节,资源消耗较小 |
||
控制额外Tone Maping曲线(简称CurveX)和一般Tone Mapping曲线(简称Curve,对应curve_select,tone_mapping_value和asymmetry_curve接口)的融合权重。 |
||
AI3DNR调试信息说明
~
~ # cat /proc/umap/aiisp
[AIISP] Version: [HI3519DV500_MPP_V1.0.0.0 B010 Release], Build Time[Apr 7 2023, 14:41:22]
----------------------------------------aiisp framework: 2023031000--------------------------------------------------------
aiv type proc init vdb init_cnt
3 1 1
----------------------------------------ai3dnr plugin: 2023112000--------------------------------------------------------
----------------------------------------model info----------------------------------------------------------------------
model_id name width height net_type preempted_en compile(us)
0 ai3dnr_20230325 3840 2160 uv_net N 664943
----------------------------------------agent 768-----------------------------------------------------------------------
type pos ref task_num max_pipe_num ini_cpu_core
3 0 1 2 15 -1
----------------------------------------executor------------------------------------------------------------------------
thread status run_count cpu_core
Start sleeping 411 -1
----------------------------------------monitor-------------------------------------------------------------------------
thread status run_count cpu_core
Start sleeping 283 -1
----------------------------------------detail--------------------------------------------------------------------------
pipe enable running link_setup pending_task
0 Y N Y 0
realtime_rate average_rate succ_cnt fail_cnt enable_cnt disable_cnt
30 0.0 129 0 1 0
try_pipe_fail try_plugin_fail get_task_fail prepare_task_fail submit_task_fail submit_task_succ
0 215 0 0 0 129
----------------------------------------station 768: 10.6%--------------------------------------------------------------
active max_pipe_num max_task_num svp_mode free_task busy_task
Y 15 30 active 30 0
models work_buf_id work_buf_size links reg_task
1 768 16 1 2
total success failure bypass working
129 129 0 0 0
----------------------------------------ai3dnr pipe info-----------------------------------------------------------------
pipe 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
enable N N Y N N N N N N N N N N N N
----------------------------------------pipe 0 attr---------------------------------------------------------------------
enable in_depth out_depth smooth net_type
Y 0 0 Y uv_net
sharp_str coring_str denoise_fg denoise_bg depattern_fg depattern_bg denoise_y_alpha
0 0 0 0 0 0 255
gamma_lut:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
uv_denoise_fg uv_denoise_bg uv_coring_str
0 0 0
----------------------------------------status--------------------------------------------------------------------------
active npu_en iso model_id pool_id
Y Y 155 0 1
----------------------------------------detail--------------------------------------------------------------------------
is_run pending in_num out_num in_busy in_free is_cmp
0 0 1 1 0 8 N
first_total(ms) enable -> try try -> ready ready -> execute execute -> finish finish -> send
42 3 20 0 19 0
【参数说明】
|
||
FAQ
AIISP被抢占导致性能不足时,如何进行丢帧处理
【现象】
AIISP和用户推理任务同时开启,且用户推理任务的优先级比AIISP高时,可能导致AIISP性能不够,进而丢帧。
【解决方法】
AIISP和用户推理任务都会占用NPU性能,NPU会根据处理任务的优先级高低进行任务调度和抢占,数值越小优先级越高(AIISP的优先级默认为1,推理任务默认优先级为3):
- 如果期望AIISP不丢帧,可以将用户推理的优先级设置低于AIISP的优先级,优先保证AIISP的性能。设置优先级可以参考svp_acl_mdl_load_with_config(详见《应用开发指南》)的使用方法。
- 如果实际业务需要主动丢帧,可以通过设置VI的帧率控制,做降帧处理,从而达到一个相对均匀的丢帧效果。
线性AIISP和WDR宽动态模式如何动态切换
【现象】
Hi3516CV610上线性AIISP和WDR宽动态模式动态切换失败。
【解决方法】
加载ko脚本的时候必须指定模块参数-profile 2,才可以支持线性AIISP和WDR模式动态切换,切换过程中要销毁和重建VI通路,但不用销毁isp,退出线性AIISP的时候需要卸载AIISP模型。
AIISP和WDR宽动态模式动态切换容易出现内存碎片,为了避免这个问题可以设置AIISP内存独立分区,方法参考小内存单板加载模型时空间不足,如何设置独立分区小节。
小内存单板加载模型时空间不足,如何设置独立分区
【现象】
小内存单板由于出现内存碎片,导致AIISP模型加载失败。
【解决方法】
-
加载ko脚本时,修改脚本或加载指令,例如:
./load3519dv500 -a -mmz_start 0x48200000 -mmz_size 1853M:aiisp,0,0xBBF00000,65M;
其中"mmz_size 1853M:aiisp,0,0xBBF00000,65M"部分根据AIISP实际需要计算:
AIISP需要65M时, 匿名区域剩余1918 - 65 = 1853M; AIISP分区起始地址为0x48200000+0x73D00000(1853M)=0xBBF00000。
-
AIISP业务初始化前调用ss_mpi_sys_set_mem_cfg接口设置AIISP使用独立分区:
ot_mpp_chn mpp_chn = { OT_ID_AIISP, 0, 0 }; /* AIISP只支持dev0, chn0 */
td_char *mmz_name = "aiisp";
ss_mpi_sys_set_mem_cfg(&mpp_chn, mmz_name);
错误码
AIISP错误码如表1所示。
表 1 AIISP API错误码
模型编译工具
【说明】
模型编译工具model_convert_tools可以生成其他分辨率的模型bin文件。
- 执行命令:python model_convert.py -s 1920x1080, 其中1920x1080 为模型输出图像分辨率。
- 本工具会自动遍历每个目录下的模型和cfg配置文件。
- xxxx.bin文件为输入模型文件,xxxx.cfg文件为模型配置文件, xxx.txt为模型时间戳文件,xxx_model_widthxheight[_模型后缀].bin为生成的板端可执行模型。
- 本工具需要依赖ATC工具,ATC工具安装参考《ATC工具使用指南》“2 使用入门”章节。
【注意事项】
- 本工具仅支持Hi3516CV610。
- AIBNR的模型支持最小分辨率960x544。
- AIBNR的模型的高必须是8的整数倍,高最大支持2160。
- AIBNR普通模型(含low iso和high iso的模型)的宽必须是16的整数倍,宽最大支持3840。
- AIBNR的pro模型的宽必须是16的整数倍,宽最大支持2688。
- AIBNR的low buf模型的宽高只支持2560x1440。
模型列表
须知:
- 模型版本名称用于区分不同版本的模型文件。当加载了模型文件后,可以通过 cat /proc/umap/aiisp 命令查看模型版本名称。
- 模型占用的算力大致可以通过分辨率、帧率线性换算,其他分辨率、帧率可以通过表中性能一列中列出的典型分辨率帧率下占用的算力进行线性换算。
- aibnr_model_denoise_priority.bin、aibnr_model_denoise_priority_lite.bin、aibnr_model_detail_priority_lite.bin 模型的算力在不同分辨率下的折算方式: 2688 <= width <= 3840,可以根据典型分辨率2688*1520的算力线性折算; width < 2688,不能根据2688*1520典型分辨率的算力折算,需要实测。
- 模型的类型为A类,表示当前模型经过功能和效果充分验证;模型的类型为B类,表示当前的模型功能经过充分验证,效果验证典型场景,客户仅作参考。




