ISP Tuning
1. 简介
1.1 常用知识
- 要调的模块,先Enable, 调完后点ApiApply
- 调整步骤:
1)AE Table (AEPlainLongTbl)
2)OBC: 在线性模式把OBC调好,HDR把长曝的OBC复制到短曝就可以
3)AWB (6500-D65, 4000-TL84, 3000-U30)
4)ALSC (AE Target: 1500 所有值一样, 6500, 4000, 3000) CWF: 4150
5)再次确认AWB (微调)
6)Gamma (拉Gamma曲线,最下面一行灰度RGB值接近原图, Gamma调亮度,不平滑,图像会有孔洞, 协调自然亮度和主观灰阶感受这二者的映射关系)
7)CCM (调颜色 0 = 8192, 行之sum为1024,先write, 再read, sum自动更新, 主要调RGB三种颜色,分别调列RGB, 值大,权重大)
8)清晰度(sharpness, 原则:不能有严重的锯齿, 黑白边不能太强, 噪声不能太多)
9)3DNR, 2DNR, NRLuma 调清晰度+降噪 - AE Target offset: 画面的目标亮度
- AE Target BV: 环境的亮度
- Index的值由Total Gain决定 (如AE Index)
- Gamma:
- 输出=输入/伽马
- 斜率高于1的Gamma值将会造成输出暗化,低于1的Gamma值将会造成输出亮化
- Gamma曲线:横轴:自然界线性增长的亮度, 纵轴:人心理上感受到的均匀灰阶
- 阳光下色温: 5135, 室内色温:6166
- 运动物体周边更亮:调WDR GlobalDrakToneEnhance
- 把阴影调亮:调WDR PreEnhance
- 去掉雪花噪声:调NR3D MG.Gain
- 锯齿:NR3D (强度减弱)
- 背景有雾:调WDR
- 板子启动:
####################
# IQ Tunning
####################
# insmod a driver
insmod /config/modules/4.9.84/g_webcam.ko streaming_maxpacket=3072 uac_function_enable=0 uvc_function_enable=0 rndis_function_enable=1
# Sigmastar 9341, sunce the usb endpoints is not enough, so video preview is via rtsp
./customer/mixer -m 180 -q
> hdr 1
# VLC
rtsp://192.168.159.8/video0
####################
# Work normally
####################
insmod /config/modules/4.9.84/g_webcam.ko streaming_maxpacket=3072 uac_function_enable=0 uvc_function_enable=1 rndis_function_enable=0
./prog_uvc -a 0 -A 0 -i /customer/mi_demo/gc2093.bin
1.2 缩略语
-
ISP:Image Signal Processing(图像信号处理,主要功能有线性纠正、噪声去除、坏点去除、内插、白平衡、自动曝光控制等,依赖于ISP才能在不同的光学条件下都能较好的还原现场细节,ISP技术在很大程度上决定了摄像机的成像质量)
-
ISP:Image Signal Processor(像信号处理器)
-
HDR:High-Dynamic Range (双帧合成的高动态范围图像)
-
WDR:Wide Dynamic Range(单帧处理的高动态范围图像)
-
DRC:Dynamic Range Compression (宽动态)
-
VPE:Video Process Engine(图像处理引擎,负责对一帧输入图像进行图像质量调整)
-
CFA:Color Filter Arrays(彩色滤波阵列)
-
BPC:Bad PixelCorrection (坏像素校正)
-
DPC:Defect Pixel Correction(坏点校正)
-
BPD:Bad Pixel Detect(坏点检测)
-
FPN:Fix Pattern Noise(固定模式噪声)
-
EV:Exposure Value(曝光值)
-
BV:Brightness Value (亮度值)
-
NR:Noise Reduction/Denoise(去噪)
-
CT:Color Temperature(色温)
-
DM:Demosaicing/Color Filter Array Interpolation/CFA插值
-
EE:Edge Enhancement/Edge Sharpening(锐化,边缘增强)
-
Demosaic:颜色插值
-
PCA/VDE:Hue,Saturation,Contrast,Brightness调试
-
3A:AE+AWB+AF
-
BT:Bright Tone (明亮的色调)
-
DT:Dark Tone(深色调)
-
AE:Automatic Exposure (自动曝光)
-
AWB:Automatic White Balance (自动白平衡)
-
AF:Automatic Focus(自动聚焦)
-
BLC:Black Level Correction(黑电平校正)
-
OBC: Black Level Compensate (黑电平补偿)
-
CCM:Color Correction Matrix (色彩校正矩阵)
-
LSC:Lens Shading Correction(镜头阴影校正, 只校正Y Shading,工作原理:根据标准光源的raw图生成相应的LSC table,以补偿该光源下的中心到四周的亮度阴影和色彩偏差)

