怎样认识camera-ISP
目录
什么是ISP
ISP主要有哪些
ISP的功能
典型的ISP pipeline
关于raw(bayer)数据转换rgb数据:
关于色彩空间转换:
Camera ISP图像处理流程如下图所示:
Camera ISP和DSP区别:
名词解释
功能解释
手机摄像头ISP是独立好还是内置好
什么是ISP
主流的CMOS和CCD sensor几乎都是输出Bayer mosaic格式的RAW数据,这种数据格式是无法直接观看的,必须转换成常见的RGB或YUV格式才能被主流的图像处理软件支持。对于camera产品而言,一般还需要将RGB或YUV图像进一步转换成JPEG格式以方便进行存储。上述图像处理过程统称图像信号处理(Image Signal Processing,ISP),广义的ISP包含了JPEG和H.264/265图像压缩处理,而狭义的ISP仅包括从RAW格式变换到RGB或YUV的处理过程。
由于图像信号处理涉及大量的数据和严格的实时性要求,所以ISP通常必须采用硬件方案实现。有些Image sensor自身支持一定的ISP功能,用户可以选择启用或者关闭。有些ISP是作为独立的芯片或者SoC IP产品可以从供应商那里采购。
ISP主要有哪些
下图显示了一个典型camera系统的功能框图,主要包括图像传感器(Image Sensor)、ISP硬件(ISP Hardware)、ISP软件(ISP Real-Time Loop)等核心单元,以及ISP调试工具(PC Image Tuning Tools)、用户程序(User Application)、配置文件等。有些ISP硬件会内嵌支持一些CV算法功能,如镜头畸变校正(Distortion Correction)。
ISP的功能
ISP的功能比较杂,基本上跟图像效果有关的它都有份。它内部包含多个图像算法处理模块,其中比较有代表性的是:
扣暗电流(去掉底电流噪声),
线性化(解决数据非线性问题),
shading(解决镜头带来的亮度衰减与颜色变化),
去坏点(去掉sensor中坏点数据),
去噪(去除噪声),
demosaic(raw数据转为RGB数据),
3A(自动白平衡,自动对焦,自动曝光),
gamma(亮度映射曲线,
优化局部与整体对比度),
旋转(角度变化),
锐化(调整锐度),
缩放(放大缩小),
色彩空间转换(转换到不同色彩空间进处理),
颜色增强(可选,调整颜色),
肤色增强(可选,优化肤色表现)等。
实际情况下,不同芯片的ISP,其处理流程和模块可能会稍有不同,但是其原理、实现功能都是一样的。
典型的ISP pipeline
一个典型的ISP流水线由一系列处理模块组成,这些模块首尾相连,在几百MHz的时钟驱动下同时高速运转,图像数据不断从一个模块转移至下一个模块,直到完成所有的算法处理,最终以YUV或RGB的形式从流水线的末级流出ISP。下图所示的是一个支持常见基本功能的ISP流水线。
从图中可以看到,图像数据在ISP内部经历了两次颜色空间变换,第一次变换发生在Demosaic模块,它把像素从即RAW域变换到RGB域,第二次变换发生在CSC模块,它把像素从RGB变到YUV域。
关于raw(bayer)数据转换rgb数据:
RGB图, 即为三色图, 一个像素点就由RGB三种颜色构成的混合色, 而bayer图一个像素就只有一个颜色, 或R或G或B. 因为bayer一个像素点只有一种颜色, 需要借助这个像素点周围的颜色对它进行插值(填充)另外的两种颜色, 它本身的颜色就不用插了
关于色彩空间转换:
在传输和存储上可以节省带宽和存储空间,例如一个RGB图像可以在捕捉之后转换为YCbCr格式用来减少存储和传输负担。在显示图象之前,再转回为RGB;在不同场合上可以根据需要做出转换,适应各种图像格式的需要,例如在做图像处理时算法可能需要YUV格式图像,而图像在屏幕显示需要RGB格式图像,有了色彩空间转换,就可以用一种格式的图像满足不同的图像格式要求。YUV 是一种基本色彩空间, 人眼对亮度改变的敏感性远比对色彩变化大很多, 因此, 对于人眼而言, 亮度分量Y 要比色度分量U、V 重要得多。 所以, 可以适当地抛弃部分U、V分量, 达到压缩数据的目的。
Camera ISP图像处理流程如下图所示:
下面大概介绍下某个模块的功能和作用:
RAW域:是指从DPC一直到demosaic阶段(此流程图)
DPC:坏点矫正(bed pixel corr),坏点由于芯片制造工艺等问题产生的,坏点是指亮度或者色彩与周围其他像素的点有非常大的区别,常用检测方法是在全黑环境下看亮点和彩点和在盖白板的情况下看黑点和彩点,ISP端一般通过在亮度域上取其他周围像素点均值来消除坏点
BLC:黑电平矫正(Black level corr),黑电平是指图像数据为0时对应的信号电平,进行黑电平矫正的目的;一是由于sensor本身会存在暗电流,导致在没有光照进来的条件下pixel也有电压输出,不过这部分一般在sensor端就已经处理掉了,还有一个原因是因为sensor进行模数转换时精度不够,以8bit为例,每个pixel有效范围是0-255,sensor可能无法将接近于0的信息转化出来,由于人眼特性(对暗处细节比较敏感,)所以sensor厂商一般在转换时会加一个固定的偏移量使像素输出在5(非固定值)—255之间,然后传输在ISP端再做一个减法,将5(非固定值)变为0
Denosice:降噪. 噪声在图像上常表现为一引起较强视觉效果的孤立像素点或像素块。一般在暗态下噪声表现尤为明显。影响人的主观视觉感受及对目标的观测,所以进行降噪,但是降噪一般伴随着细节的损失
LSC: 镜头亮度矫正(lens shading corr)由于镜头光学系统原因(CRA),sensor中心光轴附件的pixle感光量比四周多,所以导致呈现出来的画面会中心亮四周暗(同时由于边缘入射角大,会造成相邻像素间串扰,严重时会导致角落偏色)。 所以进行lsc的主要目的是为了让画面四周亮度与中心亮度一直,简单理解就是用过增加四周像素的gain值,来达到亮度一致
AWB:自动白平衡(auto white balance),白平衡顾名思义就是让白色在任何色温下camera都能把它还原成白,由于色温的影响,一张白纸在低色温下会偏黄,高色温下会偏蓝,白平衡的目的就是白色物体在任何色问下都是R=G=B呈现出白色,比较常用的AWB算法有灰度世界,完美反射法等
Demosica;颜色插值。SENSOR每个pixel只感知一种颜色分量(如流程图一开始所示),由于人眼对绿色比较敏感所以G的分量是R与B的两倍,所形成的图像称之为Bayer图,所以要通过颜色插值使每个pixel上同时包含RGB三个分量
CCM :色彩校正(color corr matrix),AWB已经将白色校准了,CCM就是用来校准白色除白色以外其他颜色的准确度的,用一个3X3的CCM矩阵来校准, 其中每一列系数r1+g1+b1等于一个恒定值1。Ccm矫正最终结果可以通过拍摄24色卡图片然后用imatest分析来做分析参考
Ygamma ;由于最早期的显示器端,亮度与电流之间响应不线性的,而是以曲线形式(曲线称之为gamma曲线),camera为了配合显示器显示出正确的亮度所以有了摄像头的gamma曲线与显示器gamma曲线成反比(不是绝对的),后来随着显示器的工艺发展,显示器亮度与电流之间已经可以做成显性关系了,但是人们发现由于gamma曲线的存在,摄像头暗部才能信息更好保留显示,更符合人眼视觉感受,我们可以通过调整gamma曲线来调整摄像头的亮度,对比度,动态范围等等的效果
EE:锐化,当物体锐化值过低时会出现边缘模糊,图像给人感觉不清晰,锐化过高就会导致图像出现锯齿白边等现象
CSM:色彩空间转化(color space matrix),RGB图像通过一个转转举止向SRGB等色彩空间转化的过程
Camera ISP和DSP区别:

