ISP(Image
Signal Processor),即图像处理,主要作用是对前端图像传感器输出的信号做后期处理,主要功能有线性纠正、噪声去除、坏点去除、内插、白平衡、自己主动曝光控制等。依赖于ISP才干在不同的光学条件下都能较好的还原现场细节。ISP技术在非常大程度上决定了摄像机的成像质量。它分为独立与集成两种形式。

普通情况下,配备独立ISP的手机,在图像处理方面有更大的优势,且随着手机摄像头像素的提高,快速连拍,全高清甚至4K录制的增加,手机对ISP的处理性能要求越来越高。

不少主打拍摄功能的厂商都在手机其中增加了独立ISP,比如魅族MX3就採用了富士通四通道ISP,官方宣称其传输速度提升两倍,能完美实现每秒25张连拍,使其拥有卓越的图像处理能力,综合拍摄性能相对于MX2来讲有了较大的进步。主打自拍功能的MeituKiss手机。在全球范围内首次为前置摄像头配置了独立ISP芯片(图像信号处理器)。

这款来自富士通的高端芯片有着出众的噪点和色彩还原能力,被广泛应用于数码相机等专业领域。

下图是图像信号处理主要流程:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

(1)黑电平校正(暗电流校正)

暗电流指传感器在没有入射光的情况下。存在一定的信号输出,这是因为半导体的热运动造成的。它的大小和传感器结构及温度有关,大概每升高9
℃,其暗电流会添加1 倍。

因为每一个像素存在不平衡性,因此像素间暗电流也会不一致,造成电流噪声。

一般情况下,在传感器中,实际像素要比有效像素多,像素区最靠边的行和列为不感光区,一般用作自己主动黑电平校正,其平均值作为校正值。

(2)颜色插补

原始像素仅仅包括一种颜色的信息(R 或G 或B),要重建色彩画面。就必须从相邻的像素中得到失去的信息。红色及蓝色插补一般遵循近期原则,进行平均处理。作为本像素的色彩值,由插值原理知,相邻像素间存在依赖关系,结果造成画面锐度减少。

(3)颜色校正

因为人类眼睛可见光的频谱响应度和半导体传感器频谱响应度之间存在区别,还有透镜等的影响,插补后得到的RGB 值颜色会存在偏差,因此必须对颜色进行校正,一般通过颜色校正矩阵来实现。

详细的彩色矫正參数。能够通过试验或从传感器供应商中获得,当然要得到不失真的还原是不可能的,仅仅能重复调试达到最佳。一般通过标准色卡进行校正。

(4)Gamma 校正

Gamma 校正主要根据色度学原理进行调整。色彩在不同显示设备中频谱响应度不一样,造成颜色失真。

失真成幂指数关系。因此调节相对简单,分别对R、G、B
调节就可以。

(5)RGB2YUV 转换

Y =16 +(0. 257 × R +0. 504 × G +0. 098 × B)

Cb =128 +(-0. 148 × R-0. 291 × G +0. 439 × B)

Cr =128 +(0. 439 × R-0. 368 × G-0. 071 × B)

(6)自己主动白平衡处理

假设使用过没有白平衡的数码相机,会发现荧光灯的光人眼看起来是白色的,但用数码相机拍摄出来却有点偏绿。

相同,假设在白炽灯下,拍出图像的色彩就会明显偏红。人类的眼睛之所以把它们都看成白色。是由于人眼进行了修正。

由于图像传感器本身没有这样的功能,因此有必要对它输出的信号进行一定的修正。这样的修正叫作白平衡。

白平衡控制通过图像色彩调整(一般调节R、B 增益实现),使在各种光线条件下拍摄出的照片色彩和人眼所示景物色彩完全同样。从理论上我们知道,随着色温的升高。要对色温进行较正,否则,物体在这种光线条件下所表现出来的颜色就会偏离其正常的颜色,因此须要减少
sensor对红色的增益。添加sersor对蓝光的增益。

