zoukankan      html  css  js  c++  java
  • ISP算法高水平分析(上)

    ISP算法高水平分析(上)

    一.ISP基本框架及算法介绍
    ISP是Image Signal Processor的缩写,全称是影像处理器。在相机成像的整个环节中,它负责接收感光元件(Sensor)的原始信号数据,可以理解为整个相机拍照、录像的第一步处理流程,对图像质量起着非常重要的作用。

    ISP的功能比较杂,基本上跟图像效果有关的它都有份。它内部包含多个图像算法处理模块,其中比较有代表性的是:

    •        扣暗电流(去掉底电流噪声)

    •        线性化(解决数据非线性问题)

    •        shading(解决镜头带来的亮度衰减与颜色变化):可优先开发

    •        去坏点(去掉sensor中坏点数据)

    •        去噪(去除噪声):可优先开发

    •        demosaic(raw数据转为RGB数据)

    •        3A(自动白平衡,自动对焦,自动曝光)

    •        gamma(亮度映射曲线,优化局部与整体对比度) :可优先开发

    •        锐化(调整锐度)

    •        色彩空间转换(转换到不同色彩空间进处理)

    •        颜色增强(可选,调整颜色)

    •        肤色增强(可选,优化肤色表现)

    二.Sensor信号输出YUV、RGB、RAW DATA、JPEG 4种方式区别

    YUV: luma (Y) + chroma (UV) 格式, 一般情况下sensor支持YUV422格式,即数据格式是按Y-U-Y-V次序输出的。
    RGB: 传统的红绿蓝格式,比如RGB565,其16-bit数据格式为5-bit R + 6-bit G + 5-bit B。G多一位,原因是人眼对绿色比较敏感。
    RAW RGB: sensor的每一像素对应一个彩色滤光片,滤光片按Bayer pattern分布。将每一个像素的数据直接输出,即RAW RGB data。
    JPEG: 有些sensor,特别是低分辨率的,其自带JPEG engine,可以直接输出压缩后的jpg格式的数据。

     YUV一个像素占2B,如果像素太高在高时钟下基带芯片处理不过来,JPEG数据量就要小的多,所以不是YUV对基带芯片有要求而是基带芯片对输出数据速率有要求。
    2 RGB565一般用在很低端的基带芯片上,直接往屏上刷。YUV输出亮度信号没有任何损失,而色偏信号人眼并不是特别敏感,RGB565输出格式是R5G3 G3B5会丢掉很多原始信息,所以YUV图像质量和稳定性要比RGB565好的多。
    3 RAW数据每个像素就1B,数据量要少很多,一般5M以上sensor就只输出RAW数据以保证比较快的输出速度,后端挂一个DSP来处理输出的数据。

    三.ISP算法处理流程

     

     

     四.Denoise-----去除噪声

    使用 cmos sensor 获取图像,光照程度和传感器问题是生成图像中大量噪声的主要因素。同时,当信号经过 ADC 时,又会引入其他一些噪声。这些噪声会使图像整体变得模糊,而且丢失很多细节,所以需要对图像进行去噪处理空间去噪传统的方法有均值滤波、 高斯滤波等。

    但是,一般的高斯滤波在进行采样时主要考虑了像素间的空间距离关系,并没有考虑像素值之间的相似程度,因此这样得到的模糊结果通常是整张图片一团模糊。所以,一般采用非线性去噪算法,例如双边滤波器,在采样时不仅考虑像素在空间距离上的关系,同时加入了像素间的相似程度考虑,因而可以保持原始图像的大体分块,进而保持边缘。

    采用特定的LPF(Low Pass Filter)对图片进行滤波,滤除图像的噪声成分,而Bilateral filtering即双边滤波器,它是一种保护边缘的平滑滤波器,这样既可以滤除噪声,edge又可以保留下来。

    常见算法分类

    空域算法

    均值滤波、中值滤波、高斯滤波、双边滤波、NLM

    变换域算法

    频域:低通滤波、高通滤波、带通滤波

    Wavelet:基于小波系数阈值、基于系数相关性等

    DCT(离散余弦)变换等

    时域算法

    一般为常规算法结合多帧匹配,前景和背景判断、动静判决

    结合算法

    类似BM3D去噪算,空域和Wavelet的结合

    六.Demosaic------颜色插值

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

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

     

     

     七.AF------自动对焦

     

     八.AE------自动曝光

    曝光。EXPOSURE 主要影响图像的明暗程度。ISP 需要实现 AE 功能,通过控制曝光程度,使得图像亮度适宜。

    曝光表(Exposure Meter),也叫测光表。摄影时计量光的强弱并借以控制摄影曝光时间和光圈大小的仪表。内置表设定。

     

     

     

     九.AWB------自动白平衡

    白平衡。白平衡与色温相关,用于衡量图像的色彩真实性和准确性。ISP需要实现 AWB 功能,力求在各种复杂场景下都能精确的还原物体本来的颜色。人类视觉系统具有颜色恒常性的特点,因此人类对事物的观察可以不受到光源颜色的影响。但是图像传感器本身并不具有这种颜色恒常性的特点,因此,其在不同光线下拍摄到的图像,会受到光源颜色的影响而发生变化。例如在晴朗的天空下拍摄到的图像可能偏蓝,而在烛光下拍摄到的物体颜色会偏红。因此,为了消除光源颜色对于图像传感器成像的影响,自动白平衡功能就是模拟了人类视觉系统的颜色恒常性特点来消除光源颜色对图像的影响的。

    1. 灰度世界算法(Gray World Assumption)

    这个算法原理很简单, 就是根据前面所说的灰度世界理论, 将原始图像的RGB均值分别调整到R=G=B即可。不完美的地方就是这个算法对颜色不丰富的图像敏感程度一般, 处理起来效果也就不会很理想, 局限性较大。

    2. 标准差加权灰度世界算法(Standard DeviationWeighted Gray World Assumption)

    标准差加权灰度世界算法是针对上一个算法的改进, 它的原理是把图像等分成几块, 然后对每个块利用统计学进行分析, 看里面颜色的丰富程度, 颜色多的就加权, 颜色少得就减少权重, 最后求和得出一个均值。根据这个相对精确的数值来进行RGB数值的修正。

    3. 全反射算法(Perfect Reflector Assumpution)

    这个是基于前面介绍的全反射理论生成的算法, 理解起来也不难, 它认为中最亮的那个点就一定是白色的, 如果原始图像中最亮的那个点不是, 那就针对偏离白色的数值进行逆向修正。缺点就是如果图像色彩复杂或者就是没有高光点, 它的修正效果就会比较乏力。

     

     

     

  • 相关阅读:
    [luoguP2221] [HAOI2012]高速公路(线段树)
    SICP:对数步数内迭代计算幂的函数
    python__tkinter之listbox&button
    C陷阱与缺陷 之 各种知识技巧
    ACM && Find Minimum in Rotated Sorted Array
    windows编程一些小知识
    Linux_C pthread 关于多线程一个简单的程序
    ACM&贪心算法
    Linux_C socket 数据报之client, server.c
    Linux_C socket 数据报之一些辅助函数
  • 原文地址:https://www.cnblogs.com/wujianming-110117/p/12933350.html
Copyright © 2011-2022 走看看