-
ALSC:Auto Lens Shading Correction(自动镜头阴影校正,同时校正Color Shading和Y Shading,工作原理:自动计算生成适合当前场景的LSC table,以消除该场景下的中心到四周的亮度阴影和色彩偏差)
-
LS:Lens Shading分为Luma shading(亮度阴影)和Color shading(色彩偏差)
- Luma shading:产生的原因是镜头通光量从中心到边角依次减少,导致图像看起来,中间亮度正常,四周偏暗。
- Color shading:称作色彩不均匀性,在不同色温下RGB三原色的透射能力不同,拍照时表现为图像色彩不均匀。
-
Normal mode :表示为Linear mode(single frame) 和HDR mode(2 frames)
-
Combine mode :表示为Sensor端完成长、短曝光的合成影像包含影像数据压缩程序
-
AE Target: ISP 希望 sensor 输出的图片达到的亮度(目标亮度:通常根据环境亮度BV设置对应的值),对于第一次进相机,ISP 检测到当前帧的亮度 cur_luma 低于目标亮度 target_luma,就会增大 exp_index 获取新的 gain & line_count 进行重新曝光,直到 cur_luma 和 target_luma 相当
-
ES:Exposure Strength (曝光强度 = 曝光时间 * 光圈大小 * ISO<Sensor Analog/Digital Gain, ISP Digital Gain>)
1.1 Sensor动态范围
- Sensor的动态范围:就是sensor在一幅图像里能够同时体现高光和阴影部分内容的能力。
- 用公式表达这种能力就是:
d r = 20 l o g 10 ( i m a x / i m i n ) dr = 20 log_{10}({i_{max}/i_{min}}) dr=20log10(imax/imin)- d r dr dr:单位为dB
- i m a x i_{max} imax:是sensor的最大不饱和电流,也可以说是sensor刚刚饱和时候的电流
- i m i n i_{min} imin:是sensor的底电流(blacklevel)
2. 常用算法
2.1 BLC
- 定义:黑色数据的最低电平值,通常指感光图像数据为0时对应的sensor信号电平值
- 形成成因:
- CMOS传感器采集的信息经过一系列转换生成原始RAW格式数据。以8bit数据为例,单个pixel的有效值是0~255,但是实际AD芯片(模数转换芯片)的精度可能无法将电压值很小的一部分转换出来,因此,sensor厂家一般会在AD的输入之前加上一个固定的偏移量,使输出的pixel value在5(非固定)~255之间,目的是为了让暗部的细节完全保留,当然同时也会损失一些亮部细节,由于对于图像来说,我们的关注度更倾向于暗部区域,ISP后面会有很多增益模块(LSC、AWB、Gamma等),因此亮区的一点点损失是可以接受的。
- sensor的电路本身会存在暗电流,导致在没有光线照射的时候,像素单位也有一定的输出电压,暗电流这个东西跟曝光时间和gain都有关系,不同的位置也是不一样的。因此在gain增大的时候,电路的增益增大,暗电流也会增强,因此很多ISP会选择在不同gain下减去不同的BL的值。
- 若sensor输出raw数据中有附加的黑电平值,需要在ISP最前端去干净。如果不去干净,干扰信息会影响后端ISP各模块的处理,尤其会导致AWB容易不准,出现画面整体偏绿或者整体偏红现象。
- 校正方法
- 一般BLC模块会放在ISP比较靠前的位置,因为我们希望图像在进入其他模块之前能够还原最为真实的图像。有些sensor会在sensor内部集成BLC的模块,那么此时ISP里的BLC模块只做微调即可
- 由于硬件设计人员在设计BLC模块时需要考虑效果和成本,因此目前市场上使用的ISP一般采用的方法是在sensor输出的图像上减去一个固定数值,该固定值,对RGB各通道可以是一样,也可以是不一样,目前大多数厂家如安霸、海思等基本都是采用该方案
- 利用黑电平随温度和gain的漂移曲线,利用一次函数的方式进行校正,但是对于不同sensor,漂移曲线不一样,因此该方案没有作为通用方案
2.2 AWB (处理色温引起的偏色问题)
- 由于sensor 上R、G、B pixel的感光特性不同,因此在不同光源下看到的灰阶会有色偏,AWB主要的目的就是希望自动找出一组Rgain、Bgain来做补偿,让画面中灰阶的地方R、G、B值尽量接近。
- AWB的统计值是将整张画面切成128×90个等分,每个等分都具有代表的R、G、B值,预设横轴有做取样来减少运算量,因此实际只有64×90个统计值。如果想查看某个场景的统计信息,可以开启AWB Analyzer外挂程式,点击Update可更新为当时的统计信息,图表横周轴代表(R/G)×100,纵轴代表(B/G)×100,因此每个区块都能以本身的R、G、B值算出一组座标,并将落点以绿点显示在窗口上,如下所示。

2.2.1 色温(Color Temperature:温度越低色温越高)
- 定义:光源色温的定义为与此光源发出相似的光的黑体辐射体所具有的开尔文温度。
- 单位:色温是表示光线中包含颜色成分的一种计量标准,色温的单位是“K”,也叫“开尔文
- 色温表
- 红——橙红——黄——黄白——白——蓝白的渐变过程

- 红——橙红——黄——黄白——白——蓝白的渐变过程
- 常见光的色温
- 蓝色属于高色温,大约9300K;中午的日光属于中等色温,大约5500K;蜡烛的橙黄色属于低色温,大约1700K