同一时候在调整參数时一定程度上要考虑到总体亮度的要保持大致的不变。即以YUV来衡量时,Y值要 基本保持不变,理论上觉得能够參考RGB->YUV变换公式中。RGB三分量对Y值的贡献,从而确定RGAIN和BGAIN的变化的比例关系。

但实
际情况比这还要复杂一些,要考虑到不同sensor对R,B的感光的交叉影响和非线性,所以最佳值可能和理论值会有一些偏差。

白平衡的实现一般有手动和自己主动两种模式,当然对于摄像机主要以自己主动白平衡为主。自己主动白平衡一般基于“ Grey World” 如果,调节R、B
的增益,在选定參考白平衡区域内达到R、G、B 相等。自己主动白平衡是基于如果场景的色彩的平均值落在一个特定的范围内,如果測量得到结果偏离该范围,则调整相应參数,校正直到其均值落入指定范围。该处理过程可能基于YUV空间,也可能基于RGB空间来进行。

对于Sensor来说,通常的处理方式是通过校正R/B增益,使得UV值落在一个指定的范围
内。

从而实现自己主动白平衡。这样的如果在非常多场合能够达到非常好的效果,但因为无法得到场景光源的全部信息。因此自己主动白平衡效果有时并不让人惬意,此时能够让用户自定义一个点火区域作为參考点。也实用白平衡感測器来实现的。

白平衡对色彩效果影响非常大,一个好的算法可以使色彩效果更逼真。也可以利用白平衡达到艺术效果。

(7)自己主动曝光、AE 评估

自己主动曝光,简单地说就是自己主动控制曝光时间。达到曝光恰到优点的效果。

曝光过度,图像传感器就会产生溢出,造成对照度下降,动态灵敏度减少。曝光不够,相同会造成对照度下降,动态灵敏度减少,信噪比下降,画面效果不好。因此在不同的场景必须对曝光时间进行控制。

自己主动曝光主要是对某可选区域内画面亮度分量(y 信号)进行评估,若y 偏小,增大曝光量,反之降低。

感光宽容度

从最明亮到最黑暗,如果人眼可以看到一定的范围。那么胶片(或CCD等电子感光器件)所能表现的远比人眼看到的范围小的多。而这个有限的范围就是感光宽容度。

人眼的感光宽容度比胶片要高非常多,而胶片的感光宽容度要比数码相机的ccd高出非常多!了解这个概念之后。我们就不难了解,为什么在逆光的条件
下,人眼能看清背光的建筑物以及耀眼的天空云彩。而一旦拍摄出来,要么就是云彩颜色绚烂而建筑物变成了黑糊糊的剪影,要么就是建筑物色彩细节清楚而原本美 丽的云彩却成了白色的一片再看人眼的结构。有瞳孔能够控制通光量,有杆状感光细胞和椎状感光细胞以适应不同的光强。可见即使人眼有着非常高的感光宽容度,依旧有亮度调节系统,以适应光强变化。

那么对于camera sensor来说。正确的曝光就更为重要了。

自己主动曝光和18%灰

对于sensor来说。又是怎样来推断曝光是否正确呢?非常标准的做法就是在YUV空间计算当前图像的Y值的均值。

调节各种曝光參数设定(自己主动或手动),使得该均值落在一个目标值附近的时候,就觉得得到了正确的曝光。

那么怎样确定这个Y的均值。以及怎样调整參数使得sensor可以将当前图像的亮度调整到这个范围呢?

这就涉及到一个概念 18%灰,一般觉得室内室外的景物,在通常的情况下,其平均的反光系数大约为18%。而色彩均值。如前所述,能够觉得是一种中灰的色调。这样,能够通过对
反光率为18%的灰板拍摄。调整曝光參数。使其颜色接近为中等亮度的灰色(Y值为128)。然后,对于通常的景物,就能自己主动的得到正确的曝光了。

当然这样的自己主动推断曝光參数的AE功能不是万能的,对于反光率偏离通常均值的场景。比方雪景,夜景等。用这样的方法就无法得到正确的曝光量了。

