跳转至

AIISP 开发参考

前言

概述

本文为使用AIISP的软件开发工程师和图像质量开发工程师而写,目的是为您在开发过程中提供使用指导和帮助。

说明:

本文以Hi3519DV500为例,未有特殊说明,Hi3516DV500与Hi3519DV500内容完全一致,Hi3516CV608与Hi3516CV610内容一致。

产品版本

与本文档相对应的产品版本如下。

产品名称

产品版本

Hi3519D

V500

Hi3516D

V500

Hi3516C

V608

Hi3516C

V610

符号约定

在本文中可能出现下列标志,它们所代表的含义如下。

符号

说明

表示如不避免则将会导致死亡或严重伤害的具有高等级风险的危害。

表示如不避免则可能导致死亡或严重伤害的具有中等级风险的危害。

表示如不避免则可能导致轻微或中度伤害的具有低等级风险的危害。

用于传递设备或环境安全警示信息。如不避免则可能会导致设备损坏、数据丢失、设备性能降低或其它不可预知的结果。

“须知”不涉及人身伤害。

对正文中重点信息的补充说明。

“说明”不是安全警示信息,不涉及人身、设备及环境伤害信息。

修改记录

修订记录累积了每次文档更新的说明。最新版本的文档包含以前所有文档版本的更新内容。

版本

日期

修改描述

00B01

2026-06-30

第1次临时版本发布

概述

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模式性能数据

分辨率

帧率

3840x2160

单路30fps

AIDRC_MODE_ADVANCED模式性能数据如表2。

表 2 AIDRC_MODE_ADVANCED模式性能数据

分辨率

帧率

3072x1728

单路30fps

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性能

分辨率

帧率

3840x2160

单路30fps

API参考

AIBNR为用户提供以下API:

AIDRC为用户提供以下API:

AI3DNR为用户提供以下API:

AIBNR API参考

ss_mpi_aibnr_init

【描述】

初始化AIBNR模块。

【语法】

td_s32 ss_mpi_aibnr_init(td_void);

【参数】

无

【返回值】

返回值

描述

0

成功。

非0

失败,请参见错误码。

【需求】

  • 头文件:ss_mpi_aibnr.h
  • 库文件:libss_mpi_aibnr.a

【注意】

  • 不支持多进程调用。接口调用需要和VI、ISP所在的主进程保持同进程。
  • Hi3516CV608和Hi3516CV610-10B板型不支持调用。

【举例】

无

【相关主题】

无

ss_mpi_aibnr_exit

【描述】

去初始化AIBNR模块。

【语法】

td_void ss_mpi_aibnr_exit(td_void);

【参数】

无

【返回值】

返回值

描述

0

成功。

非0

失败,请参见错误码。

【需求】

  • 头文件:ss_mpi_aibnr.h
  • 库文件:libss_mpi_aibnr.a

【注意】

  • 不支持多进程调用。接口调用需要和VI、ISP所在的主进程保持同进程。
  • 调用此接口去初始化AIBNR模块前,需要关闭AIBNR数据流开关。

【举例】

无

【相关主题】

无

ss_mpi_aibnr_load_model

【描述】

加载AIBNR的模型文件。

【语法】

td_s32 ss_mpi_aibnr_load_model(const ot_aibnr_model *model *model, td_s32 *model_id);

【参数】

参数名称

描述

输入/输出

model

AIBNR模型文件指针。

输入

model_id

返回的模型文件ID指针。

输出

【返回值】

返回值

描述

0

成功。

非0

失败,请参见错误码。

【需求】

  • 头文件: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的模型文件。

【语法】

td_s32 ss_mpi_aibnr_unload_model(td_s32 model_id);

【参数】

参数名称

描述

输入/输出

model_id

模型文件对应的ID。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,请参见错误码。

【需求】

  • 头文件:ss_mpi_aibnr.h
  • 库文件:libss_mpi_aibnr.a

【注意】

  • 应用程序退出前,需调用此接口释放已加载模型文件的内存资源,或者调用ss_mpi_aibnr_exit接口释放AIBNR的所有资源。
  • 不支持多进程调用。接口调用需要和VI、ISP所在的主进程保持同进程。
  • 调用此接口前需要关闭AIBNR数据流开关。
  • 离线模型在调用此接口前,需要保证加载模型时分配的内存没有被释放。

【举例】

无

【相关主题】

无

ss_mpi_aibnr_set_cfg

【描述】

设置AIBNR算法相关配置参数。

【语法】

td_s32 ss_mpi_aibnr_set_cfg(td_s32 pipe, const ot_aibnr_cfg *cfg)

【参数】

参数名称

描述

输入/输出

pipe

VI模块的PIPE号。

取值范围:[0, OT_VI_MAX_PHYS_PIPE_NUM)。详见《MPP 媒体处理软件V6.0 开发参考》“视频输入”章节。

输入

cfg

AIBNR算法参数配置结构体指针。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,请参见错误码。

【需求】

  • 头文件:ss_mpi_aibnr.h
  • 库文件:libss_mpi_aibnr.a

【注意】

  • 调用该接口前必须先调用ss_mpi_aibnr_init初始化AIBNR模块。
  • 调用该接口时AIBNR数据流需要保持关闭状态。
  • 如果未调用此接口,默认为有参考帧模式。
  • 如果是拍照场景,必须调用此接口设置为无参考帧模式。

【举例】

无

【相关主题】

无

ss_mpi_aibnr_get_cfg

【描述】

获取AIBNR算法相关配置参数。

【语法】

td_s32 ss_mpi_aibnr_get_cfg(td_s32 pipe, ot_aibnr_cfg *cfg);

【参数】

参数名称

描述

输入/输出

pipe

VI模块的PIPE号。

取值范围:[0, OT_VI_MAX_PHYS_PIPE_NUM)。详见《MPP 媒体处理软件V6.0 开发参考》“视频输入”章节。

输入

cfg

AIBNR算法参数配置结构体指针。

输出

【返回值】

返回值

描述

0

成功。

非0

失败,请参见错误码。

【需求】

  • 头文件:ss_mpi_aibnr.h
  • 库文件:libss_mpi_aibnr.a

【注意】

调用该接口前必须先调用ss_mpi_aibnr_init初始化AIBNR模块。

【举例】

无

【相关主题】

无

ss_mpi_aibnr_enable

【描述】

使能AIBNR数据流开关。

【语法】

td_s32 ss_mpi_aibnr_enable(td_s32 pipe);

【参数】

参数名称

描述

输入/输出

pipe

VI模块的PIPE号。

取值范围:[0, OT_VI_MAX_PHYS_PIPE_NUM),详见《MPP 媒体处理软件V6.0 开发参考》“视频输入”章节。

输入

【返回值】

返回值

描述

0

成功。

非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数据流开关。

【语法】

td_s32 ss_mpi_aibnr_disable(td_s32 pipe);

【参数】

参数名称

描述

输入/输出

pipe

VI模块的PIPE号。

取值范围:[0, OT_VI_MAX_PHYS_PIPE_NUM)。详见《MPP 媒体处理软件V6.0 开发参考》“视频输入”章节。

输入

【返回值】

返回值

描述

0

成功。

非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

【描述】

查询数据流运行状态。

【语法】

td_s32 ss_mpi_aibnr_query_status(td_s32 pipe, ot_aibnr_status *status);

【参数】

参数名称

描述

输入/输出

pipe

VI模块的PIPE号。

取值范围:[0, OT_VI_MAX_PHYS_PIPE_NUM)。详见《MPP 媒体处理软件V6.0 开发参考》“视频输入”章节。

输入

status

数据流运行状态信息结构体指针

输出

【返回值】

返回值

描述

0

成功。

非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的属性。

【语法】

td_s32 ss_mpi_aibnr_set_attr(td_s32 pipe, const ot_aibnr_attr *attr);

【参数】

参数名称

描述

输入/输出

pipe

VI模块的PIPE号,

取值范围:[0, OT_VI_MAX_PHYS_PIPE_NUM)。详见《MPP 媒体处理软件V6.0 开发参考》“视频输入”章节。

输入

attr

AIBNR属性结构体指针。

输入

【返回值】

返回值

描述

0

成功。

非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的属性。

【语法】

td_s32 ss_mpi_aibnr_get_attr(td_s32 pipe, ot_aibnr_attr *attr);

【参数】

参数名称

描述

输入/输出

pipe

VI模块的PIPE号,

取值范围:[0, OT_VI_MAX_PHYS_PIPE_NUM)。详见《MPP 媒体处理软件V6.0 开发参考》“视频输入”章节。

输入

attr

AIBNR属性结构体指针。

输出

【返回值】

返回值

描述

0

成功。

非0

失败,请参见错误码。

【需求】

  • 头文件:ss_mpi_aibnr.h
  • 库文件:libss_mpi_aibnr.a

【注意】

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

【举例】

无

【相关主题】

无

ss_mpi_aibnr_set_thread_attr

【描述】

设置AIBNR线程属性。

【语法】

td_s32 ss_mpi_aibnr_set_thread_attr(const ot_aiisp_thread_attr *thread_attr);

【参数】

参数名称

描述

输入/输出

thread_attr

AIBNR线程属性。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,请参见错误码。

【需求】

  • 头文件:ss_mpi_aibnr.h
  • 库文件:libss_mpi_aibnr.a

【注意】

不支持多进程调用。接口调用需要和VI、ISP所在的主进程保持同进程。

【举例】

无

【相关主题】

无

ss_mpi_aibnr_get_thread_attr

【描述】

获取AIBNR线程属性。

【语法】

td_s32 ss_mpi_aibnr_get_thread_attr(ot_aiisp_thread_attr *thread_attr);

【参数】

参数名称

描述

输入/输出

thread_attr

AIBNR线程属性。

输出

【返回值】

返回值

描述

0

成功。

非0

失败,请参见错误码。

【需求】

  • 头文件:ss_mpi_aibnr.h
  • 库文件:libss_mpi_aibnr.a

【注意】

不支持多进程调用。接口调用需要和VI、ISP所在的主进程保持同进程。

【举例】

无

【相关主题】

无

ss_mpi_aibnr_get_input_frame

【描述】

获取AIBNR处理前的输入帧数据。

【语法】

td_s32 ss_mpi_aibnr_get_input_frame(td_s32 pipe, ot_video_frame_info *frame, td_s32 milli_sec);

【参数】

参数名称

描述

输入/输出

pipe

VI模块的PIPE号。

取值范围:[0, OT_VI_MAX_PHYS_PIPE_NUM)。详见《MPP 媒体处理软件 V6.0 开发参考》“视频输入”章节。

输入

frame

帧的描述信息。具体描述请参见《MPP 媒体处理软件 V6.0 开发参考》“系统控制”章节。

输出

milli_sec

当milli_sec设为-1时,表示阻塞模式,程序一直等待,直到获取到图像才返回。如果milli_sec等于0时,表示非阻塞模式。如果milli_sec大于0时,表示超时等待模式,参数的单位是毫秒,指超时时间,在此时间内如果没有获取到图像,则超时返回。

输入

【返回值】

返回值

描述

0

成功。

非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处理前的输入帧数据。

【语法】

td_s32 ss_mpi_aibnr_release_input_frame(td_s32 pipe, ot_video_frame_info *frame);

【参数】

参数名称

描述

输入/输出

pipe

VI模块的PIPE号。

取值范围:[0, OT_VI_MAX_PHYS_PIPE_NUM)。详见《MPP 媒体处理软件 V6.0 开发参考》“视频输入”章节。

输入

frame

帧的描述信息。具体描述请参见《MPP 媒体处理软件 V6.0 开发参考》“系统控制”章节。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,请参见错误码。

【需求】

  • 头文件:ss_mpi_aibnr.h
  • 库文件:libss_mpi_aibnr.a

【注意】

  • 该接口需要与ss_mpi_aibnr_get_input_frame配合使用。
  • 获取到的图像数据需要调用该接口及时归还,并且要在关闭数据流之前归还,否则可能导致VB异常。

