海思平台图像的IQ调试

海思平台图像的IQ调试 愚人陆陆 2023-12-29 16:51:41 334

文章目录

1.何为ISP何为IQ调试

1.1 ISP概念

(1) ISP: image signal process,图像信号处理

image signal processor 图像信号处理器

(2) 什么是图像信号?图像的二进制表达

(3) 为什么需要处理?器件或环境不理想导致图像不理想,譬如过曝光、不通透、坏点

(4) 如何处理?使用针对性算法对原始图像数据做运算处理

(5) ISP的本质:用采集后的数字图像的运算处理修补前端的不理想,尽量提升图像质量

(6) ISP处理器:进行运算处理的器件,在HI3518E中是DSP,核心是数字运算能力

1.2 在哪里做ISP

(1) 镜头->sensor->ISP->VI->VPSS……

(2) ISP单元可以在sensor中,独立,或集成到AP SoC中,现在大多在AP中

(3) HI3518E中内置ISP单元

1.3 何为IQ

(1) image quality,图像质量

(2) 浅层次的图像质量问题:坏点、畸变、条纹、局部不清晰等

(3) 高层次的图像质量问题:通透性、锐度、色彩饱满度、色彩还原度等

1.4 总结

(1)IQ是目的,ISP是手段,调试是方法

(2)掌握ISP和IQ调试的关键:相关概念、海思MPP中ISP的实现、PQTool工具

2.海思MPP中ISP的实现框架

2.1 官方文档

(1) 《HiISP开发参考》 与 《ISP_3A开发指南》

1.1 概述

ISP 通过一系列数字图像处理算法完成对数字图像的效果处理。主要包括 3A、坏点校正、去噪、强光抑制、背光补偿、色彩增强、镜头阴影校正等处理。ISP 包括DSP以及运行在其上的 firmware。这里主要介绍 ISP 的用户接口。

1.2 功能描述

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

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

图1-1 ISP 控制结构示意图

ISP 逻辑主要流程、具体概念和功能点请参见芯片手册。

1.2.1 架构

ISP 的 Firmware 包含三部分,一部分是 ISP控制单元(控制DSP硬件寄存器的那部分代码)(\component\isp\firmware\src\main)和基础算法库(\component\isp\firmware\src\algorithms),一部分是AE/AWB/AF 算法库(\component\isp\3a,这里海思只提供了简化版),

一部分是 sensor 库(\component\isp\sensor,这里实现了驱动的逻辑部分,控制部分在Linux内核中实现)。Firmware 设计的基本思想是单独提供 3A 算法库和sensor库,由 ISP 控制单元调用基础算法库和 3A 算法库,同时 sensor 库分别向 ISP 基础算法库和 3A 算法库注册函数回调,以实现不同sensor的 适配。ISP firmware 架构如图1-2 所示。

图1-2 ISP firmware 架构

不同的 sensor 都以回调函数的形式,向 ISP 算法库注册控制函数。ISP 控制单元由于图像质量问题调度基础算法库和 3A 算法库时,将通过这些回调函数获取ISP默认配置参数,然后控制 sensor,如调节曝光时间、模拟增益、数字增益,控制 lens 步进聚焦或旋转光圈等。

1.2.2 开发模式

SDK 支持用户使用多种开发模式:

a. 用户使用海思的 3A 算法库。这时用户需要根据 ISP 基础算法库和 3A 算法库给出的 sensor 适配接口去适配不同的 sensor。每款 sensor 对应一个文件夹,文件夹中

包含两个主要文件:

sensor_cmos.c

该文件中主要实现 ISP控制单元 需要的回调函数,这些回调函数中包含了 sensor 的适配算法和参数设置,不同的 sensor 可能有所不同。

sensor_ctrl.c

sensor 的底层控制驱动,主要实现 sensor 的读写和初始化动作。用户可以根据sensor 的 datasheet 进行这两个文件的开发,必要的时候可以向 sensor 厂家寻求支持。

b. 用户根据 ISP 库提供的 3A 算法注册接口,实现自己的 3A 算法库开发。这时用户

需要根据 ISP 基础算法库和用户的 3A 算法库给出的 sensor 适配接口去适配不同的sensor。

c. 用户部分使用海思 3A 算法库,部分实现自己的 3A 算法库。例如 AE 使用lib_hiae.a,AWB 使用自己的 3A 算法库。SDK 提供了灵活多变的支持方式。

1.2.3 内部流程

Firmware 内部流程分两部分,如图 1-3 所示。一部分是初始化任务,主要完成 ISP 控制单元的初始化、ISP 基础算法库的初始化、3A 算法库的初始化,包括调用 sensor 的回调获取 不同sensor 的初始化参数;另一部分是动态调节过程,单独开一个线程,在这个过程中,firmware 中的 ISP 控制单元调度 ISP 基础算法库和 3A 算法库,实时计算并进行相应控制。

1.2.4 软件流程

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

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

