当前位置: 首页 > article >正文

海思ISP开发说明

1、概述

       ISP(Image Signal Processor)图像信号处理器是专门用于处理图像信号的硬件或处理单元,广泛应用于图像传感器(如 CMOS 或 CCD 传感器)与显示设备之间的信号转换过程中。ISP通过一系列数字图像处理算法完成对数字图像的效果处理。主要包括3A、坏点校正、去噪、强光抑制、背光补偿、色彩增强、镜头阴影校正等处理。ISP包括逻辑部分以及运行在其上firmware。

名词解释:

3A表示自动曝光(AE,Auto Exposure)、自动白平衡(AWB,Auto White Balance)、自动对焦(AF,Auto Focus)

1.1功能描述

镜头将光信号投射到sensor的感光区域后, sensor经过光电转换,将Bayer格式的原始图像送给ISP ,ISP经过算法处理,输出RGB空间域的图像给后端的视频采集单元。在这个过程中, ISP通过运行在其上的firmware对ISP逻辑, lens和sensor进行相应控制,进而完成自动光圈、自动曝光、自动白平衡等功能。其中, firmware的运转靠视频采集单元的中断驱动。

1.2基本概念

1)色温:不是色的温度,是表明白光光源光谱成分的标志。

2)白平衡AWB:就是摄像机对白色物体的还原。在不同色温的光源下,白色在传感器中的响应会偏蓝或偏红。白平衡算法通过调整R, G, B三个颜色通道的强度,使白色真实呈现。不通色温值对应的色温渐变如下图所示。

色温是一个被量化的数值,那么就也会存在高低之分,而且在我们的视觉感受上也会存在差异。低色温光源的特征是能量分布中,红辐射相对要多些,通常称为“暖光”;色温提高后,能量分布中,蓝辐射的比例增加,通常称为“冷光”。

二者关系:为了更好的理解白平衡,这边需要引入另外一个概念 —— 色温。色温是表示光线中包含颜色成分的一个计量单位。色温可以理解为以开尔文温度表示色彩。根据马克斯·普朗克的理论,将一个完全吸收与放射能力的标准黑体加热,温度逐渐升高,光度亦随之改变。CIE色度坐标中的黑色曲线显示黑体由红 -> 橙红 -> 黄 -> 黄白 -> 白 -> 蓝白的过程。

不同光线下色温相差十分悬殊,造成摄像机在不同的光线下彩色还原不同。为解决这个问题,现在的摄像机都具有白平衡校正功能,对不同的色温进行补偿,从而真实地还原拍摄物体的色彩。自动白平衡使得摄像机能够在一定色温范围内自动地进行白平衡校正,其能够自动校正的色温范围在2500K-7000K之间,超过此范围,摄像机将无法进行自动校正而造成拍摄画面色彩失真,此时就应当使用手动白平衡功能进行白平衡的校正。

AWB 算法通常包括的步骤如下:

(1)色温统计: 根据图像统计出色温;(2)计算通道增益: 计算出R 和B 通道的增益;(3)进行偏色的矫正: 根据给出的增益, 算出偏色图像的矫正。

3)颜色校正矩阵CCM(Color Correction Matrix):颜色校正的工作原理是通过一个矩阵系数来校正图像传感器获得景物的RGB图像数据,使其接近人眼真实看到的颜色。如下图所示:

4)图像处理模块IMP(Image Processing):

主要包括以下模块:

(1)Sharpen模块:用于增强图像的清晰度,包括调节图像边缘的锐化属性和增强图像的细节和纹理的清晰度,同时还能分别独立控制图像的带方向的边缘和无方向的细节纹理的锐化强度。此外,还能控制锐化后的图像的overshoot(白边白点)和undershoot(黑边黑点),以及抑制噪声的增强。

(2)Gamma模块对图像进行亮度空间非线性转换以适配输出设备。Gamma模块校正R、G、B时调用同一组Gamma表, Gamma表各节点之间的间距相同,节点之间的图像像素值使用线性插值生成。

(3)DRC算法用于对WDR合成后的数据进行动态范围压缩(Dynamic Range Compression)。图像一般需要在显示设备上显示, CRT显示器的动态范围一般只有 <50dB,而WDR合成后的数据的动态范围可以达到120dB,如果直接在CRT显示器上显示,就会由于动态范围不匹配的问题,造成丢失亮度较高或者较低处的细节。 DRC算法的目的就是要使真实场景的观察者和显示设备的观察者都能获得相同的视觉感受。DRC算法将高动态范围的图像压缩到显示器的动态范围,同时尽可能的保留原图像的细节和对比度。

(4)LSC模块主要用来处理由于镜头光学折射不均匀导致的镜头周围出现阴影的情况。目前流行的处理方式有Radial(同轴圆)方式以及Mesh(网格)方式。

