写在前面,本文为笔者参考了很多篇博客,传感器手册,芯片手册,汇总了 ISP 可能涉及到的步骤流程,整理所得万字长文,并针对 ISP 芯片流程图总结画出了题图的 ISP 流程图,如有错误轻喷。

主要包含:内部结构/控制方式 / ISP 架构方案 / ISP 工作流程 / 图像接入 ISP 的方式 / 黑电平校正 / 镜头阴影校正 / 坏点校正 / 绿平衡 / 降噪 / 颜色插值 / 色温 / 自动白平衡 / 颜色校正 / 伽马校正 / 颜色空间变换 / 宽动态范围 / 锐化 / 自动曝光 / 自动对焦 / 串扰 / 去假彩 / 耀斑补偿 / 自动光圈 / 其他

ISP(Image Signal Process),在相机成像的整个环节中,它负责接收感光元件(Sensor)的原始信号数据,可以理解为整个相机拍照、录像的第一步处理流程,用于处理图像信号传感器输出的图像信号。它在相机系统中占有核心主导的地位,是构成相机的重要设备。

主要作用是对前端图像传感器输出的信号做后期处理,主要功能有线性纠正、噪声去除、坏点去除、内插、白平衡、自动曝光控制等,依赖于 ISP 才能在不同的光学条件下都能较好的还原现场细节,ISP 技术在很大程度上决定了摄像机的成像质量,是拍照过程中的运算处理单元,其地位相当于相机的“大脑”。

使用相机和手机等设备拍照时:

  1. 光学镜片:把光聚焦到传感器上
  2. 传感器:将光信号转换成电信号
  3. ISP:将传感器得到的信号进行处理得到可视图像
  4. 最后由手机或相机设备处理器处理储存和显示图片

ISP 通过运行在其上的 firmware(固件)对 ISP 逻辑,从而对 lens 和 sensor 进行相应控制,进而完成自动光圈、自动曝光、自动白平衡等功能。

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

ISP 的 Firmware 包含三部分,一部分是 ISP 控制单元和基础算法库,一部分是 AE/AWB/AF 算法库,一部分是 sensor 库。Firmware 设计的基本思想是单独提供 3A 算法库,由 ISP 控制单元调度基础算法库和 3A 算法库,同时 sensor 库分别向 ISP 基础算法库和 3A 算法库注册函数回调,以实现差异化的 sensor 适配。

ISP firmware 架构

内部结构

CPU

CPU 即中央处理器,可以运行 AF、LSC 等各种图像处理算法,控制外围设备。现代的 ISP 内部的 CPU 一般都是 ARM Cortex-A 系列的,例如 Cortex-A5、Cortex-A7。

SUB IP

SUB IP 是各种功能模块的通称,对图像进行各自专业的处理。常见的 SUB IP 如 DIS、CSC、VRA 等。

图像传输接口

图像传输接口主要分两种,并口 ITU 和串口 CSI。CSI 是 MIPI CSI 的简称,鉴于 MIPI CSI 的诸多优点,在手机相机领域,已经广泛使用 MIPI-CSI 接口传输图像数据和各种自定义数据。外置 ISP 一般包含 MIPI-CSIS 和 MIPI-CSIM 两个接口。内置 ISP 一般只需要 MIPI-CSIS 接口。

通用外围设备

通用外围设备指 I2C、SPI、PWM、UART、WATCHDOG 等。ISP 中包含 I2C 控制器,用于读取 OTP 信息,控制 VCM 等。对于外置 ISP,ISP 本身还是 I2C 从设备。AP 可以通过 I2C 控制 ISP 的工作模式,获取其工作状态等。

控制方式

CPU 处理器包括:AP、BP、CP。 BP:基带处理器、AP:应用处理器、 CP:多媒体加速器。这里所说的控制方式是 AP 对 ISP 的操控方式。

  • I2C/SPI:一般是外置 ISP 的做法。SPI 一般用于下载固件、I2C 一般用于寄存器控制。在内核的 ISP 驱动中,外置 ISP 一般是实现为 I2C 设备,然后封装成 V4L2-SUBDEV。
  • MEM MAP:一般是内置 ISP 的做法。将 ISP 内部的寄存器地址空间映射到内核地址空间,
  • MEM SHARE:内置 ISP 的做法。AP 这边分配内存,然后将内存地址传给 ISP,二者实际上共享同一块内存。因此 AP 对这段共享内存的操作会实时反馈到 ISP 端。

ISP 架构方案

上文多次提到外置 ISP 和内置 ISP,这实际上是 ISP 的架构方案。它可以分为独立与集成两种形式。

外置 ISP 架构

指在 AP 外部单独布置 ISP 芯片用于图像信号处理。外置 ISP 的架构图一般如下所示:

外置 ISP 架构

外置 ISP 架构的优点主要有:

  • 能够提供更优秀的图像质量 :在激烈的市场竞争下,能够存活到现在的外置 ISP 生产厂商在此领域一般都有很深的造诣,积累了丰富的影像质量调试经验,能够提供比内置 ISP 更优秀的性能和效果。因此,选用优质的外置 ISP 能提供专业而且优秀的图像质量。
  • 能够支援更丰富的设计规划 :外置 ISP 的选型基本不受 AP 的影响,因此魅族可以从各个优秀 ISP 芯片供应商的众多产品中甄选最合适的器件,从而设计出更多优秀的产品。
  • 能够实现产品的差异化:内置 ISP 是封装在 AP 内部的,是和 AP 紧密的联系在一起,如果 AP 相同,那么 ISP 也就是一样的。因此基于同样 AP 生产出来的手机,其 ISP 的性能也是一样的,可供调教的条件也是固定的,这样就不利于实现产品的差异化。而如果选择外置 ISP,那么同一颗 AP,可以搭配不同型号的 ISP,这样可以实现产品的差异化,为给用户提供更丰富和优质的产品。

外置 ISP 架构的缺点主要有:

  • 成本价格高:外置 ISP 需要单独购买,其售价往往不菲,而且某些特殊功能还需要额外支付费用。使用外置 ISP,需要进行额外的原理图设计和 LAYOUT,需要使用额外的元器件。
  • 开发周期长 :外置 ISP 驱动的设计需要多费精力和时间。使用外置 ISP 时,AP 供应商提供的 ISP 驱动就无法使用,需要额外设计编写外置 ISP 驱动。另外,为了和 AP 进行完美的搭配,将效果最大化,也往往需要付出更多的调试精力。上文也提到,使用外置 ISP,需要进行额外的原理图设计和 LAYOUT,需要使用额外的元器件,这也是需要花费时间进行处理的。

