2025年02月06日 海思平台ISP各模块介绍 极客笔记
sensor 对光谱的响应,在 RGB 各分量上与人眼对光谱的响应通常是有偏差的,通常通过一个色彩校正矩阵校正光谱响应的交叉效应和响应强度,使前端捕获的图片与人眼视觉在色彩上保持一致。
重要概念:
Sharpen 模块用于增强图像的清晰度,包括调节图像边缘的锐化属性和增强图像的细节和纹理的清晰度,同时还能分别独立控制图像的带方向的边缘和无方向的细节纹理的 锐化强度。此外,还能控制锐化后的图像的 overshoot(白边白点)和 undershoot(黑 边黑点),以及抑制噪声的增强。
EdgeMark 模块用于将图像中的强边缘和强的纹理特征标记上色。
该功能用于手动对焦时,帮助用户直观的看清确定当前图像是否对焦清晰。建议用户只在手动对焦的过程 中使用该功能,对强边缘和强的纹理特征标记的颜色尽量跟图像背景颜色形成明显的 反差,这样,在对焦过程中,用户对焦越清晰,就会看到图像中被标记上色的强边缘 和强的纹理特征越多,从而可以让用户直观的了解到对焦的清晰程度,辅助用户手动 对焦。由于 EdgeMark 模块做在 Sharpen 模块一起,所以,当 Sharpen 模块被 bypass 关闭时,EdgeMark 的功能也将失效。但是,EdgeMark 被 bypass 关闭不会影响 Sharpen 的功能。
Hi3559V200/Hi3556V200/Hi3516EV200/Hi3516EV300 不支持此模块。
HLC(High Light Cover)高光遮蔽模块,是用于将图像中亮度最高的区域(一般都是 夜晚场景的车灯或者路灯等光源)拉灰,以减少类似于车灯等高亮光源对人眼的刺激。
Hi3559AV100/Hi3559V200/Hi3556V200/Hi3516EV200/Hi3516EV300 不支持此模 块。
Gamma 模块对图像进行亮度空间非线性转换以适配输出设备。
Gamma 模块校正 R、 G、B 时调用同一组 Gamma 表,Gamma 表各节点之间的间距相同,节点之间的图像像 素值使用线性插值生成。
DRC 算法用于对 WDR 合成后的数据进行动态范围压缩(Dynamic Range Compression)。图像一般需要在显示设备上显示,CRT 显示器的动态范围一般只有 102 dB,而 WDR 合成后的数据的动态范围可以达到 109 dB,如果直接在 CRT 显示器上 显示,就会由于动态范围不匹配的问题,造成丢失亮度较高或者较低处的细节。
DRC 算法的目的就是要使真实场景的观察者和显示设备的观察者都能获得相同的视觉感受。DRC 算法将高动态范围的图像压缩到显示器的动态范围,同时尽可能的保留原 图像的细节和对比度。
镜头的物理结构决定了 sensor 的中心比外围能接收到更多的光,相对中心来说外围就 是阴影,这个现象叫做渐晕(vignetting)。
镜头阴影校正就是用来对图像出现的暗角进行补偿校正。进行亮度校正时,R、G、B 三分量可以使用同样的参数;进行颜色校 正时则使用各自单独的校正参数。该 ISP 支持 radial 和 mesh 两种校正机制。
使用 Radial 校正,对 R、G、B 三分量,分别设置中心点和校正系数。校正系数描述 了以同心环状从中心点到最远角落处的增益,由大小为 129 的查找表表示,数据格式 为无符号小数,定点 4.12,理论上能表示最大 16 倍的增益。校正系数由离线校正工具 生成。
使用 Mesh 校正,对 R、G、B 三分量分别设置校正系数表。根据校正系数表里各分块 (最大 64*64)的增益系数双线性插值得到图像像素的校正增益,校正系数是 8bit 定点 小数,小数点的位置由 MeshScale 设定。校正系数由离线校正工具生成。Mesh 校正 最大支持 4 种色温光源下的阴影校正,各光源下的校正系数按照指定方式存放在校正 系数表里,并且根据环境色温,对设置的相邻色温校正系数进行线性插值得到当前色 温的校正系数。
坏点校正模块通过使用内部坏点校正逻辑完成坏点检测,校正过程完成之后,获取到了坏点坐标,通常的做法是将坏点坐标存在 Flash 中,以后断电重新启动之后加载坏点坐标,无须重新校正。
Hi3519V101 坏点校正算法实现主要是通过一个窗口为 5×5 的模块找出该窗口内像素明显异于临近像素的坏点。
该模块的实现了以下两种模式
静态坏点检测/校正会对 R,Gr,Gb,B 四个分量分别处理,若 Bayer 图像中出现图 7-3 所示的坏点类型,则可以对其校正;图 7-4 所示的坏点类型不能完全校正。其中 黑色块表示某一颜色通道(R/Gr/Gb/B)上的坏点。支持的最大坏点数为 4095,分 为亮点和暗点流程。
动态坏点检测/校正
由于存储坏点信息的 memory 有限,静态坏点校正有可能无法完全校正 sensor 中的坏点,因 此静态坏点校正应当校正对图像质量影响最大的坏点,而动态坏点校正方法则校正其余的坏 点;
Crosstalk Removal 模块的主要功能是为了平衡 rawdata 之间临近像素 Gr 和 Gb 之间的 差异,能够有效防止 demosaic 插值算法产生的方格或其他类似 pattern。由于 sensor 可 能会因为特殊角度的光线入射而产生 Crosstalk,形成一些 pattern,根本原因就是因为 临近像素值之间 Gr 和 Gb 值域不一致。
Hi3559V200/Hi3556V200 不支持此模块。
如上图所示,横坐标表示 Gr 与 Gb 之间的差值,即|Gr-Gb|,纵坐标表示处理的强度 值。
去噪模块在 Bayer 域进行空域处理,分别对亮度噪声和色度噪声做去噪处理,且四个 通道强度分别可调,具有保留边缘和纹理的优点,并对随机噪声有一定的保留,提高 整体图像信噪比。去噪算法针对每款 sensor 的噪点特性进行处理,sensor 的噪点特性通过离线校正工具得到。
去噪算法有两种模式:自动模式和手动模式
DIS 模块通过比较当前图像与前一帧图像来计算出当前图像抖动位移大小,并传递到 后级模块,进行输出图像范围的调整,从而起到防抖的效果。每帧图像经过 DIS 后得 到一组 CROP 的起点(X,Y),再经过后端 VPSS CROP 功能处理,达到防抖效果。
对于每一帧图像来说,DIS 模块确定了能够使图像保持稳定的水平偏移量 和垂直偏移 量 。默认情形下,硬件在水平方向和垂直方向输出的像素偏移幅度范围是:[-128, +128],DIS 偏移示意如图所示
VPSS 裁剪后输出的图像大小为内部的长方形,ISP 的 frame buffer 存储的图像大小为外部长方形,当图像抖动后,DIS 模块输出水平方向和垂直方向的偏 移量 ,VPSS 根据这两个偏移量的进行裁剪后输出稳定的图像。 DIS 功能只能 VI 在线,VPSS 离线模式下使用。
Dehaze 是通过动态的改变图象的对比度和亮度来实现的,将图像分块,统计每块内的 像素值,估算出雾的浓度,根据局部自适应曲线调整去雾强度。Dehaze 分为手动和自 动模式,两种模式下均可调节去雾强度。
高频分量在图像插值时易引起高频混叠。用镜头对准一个分辨率测试卡,当 sensor 表 面没有 OLPF 时,在分辨率的高频部分容易出现伪彩。
去除伪彩主要是指去除高频部分因插值错误所导致的伪彩现象。增大去伪彩强度值会 减弱伪彩现象,但可能导致正常的颜色灰度化。
该模块原理是计算出伪彩出现区域及范围,通过可配去伪彩强度寄存器值调整去伪彩 强度值,将 RGB 三个通道值灰度化,从而达到减弱伪彩现象的目的。
HI_MPI_ISP_SetAntiFalseColorAttr:设置 AntiFalseColor 参数。
HI_MPI_ISP_GetAntiFalseColorAttr:获取 AntiFalseColor 参数。
Demosaic 模块实现的功能是:将输入的 Bayer 数据转化成 RGB 数据。CFA(Color Filter Array,彩色滤波阵列)得到的 Bayer 数据,每一像素点只能获得 R、G、B 三基 色中的一种彩色分量值。为获得彩色图像,需要利用当前像素及周围像素的色彩分量 值,估计出当前点缺失的其他两个分量值。
该模块能输出较高的图像分辨率,对弱细节及清晰度有较大提升。
HI_MPI_ISP_SetDemosaicAttr:设置去马赛克属性
HI_MPI_ISP_GetDemosaicAttr:获取去马赛克属性
黑电平通常指没有外界光线输入时,sensor 仍会输出的亮度值。ISP 需要减去这个亮度 值,以进行颜色的处理。
Sensor 将光信号转换成电信号,再通过数百万个 ADC 器件后输出图像。每个像素结构 中的光电二极管的尺寸、掺杂浓度、生产过程中的沾污以及 MOS 场效应管的参数的偏 差等都会造成像素输出信号的变化,由于这些偏差造成的噪声对于给定的单个像素它 是固定的,这种噪声就是固定模式噪声 FPN(Fixed Pattern Noise)。
去 FPN 模块就是要把这些固定模式噪声消除。
步骤 1. 首先关闭镜头的光圈,让 sensor 采集黑帧。
步骤 2. 启动标定,当第一帧过来时,把满足标定条件的 RAW 数据写到内存 ,当第二帧过来 时,通过读出端口把内存中的黑帧读出来与第二帧进行累加后再通过写出端口再写回 内存,后面的帧也是这样,但是最后一帧写出时会对累加的黑帧平均后再写回内存。
步骤 3. 当求平均写出后,标定结束。此时,内存中就把低照度下的固定列噪声存储下来了, 然后,把该黑帧存储到外存上即可。
步骤 1. 把标定好的黑帧从外存载入到内存中。
步骤 2. 当从 sensor 过采集过来的带 FPN 的正常图像过来后,用每帧都减去在内存中的黑帧, 从而就得到了消除 FPN 后的校正帧。
颜色调整模块支持在 YUV 空间进行色域调整的操作,这个模块下有两个模式,一个是 CA 模式,另外一个是 CP 模式(热成像上色),工作的时候,两者只能二选一。
在 CA 模式下,通过下面的公式可以将一个像素点(Y,U,V)映射到另一个像素点 (Y’,U’,V’)。
Y’=Y;
U’=aU;
V’=aV;
其中 a 是转换系数,采用这组公式可以在一定程度上保持亮度和色调的恒定,对像素 点的饱和度做一个调整。转换系数 a 和像素点亮度 Y 联系,就可以根据亮度的变化来 调整饱和度,达到局部调整饱和度的目的,亮处的颜色更鲜艳,暗处的色噪不明显。 同时,转换系数 a 和 ISP 的 ISO 值联系,达到降低低照度下的暗处色噪的目的。
在 CP 模式下,热成像的图像只有亮度信息,该模式下通过亮度信息 Y 查找上色的色 板,查找对应的 YUV 的值作为输出的值。其中,色板是通过 YUV 格式存储的。
色差(Chromatic Aberration)是指光学上透镜无法将各种波长的光聚焦在同一点上的现 象,是一种与镜头有关的缺陷,它产生的主要原因是不同波长的光具有不同的折射率 (色散现象)。色差可以分为如下的两类:
由于传统的图像传感器的动态范围比较低,因此,如果用传统的图像传感器拍摄高动 态范围的场景,就会要么亮处过曝,丢失很多细节;要么暗处曝光不足,细节难以分 辨。为了记录高动态范围场景的每一个细节,可以采用多次曝光图像合成的方法。
WDR 算法的目的就是将从 sensor 输出的长短帧数据合成为一帧 20bit 的数据。长短帧数据是先缓存在 DDR 中,然后同时给 WDR 模块进行合成。合成的原 则是择优选取,即对于比较亮的区域,采用短帧数据,而对于比较暗的区域,采用长 帧数据。
WDR 相关模块是为了支持 sensor WDR 模式和多帧合成 WDR 模式而需要额外配置或 有特殊配置的模块。Hi3519V101 无论是线性模式还是 WDR 模式,统计信息都是线性 的。
Sensor Built-in WDR 模式的处理流程图如下图所示。
说明如下:
Hi3519V101 两路 ISP 分别支持 4 帧合 1 和 2 帧合 1,其中 ISP0(16M)最大支持 2M 4 合 1、3M 5 合 1、8M 2 合 1,ISP1(8M)最大只支持 8M 2 合 1。多帧合成 WDR 模式的处 理流程图如下图所示。
以 4 帧合成 WDR 说明如下:
Sensor 输出的 L 帧,M 帧和 S 帧图像数据先送到 DDR 缓存,在 VS 帧数据准备好 的时候再从 DDR 读出送到 Channel 2/3/4,VS 帧图像数据直接送给 Channel 1;其 中 L、M、S 和 VS 分别表示长帧、中帧、短帧和极短帧。
Channel Switch 模块用于选择各通道源数据,一般不需要配置;
FS WDR 模块接收 4 帧不同曝光数据进行合成,得到 20bit 的图像数据;
DRC 模块用于提高图像的动态范围,必须使能;
Gamma 可以采用与线性模式相同的曲线;
色彩空间转换模块,用来将 RGB 信号转换成符合标准的 YUV 信号
本文链接:http://so.lmcjl.com/news/22679/