ISP主要坐下面的工作:

AEC(自动曝光控制)、AGC(自动增益控制)、AWB(自动白平衡)、AF(自动对焦)色彩校正、Lens Shading、Gamma 校正、祛除坏点、Auto Black Level、Auto White Level

可以参考:

ISP(图像信号处理)

功能描述

  1. lens 将光信号投射到 sensor 的感光区域后,
  2. sensor 经过光电转换,
  3. 将 Bayer 格式的原始图像送给 ISP,
  4. ISP 经过算法处理,
  5. 输出 RGB 空间域的图像给后端的视频采集单元。
  • 在这个过程中, ISP 通过运行在其上的 firmware 对 ISP逻辑, lens 和 sensor 进行相应控制,进而完成自动光圈、自动曝光、自动白平衡等功能。
  • 其中, firmware 的运转靠视频采集单元的中断驱动。
  • PQ Tools 工具通过网口或者串口完成对 ISP 的在线图像质量调节。

ISP 由 ISP 逻辑及运行在其上的 Firmware 组成,逻辑单元除了完成一部分算法处理外,还可以统计出当前图像的实时信息。 Firmware 通过获取 ISP 逻辑的图像统计信息,重新计算,反馈控制 lens、 sensor 和 ISP 逻辑,以达到自动调节图像质量的目的。

设计思路

ISP 的 Firmware 包含三部分:

  • 一部分是 ISP 控制单元和基础算法单元,即 ISP 库。
  • 一部分是 AE/AWB/AF 算法库。
  • 一部分是 sensor 库。

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

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

注意:Sensor 3A只是为3A lib 提供最基本的操作,而不是一个完整的3A算法。

Firmware 内部流程

首先完成 Firmware 控制单元的初始化、基础算法单元的初始化、 3A 算法库的初始化,包括调用 sensor 的回调获取 sensor 差异化的初始
化参数。当初始化完成之后, Firmware 由中断驱动,每帧从内核态获取统计信息,并驱动基础算法单元和 3A 算法库完成计算,并反馈计算结果,配置 ISP 寄存器和 sensor寄存器。
同时用户可以通过 ISP 的 MPI,控制和改变 Firmware 中包含的基础算法单元的内部数据和状态,定制自己的图像质量效果。如果用户使用海思提供的 3A 算法库,可以通过3A 算法库的 MPI,改变 3A 算法库的内部数据和状态,调节曝光、白平衡和色彩还原。
ISP firmware 内部流程                                                               ISP firmware 软件结构

软件流程

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

ISP firmware 使用流程

代码示例:

 HI_S32 s32Ret;ALG_LIB_S stLib;ISP_PUB_ATTR_S stPubAttr;pthread_t isp_pid;/* 注册sensor库 */s32Ret = sensor_register_callback();if (HI_SUCCESS != s32Ret){printf(”register sensor failed!\n”);return s32Ret;}/* 注册海思AE算法库 */stLib.s32Id = 0;strcpy(stLib.acLibName, HI_AE_LIB_NAME);s32Ret = HI_MPI_AE_Register(&stLib);if (HI_SUCCESS != s32Ret){printf(”register ae lib failed!\n”);return s32Ret;}/* 注册海思AWB算法库 */stLib.s32Id = 0;strcpy(stLib.acLibName, HI_AWB_LIB_NAME);s32Ret = HI_MPI_AWB_Register(&stLib);if (HI_SUCCESS != s32Ret){printf(”register awb lib failed!\n”);return s32Ret;}/* 注册海思AF算法库 */stLib.s32Id = 0;strcpy(stLib.acLibName, HI_AF_LIB_NAME);s32Ret = HI_MPI_AF_Register(&stLib);if (HI_SUCCESS != s32Ret){printf(”register af lib failed!\n”);return s32Ret;}/* 初始化ISP外部寄存器 */s32Ret = HI_MPI_ISP_MemInit(IspDev);if (s32Ret != HI_SUCCESS){printf("%s: HI_MPI_ISP_Init failed!\n", __FUNCTION__);return s32Ret;}/* 配置ISP宽动态模式 */ISP_WDR_MODE_S stWdrMode;stWdrMode.enWDRMode = enWDRMode;s32Ret = HI_MPI_ISP_SetWDRMode(0, &stWdrMode);if (HI_SUCCESS != s32Ret){printf("start ISP WDR failed!\n");return s32Ret;}/* 配置图像公共属性 */s32Ret = HI_MPI_ISP_SetPubAttr(IspDev, &stPubAttr);if (s32Ret != HI_SUCCESS){printf("%s: HI_MPI_ISP_SetPubAttr failed with %#x!\n", __FUNCTION__,s32Ret);return s32Ret;}/* 初始化ISP Firmware */s32Ret = HI_MPI_ISP_Init();if (HI_SUCCESS != s32Ret){printf(”isp init failed!\n”);return s32Ret;}/* HI_MPI_ISP_Run单独启动线程运行 */if (0 != pthread_create(&isp_pid, 0, ISP_Run, NULL)){printf("create isp running thread failed!\n");return HI_FAILURE;}/* 启动VI/VO等业务 */……/* 停止VI/VO等业务 */s32Ret = HI_MPI_ISP_Exit();if (HI_SUCCESS != s32Ret){printf(”isp exit failed!\n”);return s32Ret;}pthread_join(isp_pid, 0);return HI_SUCCESS;