【举例】

无

【相关主题】

无

ss_mpi_aibnr_get_output_frame

【描述】

获取AIBNR处理后的输出帧数据。

【语法】

td_s32 ss_mpi_aibnr_get_output_frame(td_s32 pipe, ot_video_frame_info *frame, td_s32 milli_sec);

【参数】

参数名称

描述

输入/输出

pipe

VI模块的PIPE号。

取值范围:[0, OT_VI_MAX_PHYS_PIPE_NUM)。详见《MPP 媒体处理软件 V6.0 开发参考》“视频输入”章节。

输入

frame

帧的描述信息。具体描述请参见《MPP 媒体处理软件 V6.0 开发参考》“系统控制”章节。

输出

milli_sec

当milli_sec设为-1时,表示阻塞模式,程序一直等待,直到获取到图像才返回。如果milli_sec等于0时,表示非阻塞模式。如果milli_sec大于0时,表示超时等待模式,参数的单位是毫秒,指超时时间,在此时间内如果没有获取到图像,则超时返回。

输入

【返回值】

返回值

描述

0

成功。

非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处理后的输出帧数据。

【语法】

td_s32 ss_mpi_aibnr_release_output_frame(td_s32 pipe, ot_video_frame_info *frame);

【参数】

参数名称

描述

输入/输出

pipe

VI模块的PIPE号。

取值范围:[0, OT_VI_MAX_PHYS_PIPE_NUM)。详见《MPP 媒体处理软件 V6.0 开发参考》“视频输入”章节。

输入

frame

帧的描述信息。具体描述请参见《MPP 媒体处理软件 V6.0 开发参考》“系统控制”章节。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,请参见错误码。

【需求】

  • 头文件:ss_mpi_aibnr.h
  • 库文件:libss_mpi_aibnr.a

【注意】

  • 该接口需要与ss_mpi_aibnr_get_output_frame配合使用。
  • 获取到的图像数据需要调用该接口及时归还,并且要在关闭数据流之前归还,否则可能导致VB异常。

【举例】

无

【相关主题】

无

ss_mpi_aibnr_set_model_attr

【描述】

设置模型的属性。

【语法】

td_s32 ss_mpi_aibnr_set_model_attr(td_bool is_wdr_mode, const ot_aibnr_model_attr *attr);

【参数】

参数名称

描述

输入/输出

is_wdr_mode

表示设置线性还是wdr的模型属性。

输入

attr

模型属性的指针。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,请参见错误码。

【需求】

  • 头文件: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_query_model_list

ss_mpi_aibnr_get_model_attr

【描述】

获取模型的属性。

【语法】

td_s32 ss_mpi_aibnr_get_model_attr(td_bool is_wdr_mode, ot_aibnr_model_attr *attr);

【参数】

参数名称

描述

输入/输出

is_wdr_mode

表示获取线性还是WDR的模型属性。

输入

attr

模型属性的指针。

输出

【返回值】

返回值

描述

0

成功。

非0

失败,请参见错误码。

【需求】

  • 头文件:ss_mpi_aibnr.h
  • 库文件:libss_mpi_aibnr.a

【注意】

  • 调用该接口前必须先调用ss_mpi_aibnr_init初始化AIBNR模块。
  • 该接口不是必须调用,线性和wdr场景需要单独调用该接口配置模型属性,当第一个参数为FALSE,表示获取线性场景下的模型属性。
  • 该接口获取的默认值不一定是有效值,例如:系统只加载了线性模型,当调用该接口获取wdr场景的模型属性时,获取到的模型id为0,但id为0的wdr模型并未加载。

【举例】

无

【相关主题】

ss_mpi_aibnr_set_model_attr

ss_mpi_aibnr_query_model_list

ss_mpi_aibnr_query_model_list

【描述】

查询模型的列表。

【语法】

td_s32 ss_mpi_aibnr_query_model_list(ot_aibnr_model_list *list);

【参数】

参数名称

描述

输入/输出

list

已加载模型列表的指针。

输出

【返回值】

返回值

描述

0

成功。

非0

失败,请参见错误码。

【需求】

  • 头文件:ss_mpi_aibnr.h
  • 库文件:libss_mpi_aibnr.a

【注意】

  • 调用该接口前必须先调用ss_mpi_aibnr_init初始化AIBNR模块。
  • 该接口不是必须调用,获取的模型信息包含模型id和是否是wdr,不区分分辨率。
  • Hi3519DV500芯片,当同一个模型文件通过配置不同分辨率加载了多次时,模型num只会计算一次。
  • Hi3516CV610芯片,同一模型加载多次,模型num会累加。

【举例】

无

【相关主题】

ss_mpi_aibnr_set_model_attr

ss_mpi_aibnr_get_model_attr

AIDRC API参考

ss_mpi_aidrc_init

【描述】

初始化AIDRC模块。

【语法】

td_s32 ss_mpi_aidrc_init(td_void);

【参数】

无

【返回值】

返回值

描述

0

成功。

非0

失败,请参见错误码。

【需求】

  • 头文件:ss_mpi_aidrc.h
  • 库文件:libss_mpi_aidrc.a

【注意】

不支持多进程调用。接口调用需要和VI、ISP所在的主进程保持同进程。

【举例】

无

【相关主题】

无

ss_mpi_aidrc_exit

【描述】

去初始化AIDRC模块。

【语法】

td_void ss_mpi_aidrc_exit(td_void);

【参数】

无

【返回值】

返回值

描述

0

成功。

非0

失败,请参见错误码。

【需求】

  • 头文件:ss_mpi_aidrc.h
  • 库文件:libss_mpi_aidrc.a

【注意】

  • 不支持多进程调用。接口调用需要和VI、ISP所在的主进程保持同进程。
  • 调用此接口去初始化AIDRC模块前,需要关闭AIDRC数据流开关。

【举例】

无

【相关主题】

无

ss_mpi_aidrc_load_model

【描述】

加载AIDRC的模型文件。

【语法】

td_s32 ss_mpi_aidrc_load_model(const ot_aidrc_model *model, td_s32 *model_id);

【参数】

参数名称

描述

输入/输出

model

AIDRC模型文件指针。

输入

model_id

返回的模型文件ID指针。

输出

【返回值】

返回值

描述

0

成功。

非0

失败,请参见错误码。

【需求】

  • 头文件:ss_mpi_aidrc.h
  • 库文件:libss_mpi_aidrc.a

【注意】

  • 调用该接口前必须先调用 ss_mpi_aidrc_init初始化AIDRC模块。
  • 调用该接口前AIDRC数据流需要保持关闭状态。
  • 相同类型的模型文件,如果图像宽高相等时,不能重复加载。
  • 支持多个模型文件的加载,或者同一模型文件、不同分辨率多次加载。
  • 不支持多进程调用。接口调用需要和VI、ISP所在的主进程保持同进程。
  • 不支持在__attribute__((constructor))函数里调用。

【举例】

无

【相关主题】

无

ss_mpi_aidrc_unload_model

【描述】

卸载AIDRC的模型文件。

【语法】

td_s32 ss_mpi_aidrc_unload_model(td_s32 model_id);

【参数】

参数名称

描述

输入/输出

model_id

模型文件对应的ID。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,请参见错误码。

【需求】

  • 头文件:ss_mpi_aidrc.h
  • 库文件:libss_mpi_aidrc.a

【注意】

  • 应用程序退出前,需调用此接口释放已加载模型文件的内存资源,或者调用ss_mpi_aidrc_exit接口释放AIDRC的所有资源。
  • 不支持多进程调用。接口调用需要和VI、ISP所在的主进程保持同进程。
  • 调用此接口前需要关闭AIDRC数据流开关。
  • 离线模型在调用此接口前,需要保证加载模型时分配的内存没有被释放。

【举例】

无

【相关主题】

无

ss_mpi_aidrc_set_cfg

【描述】

设置AIDRC算法相关配置参数。

【语法】

td_s32 ss_mpi_aidrc_set_cfg(td_s32 pipe, const ot_aidrc_cfg *cfg)

【参数】

参数名称

描述

输入/输出

pipe

VI模块的PIPE号,

取值范围:[0, OT_VI_MAX_PIPE_NUM)。详见《MPP 媒体处理软件V6.0 开发参考》“视频输入”章节。

输入

cfg

AIDRC算法参数配置结构体指针。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,请参见错误码。

【需求】

  • 头文件:ss_mpi_aidrc.h
  • 库文件:libss_mpi_aidrc.a

【注意】

  • 调用该接口前必须先调用ss_mpi_aidrc_init初始化AIDRC模块。
  • 调用该接口时AIDRC数据流需要保持关闭状态。

【举例】

无

【相关主题】

无

ss_mpi_aidrc_get_cfg

【描述】

获取AIDRC算法相关配置参数。

【语法】

td_s32 ss_mpi_aidrc_get_cfg(td_s32 pipe, ot_aidrc_cfg *cfg);

【参数】

参数名称

描述

输入/输出

pipe

VI模块的PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)。详见《MPP 媒体处理软件V6.0 开发参考》“视频输入”章节。

输入

cfg

AIDRC算法参数配置结构体指针。

输出

【返回值】

返回值

描述

0

成功。

非0

失败,请参见错误码。

【需求】

  • 头文件:ss_mpi_aidrc.h
  • 库文件:libss_mpi_aidrc.a

【注意】

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

【举例】

无

【相关主题】

无

ss_mpi_aidrc_enable

【描述】

使能AIDRC数据流开关。

【语法】

td_s32 ss_mpi_aidrc_enable(td_s32 pipe);

【参数】

参数名称

描述

输入/输出

pipe

VI模块的PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM),详见《MPP 媒体处理软件V6.0 开发参考》“视频输入”章节。

输入

【返回值】

返回值

描述

0

成功。

非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数据流开关。

【语法】

td_s32 ss_mpi_aidrc_disable(td_s32 pipe);

【参数】

参数名称

描述

输入/输出

pipe

VI模块的PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)。详见《MPP 媒体处理软件V6.0 开发参考》“视频输入”章节。

输入

【返回值】

返回值

描述

0

成功。

非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

【描述】

查询数据流运行状态。

【语法】

td_s32 ss_mpi_aidrc_query_status(td_s32 pipe, ot_aidrc_status *status);

【参数】

参数名称

描述

输入/输出

pipe

VI模块的PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)。详见《MPP 媒体处理软件V6.0 开发参考》“视频输入”章节。

输入

status

数据流运行状态信息结构体指针

输出

【返回值】

返回值

描述

0

成功。

非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的属性。

【语法】

td_s32 ss_mpi_aidrc_set_attr(td_s32 pipe, const ot_aidrc_attr *attr);

【参数】

参数名称

描述

输入/输出

pipe

VI模块的PIPE号,

取值范围:[0, OT_VI_MAX_PIPE_NUM)。详见《MPP 媒体处理软件V6.0 开发参考》“视频输入”章节。

输入

attr

AIDRC属性结构体指针。

输入

【返回值】

返回值

描述

0

成功。

非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的属性。

【语法】

td_s32 ss_mpi_aidrc_get_attr(td_s32 pipe, ot_aidrc_attr *attr);

【参数】

参数名称

描述

输入/输出

pipe

VI模块的PIPE号,

取值范围:[0, OT_VI_MAX_PIPE_NUM)。详见《MPP 媒体处理软件V6.0 开发参考》“视频输入”章节。

输入

attr

AIDRC属性结构体指针。

输出

【返回值】

返回值

描述

0

成功。

非0

失败,请参见错误码。

【需求】

  • 头文件:ss_mpi_aidrc.h
  • 库文件:libss_mpi_aidrc.a

【注意】

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

【举例】

无

【相关主题】

无

ss_mpi_aidrc_set_smooth

【描述】

设置AIDRC的开关平滑过渡属性。在使能情况下关闭AIDRC数据流,会进行平滑关闭,导致切换耗时较长;在不使能情况下关闭AIDRC的数据流,会直接关闭AIDRC。

【语法】