拍摄景物通过镜头,将生成的光学图像投射到传感器上,然后光学图像被转换成电信号,电信号再经过模数转换变为数字信号,数字信号经过DSP加工处理,再被送到电脑中进行处理,最终转换成手机屏幕上能够看到的图像。
数字信号处理器DSP(DIGITAL SIGNAL PROCESSING)功能:主要是通过一系列复杂的数学算法运算,对数字图像信号参数进行优化处理,并把处理后的信号通过USB等接口传到PC等设备。DSP结构框架:
ISP(image signal processor)(图像信号处理器)
JPEG encoder(JPEG图像解码器)
USB device controller(USB设备控制器)
名词解释
ISP 是Image Signal Processor 的简称,也就是图像信号处理器。
DSP是Digital Signal Processor 的缩写,也就是数字信号处理器。
功能解释
ISP一般用来处理Image Sensor(图像传感器)的输出数据,如做AEC(自动曝光控制)、AGC(自动增益控制)、AWB(自动白平衡)、色彩校正、Lens Shading、Gamma 校正、祛除坏点、Auto Black Level、Auto White Level 等等功能的处理。
DSP功能就比较多了,它可以做些拍照以及回显(JPEG的编解码)、录像以及回放(Video 的编解码)、H.264的编解码、还有很多其他方面的处理,总之是处理数字信号了。
个人认为ISP是一类特殊的处理图像信号的DSP。
手机摄像头ISP是独立好还是内置好
ISP是独立还是内置,对最终拍照效果并没有决定性影响,并不像PC上的独立显卡与集成显卡有那么大差异。从性能上看,这一代高通处理器内置的ISP性能已经可以跟富士通的独立ISP媲美。而各家ISP的主要处理流程都是类似的,差异也只是在于部分模块有优劣之分,比如去噪、色彩增强等。进一步来说,即便用了独立ISP,它毕竟是一个外部组件,也有可能会因为调试过程复杂,开发周期过短,开发人员难以驾驭,使得最终效果并不特别理想。
真正影响整个相机拍照效果的,还是调试,看工程师能否发挥出一块ISP真正实力。例如对ISP里面每个算法模块的优化,相关多个模块的配合等等。我们从产品上来看,有很多即便用了独立ISP,但成像效果也依然不尽人意的,也有很多虽然用了内置ISP,成像效果居然很不错的。所以这个问题,需要辩证的来看,而非依照参数配置论来粗暴的进行理解。