- 蓝色属于高色温,大约9300K;中午的日光属于中等色温,大约5500K;蜡烛的橙黄色属于低色温,大约1700K
2.2.2 为什么需要AWB (消除光源颜色的影响)
- 人类视觉系统具有颜色恒常性的特点,因此人类对事物的观察可以不受到光源颜色的影响。但是图像传感器本身并不具有这种颜色恒常性的特点,因此,其在不同光线下拍摄到的图像,会受到光源颜色的影响而发生变化。例如在晴朗的天空下拍摄到的图像可能偏蓝,而在烛光下拍摄到的物体颜色会偏红。因此,为了消除光源颜色对于图像传感器成像的影响,自动白平衡功能就是模拟了人类视觉系统的颜色恒常性特点来消除光源颜色对图像的影响的。
- Sensor原始图像中的白色如果不经AWB处理,在高色温(如阴天)下偏蓝,低色温下偏黄,如宾馆里的床头灯

- 这张图可以理解为在多光源下的白平衡调整.阴影色温比阳光下色温要高一些,如果阳光下是5000k,阴影可能是7000k.有光就有影,它们经常出现在一个镜头里,对着其中一个色温调,另一边就会偏色.为了整体效果好,要把翘翘板平衡起来,可以加一些策略在里面。
2.2.3 AWB的目标
- 对于白色物体,如果它周围的光线色温较低,那么它看起来就会偏微红色; 相反,如果它周围的光线色温较高,那么它看起来就会偏微蓝色。因此,AWB的作用就是用来处理图像的色彩,使其看起来更加接近自然色
- 为了让人主观上认可拍出来的图,必须把不同光照下的物体颜色纠正成人眼认同的颜色。比如 ,不同光照下的白色区域RGB值不相等,但为了满足人眼,需要把它们调成相等。白色区域配平后,RGB三个通道分别得到一个调节系数,其他像素也根据这系数做调整,就叫做白平衡。

- 上图中,左边是原图像,可以很明显的看到处于一种暖色调的状态,以至于原本是白色的云也显得偏暖偏黄;而右边的图是经过自动白平衡处理后的结果图像,可以看出白云蓝天回归了正常的色彩,还有建筑也显得更加真实、自然,符合人眼观感。
2.2.4 如何实现自动白平衡 (先确定色温然后找对应调节系数)
- 为了适应人眼视觉的特点,相机厂家会把常见的光源条件下,其相机产品的对应白平衡参数调出来,让用户自动去选择拍摄的场景和对应的参数组。但对于普通用户,还是希望简单粗暴直接的一个按钮搞定,所以相机自己就需要识别当前场景的光源色温,根据色温类型查找对应的RGB平衡参数,这就是自动白平衡(AWB)。
2.3 CCM (还原色彩和饱和度)
- 一般来说sensor 对光谱的响应,在 RGB 各分量上与人眼对光谱的响应通常是有偏差的,通常通过一个色彩校正矩阵CCM(Color Correction Matrix)校正光谱响应的交叉效应和响应强度,使前端捕获的图片与人眼视觉在色彩上保持一致。
- 色彩还原:通常通过一个色彩校正矩阵校正光谱响应的交叉效应和响应强度,使ISP 处理后的图片与人眼视觉在色彩上保持一致。
- 饱和度:也称色彩的纯度。取决于该色中含色成分和消色成分(灰色)的比例。含色成分越大,饱和度越大;消色成分越大,饱和度越小。
- 离线校准工具 Calibration Tool 支持 3x3 Color Correction Matrix 的预校正。在 ISP 运行时,FW 根据当前的光照强度,调整饱和度,实现 CCM(Color Correction Matrix)矩阵系数的动态调整。
- CCM矩阵

2.4 AE (根据统计值将画面整体亮度控制在一个理想的状态)
- AE 的目的在于通过收到的统计值将画面整体亮度控制在一个理想的状态。我们一般是根据目前的环境亮度来确定我们需要调到的一个目标亮度Target。AE有一个内收敛和外收敛区间,这就决定了Target是一个区间而不是一个确定值。
- 内收敛区间:是我们需要从当前亮度调至目标亮度的区间内,就停止收敛。
- 外收敛区间:是稳定时亮度在目标亮度的区间外,则开始进行收敛。
- 一般主要是根据不同的环境亮度来配置目标亮度,然后配置曝光行程表。配置Target时要注意值的大小,避免跳档。配置曝光行程表是要做到每个档位的变化只修改一个变量,避免跳档时图像变化过大。
- AE Target Offset与AE Target的关系:
- AE Target与曝光行程表的关系:

本文详细介绍了图像信号处理(ISP)中的关键算法,包括自动曝光(AE)、自动白平衡(AWB)、色彩校准(CCM)以及亮度、照度和光通量的关系。AE通过统计图像亮度信息调整曝光参数,确保画面亮度适中;AWB处理色温引起的偏色问题;CCM用于还原色彩和饱和度;LSC和ALSC则针对镜头阴影和色彩偏差进行校正。此外,文章还讨论了ISP调试流程和标定方法,以及AE的工作流程,展示了ISP参数调整对图像质量的影响。
1305

被折叠的 条评论
为什么被折叠?