td_s32 ss_mpi_aidrc_set_smooth(td_s32 pipe, const ot_aidrc_smooth *smooth);

【参数】

参数名称

描述

输入/输出

pipe

VI模块的PIPE号,

取值范围:[0, OT_VI_MAX_PIPE_NUM)。详见《MPP 媒体处理软件V6.0 开发参考》“视频输入”章节。

输入

smooth

AIDRC开关平滑过渡属性结构体指针。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,请参见错误码。

【需求】

  • 头文件:ss_mpi_aidrc.h
  • 库文件:libss_mpi_aidrc.a

【注意】

调用该接口前必须先调用ss_mpi_aidrc_init初始化AIDRC模块,如果没有调用该接口设置平滑属性,则默认会平滑切换。

【举例】

无

【相关主题】

无

ss_mpi_aidrc_get_smooth

【描述】

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

【语法】

td_s32 ss_mpi_aidrc_get_smooth(td_s32 pipe, ot_aidrc_smooth *smooth);

【参数】

参数名称

描述

输入/输出

pipe

VI模块的PIPE号,

取值范围:[0, OT_VI_MAX_PIPE_NUM)。详见《MPP 媒体处理软件V6.0 开发参考》“视频输入”章节。

输入

smooth

AIDRC开关平滑过渡属性结构体指针。

输出

【返回值】

返回值

描述

0

成功。

非0

失败,请参见错误码。

【需求】

  • 头文件:ss_mpi_aidrc.h
  • 库文件:libss_mpi_aidrc.a

【注意】

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

【举例】

无

【相关主题】

无

ss_mpi_aidrc_set_thread_attr

【描述】

设置AIDRC线程属性。

【语法】

td_s32 ss_mpi_aidrc_set_thread_attr(const ot_aiisp_thread_attr *thread_attr);

【参数】

参数名称

描述

输入/输出

thread_attr

AIDRC线程属性。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,请参见错误码。

【需求】

  • 头文件:ss_mpi_aidrc.h
  • 库文件:libss_mpi_aidrc.a

【注意】

不支持多进程调用。接口调用需要和VI、ISP所在的主进程保持同进程。

【举例】

无

【相关主题】

无

ss_mpi_aidrc_get_thread_attr

【描述】

获取AIDRC线程属性。

【语法】

td_s32 ss_mpi_aidrc_get_thread_attr(ot_aiisp_thread_attr *thread_attr);

【参数】

参数名称

描述

输入/输出

thread_attr

AIDRC线程属性。

输出

【返回值】

返回值

描述

0

成功。

非0

失败,请参见错误码。

【需求】

  • 头文件: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);

【参数】

参数名称

描述

输入/输出

pipe

VI模块的PIPE号。

取值范围:[0, OT_VI_MAX_PHYS_PIPE_NUM)。详见《MPP 媒体处理软件 V6.0 开发参考》“视频输入”章节。

输入

frame

帧的描述信息。具体描述请参见《MPP 媒体处理软件 V6.0 开发参考》“系统控制”章节。

输出

out_data

输出数据指针数据。

输出

out_data_num

输出数据指针数组长度。长度不能小于2

输出

milli_sec

当milli_sec设为-1时,表示阻塞模式,程序一直等待,直到获取到图像才返回。如果milli_sec等于0时,表示非阻塞模式。如果milli_sec大于0时,表示超时等待模式,参数的单位是毫秒,指超时时间,在此时间内如果没有获取到图像,则超时返回。

输入

【返回值】

返回值

描述

0

成功。

非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处理后的输出帧数据。

【语法】

td_s32 ss_mpi_aidrc_release_output_frame(td_s32 pipe, ot_video_frame_info *frame);

【参数】

参数名称

描述

输入/输出

pipe

VI模块的PIPE号。

取值范围:[0, OT_VI_MAX_PHYS_PIPE_NUM)。详见《MPP 媒体处理软件 V6.0 开发参考》“视频输入”章节。

输入

frame

帧的描述信息。具体描述请参见《MPP 媒体处理软件 V6.0 开发参考》“系统控制”章节。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,请参见错误码。

【需求】

  • 头文件:ss_mpi_aidrc.h
  • 库文件:libss_mpi_aidrc.a

【注意】

  • 该接口需要与ss_mpi_aidrc_get_output_frame配合使用。
  • 获取到的图像数据需要调用该接口及时归还,并且要在关闭数据流之前归还,否则可能导致VB异常。

【举例】

无

【相关主题】

无

AI3DNR API参考

ss_mpi_ai3dnr_init

【描述】

初始化AI3DNR模块。

【语法】

td_s32 ss_mpi_ai3dnr_init(td_void);

【参数】

无

【返回值】

返回值

描述

0

成功。

非0

失败,请参见错误码。

【需求】

  • 头文件:ss_mpi_ai3dnr.h
  • 库文件:libss_mpi_ai3dnr.a

【注意】

不支持多进程调用。接口调用需要和VI、ISP所在的主进程保持同进程。

【举例】

无

【相关主题】

无

ss_mpi_ai3dnr_exit

【描述】

去初始化AI3DNR模块。

【语法】

td_void ss_mpi_ai3dnr_exit(td_void);

【参数】

无

【返回值】

返回值

描述

0

成功。

非0

失败,请参见错误码。

【需求】

  • 头文件:ss_mpi_ai3dnr.h
  • 库文件:libss_mpi_ai3dnr.a

【注意】

  • 不支持多进程调用。接口调用需要和VI、ISP所在的主进程保持同进程。
  • 调用此接口去初始化AI3DNR模块前,需要关闭AI3DNR数据流开关。

【举例】

无

【相关主题】

无

ss_mpi_ai3dnr_load_model

【描述】

加载AI3DNR的模型文件。

【语法】

td_s32 ss_mpi_ai3dnr_load_model(const ot_ai3dnr_model *model, td_s32 * model_id);

【参数】

参数名称

描述

输入/输出

model

AI3DNR模型文件指针。

输入

model_id

返回的模型文件ID指针。

输出

【返回值】

返回值

描述

0

成功。

非0

失败,请参见错误码。

【需求】

  • 头文件:ss_mpi_ai3dnr.h
  • 库文件:libss_mpi_ai3dnr.a

【注意】

  • 调用该接口前必须先调用ss_mpi_ai3dnr_init初始化AI3DNR模块。
  • 调用该接口前AI3DNR数据流需要保持关闭状态。
  • 相同类型的模型文件,如果图像宽高相等时,不能重复加载。
  • 支持多个模型文件的加载,或者同一模型文件、不同分辨率多次加载。
  • 不支持多进程调用。接口调用需要和VI、ISP所在的主进程保持同进程。
  • 不支持在__attribute__((constructor))函数里调用。

【举例】

无

【相关主题】

无

ss_mpi_ai3dnr_unload_model

【描述】

卸载AI3DNR的模型文件。

【语法】

td_s32 ss_mpi_ai3dnr_unload_model(td_s32 model_id);

【参数】

参数名称

描述

输入/输出

model_id

模型文件对应的ID。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,请参见错误码。

【需求】

  • 头文件:ss_mpi_ai3dnr.h
  • 库文件:libss_mpi_ai3dnr.a

【注意】

  • 应用程序退出前,需调用此接口释放已加载模型文件的内存资源,或者调用ss_mpi_ai3dnr_exit接口释放AI3DNR的所有资源。
  • 不支持多进程调用。接口调用需要和VI、ISP所在的主进程保持同进程。
  • 调用此接口前需要关闭AI3DNR数据流开关。
  • 离线模型在调用此接口前,需要保证加载模型时分配的内存没有被释放。

【举例】

无

【相关主题】

无

ss_mpi_ai3dnr_set_cfg

【描述】

设置AI3DNR算法相关配置参数。

【语法】

td_s32 ss_mpi_ai3dnr_set_cfg(td_s32 pipe, const ot_ai3dnr_cfg *cfg)

【参数】

参数名称

描述

输入/输出

pipe

VI模块的PIPE号,

取值范围:[0, OT_VI_MAX_PIPE_NUM)。详见《MPP 媒体处理软件V6.0 开发参考》“视频输入”章节。

输入

cfg

AI3DNR算法参数配置结构体指针。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,请参见错误码。

【需求】

  • 头文件:ss_mpi_ai3dnr.h
  • 库文件:libss_mpi_ai3dnr.a

【注意】

  • 调用该接口前必须先调用ss_mpi_ai3dnr_init初始化AI3DNR模块。
  • 调用该接口时AI3DNR数据流需要保持关闭状态。

【举例】

无

【相关主题】

无

ss_mpi_ai3dnr_get_cfg

【描述】

获取AI3DNR算法相关配置参数。

【语法】

td_s32 ss_mpi_ai3dnr_get_cfg(td_s32 pipe, ot_ai3dnr_cfg *cfg);

【参数】

参数名称

描述

输入/输出

pipe

VI模块的PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)。详见《MPP 媒体处理软件V6.0 开发参考》“视频输入”章节。

输入

cfg

AI3DNR算法参数配置结构体指针。

输出

【返回值】

返回值

描述

0

成功。

非0

失败,请参见错误码。

【需求】

  • 头文件:ss_mpi_ai3dnr.h
  • 库文件:libss_mpi_ai3dnr.a

【注意】

调用该接口前必须先调用ss_mpi_ai3dnr_init初始化AI3DNR模块。

【举例】

无

【相关主题】

无

ss_mpi_ai3dnr_enable

【描述】

使能AI3DNR数据流开关。

【语法】

td_s32 ss_mpi_ai3dnr_enable(td_s32 pipe);

【参数】

参数名称

描述

输入/输出

pipe

VI模块的PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM),详见《MPP 媒体处理软件V6.0 开发参考》“视频输入”章节。

输入

【返回值】

返回值

描述

0

成功。

非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数据流开关。

【语法】

td_s32 ss_mpi_ai3dnr_disable(td_s32 pipe);

【参数】

参数名称

描述

输入/输出

pipe

VI模块的PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)。详见《MPP 媒体处理软件V6.0 开发参考》“视频输入”章节。

输入

【返回值】

返回值

描述

0

成功。

非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

【描述】

查询数据流运行状态。

【语法】

td_s32 ss_mpi_ai3dnr_query_status(td_s32 pipe, ot_ai3dnr_status *status);

【参数】

参数名称

描述

输入/输出

pipe

VI模块的PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)。详见《MPP 媒体处理软件V6.0 开发参考》“视频输入”章节。

输入

status

数据流运行状态信息结构体指针

输出

【返回值】

返回值

描述

0

成功。

非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的属性。

【语法】

td_s32 ss_mpi_ai3dnr_set_attr(td_s32 pipe, const ot_ai3dnr_attr *attr);

【参数】

参数名称

描述

输入/输出

pipe

VI模块的PIPE号,

取值范围:[0, OT_VI_MAX_PIPE_NUM)。详见《MPP 媒体处理软件V6.0 开发参考》“视频输入”章节。

输入

attr

AI3DNR属性结构体指针。

输入

【返回值】

返回值

描述

0

成功。

非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的属性。

【语法】

td_s32 ss_mpi_ai3dnr_get_attr(td_s32 pipe, ot_ai3dnr_attr *attr);

【参数】

参数名称

描述

输入/输出

pipe

VI模块的PIPE号,

取值范围:[0, OT_VI_MAX_PIPE_NUM)。详见《MPP 媒体处理软件V6.0 开发参考》“视频输入”章节。

输入

attr

AI3DNR属性结构体指针。

输出

【返回值】

返回值

描述

0

成功。

非0

失败,请参见错误码。

【需求】

  • 头文件:ss_mpi_ai3dnr.h
  • 库文件:libss_mpi_ai3dnr.a

【注意】

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

【举例】

无

【相关主题】

无

ss_mpi_ai3dnr_set_smooth

【描述】

设置AI3DNR的开关平滑过渡属性。在使能情况下关闭AI3DNR数据流,会进行平滑关闭,导致切换耗时较长;在不使能情况下关闭AI3DNR的数据流,会直接关闭AI3DNR。