所以在sensor的软件处理模块中,通常还会提供曝光级别的设定功能,强制改变自己主动曝光的推断标准。比方改变预期的亮度均值等。

曝光级别设定

在多数数码相机和拍照手机上都能够看到曝光级别设定的功能,如前所述。这样的设定实际上是在自己主动曝光的基础上给用户提供一定的曝光控制能力,强制改变camera
sensor的曝光推断标准,获得用户想要的效果。

通常的做法就是改变Y值均值的预期值。使得sensor在自己主动曝光时以新的Y预期值为目标,自己主动调整Exptime 和 AG。

曝光參数的调整

曝光强度的调整。能够通过改变曝光时间,也能够通过改变亮度增益AG来实现。

曝光时间受到桢频的限制,比方摄像时要求15帧每秒的话,这时候曝光时间最长就不能超过1/15s,可能还有别的条件限制。实际的曝光时间还要短,在光线弱的情况下。单独调整曝光时间就无法满足帧频的须要了。

这时候还能够调整增益AG。来控制曝光的增益,减少曝光时间。可是,这样做的缺点是以牺牲图像质量为代价的,AG的增强,伴随的必定是信噪比的减少,图像噪声的增强。

所以,以图像质量为优先考虑的时候,曝光參数的调节一般是优先考虑调节曝光时间。其次在考虑曝光增益。

当然曝光时间也不能过长以免因为抖动造成图像的模糊。而在拍摄运动场景时,对曝光时间的要求就更高了。

(8)其它知识

抗噪处理

AG 的增大,不可避免的带来噪点的增多,此外,假设光线较暗。曝光时间过长。也会添加噪点的数目(从数码相机上看,主要是由于长时间曝光。感光元件温度升高,
电流噪声造成感光元件噪点的增多),而感光元件本身的缺陷也是噪点甚至坏点的来源之一。因此,通常sensor集成或后端的ISP都带有降噪功能的相关设 置。

A、启动时机

依据噪点形成的原因,主要是AG或Exptime超过一定值后须要启动降噪功能,因此通常须要确定这两个參数的阙值,过小和过大都不好。

从以下的降噪处理的办法将会看到,降噪势附带的带来图像质量的下降,所以过早启动降噪功能。在不必要的情况下做降噪处理不但添加处理器或ISP的负担。还有可能适得其反。

而过迟启动降噪功能。则在原本须要它的时候,起不到对应的作用。

B、判定原则和处理方式

那么怎样判定一个点是否是噪点呢?我们从人是怎样识别噪点的開始讨论,对于人眼来说,判定一个点是噪点,无外乎就是这一点的亮度或颜色与边上大
部分的点差异过大。从噪点产生的机制来说。颜色的异常应该是总是伴随着亮度的异常。并且对亮度异常的处理工作量比颜色异常要小,所以通常sensor ISP的判定原则是一个点的亮度与周围点的亮度的差值大于一个阙值的时候,就觉得该点是一个噪点。

处理的方式,一般是对周围的点取均值来替代原先的值,这样的做法并不添加信息量,类似于一个模糊算法。

对于高端的数码相机,拥有较强的图像处理芯片。在判定和处理方面是否有更复杂的算法,预计也是有可能的。

比方亮度和颜色综合作为标准来判定噪
点,採用运算量更大的插值算法做补偿,对于sensor固有的坏点,噪点,採用屏蔽的方式抛弃其数据(Nikon就是这么做的。其他厂商应该也如此)等 等。

C、效果

对于手机sensor来说,这样的降噪处理的作用有多大,笔者个人觉得应该非常有限。毕竟相对数码相机。手机sensor的镜头太小,通光量小。所
以其基准AG势必就比相机的增益要大(比方相当于普通家用数码相机ISO800的水平)。这样才干获得相同的亮度,所以电流噪声带来的影响也就要大得多。

这样一来。即使最佳情况,噪点也会非常多,数据本身的波动就非常大,这也就造成我们在手机照片上势必会看到的密密麻麻的花点。假设所有做平均,减少了噪点的同
时,图像也会变得模糊,所以手机噪点的推断阙值会设得比較高。以免涉及面过大。模糊了总体图像。这样一来一是数据本身就差,二是降噪的标准也减少了,造成 总体效果不佳。