内置 ISP 架构

在 AP 内部嵌入了 ISP IP,直接使用 AP 内部的 ISP 进行图像信号处理。 内置 ISP 的架构图一般如下所示:

内置 ISP 架构

内置 ISP 架构的优点主要有:

  • 能降低成本价格:内置 ISP 内嵌在 AP 内部,因此无需像外置 ISP 一样需要额外购买,且不占 PCB 空间,无需单独为其设计外围电路,这样就能节省 BOM,降低成本。鉴于大多数用户在选购手机时会将价格因素放在重要的位置,因此降低成本能有效的降低终端成品价格,有利于占领市场。
  • 能提高产品的上市速度:内置 ISP 和 AP 紧密结合,无需进行原理图设计和 LAYOUT 设计,因此可以减小开发周期,加快产品上市的速度。
  • 能降低开发难度:如果使用内置 ISP,那么 AP 供应商能在前期提供相关资料,驱动开发人员可以有充足的时间熟悉相关资料,而且不会存在软件版本适配问题,也不存在平台架构兼容性问题。

使用内置 ISP 当然也有相应的不足之处: ISP 供应商往往都不能提供针对某个平台的代码/资料,而且一般都存在软件版本兼容问题,这就需要驱动开发人员付出额的经历和时间。

事实上,鉴于 ISP 的重要性,为了推广其 AP,提高其 AP 竞争力,现在 AP 内置的 ISP 也越来越强大,其性能足以满足手机市场的需求。再加上其一系列优点,现在使用内置 ISP 方案的手机越来越多。

ISP 工作流程

ISP 的功能比较杂,基本上跟图像效果有关的它都有份。它内部包含多个图像算法处理模块,实际情况下,不同芯片的 ISP,其处理流程和模块可能会稍有不同,但是其原理、实现功能都是一样的。

ISP 输入图像的格式

目前很多相机、摄像机产品都会在镜头光路中插入一个红外截止滤光片,其作用是允许波长小于截止频率的光进入系统,而阻止波长大于截止频率的光。常用的截止频率有 630nm 和 650nm 两种,它们允许不同程度的红光进入成像系统,因此会对白平衡和颜色校正算法产生影响,所以 ISP 的参数配置必须要与实际选用的截止频率相配置。

目前主流的 CMOS sensor 几乎都是输出 Bayer mosaic 格式的 RAW 数据。Bayer 格式图片是伊士曼·柯达公司科学家 Bryce Bayer(1929 –2012)发明的,拜耳阵列被广泛运用与数字图像处理领域。Bayer CFA 作为最经典的阵列,它交替的使用一组(R,G),(B,G)滤镜,其中 G 占总像素的的 1/2,R、B 各占总像素的 1/4,这是由于人眼对绿色更为敏感,能分辨更多的细节,同时 G 占据了光谱中重要且最宽的位置。

常用的 Bayer 格式有 RGGB,、GRBG、GBRG 等多种,因此需要正确配置 ISP 以反应 sensor 的数据格式。华为 P30Pro 夜间拍摄能力较强,用到了 RYYB 的滤镜阵列设计。

GBRG/GRBG/RGGB

RAW 数据的精度常见有 8/10/12/14bit 等规格。安防监控行业较多使用 10/12bit 精度的 sensor,医疗行业则主要使用 12bit 以上精度 sensor,单反和广电行业则主要使用 14bit 精度 sensor。当精度高于 8bit 时,就会自然带来如何存储和表示数据的问题。对与一些带宽和存储资源特别紧张的场合,有些 sensor 会支持压缩表示以节约带宽,但是这就需要 ISP 能够支持相应的压缩格式,否则就需要增加格式适配处理环节,无论是采用硬件还是软件方式实现都会增加系统的复杂度和成本。

4K 分辨率的图像有 800W 个像素,RAW 格式占 1600W 字节,YUV422 格式占 1200W 字节。为了减轻传输带宽和存储的压力,支持 4K 以上的芯片都会在 DMA 上设计一个压缩算法。并进行 Crop/Resize 即改变图像的尺寸。当 DMA 向内存中写入数据时,实际进入内存的是压缩后的数据。当 DMA 从内存中读取数据时,用户得到的是解压缩后的数据。

图像接入 ISP 的方式

使用 ISP 处理图像数据时有两种常用的数据接入方式,即

  • 在线模式:sensor 产生的实时数据和时序控制信号以行为单位送入 ISP 进行处理,具备低延迟的优点,具体表现是一帧图像的第一个像素数据流出 sensor 后马上就进入 ISP 流水线开始处理。
  • 离线模式:待处理的图像以帧为单位存储于系统内存,需要处理时由一个控制逻辑通过 DMA 从内存中读取数据,并添加模拟 sensor 行为的时序控制信号,然后送给 ISP 进行处理,所以 ISP 通常需要等到一帧图像的最后一个像素数据到齐之后才开始启动处理。

黑电平校正

BLC, Black Level Correction

Black Level 是用来定义图像数据为 0 时对应的信号电平。由于暗电流的影响,传感器出来的实际原始数据并不是我们需要的黑平衡(数据不为 0)。所以,为减少暗电流对图像信号的影响,可以采用的有效的方法是从已获得的图像信号中减去参考暗电流信号,那么就可以将黑电平矫正过来。

镜头阴影校正

LSC, Lens Shade Correction

用于消除图像周边和图片中心的不一致性,包含亮度和色度两方面。ISP 需要借助 OTP 中的校准数据完成 LSC 功能。

由于相机在成像距离较远时,随着视场角慢慢增大,能够通过照相机镜头的斜光束将慢慢减少,从而使得获得的图像中间比较亮,边缘比较暗,这个现象就是光学系统中的渐晕。由于渐晕现象带来的图像亮度不均会影响后续处理的准确性。因此从图像传感器输出的数字信号必须先经过镜头矫正功能块来消除渐晕给图像带来的影响。同时由于对于不同波长的光线透镜的折射率并不相同,因此在图像边缘的地方,其 R、G、B 的值也会出现偏差,导致 CA(chroma aberration)的出现,因此在矫正渐晕的同时也要考虑各个颜色通道的差异性。

常用的镜头矫正的具体实现方法是:首先确定图像中间亮度比较均匀的区域,该区域的像素不需要做矫正;以这个区域为中心,计算出各点由于衰减带来的图像变暗的速度,这样就可以计算出相应 R、G、B 通道的补偿因子(即增益)。实际项目中,可以把镜头对准白色物体,检查图像四周是否有暗角。

