针对Hi3519DV500的ISP开发说明——AIBNR算法应用

针对Hi3519DV500的ISP开发说明——AIBNR算法应用 Winki 2023-03-17 14:40:29 2927

易百纳社区

AIBNR简介

AIBNR(AI-based Bayer Noise Reduce)是一种新型的去噪算法,它能使成像设备在更低照度时噪声去除更干净,细节保留更多,从而提高成像设备极低照度的感光能力。

提供接口及注意事项

  • ss_mpi_aibnr_init:初始化AIBNR模块

【注意】

不支持多进程调用。


  •  ss_mpi_aibnr_exit:去初始化AIBNR模块。

【注意】

  1. 不支持多进程调用。
  2. 调用此接口去初始化AIBNR模块前,需要关闭AIBNR数据流开关。

 

  • ss_mpi_aibnr_load_model:加载AIBNR的模型文件。

【注意】

  1. 调用该接口前必须先调用ss_mpi_aibnr_init初始化AIBNR模块。
  2. 调用该接口前AIBNR数据流需要保持关闭状态。
  3. 相同类型的模型文件,如果图像宽高相等时,不能重复加载。
  4. 支持多个模型文件的加载,或者同一模型文件、不同分辨率多次加载。
  5. 不支持多进程调用。
  6. WDR模式不支持加载无参考模型。


  • ss_mpi_aibnr_unload_model:卸载AIBNR的模型文件。

【注意】

  1. 应用程序退出前,需调用此接口释放已加载模型文件的内存资源,或者调用ss_mpi_aibnr_exit接口释放AIBNR的所有资源。
  2. 不支持多进程调用。
  3. 调用此接口前需要关闭AIBNR数据流开关。


  •  ss_mpi_aibnr_set_cfg:设置AIBNR算法相关配置参数。

【注意】

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


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

【注意】

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

 

  • ss_mpi_aibnr_enable:使能AIBNR数据流开关。

【注意】

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

    – 对应的vi pipe必须已经创建,且仅支持pipe0。

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

4. AIBNR使能之后,延迟2帧生效。

5. AIBNR仅支持12bit的Bayer图像数据处理。

6. 调用该接口前,需要提前通过ss_mpi_sys_set_vi_aiisp_mode接口配置VI为OT_VI_AIISP_MODE_DEFAULT模式,只支持VI离线。

7. AIBNR的线性模式使用有如下限制:

    只能在VI离线时生效;

8. AIBNR的WDR模式使用有如下限制:

    – AIBNR绑定长帧所在的pipe0,如果想在pipe1长帧上做AIBNR,需要参考《视频输入》中ss_mpi_vi_set_wdr_fusion_grp_attr接口设置pipe_reverse为1;

    – pipe通路不能开压缩;

    – 不支持blend模式;

    – 超性能场景可能会出现WDR长短帧丢帧不同步,进而导致WDR融合效果异常。


  • ss_mpi_aibnr_disable:关闭AIBNR数据流开关。

【注意】

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

 

  • ss_mpi_aibnr_set_attr:设置AIBNR的属性。

【注意】

  1. 调用该接口前必须先调用ss_mpi_aibnr_init初始化AIBNR模块,并调用ss_mpi_aibnr_load_model接口加载AIBNR模型文件。
  2. 使能AIBNR数据流开关之后才能调用此接口成功设置AIBNR属性。
  3. 当attr->enable为TD_FALSE时,bnr_bypass必须为TD_FALSE。
  4. 当attr->blend为TD_TRUE时,bnr_bypass必须为TD_FALSE。
  5. blend开启时,不支持获取AIBNR处理后的raw,不支持ISP RunOnce或RunBe方式使用AIBNR,因为BE灌的raw没有经过AIBNR处理。
  6. blend关闭时,支持获取AIBNR处理后的raw, 支持ISP RunOnce或RunBe方式使用AIBNR。
  7. input_depth和output_depth调试时才设置,正常情况下建议设置为0,设置大于0时,会导致多占用VB,需要分配VB池时在原来基础上多分配 (input_depth+output_depth) 个VB,否则可能会导致卡住。


  • ss_mpi_aibnr_get_attr:获取AIBNR的属性。

