10.海思平台图像的IQ调试

文章详细介绍了ISP的概念,包括图像信号处理的必要性和流程,以及在海思MPP平台中的实现框架。IQ调试的相关概念如黑电平、镜头阴影矫正、坏点矫正等被逐一阐述。此外,文章还提到了PQTool工具在ISP参数调整中的应用,以及模拟图像参数调整的试验过程。
摘要由CSDN通过智能技术生成

目录

 

1.何为ISP何为IQ调试

1.1、ISP概念

1.2、在哪里做ISP

1.3、何为IQ

1.4、总结

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

2.1、官方文档

2.2、sample中ISP相关部分

2.3、sensor注册内部细节

2.4、ISP注册内部细节

3.IQ调试相关的概念

3.1、黑电平

3.2、镜头阴影矫正

3.3、坏点矫正

3.4、自动曝光

3.5、DRC与WDR

3.6、噪声抑制

3.7、颜色插值

3.8、自动白平衡

3.9、颜色矫正

3.10、伽马矫正

3.11、自动增益控制

3.12、颜色空间转换

3.13、色度矫正

3.14、图像锐化

3.15、感知色

3.16、图像增强

4.PQTool工具的安装和使用

4.1、PQTool的2部分介绍

4.2、准备工作

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

5.1、gamma参数试验


 

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 控制结构示意图

43fbe7af23e046d7bbffa09ecad5736d.png

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 架构

7739b2d60ac444b7a7616c0c0a406ffe.png

不同的 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 算法库,实时计算并进行相应控

制。

81e4502dbf864ba889dc2b5eb3d8b05c.png

1.2.4 软件流程

ISP 作为前端采集部分,需要和视频采集单元(VIU)协同工作。ISP 初始化和基本配

置完成后,需要 VIU 进行接口时序匹配。一是为了匹配不同 sensor 的输入时序,二是

为 ISP 配置正确的输入时序。待时序配置完成后,ISP 就可以启动 Run 来进行动态图

像质量调节。此时输出的图像被 VIU 采集,进而送去显示或编码。软件使用流程如图

1-5 示。

PQ Tools 工具主要完成在 PC 端进行动态图像质量调节,可以调节多个影响图像质量的

因子,如去噪强度、色彩转换矩阵、饱和度等。

图1-5 ISP firmware 使用流程

f07d200894654dcea97206a0aaab6291.png

如果用户调试好图像效果后,可以使用 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的默认配置的算法参数

2ad3d227678e423e90361cf884f544d1.png

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

636a62a3639c4ad3b78ee8046ea686b3.png

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)矫正说明,参考:ISP-镜头阴影校正(LSC)_洗脚水煮饺子的博客-CSDN博客

3.3、坏点矫正

(1)DPC, defect pixel correction(有时也写为:bad point correction,BPC)

ISP-坏点校正(DPC)_洗脚水煮饺子的博客-CSDN博客

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的效果对比,参考:

宽动态 (WDR)介绍和理解_A.Crocodile的博客-CSDN博客

ISP算法:宽动态HDR_isp hdr_蝴蝶也可以飞过沧海的博客-CSDN博客

3.6、噪声抑制

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

3.7、颜色插值

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

(2)参考:图像Demosaic算法及其matlab实现_matlab demosaic_lemonHe_的博客-CSDN博客

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)参考:gamma原理及快速实现算法_gamma计算公式_Melody20210917的博客-CSDN博客

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双登录以便两边同时运行程序

a429056513e6417385a99ac4fe3573bb.png

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

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

(4)pc端运行HiPQTools

49f09a9887c742c3acc38d26b2de8b9f.png

配置以上,点击OK

818d99e2721347a1967470a02271b5d9.png

e2ed90675682421c9a006af6e53ec8ee.png

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

60f6edcea255448a82e7eabf5f010026.png

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

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

read Page是获取当前页的参数

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

auto write是实时更改、实时写

6501839660c3426c8026dd492bf7cddc.png

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

a127c1cc05a042a7af14c0884ca9ee34.png

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

 

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