镜头阴影有两种表现形式,分别是

Luma shading,又称 vignetting,指由于镜头通光量从中心向边缘逐渐衰减导致画面边缘亮度变暗的现象。

Chroma shading,指由于镜头对不同波长的光线折射率不同引起焦平面位置分离导致图像出现伪彩的现象。

Luma shading

画面边缘镜头能量衰减,由于镜头中都会存在多处光阑,当入射光线偏离光轴角度较大时,部分光线就会被光阑遮挡而不能参与成像,因此越靠近 sensor 边缘的像素接收到的曝光量就越低。

边缘像素微透镜焦点和感光面的错位,这个问题在手机 sensor 上通常会更严重一些,因此设计手机 sensor 的厂家会采取一些特定的方法去缓解这个问题。

找到中心点后,以中心点为原心,向周围以圆为单位补 Gain,离中心点越远,补的越大。

一种常用的方法是在微透镜上做文章,即从中心像素开始,微透镜的尺寸略小于感光面的面积一点点,这样越往边缘微透镜与感光面之间的错位就越大,刚好可以补偿入射光线角度增大导致的焦点偏移,使光线可以更好地聚焦到感光面上。

不过深入研究会发现,这个补偿办法其实也是有局限的,如果 sensor 采用的是下图左所示的 FSI 工艺(前照式),从像素微观结构来看,当入射光线角度比较大时,会有较多光线与像素中的金属布线层发生吸收、散射从而产生损失,单纯移动微透镜的位置并不能有效解决这个问题。但是,如果像素采用的是背照式工艺,因为布线层在硅片的另外一侧,所以光线损失会少,补偿效果更加有效。

Vigetting 是由镜头引起的现象,所以 LSC 校正也是针对特定镜头的。若果产品的适配镜头发生变化,原则上需要重新进行 LSC 校正。另外,Vigetting 现象在 sensor 靶面较大、镜头焦距较短时表现更加明显。采用非球面镜头通常可以改善 vignetting。

Chroma shading

Chromatic Aberration Correction, Chromatic Dispersion,色差,色散

光学上透镜无法将各种波长的色光都聚焦在同一点上的现象。它的产生是因为透镜对不同波长的色光有不同的折射率(色散现象)。对于波长较长的色光,透镜的折射率较低。在成像上,色散表现为高光区与低光区交界上呈现出带有颜色的“边缘”,这是由于透镜的焦距与折射率有关,从而光谱上的每一种颜色无法聚焦在光轴上的同一点。色差可以是纵向的,由于不同波长的色光的焦距各不相同,从而它们各自聚焦在距离透镜远近不同的点上;色差也可以是横向或平行排列的,由于透镜的放大倍数也与折射率有关,此时它们会各自聚焦在焦平面上不同的位置。

除了在镜头设计时通过采用具有相同色散特性而方向相反的不同光学材料组成成对的镜片组等手段来控制色差,在 ISP 过程中也能处理色差,对于横向色差,通常在图像全局上进项校正,将红绿蓝三 个颜色通道调整到相同的放大倍数,一般通过标定三个颜色平面的增益来修正,为了控制标定表格的存储空间,通常只标定 MxN 个关键点,任意位置处的像素增益可以使用相邻四个标定关键点通过双线性插值的方法动态计算得到。这对于固定的光学镜头比较有效,但是对变焦镜头则难以适用。

坏点校正

DPC, Defect Pixel Correction, Bad Point Correction

所谓坏点,是指像素阵列中与周围像素点的变化表现出明显不同的像素,因为图像传感器是成千上万的元件工作在一起,因此出现坏点的概率很大。一般来讲,坏点分为三类:第一类是死点,即一直表现为最暗值的点;第二类是亮点,即一直表现为最亮值的点:第三类是漂移点,就是变化规律与周围像素明显不同的像素点。由于图像传感器中 CFA 的应用,每个像素只能得到一种颜色信息,缺失的两种颜色信息需要从周围像素中得到。如果图像中存在坏点的话,那么坏点会随着颜色插补的过程往外扩散,直到影响整幅图像。因此必须在颜色插补之前进行坏点的消除。

由于 Sensor 是物理器件,有坏点是难以避免的;而且使用时间长了坏点会越来越多。通过在全黑环境下观察输出的彩点和亮点,或在白色物体下观察输出的彩点和黑点,就可以看到无规律的散落在各处的坏点。

  1. 检测坏点。在 RGB 域上做 5x5 的评估,如果某个点和周围的点偏离度超过阈值的点为坏点。为了防止误判,还需要更复杂的逻辑,如连续评估 N 帧。
  2. 纠正坏点。对找到的坏点做中值滤波,替换原来的值即可。

绿平衡

GB, Green Balance

由于感光器件制造工艺和电路问题,Gr,Gb 数值存在差异,将出现格子迷宫现象可使用均值算法处理 Gr,Gb 通道存在的差异,同时保留高频信息。

还有一个说法是: Sensor 芯片的 Gr,Gb 通道获取的能量或者是输出的数据不一致,造成这种情况的原因之一是 Gr,GB 通道的半导体制造工艺方面存在差异,另一方面是 Microlens 的存在,特别是 sensor 边缘区域,GB,Gr 因为有角度差异,导致接收到的光能不一致。如果两者差异比较大,就会出现类似迷宫格子情况。

去除噪声

Denoise, Noise Reduction

研究发现,噪声在 ISP 流水线各模块中会不断产生、传播、放大、改变统计特性,对图像质量的影响会越来越大,而且越来越不容易控制。因此处理噪声的基本原则是越早越好,随时产生随时处理,尽可能将问题消灭在萌芽状态。

目前主流的 ISP 产品中一般会选择在 RAW 域、RGB 域、YUV 域等多个环节设置降噪模块以控制不同类型和特性的噪声。在 YUV 域降噪的方法已经得到了广泛的研究并且出现了很多非常有效的算法,但是在 RAW 域进行降噪则因为 RAW 数据本身的一些特点而受到不少限制。主要的限制是 RAW 图像中相邻的像素点分别隶属于不同的颜色通道,所以相邻像素之间的相关性较弱,不具备传统意义上的像素平滑性,所以很多基于灰度图像的降噪算法都不能直接使用。又因为 RAW 数据每个像素点只含有一个颜色通道的信息,所以很多针对彩色图像的降噪算法也不适用。

RAW 域降噪

Sensor 输出的 RAW 图像本身是携带了噪声的,光照程度和传感器问题,包括热噪声、光散粒噪声、读出噪声、固定模式噪声,是生成图像中大量噪声的主要因素。当 sensor 温度较高、增益较大、环境较暗的情况下各种噪声会变得更加明显,成为影响图像质量的主要因素。