【语法】

td_s32 ss_mpi_ai3dnr_set_smooth(td_s32 pipe, const ot_ai3dnr_smooth *smooth);

【参数】

参数名称

描述

输入/输出

pipe

VI模块的PIPE号,

取值范围:[0, OT_VI_MAX_PIPE_NUM)。详见《MPP 媒体处理软件V6.0 开发参考》“视频输入”章节。

输入

smooth

AI3DNR开关平滑过渡属性结构体指针。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,请参见错误码。

【需求】

  • 头文件:ss_mpi_ai3dnr.h
  • 库文件:libss_mpi_ai3dnr.a

【注意】

  • 调用该接口前必须先调用ss_mpi_ai3dnr_init初始化AI3DNR模块。
  • 如果没有调用该接口设置平滑属性,则默认会平滑切换。
  • 当前版本暂不支持设置平滑切换

【举例】

无

【相关主题】

无

ss_mpi_ai3dnr_get_smooth

【描述】

获取AI3DNR的开关平滑过渡属性。

【语法】

td_s32 ss_mpi_ai3dnr_get_smooth(td_s32 pipe, ot_ai3dnr_smooth *smooth);

【参数】

参数名称

描述

输入/输出

pipe

VI模块的PIPE号,

取值范围:[0, OT_VI_MAX_PIPE_NUM)。详见《MPP 媒体处理软件V6.0 开发参考》“视频输入”章节。

输入

smooth

AI3DNR开关平滑过渡属性结构体指针。

输出

【返回值】

返回值

描述

0

成功。

非0

失败,请参见错误码。

【需求】

  • 头文件:ss_mpi_ai3dnr.h
  • 库文件:libss_mpi_ai3dnr.a

【注意】

调用该接口前必须先调用ss_mpi_ai3dnr_init初始化AI3DNR模块。

【举例】

无

【相关主题】

无

ss_mpi_ai3dnr_set_thread_attr

【描述】

设置AI3DNR线程属性。

【语法】

td_s32 ss_mpi_ai3dnr_set_thread_attr(const ot_aiisp_thread_attr *thread_attr);

【参数】

参数名称

描述

输入/输出

thread_attr

AI3DNR线程属性。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,请参见错误码。

【需求】

  • 头文件:ss_mpi_ai3dnr.h
  • 库文件:libss_mpi_ai3dnr.a

【注意】

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

【举例】

无

【相关主题】

无

ss_mpi_ai3dnr_get_thread_attr

【描述】

获取AI3DNR线程属性。

【语法】

td_s32 ss_mpi_ai3dnr_get_thread_attr(ot_aiisp_thread_attr *thread_attr);

【参数】

参数名称

描述

输入/输出

thread_attr

AI3DNR线程属性。

输出

【返回值】

返回值

描述

0

成功。

非0

失败,请参见错误码。

【需求】

  • 头文件:ss_mpi_ai3dnr.h
  • 库文件:libss_mpi_ai3dnr.a

【注意】

无

【举例】

无

【相关主题】

无

ss_mpi_ai3dnr_get_input_frame

【描述】

获取AI3DNR处理前的输入帧数据。

【语法】

td_s32 ss_mpi_ai3dnr_get_input_frame(td_s32 pipe, ot_video_frame_info *frame, td_s32 milli_sec);

【参数】

参数名称

描述

输入/输出

pipe

VI模块的PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)。详见《MPP 媒体处理软件 V6.0 开发参考》“视频输入”章节。

输入

frame

帧的描述信息。具体描述请参见《MPP 媒体处理软件 V6.0 开发参考》“系统控制”章节。

输出

milli_sec

当milli_sec设为-1时,表示阻塞模式,程序一直等待,直到获取到图像才返回。如果milli_sec等于0时,表示非阻塞模式。如果milli_sec大于0时,表示超时等待模式,参数的单位是毫秒,指超时时间,在此时间内如果没有获取到图像,则超时返回。

输入

【返回值】

返回值

描述

0

成功。

非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处理前的输入帧数据。

【语法】

td_s32 ss_mpi_ai3dnr_release_input_frame(td_s32 pipe, ot_video_frame_info *frame);

【参数】

参数名称

描述

输入/输出

pipe

VI模块的PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)。详见《MPP 媒体处理软件 V6.0 开发参考》“视频输入”章节。

输入

frame

帧的描述信息。具体描述请参见《MPP 媒体处理软件 V6.0 开发参考》“系统控制”章节。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,请参见错误码。

【需求】

  • 头文件:ss_mpi_ai3dnr.h
  • 库文件:libss_mpi_ai3dnr.a

【注意】

  • 该接口需要与ss_mpi_ai3dnr_get_input_frame配合使用。
  • 获取到的图像数据需要调用该接口及时归还,并且要在关闭数据流之前归还,否则可能导致VB异常。

【举例】

无

【相关主题】

无

ss_mpi_ai3dnr_get_output_frame

【描述】

获取AI3DNR处理后的输出帧数据。

【语法】

td_s32 ss_mpi_ai3dnr_get_output_frame(td_s32 pipe, ot_video_frame_info *frame, td_s32 milli_sec);

【参数】

参数名称

描述

输入/输出

pipe

VI模块的PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)。详见《MPP 媒体处理软件 V6.0 开发参考》“视频输入”章节。

输入

frame

帧的描述信息。具体描述请参见《MPP 媒体处理软件 V6.0 开发参考》“系统控制”章节。

输出

milli_sec

当milli_sec设为-1时,表示阻塞模式,程序一直等待,直到获取到图像才返回。如果milli_sec等于0时,表示非阻塞模式。如果milli_sec大于0时,表示超时等待模式,参数的单位是毫秒,指超时时间,在此时间内如果没有获取到图像,则超时返回。

输入

【返回值】

返回值

描述

0

成功。

非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处理后的输出帧数据。

【语法】

td_s32 ss_mpi_ai3dnr_release_output_frame(td_s32 pipe, ot_video_frame_info *frame);

【参数】

参数名称

描述

输入/输出

pipe

VI模块的PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)。详见《MPP 媒体处理软件 V6.0 开发参考》“视频输入”章节。

输入

frame

帧的描述信息。具体描述请参见《MPP 媒体处理软件 V6.0 开发参考》“系统控制”章节。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,请参见错误码。

【需求】

  • 头文件:ss_mpi_ai3dnr.h
  • 库文件:libss_mpi_ai3dnr.a

【注意】

  • 该接口需要与ss_mpi_ai3dnr_get_output_frame配合使用。
  • 获取到的图像数据需要调用该接口及时归还,并且要在关闭数据流之前归还,否则可能导致VB异常。

【举例】

无

【相关主题】

无

数据类型

AIISP各个算法公共的数据类型定义如下:

AIBNR模块相关数据类型定义如下:

AIDRC模块相关数据类型定义如下:

AI3DNR模块相关数据类型定义如下:

公共数据类型

OT_AIISP_MAX_MODEL_NUM

【说明】

定义模型文件最大支持加载数。

【定义】

#define OT_AIISP_MAX_MODEL_NUM  16

【注意事项】

无

【相关数据类型及接口】

无

OT_AIISP_AUTO_ISO_NUM

【说明】

定义根据ISO自动调节的数目。

【定义】

#define OT_AIISP_AUTO_ISO_NUM      16

【注意事项】

无

【相关数据类型及接口】

无

OT_AIISP_MAX_NAME_LEN

【说明】

定义字符串名称最大长度。

【定义】

#define OT_AIISP_MAX_NAME_LEN 32

【注意事项】

无

【相关数据类型及接口】

无

ot_aiisp_mem_info

【说明】

模型文件内存信息。

【定义】

typedef struct {
    td_phys_addr_t phys_addr;
    td_void *virt_addr;
    td_u32  size;
} ot_aiisp_mem_info;

【成员】

成员名称

描述

phys_addr

模型文件的内存物理地址。

td_phys_addr_t详细请参考《MPP 媒体处理软件 V6.0 开发参考》“系统控制”章节。

virt_addr

模型文件的内存虚拟地址。

size

模型文件的内存大小。

【注意事项】

无

【相关数据类型及接口】

ot_aiisp_model

ot_aiisp_model

【说明】

模型文件信息。

【定义】

typedef struct {
    td_bool preempted_en;
    ot_aiisp_mem_info mem_info;
    ot_size image_size;
} ot_aiisp_model;

【成员】

成员名称

描述

preempted_en

是否允许AIISP推理过程中被打断抢占

mem_info

模型文件内存信息。

image_size

模型文件所支持的图像分辨率。

【注意事项】

  • 用户需要保证内存中所存储的模型文件信息的完整性和正确性,否则可能导致运行异常。
  • 模型文件加载时需指定所支持的图像分辨率。
  • 支持的图像分辨率宽高都必须是4的整数倍。
  • 图像分辨率宽高最小支持120x88,最大支持4096x4096。
  • 允许AIISP推理过程中被打断抢占,可能会导致AIISP的性能下降。
  • Hi3516CV610不支持在线编译,preempted_en设置无效。

【相关数据类型及接口】

无

ot_aiisp_thread_attr

【说明】

定义AIISP线程属性。

【定义】

typedef struct {
    td_s32 cpu_id;
} ot_aiisp_thread_attr;

【成员】

成员名称

描述

cpu_id

绑定的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_AIISP_TYPE_AIBNR

AIBNR算法

OT_AIISP_TYPE_AIDRC

AIDRC算法

OT_AIISP_TYPE_AIDM

AIDM算法

OT_AIISP_TYPE_AI3DNR

AI3DNR算法

【注意事项】

无

【相关数据类型及接口】

无

ot_aidm_pool

【说明】

定义AIDM算法vb池信息。

【定义】

typedef struct {
    ot_vb_pool in_vb_pool;
    ot_vb_pool out_vb_pool;
} ot_aidm_pool;

【成员】

成员名称

描述

in_vb_pool

输入vb池句柄

out_vb_pool

输出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;

【成员】

成员名称

描述

aiisp_type

aiisp算法类型

aibnr_pool

aibnr的vb池

aidrc_pool

aidrc的vb池

aidm_pool

aidm的vb池

ai3dnr_pool

ai3dnr的vb池

【注意事项】

无

【相关数据类型及接口】

无

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;

【成员】

成员名称

描述

model

AIBNR模型文件内存和分辨率信息。

is_wdr_mode

模型文件是否支持WDR模式,否则支持线性模式。

ref_mode

模型文件的参考模式。

nlc_en

是否把一致性校正功能编译进模型中。

【注意事项】

  • 无参考帧模式仅支持配置为线性。
  • 加载多个模型时,如果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表的长度。

【定义】

#define OT_AIBNR_NLC_LUT_NUM 32

【注意事项】

无

【相关数据类型及接口】

无

OT_AIBNR_LUT_LENGTH

【说明】

定义AIBNR LUT表长表的长度。

【定义】

#define OT_AIBNR_LUT_LENGTH  16

【注意事项】

无

【相关数据类型及接口】

无

OT_AIBNR_LUT_LENGTH_S

【说明】

定义AIBNR LUT表短表的长度。

【定义】

#define OT_AIBNR_LUT_LENGTH_S  8

【注意事项】

无

【相关数据类型及接口】

无

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;

【成员】

成员名称

描述

enable

nlc功能是否使能,默认值为0

step_bit

校正表的输入步长,取值范围:[0,4],默认值为0。该值决定了r_fact和b_fact数组中相邻两个值对应的像素值的间隔。取值为0表示r_fact和b_fact数组中的比例对应的像素值差值为2^0,取值为4时表示像素值差值为2^4。

r_fact

r通道校正比例表,取值范围:[500,2000],默认值为1000。除以1000后的值为实际比例。表中的值,对应的各个像素的增益,在应用到对应的像素相乘以后的曲线需要单调递增或者递减。

b_fact

b通道校正比例表,取值范围:[500,2000],默认值为1000。除以1000后的值为实际比例。表中的值,对应的各个像素的增益,在应用到对应的像素相乘以后的曲线需要单调递增或者递减。