【注意】

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

 

  • ss_mpi_aibnr_set_thread_attr:设置AIBNR线程属性。

【注意】

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

 

  • ss_mpi_aibnr_get_thread_attr:获取AIBNR线程属性。

【注意】

/

 

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

【注意】

  1. 调用该接口前必须先调用ss_mpi_aibnr_init初始化AIBNR模块,并调用ss_mpi_aibnr_load_model接口加载AIBNR模型文件。
  2. 调用该接口前必须先调用ss_mpi_aibnr_set_attr接口配置队列深度input_depth,只有队列深度大于0,才能获取到图像。
  3. 调用该接口获取图像,不会影响AIBNR的处理。

 

  • ss_mpi_aibnr_release_input_frame:释放AIBNR处理前的输入帧数据。

【注意】

  1. 调用该接口前必须先调用ss_mpi_aibnr_init初始化AIBNR模块,并调用ss_mpi_aibnr_load_model接口加载AIBNR模型文件。
  2. 该接口需要与ss_mpi_aibnr_get_input_frame配合使用。
  3. 获取到的图像数据需要调用该接口及时归还,并且要在关闭数据流之前归还,否则可能导致VB异常。

 

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

【注意】

  1. 调用该接口前必须先调用ss_mpi_aibnr_init初始化AIBNR模块,并调用ss_mpi_aibnr_load_model接口加载AIBNR模型文件。
  2. 调用该接口前必须先调用ss_mpi_aibnr_set_attr接口配置队列深度output_depth,只有队列深度大于0,才能获取到图像。
  3. 调用该接口获取图像,不会影响AIBNR的处理。


  •  ss_mpi_aibnr_release_output_frame:释放AIBNR处理后的输出帧数据。

【注意】

  1. 调用该接口前必须先调用ss_mpi_aibnr_init初始化AIBNR模块,并调用ss_mpi_aibnr_load_model接口加载AIBNR模型文件。
  2. 该接口需要与ss_mpi_aibnr_get_output_frame配合使用。
  3. 获取到的图像数据需要调用该接口及时归还,并且要在关闭数据流之前归还,否则可能导致VB异常。
声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
Winki
红包 点赞 收藏 评论 打赏
评论
1个
内容存在敏感词
手气红包
  • Bonzer 2024-02-27 12:18:44
    回复
    模型文件的打包工具,海思应该没有提供。看SDK示例模型文件是BIN格式,自行训练并转换的模型是OM格式,将OM加载会报错。应该还有个OM至BIN的转换或打包工具。
相关专栏
置顶时间设置
结束时间
删除原因
  • 广告/SPAM
  • 恶意灌水
  • 违规内容
  • 文不对题
  • 重复发帖
打赏作者
易百纳技术社区
Winki
您的支持将鼓励我继续创作!
打赏金额:
¥1易百纳技术社区
¥5易百纳技术社区
¥10易百纳技术社区
¥50易百纳技术社区
¥100易百纳技术社区
支付方式:
微信支付
支付宝支付
易百纳技术社区微信支付
易百纳技术社区
打赏成功!

感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

审核成功

发布时间设置
发布时间:
是否关联周任务-专栏模块

审核失败

失败原因
备注
拼手气红包 红包规则
祝福语
恭喜发财,大吉大利!
红包金额
红包最小金额不能低于5元
红包数量
红包数量范围10~50个
余额支付
当前余额:
可前往问答、专栏板块获取收益 去获取
取 消 确 定

小包子的红包

恭喜发财,大吉大利

已领取20/40,共1.6元 红包规则

    易百纳技术社区