FPN(Fix Pattern Noise):固定模式噪声。由于 CMOS 每个感光二极体旁都搭配一个 ADC 放大器,如果以百万像素计,那么就需要百万个以上的 ADC 放大器,但是每个像素结构中的光电二极管的尺寸、掺杂浓度、生产过程中的沾污以及 MOS 场效应管的参数的偏差等都会造成像素输出信号的变化。对于给定的单个像素它是固定的。通常消除固定模式噪声采用“双采样降噪”方法,这是 CMOS 感光器件特有的一种降噪方式。在光线较暗的环境下使用时,画面会有明显的噪声,这时通过对景物进行两次不同曝光率和敏感度的采样,然后将两次采样的结果进行综合处理,就可以有效解决低照度下的图像噪声问题。

Senor 的感光器件包含模拟部分,所以信号中的噪声很难避免。同时, 当信号经过 ADC 时, 又会引入其他一些噪声。 另外,当光线较暗时,camera 需要提高增益才能使画面达到正常亮度,同时也放大了噪声,图像出现明显的噪点。我们在看没有经过降噪处理的图片时,会感觉到图片上浮了一层彩色雪花点。

这些噪声会使图像整体变得模糊, 而且丢失很多细节, 所以需要对图像进行去噪处理。和很多图像处理算法一样,降噪即可以在空域(spatial domain)上实现,也可以在频域(frequency domain)上实现,比较有常用频域方法有傅里叶变换,离散余弦变换(DCT),小波变换,多尺度几何分析等。随着人工智能技术的发展,近些年来还涌现了一批基于深度学习技术实现的降噪算法。后面提到的这些方法虽然都有不错的性能,但是对算力要求都比较高,并不一定适合处理高分辨率的实时视频流,所以在 ISP 产品中应用的并不广泛,目前适合 ISP 应用的降噪算法还是以经典低通滤波器的改进版本更为常见。

目前在 RAW 域降噪基本都需要将 RAW 图像按照颜色分成四个通道(R,Gr,Gb,B),然后在各个通道上分别应用滤波器进行平滑,根据滤波器的特点和复杂度大致可以分成以下几类:

  • 经典低通滤波器:如均值滤波、中值滤波、高斯滤波、维纳滤波等。这类方法的优点是比较简单,占用资源少,速度快,缺点是滤波器是各向同性的,容易破坏图像中的边缘。另外由于没有考虑颜色通道之间的相关性所以也容易引入伪彩等噪声,而人眼对这种颜色噪声是比较敏感的。
  • 非线性去噪算法: 一般的高斯滤波在进行采样时主要考虑了像素间的空间距离关系, 并没有考虑像素值之间的相似程度, 因此这样得到的模糊结果通常是整张图片一团模糊。 为了避免图像变模糊,就需要保持图像的边缘,这时,就还要考虑相邻像素和本像素的相似程度,对于相似度高的像素给予更高的权重,一般采用非线性去噪算法, 例如 Eplison 滤波、双边滤波器, 在采样时不仅考虑像素在空间距离上的关系, 同时加入了像素间的相似程度考虑, 增加了阈值检测用于区分同类像素和异类像素,同类像素分配较大的滤波权重,异类像素则权重很小因而基本不参与滤波。因而可以保持原始图像的大体分块, 有效地保护图像边缘,复杂度增加也不大,其它特点与经典滤波器基本相同。
  • 引导滤波器:由何凯明博士早期提出的一种算法,引入了引导图像的概念。对于任一颜色通道的图像,以当前位置像素为中心,在一个固定大小的滤波窗口内的所有邻近像素计算权重,计算权重的方法是以某个引导图像作为参考,在引导图像的对应滤波窗口内,凡是与像素性质“类似”的像素都得到较大的权重,与 I(x,y) 性质“相反”的像素则得到较小的权重。这种方法的基本假设是图像各通道的颜色梯度分布与引导图像是一致的,如果假设不成立,则从引导图像计算出的权重反而容易破坏其它通道中的边缘。
  • 基于块匹配的滤波算法:利用图像的自相似特性,在以当前像素为中心的一个滤波窗口内找到与当前块最相似的几个块,当前像素的滤波值即等于几个相似块的中心像素的加权平均值。此类算法以非局部均值滤波(Non-Local Means)和 BM3D(Block Matching 3D)算法为代表,它们的优点是平滑性能和边缘保持性能很好,缺点是计算量很大,资源消耗大,不太适合处理实时视频。
    除了空域上滤波,也可以结合时域进行滤波,3DNR 是结合空域滤波和时域滤波的一种降噪算法。大概思路是检测视频的运动水平,更具运动水平的大小对图像像素进行空域滤波和时域滤波的加权,之后输出滤波之后的图像

除了 Sensor 图像本身携带的噪声之外,图像每次会经过 ISP 模块的处理之后都会引入一些新的噪声,或者对原有噪声进行了放大。

以 LSC 模块为例,LSC 校正的实质是在输入图像上乘以一个与像素位置有关的增益系数以补偿光信号的衰减,而补偿的规律是越远离图像中心的地方增益越大。根据噪声传播的基本原理,当增益系数大于 1 时,图像中的噪声是与信号一起被同步被放大的。另外,由于 ISP 所用乘法器的精度是有限的,每做一次乘法就会重新引入一次截断误差,这是新增的噪声来源,所以经 LSC 处理后图像的整体噪声水平会有所增加,而且在图像的边缘处表现会更加明显。

Shading 固然是不好的,需要校正,但是为了校正 shading 而给图像引入噪声同样也不好的,所以人们需要权衡在多大程度上校正 shading 能够收到满意的效果。这是在主观图像质量调试阶段需要考虑的问题之一。

YUV 域

我们可以把这些 YUV Image Noise 再分为 Luminance Noise 跟 Chroma Noise 二类,影像放到不同的色空间来看,就很明确分别出差异了。一张 RGB 空间的影像转换到 YUV,我们在 Y domain 下看到的即是 Luminance Noise,在 UV domain 下看的就是 Chroma Noise。

Chroma Noise 跟 Color Noise 是有一定差异的。Color Noise 里所形容的 color,并不是单纯指影像的色彩杂讯,而是已包含亮度资讯的色彩,所以 Color Noise 应可以广义形容为 Image Noise。而 Chroma Noise 较能明确指出 chroma(彩色)部份的 Noise。因此严格说来 Color Noise 不等于 Chroma Noise。