数码变焦

数码变焦能够有两种形式:

其一,是通过插值算法。对图像进行插值运算,将图像的尺寸扩大到所需的规格,这样的算法就其效果而言,并不理想。尤其是当使用在手机上的时候,手
机上的摄像头本身得到的数据就有较大的噪声,再插值的话,得到的图像差点儿没法使用。实际上。即使是数码相机的数码变焦功能也没有太大的有用价值。假设插值 算法没有硬件支持,则须要在应用层实现。

其二。事实上是一种伪数码变焦的形式,当摄像头不处在最大分辨率格式的情况下,比方130万像素的sensor使用640*480的规格拍照时。 仍旧设置sersor工作在1280*960的分辨率下,而后通过採集中央部分的图像来获取640*480的照片,使得在手机上看来所拍物体尺寸被放大了
一倍。也有非常多手机採用的是这样的数码变焦方式,这样的办法差点儿不须要额外的算法支持。对图像质量也没有影响。缺点是仅仅有小尺寸情况下能够採用。此外在DV方 式下也能够实现所谓的数码变焦放大拍摄功能。(这应该是一个卖点,对Dv来说。这样的数码变焦还是有实际意义的)。要採用这样的变焦模式,驱动须要支持windowing功能。获取所需部分的sensor图像数据。

工频干扰

A、何谓频闪

日常使用的普通光源如白炽灯、日光灯、石英灯等都是直接用220/50Hz交流电工作,每秒钟内正负半周各变化50次。因而导致灯光在1秒钟内发生100(50×2)次的闪烁,再加上市电电压的不稳定,灯光忽明忽暗。这样就产生了所谓的“频闪”。

由于人眼对光强变化有一定的迟滞和适应性。所以通常看不出光源的亮度变化。可是依旧还是会添加眼睛的疲劳程度。所以市场上才会有所谓的无频闪灯销售。

B、对频闪的抑制

对于camera sensor来说。没有人眼的迟滞和适应过程。所以对光源亮度的变化是比較敏感的。

假设不加抑制,在预览和DV模式下,可能会有明显的图像的明亮变化闪烁的现象发生。

怎样解决呢?考虑到频闪的周期性,在一个周期内。光源亮度的累积值,应该是大体一致的。所以,假设控制曝光的时间是频闪周期的整倍数。那么每一帧图像的亮度就大体是一致的了,这样就能够有效地抑制频闪对图像亮度的影响。

所以。在自己主动曝光的模式下,sensor会依据频闪的频率,调整曝光时间为其周期的整倍数。 由于各地的交流电的频率不同。所以有50Hz/60Hz之分。

在详细设置相关Sensor寄存器的时候,要依据电流频率和sensor的时钟频率。分辨率等,计算出频闪周期相应的时钟周期数等。