6 海思Hi3518E的ISP及其3A相关推荐

  1. 4 海思Hi3518E实例代码分析

    海思媒体(mmp)处理平台架构 海思媒体处理平台的主要内部处理流程如图 1-2 所示,主要分为视频输入(VI).视频处理(VPSS).视频编码(VENC).视频解码(VDEC).视频输出(VO).视频 ...

  2. 海思HI3518E整体框架认识

    1.HI3518E方案系统整体架构介绍 硬件上: -> HI3518E单芯片提供:CPU+DSP+内置64MB DDR + ETHERNET MAC. -> 外置SPIFlash用来存放程 ...

  3. 华为海思HI3518E方案视频编解码传输

    将SDK包拷贝到linux开发环境下并解压 参见"Hi3518EV20X/Hi3516CV200 SDK 安装以及升级使用说明.txt"文档初步部署环境 遇到问题:交叉变异工具链安 ...

  4. 海思Hi3518A 海思Hi3518C 海思Hi3518E 这几个芯片都有什么区别么

    在3518A.3518C的基础上深化完善,推出了Hi3518E.作为新一代IP民用摄像机SoC,Hi3518E集成新一代ISP,优化了编码前图像处理算法,采用新一代H.264编码器.同时采用业内领先的 ...

  5. 海思Hi3518E+AR0130之移动侦测篇(一)

    本篇着重记录项目中有关移动侦测的开发记录,初次接触海思Hi3518和摄像头AR0130,作为一个小白,开始慢慢摸索. 海思对Hi3518等系列芯片都有海思自家的MPP(Media Process Pl ...

  6. 海思和Sigmastar ISP开发异同点

    海思和Sigmastar是目前ISP领域比较流行的两个平台,这两个平台有很多共同点但是也有差异点,下面总结看看. 1.系统开发 海思和Sigmastar的系统开发差异不大,都是统一构建.不同的是海思有 ...

  7. 海思HI3518e开发板 SDK安装使用

    已经完成了海思sdk包的相关实验, 1 安装海思交叉编译工具链由于工具链是32位的,64位的ubuntu需要安装32位的兼容包: 2 中间遇到问题,使用aptitude安装lib32z1和lib32s ...

  8. 海思HI3518E视频处理基础概念《三》----- 视频处理子系统VPSS

    目录 视频处理子系统VPSS 1.概述 2. 基本概念 3.VPSS 上下文关系 视频处理子系统VPSS 1.概述 VPSS( Video Process Sub-System)支持对一幅输入图像进行 ...

  9. 7 海思Hi3518E的视频处理子系统(VPSS)

    1 概述 VPSS(Video Process Sub-System)支持对一幅输入图像进行统一预处理,如去噪.去隔行等,然后再对各通道分别进行缩放.锐化等处理,最后输出多种不同分辨率的图像. VPS ...

最新文章

  1. 剑指offer:面试题07. 重建二叉树
  2. Ruby之Tempfile
  3. Linux之重定向命令
  4. Cloud Foundry平台中国唯一云供应商,阿里云持续链接Cloud Foundry/Kubernetes生态
  5. 服务器远程显示用户忙,服务器远程显示用户忙
  6. 树莓派Linux内核源码配置、编译、挂载(boot/kernal/根文件)、开启新内核
  7. python使方法执行10次_Python提升程序性能的七个手段
  8. 今晚直播预告丨Oracle 19c避雷经验分享
  9. BZOJ4653: [Noi2016]区间(线段树 双指针)
  10. 这款耳机性价比值得你看一下
  11. vs2015 编译时项目出现NuGet程序包还原失败,找不到xxx.xxx.xxx版本的程序包,怎么解决这个问题?
  12. torch.nn.Conv2d
  13. LED背光源行业的产业链升级
  14. 3000款课件培训PPT模板免费下载网站
  15. python语言的就业方向_Python语言就业方向
  16. PPT转换PDF后转成图片
  17. Linux学习(1):在服务器上与团队共享文件,workgroup这个用户组相关操作命令
  18. 分享三大外汇日内交易策略
  19. 敞开拥抱中国,荷兰光刻机巨头ASML丝毫不受“大火”影响
  20. ml-agent:Win10下环境安装

热门文章

  1. windows关机,窗口事件
  2. QQ空间登陆协议分析-2014年8月
  3. js获取当前日期农历
  4. 【计算机硬件系统设计(华科)——单周期MIPS CPU(Logisim 实现)】
  5. R语言VAR模型方差分解代码
  6. UE5实现天际线分析效果
  7. jquery css3问卷答题卡翻页动画效果
  8. 图像处理——去除图像上杂乱的干扰
  9. 机器学习入门iris数据加载
  10. java实现与RS232串口的通信