Chroma Noise 量化方式:

  • 市面相机量化步骤:把灰卡以不同 ISO 值拍摄,假设以 ISO100 为基准,ISO 值提高一倍时,快门时间也缩短一倍,以维持影像的灰度。
  • 工程模式量化步骤:把灰卡以一定的曝光线数及 1 倍 gain(Again*Dgain)的设定拍摄,并以此为基准,而后 gain 提高 1 倍时,曝光线数也随之降低 1 倍,以维持影像的灰度。

极短的快门时间配上高 ISO 或极短的曝光时间配上高倍数的 gain 后,便会产生较多的 Noise,依不同设定所拍摄下影像的标准差倾向,即可分析出差异。

颜色插值

Demosaic 是 ISP 的主要功能之一。sensor 的像素点上覆盖着 CFA(彩色滤色矩阵,Color Filter Array),光线通过 CFA 后照射到像素上。CFA 由 R、G、B 三种颜色的遮光罩组成,每种遮光罩只允许一种颜色通过,因此每个像素输出的信号只包含 R、G、B 三者中的一种颜色信息。sensor 输出的这种数据就是 BAYER 数据,即通常所说的 RAW 数据。显而易见,RAW 数据所反映的颜色信息不是真实的颜色信息。DEMOSAIC 就是通过插值算法将将每个像素所代表的真实颜色计算出来。

目前最常用的插补算法是利用该像素点周围像素的平均值来计算该点的插补值。

光线中主要包含三种颜色信息,即 R、G、B。但是由于像素只能感应光的亮度,不能感应光的颜色,同时为了减小硬件和资源的消耗,必须要使用一个滤光层,使得每个像素点只能感应到一种颜色的光。目前主要应用的滤光层是 bayer GRBG 格式。

经过滤色板的作用之后,每个像素点只能感应到一种颜色。必须要找到一种方法来复原该像素点其它两个通道的信息,寻找该点另外两个通道的值的过程就是颜色插补的过程。由于图像是连续变化的,因此一个像素点的 R、G、B 的值应该是与周围的像素点相联系的,因此可以利用其周围像素点的值来获得该点其它两个通道的值。目前最常用的插补算法是利用该像素点周围像素的平均值来计算该点的插补值。

Demosaic 算法的主要难点在于,RAW 域的任何一个像点(photosite)只包含一个真实的采样值,而构成像素(R,G,B)的其它两个值需要从周围像点中预测得到。既然是预测,就一定会发生预测不准的情况,这是不可避免的,而预测不准会带来多种负面影响,包括拉链效应(zipper artifacts),边缘模糊,颜色误差等。而由于彩色插值“推测式”算法,R+B 时最容易推测出来的——就是 Magenta 洋红,就是拍照时紫边的主色。

Demosaic 拉链效应,边缘模糊,伪彩

色温

Color Temp

所谓色温,简而言之,就是定量地以开尔文温度(K)来表示色彩。英国著名物理学家开尔文认为,假定某一黑体物质,能够将落在其上的所有热量吸收,而没有损失,同时又能够将热量生成的能量全部以“光”的形式释放出来的话,它便会因受到热力的高低而变成不同的颜色。

黑体,是一个理想化了的物体,它能够在任何温度下,吸收外来的任何波的电磁辐射,并且不会有任何的反射与透射。

在 700K 之下的黑体所放出来的辐射能量很小且辐射波长在可见光范围之外,看起来是黑色的。若黑体的温度高过上述的温度的话,它会开始变成红色,并且随着温度的升高,而分别有橘色、黄色、白色等颜色出现,温度越高,光色越偏蓝。当温度超过 1600K 时开始发白色和蓝色。当黑体变为白色的时候,它同时会放出大量的紫外线。

即黑体吸收和放出电磁波的过程遵循了光谱,其轨迹为普朗克轨迹(或称为黑体轨迹)。黑体辐射实际上是黑体的热辐射。在黑体的光谱中,由于高温引起高频率即短波长,因此较高温度的黑体靠近光谱结尾的蓝色区域而较低温度的黑体靠近红色区域。

由于人眼具有独特的适应性,使我们有的时候不能发现色温的变化。比如在钨丝灯下呆久了,并不会觉得钨丝灯下的白纸偏红,如果突然把日光灯改为钨丝灯照明,就会觉查到白纸的颜色偏红了,但这种感觉也只能够持续一会儿。

相机的传感器并不能像人眼那样具有适应性,所以如果摄像机的色彩调整同景物照明的色温不一致就会发生偏色。白平衡就是为了避免偏色的出现。

自动白平衡

AWB, Automatic White Balance

白平衡。白平衡与色温相关,用于衡量图像的色彩真实性和准确性。ISP 需要实现 AWB 功能,力求在各种复杂场景下都能精确的还原物体本来的颜色。

人类视觉系统具有颜色恒常性的特点,不会受到光源颜色的影响。实际生活中,不论是晴天、阴天、室内白炽灯或日光灯下,人们所看到的白色物体总是是白色的,这就是视觉修正的结果。人脑对物体的颜色有一定先验知识,可识别物体并且更正这种色差。 因此人类对事物的观察可以不受到光源颜色的影响。

但是图像传感器本身并不具有这种颜色恒常性的特点,获取的图像容易受到光源颜色的影响。 如白炽灯照明下拍出的照片易偏黄;而在户外日光充足则拍摄出来景物也会偏蓝。 因此,其在不同光线下拍摄到的图像,会受到光源颜色的影响而发生变化。例如在晴朗的天空下拍摄到的图像可能偏蓝,而在烛光下拍摄到的物体颜色会偏红。因此,为了消除光源颜色对于图像传感器成像的影响,自动白平衡功能就是模拟了人类视觉系统的颜色恒常性特点来消除光源颜色对图像的影响,让不同色温光线条件下白色物体,Sensor 的输出都转换为更接近白色。 它会通过摄像机内部的电路调整,改变蓝、绿、红三个通道电平的平衡关系,使反射到镜头里的光线都呈现为消色。如果以偏红的色光来调整白平衡,那么该色光的影像就为消色,而其他色彩的景物就会偏蓝(补色关系)。

白平衡与色温相关,用于衡量图像的色彩真实性和准确性。简单的说,就是通过图像调整,使在各种光学条件下拍摄出的照片色彩和人眼所看到的景物色彩完全相同。

白平衡就是调整 R/B 增益,达到 R、G、B 相等。 比较常用的 AWB 算法有灰度世界、完美反射法等。 灰度世界(Gray World)算法基于一个假设:平均来讲,世界是灰色的。