图1-5 ISP firmware 使用流程

如果用户调试好图像效果后,可以使用 PQ Tools 工具提供的配置文件保存功能进行配置参数保存。在下次启动时系统可以使用 PQ Tools 工具提供的配置文件加载功能加载已经调节好的图像参数。

(2)重点是ISP的框架架构和软件流程

2.2 sample中ISP相关部分

(1)核心代码在SAMPLE_COMM_ISP_Init函数中

函数调用层次:

main

    SAMPLE_VENC_720P_CLASSIC

        SAMPLE_COMM_VI_StartVi
            SAMPLE_COMM_VI_StartIspAndVi
                SAMPLE_COMM_ISP_Init
                    sensor_register_callback

                        cmos_init_sensor_exp_function
                        HI_MPI_ISP_SensorRegCallBack
                        cmos_init_ae_exp_function
                        HI_MPI_AE_SensorRegCallBack
                        cmos_init_awb_exp_function
                        HI_MPI_AWB_SensorRegCallBack
                    HI_MPI_AE_Register
                    HI_MPI_AWB_Register
                    HI_MPI_AF_Register
                    HI_MPI_ISP_MemInit
                    HI_MPI_ISP_SetWDRMode
                    HI_MPI_ISP_SetPubAttr

                    HI_MPI_ISP_Init
                SAMPLE_COMM_ISP_Run
                    Test_ISP_Run
                        HI_MPI_ISP_Run
2.3 sensor注册内部细节

sensor_cmos.c 文件中有很多全局变量,这些全局变量都是ISP的默认配置的算法参数

并且通过comsxxx等 众多回调函数 给ISP控制单元注册获取

2.4 ISP注册内部细节

在3a算法库向isp控制单元注册的回调函数的实现中,发现都是一些寄存器的设置,可见,算法的真正实现是在硬件DSP运算单元上,如果全是软件来写3a算法,则会加重SoC的负担

3.IQ调试相关的概念

3.1 黑电平

(1)暗电流

物理器件不可能是理想的, 由于杂质、 受热等其他原因的影响, 即使没有光照射到像素,像素单元也会产生电荷, 这些电荷产生了暗电流。 而且, 暗电流与光照产生的电荷很难进行区分。

(2)Black Level(一定程度上解决暗电流的问题)

用来定义图像数据为0时对应的信号电平。

3.2 镜头阴影矫正

(1)LSC, Lens Shading Correction,镜头阴影矫正

(2)镜头物理原因,导致一帧内中心点像素的亮度值到边缘处逐渐减弱

(3)光波长的原因,导致图像有其它不同颜色的分光

(4)镜头阴影是摄像头系统本身引入的问题,所以需要ISP算法进行矫正

(5)矫正说明,参考:https://blog.csdn.net/xiaoyouck/article/details/77206505

3.3 坏点矫正

(1)DPC, defect pixel correction(有时也写为:bad point correction,BPC)
https://blog.csdn.net/xiaoyouck/article/details/73134846

3.4 自动曝光

(1)AE, auto exposure

(2)曝光时间:sensor 积累电荷的时间,是 sensor pixel 从开始曝光到电量被读出的这段时间。

(3)曝光增益:由于光电转换后的电信号特别微弱,比如只有几mv,不足以进行AD转换,所以需要对 sensor 的输出电荷进行放大,曝光增益就是总的放大系数,一般分为有模拟增益(again)和数字增益(dgain)两步,模拟增益引入的噪声会稍小,所以一般优先用模拟增益。

3.5 DRC与WDR

(1)DRC:Dynamic Range Compression

即动态范围压缩,目的是调整图像的动态范围,使得图像显示出更多的信息。 DRC 模块是一个基于人眼视觉系统特性的高级局部色阶映射(多空间动态范围压缩)引擎。

开启后,会提升暗处细节,同时也提升噪声,导致噪声强度相比DRC关闭时更大些,此时边缘增强,去噪功能都应该与DRC有关简而言之就是让图像局部提升曝光增益一种功能

BLC:backlight compensation,背景光补偿

(2)WDR和DRC区别:

DRC开启后主要是提升暗处细节同时也提升噪声,所以在暗光下要考虑如何去掉噪点;而WDR是局部亮局部暗的情况下都能完美曝光显示

(3)WDR和BLC的效果对比,参考:

https://blog.csdn.net/tr_ainiyangyang/article/details/82388559

https://blog.csdn.net/a200800170331/article/details/79272174

3.6 噪声抑制

(1)noise reduction/denoise,一般图像比较暗的情况下噪声比较大

3.7 颜色插值

(1)Demosaic, 去马赛克,由bayer图像转换成RGB图像就有这个过程

(2)参考:https://blog.csdn.net/helimin12345/article/details/81674590

3.8 自动白平衡

(1)WB:white balance,白平衡,同一个物体在光照不同的情况下呈现不同的颜色

(2)AWB:automatic white balance,自动白平衡

3.9 颜色矫正