(5)Defect Pixel坏点检测模块:DPC算法通过在5x5的窗口中通过某些坏点检测算法找到该窗口中明显异于临近像素的坏点。该模块主要包含以下两种模式:静态坏点标定/校正有两种流程:亮点和暗点流程。在亮点流程中,光圈处于关闭状态,启动坏点标定程序,得到坏点坐标信息。坏点个数的总数由坏点校正模块的memory决定的。得到的坏点通过临近像素的中值滤波进行校正。

(6)Crosstalk Removal模块的主要功能是为了平衡raw数据上临近像素Gr和Gb之间的差异,能够有效防止demosaic插值算法产生的方格或其他类似pattern。由于sensor可能会因为特殊角度的光线入射而产生Crosstalk,形成一些pattern,根本原因就是因为临 近像素值之间Gr和Gb值域不一致。

(7)图像去噪:是数字图像处理中的重要环节和步骤,去噪效果将对后续图像处理产生影响。该去噪模块基于噪声标定结果,建立更符合噪声特性的去噪模型,且可根据不同 sensor做标定模型定制化。 NR在Bayer域进行空域去噪处理和时域去噪处理。利用动静检测机制,对图像分前景和背景分别处理,来抑制噪声,提高整体图像信噪比。

(8)Dehaze:是通过动态的改变图象的对比度和亮度来实现的,将图像分块,统计每块内的像素值,估算出雾的浓度,根据局部自适应曲线调整去雾强度。Dehaze分为手动和自动模式,两种模式下均可调节去雾强度。

(9)去伪彩:高频分量在图像插值时易引起高频混叠。用镜头对准一个分辨率测试卡,当sensor表 面没有OLPF时,在分辨率的高频部分容易出现伪彩。 去除伪彩主要是指去除高频部分因插值错误所导致的伪彩现象。增大去伪彩强度值会减弱伪彩现象,但可能导致正常的颜色灰度化。 该模块原理是计算出伪彩出现区域及范围,通过可配去伪彩强度寄存器值调整去伪彩强度值,将RGB三个通道值灰度化,从而达到减弱伪彩现象的目的。

(10)去马赛克:Demosaic模块实现的功能是:将输入的Bayer数据转化成RGB数据。CFA(Color Filter Array,彩色滤波阵列)得到的Bayer数据,每一像素点只能获得R、G、B三基色中的 一种彩色分量值。为获得彩色图像,需要利用当前像素及周围像素的色彩分量值,估计出当前点缺失的其他两个分量值。 该模块能输出较高的图像分辨率,对弱细节及清晰度有较大提升。

(11)BayerSharpen模块用于增强图像的弱纹理清晰度,同时还能控制锐化后的图像的overshoot和undershoot,以及抑制噪声的增强。

(12)黑电平通常指没有外界光线输入时, sensor仍会输出的亮度值。ISP需要减去这个亮度值,以进行颜色的处理。

(13)去固定模式噪声:Sensor将光信号转换成电信号,再通过数百万个ADC器件后输出图像。每个像素结构 中的光电二极管的尺寸、掺杂浓度、生产过程中的沾污以及MOS场效应管的参数的偏 差等都会造成像素输出信号的变化,由于这些偏差造成的噪声对于给定的单个像素它 是固定的,这种噪声就是固定模式噪声FPN(Fixed Pattern Noise)。

(14)颜色调整模块:支持在YUV空间进行色域调整的操作,这个模块下有两个模式, 一个是CA模式,另外一个是CP模式(热成像上色),工作的时候,两者只能二选一。 在CA模式下,通过下面的公式可以将一个像素点( Y,U,V )映射到另一个像素点 ( Y’,U’,V’)。

(15)色差(Chromatic Aberration)是指光学上透镜无法将各种波长的光聚焦在同一点上的现象,是一种与镜头有关的缺陷,它产生的主要原因是不同波长的光具有不同的折射率 (色散现象)。色差可以分为如下的两类:

● 轴向色差(Axial Chromatic Aberration)
透镜对于不同的光会有不同的折射率,因此不同颜色的光会聚焦在不同的焦平面上,大口径镜头容易产生这种色差,缩小光圈可以减弱轴向色差。 人眼对于G通道更敏感, 一般G通道可以正确对焦,从而引起R、B的模糊,造成高光区与低光区交界处出现明显的紫边表现。
● 横向色差(Lateral Chromatic Aberration)
透镜的放大倍数也与折射率有关,它使得不同波长光线的像高不同,即不同波长的光会聚焦在焦平面上不同的位置,会造成R 、G、B 3通道具有不同的影像高度,在影像上产生色的错位。 越偏离图像中心,横向色差越明显, 一般横向色差表现为物体相对的两侧边缘出现不同的颜色,但具体表现为什么颜色与镜头组密切相关,不同的镜头组会表现出不同种类的颜色边缘。
CAC模块的作用是对图像中的色差进行自动检测与校正,包含ACAC和LCAC两种色 差校正算法, ACAC作为主要校正算法,不仅可以校正纵向色差,还可以校正横向色差; LCAC作为辅助校正算法,当色差严重时ACAC无法完全校正,可再结合作用于局部色差的LCAC进行校正。
(16)WDR: 由于传统的图像传感器的动态范围比较低,因此,如果用传统的图像传感器拍摄高动态范围的场景,就会要么亮处过曝,丢失很多细节;要么暗处曝光不足,细节难以分辨。为了记录高动态范围场景的每一个细节,可以采用多次曝光图像合成的方法。WDR算法的目的就是将从sensor输出的长短帧数据合成为一帧20bit的数据。长短帧数据是先缓存在DDR中,然后同时给WDR模块进行合成。合成的原则是择优选取,即对于比较亮的区域,采用短帧数据,而对于比较暗的区域,采用长帧数据。
(17)AWB量产标定工具:AWB量产标定结果通过修正AWB的静态白平衡系数实现个体差异校正。因此,用户通过MPI接口修改静态白平衡系数,会导致量产标定失效。
AWB量产标定工具实现在量产过程中,针对不同机器的差异进行对AWB差异参数校正的功能。用户可以调用 ss_mpi_isp_get_lightbox_gain 接口,在色温范围4500K到6500K的均匀光源下的均匀背景环境下,获取图像中心若干个块的Rgain和Bgain的均值,即AWB增益,用于量产过程中矫正不同机器的AWB差异参数。
(18)ColorTone提供色调调节接口,用户可通过该接口实现图像颜色偏红、偏绿、偏蓝等喜
好调节。
(19)LDCI是局域自动对比度增强的简称(Local Dynamic Contrast Improvement)。该算
法采用局域直方图均衡来增强图像局部对比度,提升暗区细节。
(20)Radial Crop:在YUV域对图像进行radial crop操作,将设定半径之外的地方直接拉黑掉。
(21)色彩空间转换模块(Color Space Conversion),用来将RGB信号转换成符合标准的YUV信号。
(22)CLUT:COLOR_3D_LUT是利用线性RGB空间17x17x17分格的3D LUT实现复杂的颜色调整操作,比如亮度的调整,饱和度的调整,色调的调整。阴影区域,中间亮度区域,高亮区域分别调整。它将像素的RGB信号的bit高位用来查找像素点位于表中的位置,利用RGB信号的bit低位用来在表的一个方格中插值出精确的偏移量。将偏移量应用于原像素值,得到调整后的最终像素值,从而使颜色得到调节。
(23)从地址空间来分,当前ISP模块可分为五个部分: AE库、 AWB库、 AF库、 ISP物理寄存
器模块、ISP其他模块。
(24)Inner State Information接口的作用是输出数个与ISO相关的参数其逻辑寄存器当前配置的真实值。 用户在调试过程中可以通过MPI接口读取这些真实值参数,观察参数强度是否正确配置。通过该接口用户只可以获取参数,而非操作改变该寄存器里的值。
(25)DNG (Digital Negative)是Adobe开发的一种开放的 raw image ile format,里面使用的tag基本上都定义在TIFF或者TIFF/EP中,在DNG Sepcification中只是定义或者建议了数据的组织方式,颜色空间的转换等等。DNG spec标准文档来定义和确定具体的dng数据格式,对标准文档中定义的标签和规定,根据实际应用场景和客户需求选择必要的最小集合实现。将raw数据封装成标准dng文件,可以由dng解析工具进行解析。
(26)


http://www.kler.cn/a/529718.html

相关文章:

  • Zemax 中带有体素探测器的激光谐振腔
  • taro遇到的问题
  • 从0开始使用面对对象C语言搭建一个基于OLED的图形显示框架(协议层封装)
  • PhotoShop中JSX编辑器安装
  • 游戏引擎 Unity - Unity 启动(下载 Unity Editor、生成 Unity Personal Edition 许可证)
  • DDD - 微服务架构模型_领域驱动设计(DDD)分层架构 vs 整洁架构(洋葱架构) vs 六边形架构(端口-适配器架构)
  • 2025年Android开发趋势全景解读
  • 基于java SSM的房屋租赁系统设计和实现
  • MATLAB中的IIR滤波器设计
  • 【前端学习路线】前端优化 详细知识点学习路径(附学习资源)
  • Rust 的基本类型有哪些,他们存在堆上还是栈上,是否可以COPY?
  • 影视文件大数据高速分发方案
  • Vue - shallowRef 和 shallowReactive
  • 一文讲解HashMap线程安全相关问题(上)
  • Synchronized和ReentrantLock的区别
  • leetcode——两两交换链表中的节点(java)
  • 省级生活垃圾无害化处理率面板数据(2004-2022年)-社科数据
  • super关键字
  • 自定义数据集,使用scikit-learn 中K均值包 进行聚类
  • 数据分析系列--[12] RapidMiner辨别分析(含数据集)
  • Kafka ACL(访问控制列表)介绍
  • c/c++高级编程
  • 聚簇索引、哈希索引、覆盖索引、索引分类、最左前缀原则、判断索引使用情况、索引失效条件、优化查询性能
  • Python 网络爬虫实战:从基础到高级爬取技术
  • K个不同子数组的数目--滑动窗口--字节--亚马逊
  • 算法随笔_37: 交替合并字符串