何为pipeline:

  sensor输出是一种叫Bayer 格式的RAW数据图像。ISP 对RAW数据图像的处理流程就是我们说的ISP PipeLine。通过PipeLine的处理,我们可以从一副RAW图得到RGB格式图像,再到YUV格式的图像,也就是我们在屏幕上所看到的图像。

  下面,将结合下图为大家介绍一下安霸ISP PipeLine的详细情况。

  

  

输入:安霸ISP PipeLine的输入是一个有效位为16位的RAW图(12位的数据左移4位),raw图有不同的Baye 格式,常用的Bayer格式有RGGB,、GRBG、GBRG等多种。

  

  sensor的每一个像素点上都有一个rgb三原色的滤镜。红色的滤镜透过红色的波长,绿色的滤镜透过绿色的波长,蓝色的滤镜透过蓝色的波长。人眼对绿色比较敏感,所以一般bayer格式的图片绿色格式的像素是是r和g像素的和。那么根据Sensor的滤镜排列,则会生成不同格式的RAW图。

  Raw域的处理主要是static_black_level(BLC), li_auto_bad_pixel_correction(DPC),contrast_enhance,li_cfa_noise_filter等模块。

  RGB域的处理主要是demosaic,tone_curve(类似于gama曲线)

  YUV域的处理主要是rgb_to_yuv_matrix,chroma_scale,ASF,MCTF,SharpenB

RAW域处理模块的详细介绍:

static_black_level(BLC):这个模块称为黑电平矫正,安霸ISP PipeLine对RAW图处理的第一个模块。黑电平是指图像数据为0时(没有光信号到达sensor)对应的信号电平,但是黑电平常常不为0,原因为如下:

  一是由于sensor本身会存在暗电流,导致在没有光照进来的条件下pixel也有电压输出。还有一个原因是因为sensor进行模数转换时精度不够,以8bit为例,每个pixel有效范围是0-255,sensor可能无法将接近于0的信息转化出来,由于人眼特性(对暗处细节比较敏感,)所以sensor厂商一般在转换时会加一个固定的偏移量使像素输出在5(非固定值)—255之间,然后传输在ISP端再做一个减法,将5(非固定值)变为0。所以可以从已获得的图像信号中减去一定的电平信号,使暗处得到黑平衡。

  安霸的黑电平矫正参数如下:

  

  对bayer格式得四个通道分别减去一定得电平信号。这个参数得具体数值是由标定得到的。标定的一些流程如下:

  1. 将光圈、曝光时间设置为最小,最好是再将镜头用遮光片捂住,保证没有光线进入sensor。在这种环境下从0db开始到60db每隔6db拍取一张raw图,用来做BLC标定材料。
  2. 打开安霸工具IQ Lab导入上诉raw图,导入时需要填写raw的Baye 格式,分辨率,BLC等。刚开始标定时可以都写0。
  3. 导入图片后,点击file info,点击Ref并记录下黑电平数值。

 li_auto_bad_pixel_correction(DPC):坏点矫正,安霸的ISP PipeLine将此模块放在BLC之后。Sensor上像素点的阵列工艺可能会存在缺陷,或光信号进行转化的过程中出现错误,会造成图像上有些像素的信息有误,导致图像中的像素值不准确,这些有缺陷的像素即为图像坏点(Bad pixel)。

  坏点的分类有以下几种:

  静态坏点:

  亮点:一般来说像素点的亮度值是正比于入射光的,而亮点的亮度值明显大于入射光乘以相应比例,并且随着曝光时间的增加,该点的亮度会显著增加;

  暗点:无论在什么入射光下,该点的值接近于0;

  动态坏点:在一定像素范围内,该点表现正常,而超过这一范围,该点表现的比周围像素要亮。与sensor 温度、增益有关,sensor 温度升高或者gain 值增          大时,动态坏点会变的更加明显。

  安霸的静态坏点的矫正主要依赖于工具的标定,用生成的Bad Pixel Bitmap(静态坏点表)去处理静态坏点。

  

  安霸的动态坏点矫正参数如下:

  

  其中hot_pixel_detection_strength代表亮点坏点的检测阈值,值越大则越容易被判断为亮点坏点。dark_pixel_detection_strength则是暗点坏点的检测阈值。值越大则越容易被判断为暗点坏点。

  Correction_method则是坏点的矫正强度,取值范围为0-1。值越大矫正力度越强。如果要对亮点坏点和暗点坏点进行不同的矫正力度,就要通过enable参数调节,其取值范围为0-4。1st的矫正力度较小,2nd的矫正力度更大。

  

  注意事项:对于坏点的矫正虽然能降低图像上的噪点,但是不能使用太强的矫正强度。否则会抹去过多的信息,使得图像细节损失。

