海思3518E开发笔记4.5——ISP的框架解读(sensor、3A框架))

本文详细介绍了海思ISP及其3A算法的工作原理与设计思路,包括自动对焦(AF)、自动曝光(AE)和自动白平衡(AWB)等关键技术。探讨了ISP firmware的结构、组件间的交互方式以及如何通过库文件实现算法解耦。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

3A

  • 自动对焦(AF)
  • 自动曝光(AE)
  • 自动白平衡(AWB)

海思文档结构

Hi3518EV200_ISP_3A 版本依赖于相应的 SDK 大版本,通过一系列数字图像处理算法完成对数字图像的效果处理。主要包含 Firmware 框架及海思 3A 库, Firmware 提供算法的基本框架,处理统计信息,驱动数字图像处理算法,并包含坏点校正、去噪、色彩增强、镜头阴影校正等处理。 3A 库以注册的方式(应用层驱动),添加到 Firmware 中,完成曝光、白平衡、色彩还原等处理。

firmware体现在\Hi3518E_SDK_V1.0.3.0\package\mpp\component\isp\firmware整个fiermware会编译生成一个hi3518e_isp.ko,放在\Hi3518E_SDK_V1.0.3.0\package\mpp\ko中;还有一个libisp.so放在\Hi3518E_SDK_V1.0.3.0\package\mpp\lib

海思3A库体现在\Hi3518E V200R001C01SPC030\01.software\board\Hi3518E_SDK_V1.0.3.0\package\mpp\component\isp\3a中,它是没有源码,提供了库文件放在mpp的lib中;但他提供了sample,在3a的文件夹中,调用库实现AE、AWB的实现方法。
有的公司会自己做自己的3a库,那么只需要将mpp\lib中的对应库文件替换掉就可以了

ISP firmware设计思路

ISP 的 Firmware 包含三部分

  • 一部分是 ISP 控制单元和基础算法单元,即 ISP 库
    \mpp\component\isp\firmware\src底下,特别是其中的algorithms,是一些ISP相关的基础算法。应用程序以库的形式调用这些基础算法单元
  • 一部分是 AE/AWB/AF 算法库
  • 一部分是 sensor 库

以库的方式提供的原因
库的方式是解耦合的方式,程序修改,这些库不用动。比如换一个sensor,3a也要跟着换就很麻烦,只需要换sensor相关应用层驱动(库),3a、firmware是不用动的。


3a操作看上去和sensor有关,比如曝光时间和sensor的曝光量。
实际上3a算法不关心硬件上怎么去曝光,关心的是曝光的算法。比如根据环境光的强度得到曝光的时间,和硬件上如何去控制曝光强度没有关系。于是可以解耦合开


就是这样的架构,可以使得这三部分独立地去进行设计

Firmware设计的基本思想是单独提供 3A 算法库,由 ISP 控制单元调度基础算法单元和 3A 算法库,同时 sensor 库分别向ISP 库和 3A 算法库注册函数回调,以实现差异化的 sensor 适配。 ISP firmware 设计思路如图所示。

在这里插入图片描述

不同的 sensor 都向 ISP 库和 3A 算法库注册控制函数,这些函数都以回调函数的形式存在。 ISP 控制单元调度基础算法单元和 3A 算法库时,将通过这些回调函数获取初始化参数,并控制 sensor,如调节曝光时间、模拟增益、数字增益,控制 lens 步进聚焦或旋转光圈等。

流程是这样的。sensor提供操作曝光的函数,注册到ISP模块中;3A算法注册到ISP模块后,实现根据外部条件计算曝光相关参数,再将相关参数通过回调把值传给sensor操作报关的函数。

ISP结构

在这里插入图片描述

  • ko文件如果修改,就需要重新执行load3518e来加载ko文件
  • so文件如果修改,就需要将新的动态库文件部署到运行环境中

ISP流程

ISP 作为图像前处理部分,需要和视频采集单元( VIU)协同工作。 ISP 初始化和基本配置完成后,需要 VIU 进行接口时序匹配(对接sensor)。一是为了匹配不同 sensor 的输入时序,二是为 ISP 配置正确的输入时序。待时序配置完成后, ISP 就可以启动 Run 来进行动态图像质量调节。此时输出的图像被 VIU 采集,进而送去显示或编码。软件使用流程如图 2-1 所示。

PQ Tools 工具主要完成在 PC 端进行动态图像质量调节,可以调节多个影响图像质量的因子,如去噪强度、色彩转换矩阵、饱和度等
用于实时图像参数调整

在这里插入图片描述
对应sample_common_isp.c代码中SAMPLE_COMM_ISP_Init函数

  • 1 sensor register callback
  • 2 register hisi ae lib
  • 3 register hisi awb lib
  • 4 register hisi af lib
  • 5 isp mem init
  • 6 isp set WDR mode
  • 7 isp set pub attributes
  • 8 isp init

而后SAMPLE_COMM_ISP_Init函数在主函数中的SAMPLE_COMM_VI_StartVi被调用
SAMPLE_COMM_ISP_InitSAMPLE_COMM_ISP_Run,在线程中将isp跑起来,进行动态图像调整

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Spark!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值