ISP图像质量调节介绍的更多相关文章

  1. ISP图像质量自动化测试方法

    背景介绍 ISP(Image Signal Processor),即图像处理,主要作用是对前端图像传感器输出的信号做后期处理,主要功能有线性纠正.噪声去除.坏点去除.内插.白平衡.自动曝光控制等,依赖 ...

  2. 开篇:ISP基本模块介绍

    一般来说,ISP pipeline没有非常严格的流程,各家厂商具体实现方案或多或少都有些差异,但大致流程如下图所示.其中,又可以根据处理的数据将其分成BPS(Bayer process segment ...

  3. 【转】 ISP概述、工作原理及架构

    1.概述 ISP全称Image Signal Processing,即图像信号处理.主要用来对前端图像传感器输出信号处理的单元,以匹配不同厂商的图象传感器. ISP 通过一系列数字图像处理算法完成对数 ...

  4. 图像质量评估(IQA)

    图像质量评估函数的分类曾是一个比较有争议的话题,在2l世纪以前曾经有过 比较多的讨论.但是随着研究的深入和技术的广泛应用,研究人员对于图像质量 评估函数的分类有了统一的认识,即从实际应用中参考信息供给 ...

  5. 摄像头 ISP 调试的入门之谈(经验总结)

    在讲述本文之前,我尽量以一个什么也不清楚的初学到入门的用词来阐述什么是 ISP 调试,以及为什么需要调试. 如果你从来都没有接触过什么是摄像头 ISP 调试,我想这个文章可以给你一些启发和关键词. 因 ...

  6. 基于Hi3559AV100 RFCN实现细节解析-(3)系统输入VI分析(HiISP)二 :

    下面随笔系列将对Hi3559AV100 RFCN实现细节进行解析,整个过程涉及到VI.VDEC.VPSS.VGS.VO.NNIE,其中涉及的内容,大家可以参考之前我写的博客: 基于Hi3559AV10 ...

  7. STC单片机 IAP(EEPROM)的使用

    STC89C51.52内部都自带有2K字节的EEPROM,54.55和58都自带有16K字节的EEPROM,STC单片机是利用IAP技术实现的EEPROM,内部Flash擦写次数可达100,000 次 ...

  8. Iron Speed Designer设计工具开发总结

    9.0版本: 1.1 ISP和VS不要同时生成,代码写在override方法之下,不然生成之后会覆盖;正常情况下,ISP可以写代码,只不过没有快捷提示,一般我们先注释一下字段(如://sdsfdsfd ...

  9. 痞子衡嵌入式:恩智浦i.MX RTxxx系列MCU启动那些事(8)- 从Serial(1-bit SPI) NOR恢复启动

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是恩智浦i.MX RTxxx系列MCU的1-bit SPI NOR恢复启动. 在前几篇里痞子衡介绍的Boot Device都属于主动启动的 ...

随机推荐

  1. Assembly.Load()方法,Assembly.LoadFrom()方法,Assembly.LoadFile()方法的区别!

    参考: http://www.cnblogs.com/benwu/archive/2009/10/24/1589096.html http://www.cnblogs.com/xuefeng1982/ ...

  2. JavaScript中typeof详解

    [范围]typeof返回值范围: typeof返回值对应 类型 结果 String "string" Number "number" Boolean " ...

  3. Caliburn.Micro对目录结构的要求

    Caliburn.Micro对MVVM目录结构的要求判定规则是如下正则表达式: (?<nsbefore>([A-Za-z_]\w*\.)*)(?<subns>ViewModel ...

  4. RapidSVN的使用

    RapidSVN是一个可视化 SVN 客户端,运行速度快,简单易用,现在很多已经做成做成便携版,安装都不用.小乌龟那个SVN感觉太复杂了...不妨试下这个. 1.下载安装 2.运行RapidSVNPo ...

  5. 如何将Emmet安装到Notepad++?

    1.下载Notepad++插件;(zen-Coding for Notepad++)2.解压后将压缩包中的文件放入Notepad++安装目录下的plugins文件夹中;3.重新启动就能看到菜单栏上增加 ...

  6. Linux C/C++开发工具

    1. vim + ctags + taglist + cscope + cppcomplete + global 2.emacs+插件 可以查看 http://blog.163.com/yu_hong ...

  7. Andorid之Annotation框架初使用(一)

    1. 设置Activity的布局 @EActivity(R.layout.main) public class MyActivity extends Activity {} 注: 此时在Android ...

  8. LinuxMint19/LMDE3安装后的设置

    LinuxMint 安装后进行一些设置. 1.设置主板时间为本地时间,默认为UTC时间,与Windows不同,如果双系统,时间有时差. sudo timedatectl set-local-rtc t ...

  9. 第9章 初识STM32固件库—零死角玩转STM32-F429系列

    第9章     初识STM32固件库 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/fire ...

  10. grafana-zabbix图形简单配置

    连接zabbix数据库 加入dashboard Home--Add--加入dashboad 设置dashboad 设置名字,和标签tag,tag可在输入后回车加入多个 加入简单的一张图,測试能否获取到 ...