【注意事项】

  • 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;

【成员】

成员名称

描述

load_ref_en

使用Hi3516CV610的pro模型时,是否重新加载参考帧。

等于0:不会重新加载参考帧,收敛速度快,但有可能导致画面残影;

等于1:重新加载参考帧,收敛速度慢,不会导致画面残影。

取值范围: [0, 1],默认值为1。

motion_gain

仅支持Hi3516CV610的pro模型。

运动检测增益,数值越大运动检测越敏感。取值范围: [0, 31],默认值为12。值越小,运动主体越模糊,拖尾越明显,背景越模糊;值越大,运动越实,背景越清晰。

motion_thr

支持Hi3516CV610的pro模型。

运动阈值,数值越大判断为运动的区域越小。取值范围: [0, 255],默认值为128。关闭3DNR时,运动阈值越大,画面噪声越安静,拖尾越明显;值越小则噪声越躁动,拖尾越不明显。

motion_noise_control

支持Hi3516CV610的pro模型。

控制运动和静止融合区域的噪声,数值越大对噪声的抑制越强。取值范围: [0, 255],默认值为128。

tf_speed_fine

支持Hi3516CV610的pro模型。

精细收敛系数,数值越大收敛越快。数值过大,影响运动后有残影,数值过小,影响噪声大。取值范围: [0, 255],默认值为85。

tf_speed_coarse

支持Hi3516CV610的pro模型。

粗调收敛系数,数值越大收敛越快。数值过大,影响运动后有残影,数值过小,影响噪声大。取值范围: [0, 255],默认值为77。

【注意事项】

  • 仅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;

【成员】

成员名称

描述

sfs

整体画面的空域去噪强度。数值越大,去噪越强。

取值范围: [0, 31]

tfs

时域去噪强度。数值越大,时域去噪越强。此版本暂不支持此参数的效果调节。

取值范围: [0, 31]

【注意事项】

参数调节请参考《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;

【成员】

成员名称

描述

sfs

整体画面的空域去噪强度。数值越大,去噪越强。此参数建议值为31,如果数值过小,在低iso(iso12800以下)场景的暗区有一定概率出现竖线pattern。

取值范围:[0, 31],默认值为31。

tfs

时域去噪强度,数值越大时域去噪能力越强。数值过大,影响运动后有残影,数值过小,影响全局噪声大。仅Hi3516CV610的pro模型支持。

取值范围:[0, 255],默认值为204。

bright_denoise_strength

主要对亮区有影响的AIBNR空域去噪强度控制参数。值越大,亮区去噪强度越强,过大会导致画面变糊。值越小,亮区去噪强度越弱,可以放出更多的细节,但容易引起时域跳动。此参数建议值为128,如果数值过小,在低iso(iso12800以下)场景的暗区有一定概率出现竖线pattern。

取值范围:[0, 255],默认值为128。

dark_denoise_strength

主要对暗区有影响的AIBNR空域去噪强度控制参数。值越大,暗区去噪强度越强,过大会导致画面变糊。值越小,暗区去噪强度越弱,可以放出更多的细节,但容易引起时域跳动。此参数建议值为128,如果数值过小,在低iso(iso12800以下)场景的暗区有一定概率出现竖线pattern。

取值范围:[0, 255],默认值为128。

nlc

一致性校正功能的参数

tnr

时域参数。仅Hi3516CV610的pro模型支持。

【注意事项】

  • 若使用Hi3516CV610的pro模型,sfs 主要影响运动区域,bright_denoise_strength 主要影响运动区域的亮区,dark_denoise_strength 主要影响运动区域的暗区。
  • Hi3516CV610不支持一致性校正功能。

【相关数据类型及接口】

ot_aibnr_attr

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;

【成员】

成员名称

描述

enable

图像效果使能开关,使能算法后值为TD_TRUE。

bnr_bypass

BNR Bypass开关,默认值为TD_FALSE。详细请参考《ISP图像调优指南》文档AIBNR章节中AIBNR与BNR切换。

blend

normal模式blend开关,Hi3519DV500默认值为TD_TRUE,Hi3516CV610默认值为TD_FALSE。

input_depth

Dump输入队列深度,取值范围: [0, 8],默认值为0。

output_depth

Dump输出队列深度,取值范围: [0, 8],默认值为0。

op_type

AIBNR选择模式,默认值为0。详细请参考《MPP 媒体处理软件 V6.0 开发参考》“系统控制”章节。

manual_attr

AIBNR手动模式参数。

auto_attr

AIBNR自动模式的标准参数。

ot_aibnr_auto_attr参数此版本暂不支持此参数的效果调节且配置无效。

【注意事项】

  • 本版本暂只支持手动模式参数,不支持自动模式参数配置。
  • 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;

【成员】

成员名称

描述

OT_AIBNR_REF_MODE_NORM

AIBNR参考帧普通模式,图像处理需要参考帧。默认为此模式。

OT_AIBNR_REF_MODE_NONE

AIBNR无参考帧模式,图像处理无需参考帧。

【注意事项】

如果是拍照场景,需选用AIBNR无参考帧模式;当前版本只支持参考帧普通模式。

【相关数据类型及接口】

ot_aibnr_cfg

ot_aibnr_cfg

【说明】

定义AIBNR算法配置参数。

【定义】

typedef struct {
    ot_aibnr_ref_mode ref_mode;
} ot_aibnr_cfg;

【成员】

成员名称

描述

ref_mode

AIBNR参考帧模式,默认值为OT_AIBNR_REF_MODE_NORM

【注意事项】

无

【相关数据类型及接口】

无

ot_aibnr_pool

【说明】

定义AIBNR算法vb池信息。

【定义】

typedef struct {
    ot_vb_pool vb_pool;
} ot_aibnr_pool;

【成员】

成员名称

描述

vb_pool

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;

【成员】

成员名称

描述

op_type

模式类型,默认值为OT_OP_MODE_AUTO。

OT_OP_MODE_MANUAL:手动模式

OT_OP_MODE_AUTO:自动模式

manual_id

手动模式的模型id,当op_type=OT_OP_MODE_MANUAL时,该成员有效。

有效值:[0,OT_AIISP_MAX_MODEL_NUM-1],默认值为0。

auto_id[OT_AIISP_AUTO_ISO_NUM]

自动模式的模型id数组,当op_type=OT_OP_MODE_AUTO时,该成员有效。

有效值:[0,OT_AIISP_MAX_MODEL_NUM-1],默认值为0。

【注意事项】

  • 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默认值覆盖。

【相关数据类型及接口】

ss_mpi_aibnr_set_model_attr

ss_mpi_aibnr_get_model_attr

ot_aibnr_model_info

【说明】

定义AIBNR已加载的单个模型信息。

【定义】

typedef struct {
    td_u32 id;
    td_bool is_wdr_mode;
} ot_aibnr_model_info;

【成员】

成员名称

描述

id

模型id

is_wdr_mode

表示设置线性还是wdr的模型属性。

【注意事项】

模型信息包含模型id和是否是wdr,不区分分辨率。

【相关数据类型及接口】

ss_mpi_aibnr_query_model_list

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

模型个数

info

表示已加载模型的详细信息,数组下标的有效范围为[0, num-1]。

【注意事项】

  • 当num=0,info的内容无效。
  • 获取的模型信息包含模型id和是否是wdr,不区分分辨率。
  • Hi3519DV500芯片,当同一个模型文件通过配置不同分辨率加载了多次时,模型num只会计算一次。
  • Hi3516CV610芯片,同一模型加载多次,模型num会累加。

【相关数据类型及接口】

ss_mpi_aibnr_query_model_list

ot_aibnr_status

【说明】

定义AIBNR数据流运行状态。

【定义】

typedef struct {
    td_bool enable;
} ot_aibnr_status;

【成员】

成员名称

描述

enable

数据流运行状态

【注意事项】

无

【相关数据类型及接口】

ss_mpi_aibnr_query_status

AIDRC数据类型

OT_AIDRC_LMIX_NODE_NUM

【说明】

AIDRC Local Mixing(细节增强)LUT节点个数。

【定义】

#define OT_AIDRC_LMIX_NODE_NUM          33

【注意事项】

无。

【相关数据类型及接口】

ot_aidrc_blend

ot_aidrc_model

【说明】

AIDRC模型文件信息。

【定义】

typedef struct {
    ot_aiisp_model model;
    ot_aidrc_mode mode;
} ot_aidrc_model;

【成员】

成员名称

描述

model

AIDRC模型文件内存和分辨率信息。

mode

模型文件支持的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;

【成员】

成员名称

描述

tone_mapping_wgt_x

CurveX融合权重。值越大,越倾向CurveX的效果;仅在OT_AIDRC_MODE_ADVANCED模式下生效,此版本暂不支持该模式。取值范围:[0x0, 0x80],默认值为0。

detail_adjust_coef_x

FilterX细节微调系数,值越大,整体细节越强。取值范围:[0x0, 0xF],默认值为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}

blend_luma_max

Filter和FilterX基于亮度的融合权重的最大值(全局)。取值范围:[0x0, 0xFF],默认值为200,融合权重0xFF代表完全选择Filter,0x0代表完全选择FilterX,下同。

blend_luma_bright_min

Filter和FilterX基于亮度的融合权重的最小值(亮区)。取值范围:[0x0, 0xFF],默认值为0。

blend_luma_bright_threshold

Filter和FilterX基于亮度的融合权重的自适应阈值(亮区)。取值范围:[0x0, 0xFF],默认值为40。

blend_luma_dark_min

Filter和FilterX基于亮度的融合权重的最小值(暗区)。取值范围:[0x0, 0xFF],默认值为0。

blend_luma_dark_threshold

Filter和FilterX基于亮度的融合权重的自适应阈值(暗区)。取值范围:[0x0, 0xFF],默认值为60。

blend_detail_max

Filter和FilterX基于细节的融合权重的最大值(全局)。取值范围:[0x0, 0xFF],默认值为200。

blend_detail_bright_min

Filter和FilterX基于细节的融合权重的最小值(亮区)。取值范围:[0x0, 0xFF],默认值为0。

blend_detail_bright_threshold

Filter和FilterX基于细节的融合权重的自适应阈值(亮区)。取值范围:[0x0, 0xFF],默认值为20。

blend_detail_dark_min

Filter和FilterX基于细节的融合权重的最小值(暗区)。取值范围:[0x0, 0xFF],默认值为0。

blend_detail_dark_threshold

Filter和FilterX基于细节的融合权重的自适应阈值(暗区)。取值范围:[0x0, 0xFF],默认值为20。

detail_adjust_coef_blend

Filter和FilterX融合区的FilterX细节微调系数。取值范围:[0x0, 0xF],默认值为0。

【注意事项】

无

【相关数据类型及接口】

ot_aidrc_param

ot_aidrc_param

【说明】

定义AIDRC参数。

【定义】

typedef struct {
    td_u32 strength;
    td_u32 threshold;
    ot_aidrc_blend blend;;
} ot_aidrc_param;

【成员】

成员名称

描述

strength

滤波强度,取值范围: [0, 7],默认值为3。

threshold

噪声阈值,取值范围: [0, 7],默认值为0。

blend

融合参数。

【注意事项】

无

【相关数据类型及接口】

ot_aidrc_attr

ot_aidrc_attr

【说明】

定义AIDRC属性。

【定义】

typedef struct {
    td_bool enable;
    td_u32 input_depth;
    td_u32 output_depth;
    ot_aidrc_param param;
} ot_aidrc_attr;

【成员】

成员名称

描述

enable

图像效果使能开关,使能算法后值为TD_TRUE。

input_depth

Dump输入队列深度,当前版本暂未使用。

output_depth

Dump输出队列深度,取值范围: [0, 8],默认值为0。

param

AIDRC算法参数。

【注意事项】

无

【相关数据类型及接口】

无

ot_aidrc_cfg

【说明】

定义AIDRC算法配置参数。

【定义】