contrast_enhance:安霸ISP PipeLine中的重要模块,其中完成了动态范围压缩,细节增强。

  

  首先Guided Filter 将图像分为Detail层和Base层,涉及的参数如下,越大就会有越多的信号进行细节增强处理。

  

  radius、epsilon这两个参数的越大,coring_gain_*对画面的细节增强越明显。

  

  Fir_enable 是一个低通滤波的开关,关闭后会有更多的高频信息。

  

  通过luma_avg将画面分为64个亮度不同的区域,Coring_table数组内的成员是这64个区域的细节增益。值越大则细节越强。

  

  Coring_gain_*_strength这组参数是以亮度为横坐标的细节增强曲线,其中coring_gain_low,coring_gain_high这两个数值会将横坐标分为低亮区、中亮区、高亮区。对不同亮度区域可使用不同的增益强度。Coring_gain*_strength。

  最后coring_gain_*_strength 乘上Coring_table则是对图像detail层的细节增强增益。

  

  Boost_table是一个64元素的数组,第一个元素对应luma=0,最后一个元素对应luma最大值。增强这个参数的数值,可增强图像的动态范围。

 

  CFA Noise Filter:是作用与raw域的降噪模块,采用中心像素与周围像素做加权平均的思路进行降噪。Filter将图像分为平坦区域(使用Regular滤波)和细节部分(使用Fine滤波)进行各自的降噪设置。

  

  Noise_level_blue/green/red作为R/G/B三个通道的Regular降噪滤波门限,低于这组参数的值会被判定为平坦区,采用Regular滤波。该门限的值越高,则滤波强度越强。

  

  Noise_level_blue/green/red乘以strength_fine_blue/green/red作为R/G/B三个通道的Fine滤波的门限。低于这组参数的值会被判定为细节区,使用Fine滤波,高于这个门限的不做处理。

  

  Extern_fine_blue/green/red是Fine滤波的滤波半径。Extern_Regular_blue/green/red是Regular滤波的滤波半径。

  Noise_level越强,降噪越强。并可根据R/G/B区分通道,单独处理。Extern越强,加权平均的radius越大,则降噪能力越强。一般不建议在raw域上使用很强的降噪强度,这样会抹去很多细节,后面难以复原。

 

 