完美反射法基于一个假设:白色是反射率最高的颜色,直方图上 RGB 响应最右边的部分就代表着白色的响应。所以把 RGB 响应的直方图拉齐了,也就实现了白平衡。完美反射法确实听起来很完美,但是,如果图像里没有白色或者存在比较强的噪声,这个方法就不好用了。

白平衡调整在前期设备上一般有三种方式:自动白平衡,分档设定白平衡,精确设定白平衡(手动设定模式)。

  • 自动白平衡:依赖数码相机里的测色温系统,测出红光和蓝光的相对比例。再依据次数据调整曝光,产生红、绿、蓝电信号的增益。自动白平衡有 3 个步骤:
    1. 检测色温,如果手工调节,就知道图像中什么位置是白色物体了,色温容易检测;如果是自动调节,就需要估计出(猜出)图像中的白色位置,这是最重要的一环; 实际计算中为了实时操作,减少计算量,通常选取某个特定区域(如图像中央)像素进行计算。但若图像颜色较为单一或选定区域正好落入大的色块(红光下的白墙),以上算法求得的色温会非常不准确。为此,必须根据一定的约束条件,挑选出白色像素来计算色差。
    2. 计算增益,计算 R 和 B 要调整的增益;调整增益将 Cb 和 Cr 调整到 0 (或接近 0)的两个系数,即 R=G=B。
    3. 色温矫正,根据增益调整整幅图片的色温。
  • 分档设定白平衡:按光源种类分和色温值分两类。相机上分别设有日光、阴天、日光灯、白炽灯、闪光灯的图标档位。拍摄时只需将拍摄时的光源种类和相机上的白平衡档位相吻合就可拍出较为准确的色彩。按色温分类的白平衡,理论上讲其精度要高于按光源种类分档。但它要求使用者要记住各种光源的色温值,这就给使用者带来极大的麻烦。
  • 精确白平衡(手动设定模式):在拍摄现场光的条件下,用白纸或白色物体充满镜头视野进行白平衡调节。经过这样的调试再拍摄,记录的色彩将是非常准确的这是目前最准确的白平衡调节方式。

颜色校正

CCM, Color Correction Matrix,MCT-CMX,多色温颜色矩阵矫正

颜色校正主要为了校正在滤光板处各颜色块之间的颜色渗透带来的颜色误差。

AWB 已经将白色校准了,CCM 就是用来校准除白色以外其他颜色的准确度的。一般颜色校正的过程是首先利用该图像传感器拍摄到的图像与标准图像相比较,以此来计算得到一个校正矩阵。该矩阵就是该图像传感器的颜色校正矩阵。在该图像传感器应用的过程中,及可以利用该矩阵对该图像传感器所拍摄的所有图像来进行校正,让色彩贴近现实、饱满、细节突出、清晰度更好。

一般情况下,对颜色进行校正的过程,都会伴随有对颜色饱和度的调整。颜色的饱和度是指色彩的纯度,某色彩的纯度越高,则其表现的就越鲜明;纯度越低,表现的则比较黯淡。RGB 三原色的饱和度越高,则可显示的色彩范围就越广泛。

伽马校正

Gamma Correction

传感器对光线的响应和人眼对光线的响应是不同的,人眼对暗部细节比 Sensor 敏感,伽玛校正就是使得图像看起来符合人眼的特性 。

伽马校正的最初起源是 CRT 屏幕的非线性,显示器的阴极现象管(也就是物理上所说的示波管的阴极射线版)的成像扭曲引起的。由于对于输入信号的发光灰度,不是线性函数,而是指数函数,为了不使画面失真所以就用先进行校正,此之谓伽马校正。

但是实际情况是,即便 CRT 显示是线性的,伽马校正依然是必须的,是因为人类视觉系统对于亮度的响应大致是成对数关系的,而不是线性的。人类视觉对低亮度变化的感觉比高亮度变化的感觉来的敏锐,当光强度小于 1 lux 时,常人的视觉敏锐度会提高 100 倍。比如:在一间小黑屋中每增加一盏灯,摄像机都能线性增加亮度。但是人眼在黑暗时增加一盏灯时感受明显,往后随着灯的个数增长人眼并不会有明显感受。

校正过程就是对图像的伽玛曲线进行编辑,检出图像信号中的深色部分和浅色部分,并使两者比例增大,从而提高图像对比度效果,增加更多的暗部色阶,以对图像进行非线性色调编辑。

Gamma 曲线是一种特殊的色调曲线,当 Gamma 值等于 1 的时候,曲线为与坐标轴成 45° 的直线,这个时候表示输入和输出密度相同。高于 1 的 Gamma 值将会造成输出亮化,低于 1 的 Gamma 值将会造成输出暗化。总之,我们的要求是输入和输出比率尽可能地接近于 1。一般情况下,当用于 Gamma 矫正的值大于 1 时,图像的高光部分被压缩而暗调部分被扩展,当 Gamma 矫正的值小于 1 时,图像的高光部分被扩展而暗调部分被压缩,Gamma 矫正一般用于平滑的扩展暗调的细节。 而人眼是按照 gamma < 1 的曲线对输入图像进行处理的。

现在常用的伽马校正是利用查表法来实现的,即首先根据一个伽马值,将不同亮度范围的理想输出值在查找表中设定好,在处理图像的时候,只需要根据输入的亮度,既可以得到其理想的输出值。在进行伽马校正的同时,可以一定范围的抑制图像较暗部分的噪声值,并提高图像的对比度。还可以实现图像现显示精度的调整,比如从 10bit 精度至 8bit 精度的调整。

颜色空间变换

RGBToYUV,RGB2YUV ,CSM, Color Space Matrix, CSC, Color Space Conversion

Senor 的输出的 Raw data 是 RGB,但是有的处理在 YUV 上更方便,且 YUV 存储和传输时更省带宽。 YUV 是一种基本色彩空间, 人眼对亮度改变的敏感性远比对色彩变化大很多, 因此, 对于人眼而言, 亮度分量 Y 要比色度分量 U、 V 重要得多。

在 YUV 家族中,有 YUV444,YUV422,YUV420 等格式,这些格式有些比原始 RGB 图像格式所需内存要小很多,这样亮度分量和色度分量分别存储之后,给视频编码压缩图像带来一定好处。 并且在 YUV 色彩空间上进行彩色噪声去除、 边缘增强、后续输出转换为 jpeg 图片更方便。

YCbCr 是在计算机系统中应用最多的成员, 其应用领域很广泛,JPEG、MPEG 均采用此格式。一般人们所讲的 YUV 大多是指 YCbCr,它其实是 YUV 经过缩放和偏移的改动版,Y 表示亮度,Cr、Cb 表示色彩的色差,RGB 输入信号红色和蓝色颜色部分与 RGB 信号亮度值之间的差异。