typedef struct {
    ot_aidrc_mode mode;
} ot_aidrc_cfg;

【成员】

成员名称

描述

mode

AIDRC模式,默认值为OT_AIDRC_MODE_NORMAL。

【注意事项】

无

【相关数据类型及接口】

无

ot_aidrc_mode

【说明】

定义AIDRC模式。

【定义】

typedef enum {
    OT_AIDRC_MODE_NORMAL = 0x0,
    OT_AIDRC_MODE_ADVANCED,
    OT_AIDRC_MODE_BUTT
} ot_aidrc_mode;

【成员】

成员名称

描述

OT_AIDRC_MODE_NORMAL

AIDRC NORMAL模式

OT_AIDRC_MODE_ADVANCED

AIDRC_ADVANCED模式,此版本暂不支持。

【注意事项】

无

【相关数据类型及接口】

无

ot_aidrc_smooth

【说明】

定义AIDRC算法平滑切换参数。

【定义】

typedef struct {
   td_bool enable;
} ot_aidrc_smooth;

【成员】

成员名称

描述

enable

是否使能平滑切换,默认值为TD_TRUE。

【注意事项】

如果不配置平滑切换参数,默认会平滑切换。

【相关数据类型及接口】

无

ot_aidrc_pool

【说明】

定义AIDRC算法vb池信息。

【定义】

typedef struct {
    ot_vb_pool in_vb_pool;
    ot_vb_pool out_vb_pool;
} ot_aidrc_pool;

【成员】

成员名称

描述

in_vb_pool

输入vb池句柄

out_vb_pool

输出vb池句柄

【注意事项】

无

【相关数据类型及接口】

无

ot_aidrc_status

【说明】

定义AIDRC数据流运行状态。

【定义】

typedef struct {
    td_bool enable;
} ot_aidrc_status;

【成员】

成员名称

描述

enable

数据流运行状态

【注意事项】

无

【相关数据类型及接口】

ss_mpi_aidrc_query_status

AI3DNR数据类型

OT_AI3DNR_GAMMA_LUT_NUM

【说明】

定义AI3DNR的gamma表的大小。

【定义】

#define OT_AI3DNR_GAMMA_LUT_NUM  16

【注意事项】

无

【相关数据类型及接口】

无

OT_AI3DNR_BAYERNR_DENOISE_Y_LUT_NUM

【说明】

定义AI3DNR的y分量去噪强度表的大小。

【定义】

#define OT_AI3DNR_BAYERNR_DENOISE_Y_LUT_NUM  16

【注意事项】

无

【相关数据类型及接口】

无

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;

【成员】

成员名称

描述

OT_AI3DNR_NET_TYPE_Y

AI3DNR Y网络类型,表示对Y数据进行处理

OT_AI3DNR_NET_TYPE_UV

AI3DNR UV网络类型,表示对UV数据进行处理

OT_AI3DNR_NET_TYPE_YUV

AI3DNR YUV网络类型,表示对YUV数据进行处理

【注意事项】

AI3DNR Y、YUV网络类型,当前版本不支持。

【相关数据类型及接口】

无

ot_ai3dnr_model

【说明】

AI3DNR模型文件信息。

【定义】

typedef struct {
    ot_aiisp_model model;
    ot_ai3dnr_net_type net_type;
} ot_ai3dnr_model;

【成员】

成员名称

描述

model

AI3DNR模型文件内存和分辨率信息。

net_type

模型文件支持的网络模式。

OT_AI3DNR_NET_TYPE_Y: 只对Y进行处理

OT_AI3DNR_NET_TYPE_UV:只对UV进行处理

OT_AI3DNR_NET_TYPE_YUV:对YUV进行处理

【注意事项】

只支持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;

【成员】

成员名称

描述

denoise_fg

前景去噪强度,用于Y或YUV网络,范围:[0, 31],默认值为0。

denoise_bg

背景去噪强度,用于Y或YUV网络,范围:[0, 31],默认值为0。

depattern_fg

前景去pattern强度,用于Y或YUV网络,范围:[0, 31],默认值为0。

depattern_bg

背景去pattern强度,用于Y或YUV网络,范围:[0, 31],默认值为0。

sharp_str

sharp回叠强度,用于Y或YUV网络,范围:[0, 31],默认值为0。

coring_str

Y原始像素回叠,值越大,回叠噪声越大,去噪效果越弱,用于Y或YUV网络,范围:[0, 31],默认值为0。

denoise_y_alpha

用于配置运动后区域的去噪强度,值越大,强度越强。用于Y或YUV网络,范围:[0, 255],默认值为255。

denoise_y_fg_str_lut

根据不同亮度区间配置前景强度lut表。用于所有网络。范围:[0, 255],默认值为255。

denoise_y_bg_str_lut

根据不同亮度区间配置背景强度lut表。用于所有网络。范围:[0, 255],默认值为0。

gamma_lut

gamma表格,用于Y或YUV网络,范围:[0,255],默认值为0。

uv_denoise_fg

uv分量前景色度去噪强度,用于YUV或者UV网络,范围:[0, 31],默认值为0。

该参数暂无实际效果,不建议调试。

uv_denoise_bg

uv分量色度去噪强度,用于YUV或者UV网络,范围:[0, 31],默认值为0。

uv_coring_str

uv原始像素回叠,值越大,回叠噪声越大,去噪效果越弱,范围:[0, 31],默认值为0。

【注意事项】

无

【相关数据类型及接口】

无

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;

【成员】

成员名称

描述

param_num

3DNR自动模式配置标准参数个数。

取值范围:[1, 16]

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;

【成员】

成员名称

描述

adv_mode

AI3DNR 模式选择。

adv_ie_y

AI3DNR 增强参数。ot_nr_v1_adv_iey定义见《Hi3519DV500/Hi3516DV500 3DNR参数配置说明》。

adv_sf_y

AI3DNR 空域参数。ot_nr_v1_adv_sfy定义见《Hi3519DV500/Hi3516DV500 3DNR参数配置说明》。

【注意事项】

无

【相关数据类型及接口】

无

ot_ai3dnr_manual_adv_param

【说明】

定义Hi3519DV500的3DNR手动模式高级参数。

【定义】

typedef struct {
    ot_ai3dnr_adv_v1 adv_param;
} ot_ai3dnr_manual_adv_param;

【成员】

成员名称

描述

adv_param

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;

【成员】

成员名称

描述

op_mode

3DNR选择模式。

manual_adv_param

3DNR手动模式的高级参数。

auto_adv_param

3DNR自动模式的高级参数。

【注意事项】

无

【相关数据类型及接口】

无

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;

【成员】

成员名称

描述

nr_version

3DNR接口版本枚举。

nr_adv_param_v1

Hi3519DV500的3DNR高级参数。

【注意事项】

在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;

【成员】

成员名称

描述

enable

图像效果使能开关,使能算法后值为TD_TRUE。

input_depth

Dump输入队列深度,范围:[0, 8],默认值为0。

output_depth

Dump输出队列深度,范围:[0, 8],默认值为0。

strength

去噪强度属性

adv_param

滤波器参数

【注意事项】

无

【相关数据类型及接口】

无

ot_ai3dnr_cfg

【说明】

定义AI3DNR算法配置参数。

【定义】

typedef struct {
    ot_ai3dnr_net_type net_type;
} ot_ai3dnr_cfg;

【成员】

成员名称

描述

net_type

模型文件支持的网络模式,默认值为OT_AI3DNR_NET_TYPE_UV。

OT_AI3DNR_NET_TYPE_Y: 只对Y进行处理

OT_AI3DNR_NET_TYPE_UV:只对UV进行处理

OT_AI3DNR_NET_TYPE_YUV:对YUV进行处理

【注意事项】

AI3DNR Y、YUV网络类型,当前版本不支持。

【相关数据类型及接口】

无

ot_ai3dnr_smooth

【说明】

定义AI3DNR算法平滑切换参数。

【定义】

typedef struct {
    td_bool enable;
} ot_ai3dnr_smooth;

【成员】

成员名称

描述

enable

是否使能平滑切换,默认值为TD_FALSE。

【注意事项】

当前版本暂不支持。

【相关数据类型及接口】

无

ot_ai3dnr_pool

【说明】

定义AI3DNR算法vb池信息。

【定义】

typedef struct {
    ot_vb_pool vb_pool;
    ot_ai3dnr_net_type net_type;
} ot_ai3dnr_pool;

【成员】

成员名称

描述

vb_pool

vb池句柄

net_type

网络类型

【注意事项】

无

【相关数据类型及接口】

无

ot_ai3dnr_status

【说明】

定义AI3DNR数据流运行状态。

【定义】

typedef struct {
    td_bool enable;
} ot_ai3dnr_status;

【成员】

成员名称

描述

enable

数据流运行状态

【注意事项】

无

【相关数据类型及接口】

ss_mpi_ai3dnr_query_status

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)(资源初始化情况)

aiv type

算法类型

proc init

proc初始化次数

vdb init_cnt

vdb初始化次数

aibnr plugin: 2023112000(插件版本信息)

NA

无

model attr(模型属性信息)

type

linear还是wdr类型

op_type

模型的使用模式:

manual:手动模式

auto:自动模式,根据ISO自适应选择

manual_id

手动模式下使用的模型id

auto_id

自动模式下使用的模型id,每一列数值对应不同ISO段使用的模型id

model info(模型加载信息)

model_id

模型编号

name

模型名称

width

模型文件对应图像的宽度信息。

height

模型文件对应图像的高度信息。

blk

块的宽度信息

olp

块与块之间的overlap大小

node_num

节点个数

is_wdr

模型文件是否为WDR模式。

Y:WDR模式;

N:线性模式。

ref_mode

模型文件的参考帧模式。

ref:参考帧普通模式,图像处理需要参考帧;

none_ref:无参考帧模式,图像处理无需参考帧;

preempted_en

是否允许AIISP推理过程中被打断抢占

Y:允许被打断

N:不允许被打断

compile(us)

模型编译时间,单位为微秒。

nlc

非线性校正是否支持。

N:不支持;

Y:支持。

agent 0

Agent代理信息(版本编号)

type

算法的类型:

0:AIBNR

1:AIDRC

2:AIDM

3:AI3DNR

4:AIDESTRIP

pos

当前代理在处理流程中的位置

ref

被访问的计数

task_num

配置的可并行处理的任务数

max_pipe_num

配置的可支持的最大pipe数

ini_cpu_core

配置的绑定CPU的编号,等于-1时表示不绑定CPU。

executor(执行线程信息)

thread

线程是否启动:

Start:线程已启动

Stop:线程已销毁

status

线程的运行状态:

null:未运行

start:开始执行

running:正在执行任务

sleeping:休眠状态

stop:线程被停止

unknown:非法状态

run_count

线程已运行次数

cpu_core

当前线程绑定的cpu,等于-1表示当前线程没有绑定。

monitor(监控线程信息)

thread

线程是否启动:

Start:线程已启动

Stop:线程已销毁

status

线程的运行状态:

null:未运行

start:开始执行

running:正在执行任务

sleeping:休眠状态

stop:线程被停止

unknown:非法状态

run_count

线程已运行次数

cpu_core

当前线程绑定的cpu,等于-1表示当前线程没有绑定。

detail(代理的详细运行信息)

pipe

Pipe编号

enable

数据流是否使能:

Y:已使能

N:未使能

running

是否正在运行:

Y:正在运行

N:未运行

link_setup

是否与工作站建立连接:

Y:已建立连接

N:未建立连接

pending_task

待NPU处理的任务数

realtime_rate

实时帧率

average_rate

平均帧率

succ_cnt

成功的回调的计数

fail_cnt

失败的回调的计数

enable_cnt

算法使能的计数

disable_cnt

算法不使能的计数

try_pipe_fail

运行pipe任务尝试失败的计数

try_plugin_fail

运行算法任务尝试失败的计数

get_task_fail

获取空闲任务槽位失败的计数

prepare_task_fail

插件准备任务失败的计数

submit_task_fail