简述安霸pipeline及其关键参数--raw域模块的更多相关文章

  1. 安霸pipeline简述之rgb域的处理

    RGB域处理模块的详细介绍: RGB域的处理主要是demosaic,color_correction,tone_curve(类似于gamma曲线).   Demosaic:此模块将bayer Patt ...

  2. 安霸pipeline简述之YUV域的处理

    YUV域处理模块的详细介绍: YUV域的处理主要是rgb_to_yuv_matrix,chroma_scale,ASF(空域降噪),MCTF(时域降噪),SharpenB(锐化模块). RGB2YUV ...

  3. Jenkins pipeline job 根据参数动态获取触发事件的分支

    此文需要有Jenkins pipeline job 的简单使用经验 场景 我们日常的测试函数, 一般是不能仅仅在本地跑的,还需要一个公共的跑测试的环境,作为合并新的PR的依据. 如果用Jenkins ...

  4. Javascript中关键参数this浅析

    自从接触javascript以来,对this参数的理解一直是模棱两可.虽有过深入去理解,但却也总感觉是那种浮于表面,没有完全理清头绪. 但对于this参数,确实会让人产生很多误解.那么this参数到底 ...

  5. JVM内存模型和关键参数设置

    一. JVM内存模型: Jvm内存模型是学好Java很重要的一部分,该部分学习能让我们在系统运维的时候,或者优化服务器的时候能够有方法,懂原理. 二. Jvm关键参数: 1. 堆大小设置参数: -Xm ...

  6. MySQL数据库性能优化的关键参数(转)

    我们在进行数据库管理和开发中经常会遇到性能问题,这就涉及到MySQL的性能优化.通过在网络上查找资料和笔者自己的尝试,我认为以下系统参数是比较关键的: 关键参数一:back_log 要求 MySQL ...

  7. A Byte of Python 笔记(5)函数:定义、形参、局部变量、默认参数、关键参数

    第7章  函数 函数是重要的程序段.它们允许你给一块语句一个名称,然后你可以在程序的任何地方使用这个名称任意多次地运行这个语句块.这被称为 调用 函数. 定义函数 函数通过 def 关键字定义.def ...

  8. mysql的"双1设置"-数据安全的关键参数(案例分享)

    mysql的"双1验证"指的是innodb_flush_log_at_trx_commit和sync_binlog两个参数设置,这两个是是控制MySQL 磁盘写入策略以及数据安全性 ...

  9. MySQL数据库详解之"双1设置"的数据安全的关键参数案例分享

    mysql的"双1验证"指的是innodb_flush_log_at_trx_commit和sync_binlog两个参数设置,这两个是是控制MySQL 磁盘写入策略以及数据安全性 ...

随机推荐

  1. 2021.8.17考试总结[NOIP42]

    $\huge{取模不能比大小!}$ $\huge{取模不能比大小!}$ $\huge{取模不能比大小!}$ 有了打地鼠的前车之鉴,我深信树规板子是可以出现在联赛题里的. 所以T1十分钟码完直接溜了,后 ...

  2. 攻防世界 杂项 10.2017_Dating_in_Singapore

    题目描述: 01081522291516170310172431-050607132027262728-0102030209162330-02091623020310090910172423-0201 ...

  3. Zabbix 4.4 离线安装 使用mariadb的踩坑,无法停止服务

    先分享一个网站,之前就没注意过有这个网站,不知道是啥时候开放的.里面分享了N多zabbix的模板. https://share.zabbix.com/ 报错如下 Unsupported charset ...

  4. VNC服务器的搭建(带图形化支持)

    环境:centos7.6最小化安装 图形化支持 如果希望安装简单的图形支持的话,仅包含gnome的最最最最基础的包的话可以使用以下命令 yum groups install "X Windo ...

  5. 【微服务理论】API + BFF

    对于微服务,常见的架构模型就是API网关+服务. API网关实现鉴权.负载均衡.中间件等公共入口逻辑. 服务实现具体的业务功能. 那么,API网关设计中又有什么坑呢? 1.0版本 直接将服务穿透到外网 ...

  6. git stash 存储命令

    应用场景 一.当你接到一个修复紧急 bug 的任务时候,一般都是先创建一个新的 bug 分支来修复它,然后合并,最后删除.但是,如果当前你正在开发功能中,短时间还无法完成,无法直接提交到仓库,这时候可 ...

  7. VMware软件虚拟机不能全屏的问题 & CentOS 安装Vmware Tools

    修改设置 1) 如下图右单击虚拟机名,选择[settings-],调出虚拟机设置界面. 2) 在设置界面选择[hardware]->[CD/DVD2(IDE)]->[Connection] ...

  8. 2021 陇剑杯wp

    前言 这比赛应该叫应急响应比赛,而且flag交三次就不能交了,就因为我交错一道题然后差一道进线下,气死了. Jwt 2.1 jwt 题目提示 2.2 搜索username得到 10087#admin ...

  9. Kafka面试题总结

    1.Kafka 都有哪些特点? 高吞吐量.低延迟:kafka每秒可以处理几十万条消息,它的延迟最低只有几毫秒,每个topic可以分多个partition, consumer group 对partit ...

  10. 动手写一个简单的Web框架(模板渲染)

    动手写一个简单的Web框架(模板渲染) 在百度上搜索jinja2,显示的大部分内容都是jinja2的渲染语法,这个不是Web框架需要做的事,最终,居然在Werkzeug的官方文档里找到模板渲染的代码. ...