5.1、gamma参数试验

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

d0547293d4504306bfc6ad179aea9383.png

0abaf0887f16441cb2fc3afd50e88177.png

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

93299be6409a41a2a20d898d6380b85f.png

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

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

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

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

 

  • 8
    点赞
  • 73
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
本课程讲解sensor直接采集的图像都有各种不理想性,因此在编码前都会经过一个软件方式处理,这个处理就叫ISP图像IQ调试就是研究这些处理算法和实现的。常见的IQ调试技术如:线性纠正、噪声去除、黑电平校正、坏点去除、颜色插补、Gamma 校正、RGB2YUV 转换、主动白平衡处理、主动曝光控制、AE评估等。随着通信行业发展,网速越来越快,网络也从文本时代发展越过语音时代到了现在视频时代,“优酷、爱奇艺”、“微视频”、“直播”等的出现也是视频逐步成为主流媒体的证据和表现。航拍、视频监控、刷脸过关检测、汽车ADAS系统等应用也是视频在主流行业中的应用,因此视频的采集、编解码、传输、识别等技术变得越来越有价值,涌现出了“海康威视”、“大华股份”、“深圳英飞拓”等一批明星企业,名扬海内外,动辄市值几百亿。同时在芯片级,国产华为海思HI35xx系列视频编解码方案也逐步取代进口芯片(如TI、安霸)成为主流方案。视频行业技术含量高、难度大、学习周期长、发展变化快而资料少,因此行业比较缺人、工资较高。如海康威视,普通高校硕士研究生应届进入年薪普遍高于15-20万,在嵌入式linux领域也算高工资技术方向了。本项目是朱老师及其团队推出的一个嵌入式linux领域重量级企业级实战项目,选用华为海思HI3518E方案,结合OV9712/AR0130 Sensor实现图像采集和H.264编码压缩,并通过ethernet和WIFI,以socket实时流和RTSP等方式,实现720P/960P高清视频传输。本项目共分11季,从海思SDK开发环境搭建,到sample程序讲解、SDK中API函数解析,到H.264编解码、RTSP流媒体传输、MP4文件打包,到图像IQ调试图像识别等视频领域高阶内容,可以说从零基础入手,对图像采集、编解码、网络传输、图像存储和识别做了全方位的详细讲解和代码分析,是目前市面上**一套系统讲解图像和视频技术的视频课程。
海思图像质量调试工具使用指南.pdf》是一份指导海思图像质量调试工具使用的文档。该文档主要介绍了海思图像质量调试工具的功能、使用方法以及注意事项。 首先,该文档对海思图像质量调试工具的功能进行了详细介绍。该工具主要用于图像质量的评估和调试,包括图像的亮度、对比度、饱和度、色调等方面的调整。该工具可以通过设置参数来实现对图像的调整,并可以通过实时预览来观察调整效果。 接着,文档介绍了海思图像质量调试工具的使用方法。首先,用户需要在计算机上安装该工具,并连接相应的图像采集设备。然后,通过界面上的菜单选项选择要调整的图像属性,并设置相应的参数。在设置参数时,用户可以通过鼠标拖拉、滑杆、输入数值等方式进行调整。在调整过程中,用户可以通过实时预览窗口观察调整效果,从而判断是否达到预期效果。最后,用户可以保存调整后的图像,或者将调整参数应用到其他图像上。 最后,文档提醒用户在使用海思图像质量调试工具时应注意的事项。首先,使用过程中应避免频繁调整参数,以免过度处理导致图像失真。其次,使用过程中应关注图像的细节和整体效果,找到最佳的图像质量平衡点。另外,使用过程中应注意保存原始图像,以备后续对比和复原。最后,若使用过程中遇到问题,可以参考工具提供的帮助文档或者向技术支持寻求帮助。 总之,《海思图像质量调试工具使用指南.pdf》是一份详细指导用户使用海思图像质量调试工具的文档,为用户提供了使用方法和注意事项,帮助用户进行图像质量调试工作。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值