宽动态范围

WDR, Wide Dynamic Range, DRC, Dynamic Range Correction, Tone Mapping

自然界的中光强度很宽,而人眼对高亮,极暗环境的细节分辨能力相对较窄,而摄像头记录的范围更窄,真正的 HDR 技术就是记录视觉范围内高亮,极暗环境的中的细节分辨率。

动态范围(Dynamic Range)是指摄像机支持的最大输出信号和最小输出信号的比值,或者说图像最亮部分与最暗部分的灰度比值。普通摄像机的动态范围一般在 1:1000(60db)左右,而宽动态(Wide Dynamic Range, WDR)摄像机的动态范围能达到 1:1800-1:5600(65-75db)。

宽动态技术主要用来解决摄像机在宽动态场景中采集的图像出现亮区域过曝而暗区域曝光不够的现象。简而言之,宽动态技术可以使场景中特别亮的区域和特别暗的区域在最终成像中同时看清楚。

为保证人眼看到的世界和显示器或者摄像头采集的图像的亮度范围相差无几,甚至更好,需要通过色调映射 tone mapping,将暗处和亮出细节再现。这是一种纯粹为了视觉感受而进行的处理,并非真正的 HDR。

摄像机拍摄室外场景时,晴朗夏天的光照度可以达到 100k~200k lux,理论上拍摄这种场景需要提供高达 5k:1 的动态范围,在摄像机内部则需要使用至少 13 位的数据才能表示 5k:1 的动态范围,在通用 CPU 架构中使用 16 位整数则更加方便。由于数据在处理环节经常涉及除法、开方、指数等浮点运算,所以还需要预留若干个小数位以保持浮点精度,4 位二进制小数可以提供 0.0625 精度,8 位二进制小数可以提供 0.0039 精度。主流 ISP 方案中使用 20 位数据。

当图像在显示设备上输出时,普通的 LDR 显示器只能提供 256 级灰度,按数量级是 100:1 的动态范围。符合 HDR10 标准的显示器可以提供 1000:1 的动态范围,已经可以较好地还原自然场景的动态。如果摄像机的适配输出设备是 LDR 显示器,则摄像机的 ISP 内部需要完成从 5000:1 到 100:1 的动态范围压缩。

当 WDR 模块完成多帧合成(frame stitch)后,接下来就需要对数据位宽进行压缩以节约后续步骤的计算资源。比较合理的做法是采取逐级压缩策略,比如在 WDR 模块先压缩到 12 位精度,经过 CCM、Gamma 等颜色处理后进一步压缩到 10 位精度,经过 CSC 模块后进行最后一次压缩得到最终的 8 位精度输出。

从 16/20 位精度压缩到 12 位精度的过程称为色调映射,这一步骤的目的是调整图像的动态范围,将 HDR 图像映射到 LDR 图像,并尽量保证图像细节不损失,使得图像显示出更多的信息。 DRC 模块是一个基于人眼视觉系统特性的高级局部色阶映射(多空间动态范围压缩)模块。

Tone mapping 的方法将像素值在特别暗的区域拉高,在特别亮的区域拉低。 Tone mapping 有以下两种:

global tone mapping

  • 单一 tone mapping 曲线。对整幅图低拉高,高拉低。(缺点,蒙上一层雾感觉,因为数值压缩后忘中间靠拢,局部对比度下降)
  • 双边滤波 tone mapping。在图像中局部边缘处不会进行 tone mapping,以保持局部细节。

local tone mapping

  • 虚拟曝光。通过多帧相加确定哪些区域是高亮区,哪些区域是低亮区。然后分区进行 local tone mapping
  • local gamma。图片分成多块,对每块进行 gamma 矫正。主要根据每块的亮度直方图进行动态调整 gamma 曲线。

锐化

Sharp, Edge Enhance,边缘增强。

CMOS 输入的图像将引入各种噪声,有随机噪声、量化噪声、固定模式噪声等。ISP 降噪处理过程中,势必将在降噪的同时,把一些图像细节给消除了,导致图像不够清晰。为了消除降噪过程中对图像细节的损失,需要对图像进行锐化处理,通过滤波器获取图像的高频分量,按照一定的比例将高频部分和原图进行加权求和获取锐化后的图像,还原图像的相关细节。

自动曝光

AE, Automatic Exposure

Exposure 主要影响图像的明暗程度。不同场景下,光照的强度有着很大的差别。人眼有着自适应的能力因此可以很快的调整,使自己可以感应到合适的亮度。而图像传感器却不具有这种自适应能力,因此必须使用自动曝光功能来确保拍摄的照片获得准确的曝光从而具有合适的亮度。

AE 模块根据自动测光系统获得当前图像的曝光量,再自动配置镜头光圈、sensor 快门及增益来获得最佳的图像质量。自动曝光的算法主要分光圈优先、快门优先、增益优先。

光圈优先时算法会优先调整光圈到合适的位置,再分配曝光时间和增益,只适合 P-IRIS 镜头,这样能均衡噪声和景深。
快门优先时算法会优先分配曝光时间,再分配 sensor 增益和 ISP 增益,这样拍摄的图像噪声会比较小。
增益优先则是优先分配 sensor 增益和 ISP 增益,再分配曝光时间,适合拍摄运动物体的场景。
自动曝光的实现一般包括三个步骤:

  • 光强测量:测量的过程是利用图像的曝光信息来获得当前光照信息的过程。可以统计图像的全部像素,也可以统计图像中间部分、也可以将图像分成不同部分且每部分赋予不同权重。 按照统计方式的不同,分为全局统计,中央权重统计或者加权平均统计方式等。全局统计方式是指将图像全部像素都统计进来,中央权重统计是指只统计图像中间部分,这主要是因为通常情况下图像的主体部分都位于图像的中间部分;加权平均的统计方式是指将图像分为不同的部分,每一部分赋予不同的权重,比如中间部分赋予最大权重,相应的边缘部分则赋予较小的权重,这样统计得到的结果会更加准确。
  • 场景分析:场景分析是指为了获得当前光照的特殊情况而进行的处理,比如有没有背光照射或者正面强光等场景下。对这些信息的分析,可以提升图像传感器的易用性,并且能大幅度提高图像的质量,这是自动曝光中最为关键的技术。目前常用的场景分析的技术主要有模糊逻辑和人工神经网络算法。这些算法比起固定分区测光算法具有更高的可靠性,主要是因为在模糊规则制定或者神经网络的训练过程中已经考虑了各种不同光照条件。
  • 曝光补偿:控制相应的参数使得曝光调节生效。主要是通过设定曝光时间和曝光增益来实现的。 通过光强测量时得到的当前图像的照度和增益值与目标亮度值的比较来获得应该设置的曝光时间和增益调整量。在实际情况下,相机通常还会采用镜头的光圈/快门系统来增加感光的范围。
    在进行曝光和增益调整的过程中,一般都是变步长来调整的,这样可以提高调整的速度和精度。