(1)color correction

(2)CCM, color correction matrix

(3)sensor 对光谱的响应,在RGB 各分量上与人眼对光谱的响应通常是有偏差的,需要通过一个色彩校正矩阵CCM(Color Correction Matrix)校正光谱响应的交叉效应和响应强度,使前端捕获的图片与人眼视觉在色彩上保持一致。实际上矫正过程就是个矩阵运算过程。

(4)颜色矫正能提升图像饱和度,饱和度也称色彩的纯度。取决于该色中含色成分和消色成分(灰色)的比例。含色成分越大,饱和度越大;消色成分越大,饱和度越小。

3.10 伽马矫正

(1)gamma correction,用于提高低灰度处和周遭环境的对比度

(2)参考:https://blog.csdn.net/chenjuan0530/article/details/78970791

3.11、自动增益控制

(1)AGC:automatic gain control,自动增益控制

(2)使用算法自动调节增益系数,使输入值变化很大时输出值基本保持线性不变

3.12、颜色空间转换

(1)CSC(Color Space Conversion)颜色空间转换,一般是将sRGB空间转换到YUV。

(2)LUT(Look-Up Table)查找表技术,可以在两组数据之间建立对应关系。可以用于颜色空间转换、CCM等

3.13、色度矫正

(1)CA (Chroma Adjustment)

色度调整,在亮度不变的情况下,调整色度。如YUV,对UV进行处理。

(2)CAC (Chromatic Aberration Correction)

由于不同颜色的光在通过镜头时以不同的速度传播,镜头对于所有波长的光不能聚集于一点而引起的“紫边”现象。和镜头阴影第二点一样。

3.14、图像锐化

(1)Sharpen

(2)图像锐化的实质:锐化后图像=原图像+加重的边缘

3.15、感知色

PCR (Preferred Color Reproduction)

大部分情况图像是给人看的,不同的人有不同的颜色喜好,根据用户爱好改变色调空间,称为喜好色。另一种称为感知色。

3.16、图像增强

IE(Image Enhancement)

增强图像中的有用信息,它可以是一个失真的过程,其目的是要改善图像的视觉效果,针对给定图像的应用场合。图像增强涉及许多操作,如降噪,边缘增强,对比度增强。因此,图像增强可以不顾增强后的图像是否失真,只要看着舒服就行。

4.PQTool工具的安装和使用

4.1、PQTool的2部分介绍

Hi3518E V200R001C01SPC030\01.software\pc\PQ_TOOL\Hi3518E_PQ_V1.0.3.0是开发板端服务器软件

Hi3518E V200R001C01SPC030\01.software\pc\PQ_TOOL\PQTools是PC端客户端软件

4.2、准备工作

(1)串口终端和telnet双登录以便两边同时运行程序

(2)Windows IP设置好,防火墙关闭

(3)开发板端运行sample和HiIspTool.sh

(4)pc端运行HiPQTools

配置以上,点击OK

连接之后,这个工具会通过网络向开发板服务器端获取DSP所有的参数

All read可以重新获取这些参数

All write可以将更改完的参数写回开发板去

read Page是获取当前页的参数

write Page是只写回去当前页的参数

auto write是实时更改、实时写

比如我修改Gamma矫正相关的参数

注意:这里只是暂时更改了内存中那份isp使用的参数,如果重新运行sample,还是会使用代码中的那份参数,代码是没有修改的,所以接下来就是将这组参数修改到代码中去,然后运行测试

5.模拟图像参数调整试验

5.1、gamma参数试验

(1)PQTool工具读取gamma的默认参数,存成txt,和源码中写死的值对比


(2)PQTool中更改gamma参数,保存效果截图,保存新的参数txt

(3)将参数txt更改格式后备用

(4)在isp源码中更改新参数,并且重新编译整个isp和sample

(5)重新部署新生成的hi3518e_isp.ko和libisp.so文件到开发板,重启开发板

(6)在开发板中运行sample看效果,和之前的截图对比

文章来源csdn,如有侵权联系删除

声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
红包 2 1 评论 打赏
评论
1个
内容存在敏感词
手气红包
  • hpj 2024-01-01 20:03:05
    回复
    有没有大神写一篇 16DV500的,开hnr
相关专栏
置顶时间设置
结束时间
删除原因
  • 广告/SPAM
  • 恶意灌水
  • 违规内容
  • 文不对题
  • 重复发帖
打赏作者
易百纳技术社区
愚人陆陆
您的支持将鼓励我继续创作!
打赏金额:
¥1易百纳技术社区
¥5易百纳技术社区
¥10易百纳技术社区
¥50易百纳技术社区
¥100易百纳技术社区
支付方式:
微信支付
支付宝支付
易百纳技术社区微信支付
易百纳技术社区
打赏成功!

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

举报反馈

举报类型

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

详细说明

审核成功

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

审核失败

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

小包子的红包

恭喜发财,大吉大利

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

    易百纳技术社区