提交任务失败的计数

submit_task_succ

提交任务成功的计数

station 0: XX.X%(station工作站信息)

Hi3519DV500:66.5%

Hi3516CV610:67.3%

station 0: XX.X%

0表示工作站的编号

XX.X%:表示单位时间内推理处理时间/单位时间,推理时间包含了被打断后处理其他任务的时间。

active

是否激活

Y:已激活

N:未激活

max_pipe_num

最大的pipe数

max_task_num

最大的并行任务数

svp_mode

NPU软件工作模式:

passive:被动模式

active:主动模式

free_task

空闲任务数

busy_task

正在使用中的任务数

models

模型注册数

work_buf_id

Work buf共享的标记

work_buf_size

Work buf大小,单位byte

links

工作站连接的计数

reg_task

注册的任务计数

total

任务节点总数

success

成功任务的计数

failure

失败任务的计数

bypass

bypass任务的计数

working

正在被执行的任务的计数

aibnr pipe info(pipe使能信息)

pipe

pipe的id

enable

使能的状态信息

Y:该pipe已使能

N:该pipe没有使能

pipe 0 attr(Aibnr pipe配置信息)

enable

是否使能经过AI处理

Y:经过AI处理

N:不经过AI处理

bnr_bypass

是否不经过传统bnr处理

Y:不经过传统bnr处理

N:经过传统bnr处理

blend

是否与传统raw数据融合

Y:融合

N:不融合

in_depth

输入队列深度

out_depth

输出队列深度

op_type

参数调节类型

0:自动调节

1:手动调节

sfs

整体画面的空域去噪强度

tfs

整体画面的时域去噪强度

bds

主要对亮区有影响的AIBNR空域去噪强度控制参数

dds

主要对暗区有影响的AIBNR空域去噪强度控制参数

is_wdr

是否为WDR模式。

Y:WDR模式;

N:线性模式。

ref_mode

有参考帧还是无参考帧模式:

ref:有参考帧

none_ref:无参考帧

nlc_en

非线性校正是否使能:

Y:使能;

N:不使能。

step_bit

校正表的输入步长

r_fact

r通道校正比例表

b_fact

b通道校正比例表

tnr attr(时域参数)

load_ref

使用pro模型时,是否重新加载参考帧。

Y:重新加载;

N:不加载。

mot_gain

运动检测增益

mot_thr

运动阈值

noise_ctl

控制运动和静止融合区域的噪声

tf_spd_f

时域精细收敛系数,数值越大收敛越快

tf_spd_c

时域粗调收敛系数,数值越大收敛越快

nlc attr(一致性校正参数)

nlc_en

非线性校正是否使能:

Y:使能;

N:不使能。

step_bit

校正表的输入步长

r_fact

r通道校正比例表

b_fact

b通道校正比例表

status(Pipe运行状态信息)

active

数据流是否使能

Y:已使能

N:未使能

bnr_bypass

是否经过传统bnr处理

Y:不经过

N:经过

blend

是否与传统数据融合

Y:融合

N:不融合

long_frm

是否长帧模式

Y:是长帧模式

N:不是长帧模式

pattern

Raw数据的格式

lost_cnt

aibnr丢帧的计数

iso

当前处理数据的iso值

k

噪声模型k参数

b

噪声模型b参数

Model_id

当前使用的模型的id

pool_id

使用的pool id

block_reason

算法未执行的原因:

not_enable:算法没有使能

task_full:正在处理的任务已满

no_model:没有对应的模型

no_input:没有输入资源

no_output:没有输出资源

none:算法正常运行中

unknown:其他不明原因

task load(任务的负载)

task load

任务的负载。表示单位时间内(aibnr软件处理时间+硬件处理时间)/单位时间,推理时间包含了被打断后处理其他任务的时间。

detail(Pipe详细运行状态信息)

is_run

Pipe是否在运行

pending

Pipe已准备好等待回调的任务数

in_num

一次任务输入帧个数

ref_num

一次任务参考帧个数

out_num

一次任务输出帧个数

in_busy

输入队列busy状态的数

in_free

输入队列空闲状态的数

ref_busy

参考队列busy状态的数

ref_free

参考队列空闲状态的数

first_total(ms)

首帧处理的总耗时,单位ms,以下耗时单位均为ms

enable -> try

Pipe使能后->查询是否可以准备任务的耗时。

try -> ready

查询是否可以准备任务->准备完成的耗时

ready -> execute

任务准备->任务被执行的耗时

execute -> finish

任务执行->任务完成的耗时

finish -> send

任务完成->送给后级模块的耗时

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

【参数说明】

参数

描述

aiisp framework: 2023031000(资源初始化情况)

aiv type

算法类型

proc init

proc初始化次数

vdb init_cnt

vdb初始化次数

aidrc plugin: 2023112000(插件版本信息)

NA

无

model info(模型加载信息)

model_id

模型编号

name

模型名称

width

模型文件对应图像的宽度信息。

height

模型文件对应图像的高度信息。

blk_width

块的宽度信息

node_num

节点个数

preempted_en

是否允许AIISP推理过程中被打断抢占

Y:允许被打断

N:不允许被打断

compile(us)

模型编译时间,单位为微秒。

agent 256

Agent代理信息(版本编号)

type

算法的类型:

0:AIBNR

1:AIDRC

2:AIDM

3:AI3DNR

4:AIDESTRIP

pos

当前代理在处理流程中的位置

ref

被访问的计数

task_num

配置的可并行处理的任务数

max_pipe_num

配置的可支持的最大pipe数

ini_cpu_core

配置的绑定CPU的编号,等于-1时表示不绑定CPU。

executor(执行线程信息)

thread

线程是否启动:

Start:线程已启动

Stop:线程已销毁

status

线程的运行状态:

null:未运行

start:开始执行

running:正在执行任务

sleeping:休眠状态

stop:线程被停止

unknown:非法状态

run_count

线程已运行次数

cpu_core

当前线程绑定的cpu,等于-1表示当前线程没有绑定。

monitor(监控线程信息)

thread

线程是否启动:

Start:线程已启动

Stop:线程已销毁

status

线程的运行状态:

null:未运行

start:开始执行

running:正在执行任务

sleeping:休眠状态

stop:线程被停止

unknown:非法状态

run_count

线程已运行次数

cpu_core

当前线程绑定的cpu,等于-1表示当前线程没有绑定。

detail(代理的详细运行信息)

pipe

Pipe编号

enable

数据流是否使能:

Y:已使能

N:未使能

running

是否正在运行:

Y:正在运行

N:未运行

link_setup

是否与工作站建立连接:

Y:已建立连接

N:未建立连接

pending_task

待NPU处理的任务数

realtime_rate

实时帧率

average_rate

平均帧率

succ_cnt

成功的回调的计数

fail_cnt

失败的回调的计数

enable_cnt

算法使能的计数

disable_cnt

算法不使能的计数

try_pipe_fail

运行pipe任务尝试失败的计数

try_plugin_fail

运行算法任务尝试失败的计数

get_task_fail

获取空闲任务槽位失败的计数

prepare_task_fail

插件准备任务失败的计数

submit_task_fail

提交任务失败的计数

submit_task_succ

提交任务成功的计数

station 256: 57.9%(station工作站信息)

station 256: 57.9%

256表示工作站的编号

57.9%:表示

单位时间内推理处理时间/单位时间,推理时间包含了被打断后处理其他任务的时间。

active

是否激活

Y:已激活

N:未激活

max_pipe_num

最大的pipe数

max_task_num

最大的并行任务数

svp_mode

NPU软件工作模式:

passive:被动模式

active:主动模式

free_task

空闲任务数

busy_task

正在使用中的任务数

models

模型注册数

work_buf_id

Work buf共享的标记

work_buf_size

Work buf大小,单位byte

links

工作站连接的计数

reg_task

注册的任务计数

total

任务节点总数

success

成功任务的计数

failure

失败任务的计数

bypass

bypass任务的计数

working

正在被执行的任务的计数

aidrc pipe info(pipe使能信息)

pipe

pipe的id

enable

使能的状态信息

Y:该pipe已使能

N:该pipe没有使能

pipe 0 attr(AIDRC pipe配置信息)

enable

是否使能经过AI处理

Y:经过AI处理

N:不经过AI处理

strength

细节增强强度

threshold

噪声抑制阈值

mode

AIDRC模式

normal:NORMAL模式,仅处理画面细节,资源消耗较小

advanced:ADVANCED模式,同时处理画面细节和亮度

unknown:非法模式

out_depth

输出队列深度

smooth

开关平滑过渡

Y:已使能

N:未使能

detail_adj_coef_x

FilterX细节微调系数

tone_mapping_wgt_x

控制额外Tone Maping曲线(简称CurveX)和一般Tone Mapping曲线(简称Curve,对应curve_select,tone_mapping_value和asymmetry_curve接口)的融合权重。

luma_max

Filter和FilterX基于亮度的融合权重的最大值(全局)。

luma_bright_min

Filter和FilterX基于亮度的融合权重的最小值(亮区)。

luma_bright_thr

Filter和FilterX基于亮度的融合权重的自适应阈值(亮区)。

luma_dark_min

Filter和FilterX基于亮度的融合权重的最小值(暗区)。

luma_dark_thr

Filter和FilterX基于亮度的融合权重的自适应阈值(暗区)。

detail_max

Filter和FilterX基于细节的融合权重的最大值(全局)。

detail_bright_min

Filter和FilterX基于细节的融合权重的最小值(亮区)。

detail_bright_thr

Filter和FilterX基于细节的融合权重的自适应阈值(亮区)。

detail_dark_min

Filter和FilterX基于细节的融合权重的最小值(暗区)。

detail_dark_thr

Filter和FilterX基于细节的融合权重的自适应阈值(暗区)。

detail_adj_coef_bld

Filter和FilterX融合区的FilterX细节微调系数。

status(Pipe运行状态信息)

active

数据流是否使能

Y:已使能

N:未使能

pattern

Raw数据的格式

model_id

当前使用的模型的id

in_pool_id

输入使用的vb pool id

out_pool_id

输出使用的vb pool id

detail(Pipe详细运行状态信息)

is_run

Pipe是否在运行

pending

Pipe已准备好等待回调的任务数

in_num

一次任务输入帧个数

ref_num

一次任务参考帧个数

out_num

一次任务输出帧个数

in_busy

输入队列busy状态的数

in_free

输入队列空闲状态的数

is_cmp

是否压缩

Y:是

N:否

first_total(ms)

首帧处理的总耗时,单位ms,以下耗时单位均为ms

enable -> try

Pipe使能后->查询是否可以准备任务的耗时。

try -> ready

查询是否可以准备任务->准备完成的耗时

ready -> execute

任务准备->任务被执行的耗时

execute -> finish

任务执行->任务完成的耗时

finish -> send

任务完成->送给后级模块的耗时

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

【参数说明】

参数

描述

aiisp framework: 2023031000(资源初始化情况)

aiv type

算法类型

proc init

proc初始化次数

vdb init_cnt

vdb初始化次数

ai3dnr plugin: 2023112000(插件版本信息)

NA

无

model info(模型加载信息)

model_id

模型编号

name

模型名称

width

模型文件对应图像的宽度信息。

height

模型文件对应图像的高度信息。

net_type

网络类型:

yuv_net:表示yuv的网络类型

uv_net:表uv的网络类型

preempted_en

是否允许AIISP推理过程中被打断抢占

Y:允许被打断

N:不允许被打断

compile(us)

模型编译时间,单位为微秒。

agent 768

Agent代理信息(版本编号)

type

算法的类型:

0:AIBNR

1:AIDRC

2:AIDM

3:AI3DNR

4:AIDESTRIP

pos

当前代理在处理流程中的位置

ref

被访问的计数

task_num

配置的可并行处理的任务数

max_pipe_num

配置的可支持的最大pipe数

ini_cpu_core

配置的绑定CPU的编号,等于-1时表示不绑定CPU。

executor(执行线程信息)

thread

线程是否启动:

Start:线程已启动

Stop:线程已销毁

status

线程的运行状态:

null:未运行

start:开始执行

running:正在执行任务

sleeping:休眠状态

stop:线程被停止

unknown:非法状态

run_count

线程已运行次数

cpu_core

当前线程绑定的cpu,等于-1表示当前线程没有绑定。

monitor(监控线程信息)

thread

线程是否启动:

Start:线程已启动

Stop:线程已销毁

status

线程的运行状态:

null:未运行

start:开始执行

running:正在执行任务

sleeping:休眠状态

stop:线程被停止

unknown:非法状态

run_count

线程已运行次数

cpu_core

当前线程绑定的cpu,等于-1表示当前线程没有绑定。

detail(代理的详细运行信息)

pipe

Pipe编号

enable

数据流是否使能:

Y:已使能

N:未使能

running

是否正在运行:

Y:正在运行

N:未运行

link_setup

是否与工作站建立连接:

Y:已建立连接

N:未建立连接

pending_task

待NPU处理的任务数

realtime_rate

实时帧率

average_rate

平均帧率

succ_cnt

成功的回调的计数

fail_cnt

失败的回调的计数

enable_cnt

算法使能的计数

disable_cnt

算法不使能的计数

try_pipe_fail

运行pipe任务尝试失败的计数

try_plugin_fail

运行算法任务尝试失败的计数

get_task_fail

获取空闲任务槽位失败的计数

prepare_task_fail

插件准备任务失败的计数

submit_task_fail

提交任务失败的计数

submit_task_succ

提交任务成功的计数

station 768: 10.6%(工作站信息)

注:

  • 768表示工作站的编号
  • 10.6%:表示单位时间内推理处理时间/单位时间,推理时间包含了被打断后处理其他任务的时间。

active

是否激活

Y:已激活

N:未激活

max_pipe_num

最大的pipe数

max_task_num

最大的并行任务数

svp_mode

NPU软件工作模式:

passive:被动模式

active:主动模式

free_task

空闲任务数

busy_task

正在使用中的任务数

models

模型注册数

work_buf_id

Work buf共享的标记

work_buf_size

Work buf大小,单位byte

links

工作站连接的计数

reg_task

注册的任务计数

total

任务节点总数

success

成功任务的计数

failure

失败任务的计数

bypass

bypass任务的计数

working

正在被执行的任务的计数

ai3dnr pipe info(pipe使能信息)

pipe

pipe的id

enable

使能的状态信息

Y:该pipe已使能

N:该pipe没有使能

pipe 0 attr(AI3DNR pipe配置信息)

enable

是否使能经过AI处理

Y:经过AI处理

N:不经过AI处理

in_depth

输入dump队列深度

out_depth

输出dump队列深度

smooth

是否开启平滑切换:

Y:开启

N:不开启

net_type

算法的网络类型:

uv_net:UV的网络模型

yuv_net:YUV的网络模型

sharp_str

sharp强度

coring_str

噪声回叠强度

denoise_fg

前景去噪强度

denoise_bg

背景去噪强度

depattern_fg

前景去pattern强度

depattern_bg

背景去pattern强度

denoise_y_alpha

y分量去噪alpha值

gamma_lut

gamma表

uv_denoise_fg

uv数据前景去噪强度

uv_denoise_bg

uv数据背景去噪强度

status(Pipe运行状态信息)

active

数据流是否使能

Y:已使能

N:未使能

npu_en

npu处理是否使能

Y:已使能

N:未使能

iso

当前处理数据的iso值

model_id

当前使用的模型的id

pool_id

使用的vb pool id

detail(Pipe详细运行状态信息)

is_run

Pipe是否在运行

pending

Pipe已准备好等待回调的任务数

in_num

一次任务输入帧个数

out_num

一次任务输出帧个数

in_busy

输入队列busy状态的数

in_free

输入队列空闲状态的数

is_cmp

是否压缩

Y:是

N:否

first_total(ms)

首帧处理的总耗时,单位ms,以下耗时单位均为ms

enable -> try

Pipe使能后->查询是否可以准备任务的耗时。

try -> ready

查询是否可以准备任务->准备完成的耗时

ready -> execute

任务准备->任务被执行的耗时

execute -> finish

任务执行->任务完成的耗时

finish -> send

任务完成->送给后级模块的耗时

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模型加载失败。

【解决方法】

  1. 加载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。

  2. 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错误码

错误代码

宏定义

描述

0xa0598002

OT_ERR_AIISP_INVALID_PIPE_ID

PIPE号无效

0xa0598007

OT_ERR_AIISP_ILLEGAL_PARAM

参数无效

0xa059800a

OT_ERR_AIISP_NULL_PTR

输入参数空指针错误

0xa059800c

OT_ERR_AIISP_NOT_SUPPORT

操作不支持

0xa059800d

OT_ERR_AIISP_NOT_PERM

操作不允许

0xa0598014

OT_ERR_AIISP_NO_MEM

数据缓存溢出

0xa0598018

OT_ERR_AIISP_NOT_READY

未初始化

模型编译工具

【说明】

模型编译工具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。

模型列表

Hi3519DV500:

文件名称

模型版本名称

简介

类型

支持

模式

支持的pattern

分辨率、帧率

性能

work_buf(MB)

说明

aibnr_model_denoise_priority.bin

denoise_20240319

AIBNR 降噪优先的4M主推大模型

A

Linear/WDR

Linear/WDR:

rggb/gbrg/

bggr/grbg

4M@30(2688*1520)

0.95T

0

  • 4M场景下主推模型,去噪更干净,PQ调优偏自然风格。
  • WDR场景下,仅支持在长帧使用AIBNR降噪。
  • 推荐在4M场景下使用,4K场景下使用会占用较大算力。

4K@30(3840*2160)

2.11T

0

aibnr_model_denoise_priority_lite.bin

denoise_lite_20240612

AIBNR 降噪优先的4K主推小模型

B

Linear

Linear:

rggb/gbrg/

bggr/grbg

4M@30(2688*1520)

0.82T

0

  • 4K场景下主推模型,去噪更干净,PQ调优偏自然风格。
  • 仅支持线性模式和WDR长帧模式下使用。
  • 相对aibnr_model_denoise_priority.bin,算力更小,推荐在4K场景下使用。

4K@30(3840*2160)

1.58T

0

aibnr_model_detail_priority.bin

detail_big_20250422

AIBNR 细节优先的4M大模型

B

Linear

Linear:

rggb/gbrg/bggr/grbg

4M@29(2688*1520)

2.5T

28

  • 4M降帧场景下主推模型,细节表现好,PQ调优偏明亮风格。
  • 仅支持线性模式和WDR长帧模式下使用。
  • 需要通过降帧的方式降低占用的算力。
  • bin文件中包含多个模型,根据ISO自适应切换。
  • 开启一致性校正功能(nlc),性能下降为4M@25

aibnr_model_detail_priority_lite.bin

detail_lite_20240612

AIBNR 细节优先的4M小模型

B

Linear

Linear:

rggb/gbrg/bggr/grbg

4M@25(2688*1520)

1.29T

0

  • 4M不降帧场景下主推模型,细节表现好,PQ调优偏明亮风格。
  • 仅支持线性模式和WDR长帧模式下使用。
  • 相对aibnr_model_detail_priority.bin,算力更小,整体细节稍微损失一些,适合不降帧场景。
  • bin文件中包含多个模型,根据ISO自适应切换。
  • 开启一致性校正功能(nlc),1.29T算力条件下,性能下降为4M@21

aidrc_model.bin

aidrc_20230822

AIDRC模型

A

WDR

WDR:

rggb/gbrg/bggr/grbg

4K@30(3840*2160)

1T

0

AIDRC模型,适用于WDR场景,主推中大曝光比(>=16倍),背光人脸细节的场景优化。

ai3dnr_model.bin

ai3dnr_20230921

AI3DNR模型

B

Linear

NA

4K@30(3840*2160)

0.3T

0

  • 推荐在MCF场景color路或其他对色噪去噪能力要求高场景使用。
  • 仅支持在YUV域对UV进行降噪,算力小。

Hi3516CV610:

文件名称

模型版本名称

简介

类型

支持模式

支持的pattern

分辨率、帧率

性能

work_buf(MB)

model_buf(KB)

说明

aibnr_model_2688x1520.bin

aibnr_20240826

AIBNR 4M低ISO模型

A

Linear

rggb

4M@12(2688*1520)

0.75T(4bit)

10.5

260

  • 4M@12fps主推模型,细节表现好,PQ调优偏明亮风格
  • 仅支持线性模式使用
  • 推荐在ISO 12800以下使用。

aibnr_model_2688x1520_high_iso.bin

aibnr_highiso_20250124

AIBNR 4M高ISO模型

A

Linear

rggb

4M@12(2688*1520)

0.75T(4bit)

10.5

260

  • 4M@12fps主推模型,细节表现好,PQ调优偏明亮风格
  • 仅支持线性模式使用
  • 推荐在ISO 12800以上使用。

aibnr_model_2688x1520_pro.bin

aibnr_pro_20250206

AIBNR 4M pro模型

A

Linear

rggb

4M@5(2688*1520)

0.8T(4bit)

8.7

256

  • 4M@5fps主推模型,细节表现好,优化12fps模型细节粗的问题,PQ调优偏明亮风格且背景更安静细碎
  • 仅支持线性模式使用
  • 推荐在ISO 12800以上且帧率在5fps情况使用。
  • 相比于普通模型(包含low iso和high iso模型),mmz内存需要多空余约8M(aibnr_bg、aibnr_mapx)的内存用于计算。

aibnr_model_2560x1440.bin

aibnr_20240826

AIBNR 3.6M低ISO模型

A

Linear

rggb

3.6M@12(2560*1440)

0.7T(4bit)

9.5

260

  • 3.6M@12fps主推模型,细节表现好,PQ调优偏明亮风格
  • 仅支持线性模式使用
  • 推荐在ISO 12800以下使用。

aibnr_model_2560x1440_high_iso.bin

aibnr_highiso_20250124

AIBNR 3.6M高ISO模型

A

Linear

rggb

3.6M@12(2560*1440)

0.7T(4bit)

9.5

260

  • 3.6M@12fps主推模型,细节表现好,PQ调优偏明亮风格
  • 仅支持线性模式使用
  • 推荐在ISO 12800以上使用。

aibnr_model_2560x1440_pro.bin

aibnr_pro_20250206

AIBNR 3.6M pro模型

A

Linear

rggb

3.6M@5(2560*1440)

0.75T(4bit)

7.9

252

  • 3.6M@5fps主推模型,细节表现好,优化12fps模型细节粗的问题,PQ调优偏明亮风格且背景更安静细碎
  • 仅支持线性模式使用
  • 推荐在ISO 12800以上且帧率在5fps情况使用。
  • 相比于普通模型(含低iso和高iso模型),mmz内存需要多空余约7.1M(aibnr_bg、aibnr_mapx)的内存用于计算。

aibnr_model_2560x1440_low_buf.bin

aibnr_lowbuf_20240826

AIBNR 3.6M低ISO省内存模型

A

Linear

rggb

3.6M@10(2560*1440)

0.7T(4bit)

4.6

216

  • 3.6M@10fps省内存主推模型,细节表现好,PQ调优偏明亮风格
  • 仅支持线性模式使用
  • 推荐在ISO 12800以下使用。

aibnr_model_2560x1440_high_iso_low_buf.bin

aibnr_highiso_lowbuf_20250124

AIBNR 3.6M高ISO省内存模型

A

Linear

rggb

3.6M@10(2560*1440)

0.7T(4bit)

4.6

216

  • 3.6M@10fps省内存主推模型,细节表现好,PQ调优偏明亮风格
  • 仅支持线性模式使用
  • 推荐在ISO 12800以上使用。

须知:

  • 模型版本名称用于区分不同版本的模型文件。当加载了模型文件后,可以通过 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类,表示当前的模型功能经过充分验证,效果验证典型场景,客户仅作参考。