增益和曝光的步长设定

在当前曝光量与目标量差别在 range0 以内的时候,说明当前曝光已经满足要求,不需要进行调整;差别在 range1 的范围内时,则说明当前曝光与要求的光照有差别,但差别不大,只需要用较小的步长来进行调节即可;当差别在 range2 的时候,则表明差别较大,需要用较大步长来进行调节。在实现过程中还需要注意算法的收敛性。

自动对焦

AF, Automatic focus

根据光学知识,景物在传感器上成像最清晰时处于合焦平面上。通过更改 LENS 的位置,使得景物在传感器上清晰的成像,是 ISP focus 功能所需完成的任务。focus 分为手动和自动两种模式。 自动对焦包含 CONTRAST AF、PDAF、LASER AF 等算法。

AF 算法的基本步骤是先判断图像的模糊程度,通过合适的模糊度评价函数求得采集的每一副图像的评价值, 然后通过搜索算法得到一系列评价值的峰值, 获得最佳的对焦点是一个不断积累的过程,它通过比较每一帧图像的对比度从而获得镜头移动范围内最高的评价值点,进而确定对焦距离。 最后通过电机驱动将采集设备调节到峰值所在的位置, 得到最清晰的图像。

对焦评价函数:评价函数有很多种, 主要考虑的图像因素有图像频率(清晰的图像纹理多, 高频分布较多), 还有图像的灰度分量的分布(图像对应的灰度图的分量分布范围越大,说明图像的细节较多, 反应的图像的清晰程度) 。常用的搜索算法有爬山算法,该算法也有一定的局限性,它只适用于图像本身色差较大的情况。 搜索窗口有黄金分割点对焦嵌套窗口等.

串扰

X-talk (Crosstalk),Bayer 域去颜色串扰

串扰是两条信号线之间的耦合、信号线之间的互感和互容引起线上的噪声。

三种类型的串扰

spectral xtalk

RGB 频谱的串扰造成的。比如 color filter R 会有部分 G,B 的能量通过。color filter 的带通带宽宽的话会增大频谱干扰,但频谱干扰其实不可避免。

spectral xtalk

electronic xtalk

不同 pixel 的电子井由于储存了过多的电子荷溢出到邻近的电子井中。和电荷井的容限有关,电荷井越深,容限高,但是过高就会引起 spacial xtalk。三星的 Isocell 技术在像素之间引入绝缘层减少了此串扰。

electronic xtalk

spatial xtalk

由于光线角度的问题,本该照射到 R pixel 的光由 R pixel 来接受,但是可能因为空间太窄,进入相邻像素单元或其他无效区域内的现象。随着单位面积像素数的增加,特别是现在 4800 万以上的 sensor,像素之间的间距太小,又没有隔离层的情况下,sensor 边缘像素 spacial xtalk 会加剧。

spatial xtalk

上述原因导致结果都是图像在对角线上相邻两个像素的 Gr 和 Gb 值差异较大而产生不平滑的纹理状。

去假彩

Anti False Color

假彩是指在一幅影像中使用与全彩不同的颜色描述一项物体。

真彩色:True Color,真彩色是指在组成一幅彩色图像的每个像素值中,有 R、G、B 三个基色分量,每个基色分量直接决定显示设备的基色强度产生彩色。

伪彩色:Pseudo Color,每个像素的颜色不是由每个基色分量的数值直接决定,而是把像素值当作颜色查找表(color look-up table, CLUT)的表项入口地址,去查找一个显示图像时使用的 R,G,B 强度值,用查找出的 R,G,B 强度值合成产生彩色。

假彩色:False Color,将多波段单色影像合成为假彩色影像,如 landsat 7/ETM+有八个波段,用其中三个合成就是假彩色。

从实现技术上讲,假彩色与真彩色是一致的,都是 R、G、B 分量组合显示;伪彩色显示调用的是颜色表。

耀斑补偿

Flare offset, stray light offset

镜片的表面反射或镜筒、反光镜组的内面所引起的反射光,到达底面后造成画面整体或一部份产生了雾蒙,降低了图像的鲜锐度。镜片的镀膜及内面防反射处理的加强,固然可以大幅度地减少光斑,但被摄体的状况并不相同,不可能完全消除。

因此,在相机里面设计都是黑色的,且其内侧表明设计都是粗糙的,目前就是为了减小 flare。flare 如何修正?做直方图,然后每阶的亮度都往下降,这样是否会影响颜色呢?因此,flare 一定要是在 linear domain 去做,不能在 RGB domain 去做。

自动光圈

Auto Iris

精确光圈控件 P-IRIS 工作原理:

P-IRIS 是通过控制 P-IRIS 镜头中的步进电机动态精确的控制光圈大小,主要目的是设置最佳光圈位置,以便大部分镜头中心及效果最佳的部分得到使用,在此位置光学误差大大减小,从而提高图像质量。

P-IRIS 需要与增益和曝光时间相配合来管理光线的微小变化从而进一步优化图像质量,使最佳光圈位置保留尽可能长的时间。但超过增益和曝光时间的调节能力时,P-IRIS 再调节光圈到不同位置。

P-IRIS 控制方法及步骤

P-IRIS 想要实现的一个关键点是需要知道光圈当前的位置情况。这有两种方式,

  1. 控制光圈的是步进电机,步进电机可通过计算电机走的步数来计算当前位置。
  2. 控制光圈的是直流电机,这就需要通过霍尔传感器来检测当下位置。

其他

局部对比度增强:Local Contrast Enhancement algorithm

抗频闪:AntiFlicker

去雾:AntiFog

去雨:AntiRain

丢帧策略:LostFrameStrategy

色调色饱和度控制:单独针对 Hue,Saturation,Contrast,Brightness 各图像分量进行调节。

直方图均衡化:Histogram。重新分布图片的亮度,使图片的亮度分布更加均匀。

图像格式转换:Data Formatter

写 DMA:DMA Writer Controller

Reference


欢迎在我的专栏「自律走行」中查看更多「键盘摄影」系列文章