大家好,又见面了,我是你们的朋友全栈君。
- ISP pipeline
DBS:校准经过OBC之前不同像素暗电流的差值。 因为器件原因,会存在暗电流,存在暗电流的情况下会导致偏色。
OBC:sensor电路本身存在暗电流,没有光线的时候,像素会有输出,OBC减去暗电流,找到0基准。 Lens Shadding:镜头阴影校正 镜头是一个凸透镜,在接收光线时,成像较远时,会造成斜光束慢慢减少,图片中心较亮,四周比较暗。
PGN:3A统计计算模块(计算awb、af、ae) UDM:利用颜色插值,光分为r,g,b三原色,g是亮度,通过g的插值,得到一下图片。
CCM:颜色校正 由于各个颜色块之间的相互渗透带来颜色差,将拍摄到图片与原相片对比,得到一个像素矩阵。在以后的图像传感器中,都利用这个像素矩阵来使原图片与拍摄到的图片尽量一致。
GMA:人眼对亮度的感知时非线性的,gamma校正是为了模拟人眼对亮度的感知。 ANR:YUV(图片格式)域降噪模块。 EE:YUV域蜕化模块(锐化增强图片边缘细节) ANR2:YUV降噪的2次处理。 HFG:高频率产生器,增加图像颗粒感,增强细节。 COLOR:调整布局色彩。
图像噪声直观表现为图片不清晰,噪声在图像上常表现为一引起较强视觉效果的孤立像素点或像素块
- 3A之AWB
AE:自动曝光 通过调节快门、光圈、感光度来使图像达到合适亮度。 AF:自动对焦 通过控制对焦马达的位移,使镜头焦点在合适位置。 AWB:自动白平衡 在不同色温下,白色图片会呈现出不同的颜色,白平衡就是为了使白色尽可能的还原成白色。
sensor原始图像中的白色如果不经AWB处理,在高色温(如阴天)下偏蓝,低色温下偏黄,如宾馆里的床头灯(WHY!OTZ) (如下图).
流程原理: 1、在各个色温下(2500~7500)拍几张白纸照片,假设拍6张(2500,3500…7500),可以称作色温照. 2、把色温照进行矫正,具体是对R/G/B通道进行轿正,让偏色的白纸照变成白色,并记录各个通道的矫正参数. 实际上只矫正R和B通道就可以,这样就得到了6组矫正参数(Rgain,Bgain). 3、通过以上流程,只需要知道当前场景是什么色温,再轿正一下就可以了。
第一步我们获取了6张图片和6组校正值,6组校正值是完全不够的,我们可以通过颜色插值来获取无数个值,再把这些点连成线,会获得一个色温曲线。
这样只要知道色温,就知道RG,知道RG,就知道BG,知道RG,BG就能轿正了。 计算色温: 1、取一帧图像数据,并分成MxN块,假设是25×25,并统计每一块的基本信息(,白色像素的数量及R/G/B通道的分量的均值).
白点范围:在高色温和低色温中间的部分认为是白点。
2, 根据第1步中的统计值, 找出图像中所有的白色块,并根据色温曲线判断色温。 3、至此,我们得出来了图像中所有的可能色温,如果是单一光源的话,可以取色温最多的,当作当前色温. 比如25×25=625 个块中,一共找出了100个有效白色块, 里面又有80个白色块代表了色温4500左右, 那当前色温基本就是4500. 根据4500色温得出的Rgain,Bgain来调整当前图像,就不会差(很多!).
上一步中统计的”白色点”难免会有失误的地方,比较常见的如黄色皮肤容易被误判为低色温下的白点,淡蓝色的窗帘,容易被误判为高色温下的白点,一张图中既有白色,也有黄色,也有蓝色的时候,情况就很复杂了。
我们会把取到的白色块,计算一下到曲线的距离,再设置相应的权重.话不多说,上个图大家就都明白了.
图中的数字标示出了检测到的白色区域,数字相同的表示一个白区。
图中一片白色被标识了高权重.其它情况被标识了低权重. 权重高低一是看块中白色点数量,二是看rg/bg到色温曲线的距离。 然后根据色温曲线来进行校正。
- 3A之AE
曝光是摄影中十分重要的一个环节,它决定了一张图片的明暗,如下图所示,第一张图片太暗,而第三种图片太亮。
曝光由光圈、曝光时间、ISO三者共同决定。 对于手机以及其他电子产品使用的微型摄像头,光圈大小是固定的,所以手机拍照的曝光由曝光时间和增益(ISO)来控制。 自动曝光就是 自动调节曝光时间、光圈、ISO进行曝光,使得所摄物体亮度正常。 自动曝光的标准: 物体的亮度与色彩是由物体对光线的反射率来决定的。例如纯黑色的放射率是0,纯白色的反射率是100%,处于中间的灰度的反射率是18%,这就是18%中间灰度。 相机在各种场景下无法识别物体的反射率,于是统一将图像整体平均亮度设置为中性灰的亮度。该方法基于 科学家认为自然界的平均反射率是18% 这一理论。当然,这个理论不是万能的,雪景的亮度肯定大于18%,白增黑减。
自动曝光的算法: 1、 均值法AE Input = 255 x (Output/255)gamma
Output是我们期望的曝光输出值,也就是18%灰的曝光强度,Gamma一般都是2.2。在灰度卡上以0~255为计算区域的话,那么18%灰的Ouput就是122,Input就是50。也就是测光区域的实际曝光强度应该为50。
2、 N段式统计法 调节ISO最主要的副作用就是会同时增强噪点,如果把暗光下的图片放大多倍,噪点就会非常明显;通常是优先调节曝光时间,但是曝光时间也有个上限,必须要在33ms内完成才能保证每秒30fps的预览帧率。 N段指的就是ISO的不同段,优先保证ISO较小的情况下调节曝光时间,当曝光时间到极大值仍不能满足时再将ISO调大一级再重新调整曝光时间。
3、 平均亮度法 对图像所有像素亮度求平均值,通过不断调整曝光参数最终达到目标亮度。 1) 对当前图像进行亮度统计 2) 根据当前图像亮度确定曝光值 3) 计算新的曝光参数,曝光时间、光圈、增益 4) 将新的曝光参数应用到相机 5) 重复1-4,计算出一个目标亮度。
- 曝光原理
Global Shutter 1、整幅场景通过同一时间曝光实现的,senor所有像素点同时收集光线,同时曝光 2、曝光开始,sensor收集光线,曝光结束,光线电路被切断,sensor读出一整副图片 3、CCD就是Global Shutter,所有元素同时曝光 Rolling Shutter 1、 sensor逐行曝光,曝光开始,sensor扫描逐行曝光,像素点都被曝光 2、 所有的曝光快速完成,不同行曝光时间不同
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210720112008408.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zODM2MDE4MQ==,size_16,color_FFFFFF,t_70#pic_center
缺点 Global shutter 曝光时间更短,但会增加读出噪声; 选择rolling shutter可以达到更高的帧速,但当物体曝光不当或者移动较快时,会出现部分曝光、斜坡图形、晃动等现象。被称为果冻效应
Rolling shutter:像素逐行曝光、通常有更高的像素数量、适用于静止或缓慢移动的物体 可能会扭曲移动物体的图像 Global Shutter:所有像素同时曝光、适合快速移动的物体、不会扭曲物体图像
卷帘曝光在物体快速移动的时候会扭曲,但是全局曝光不会。
每个橙色框都是一个像素,我们的图像只有三个像素。 当我们的英雄爬上楼梯时,像素一次被读取一个,从而导致最后一帧的滞后。 注解: Global Shutter能够做到全局曝光,跟Rolling Shutter相比,主要是Global Shutter在每一个像素上都增加了一个存储单元,才使得所有的像素能够同时曝光。 Rolling Shutter sensor则适用于拍摄运动速度相对较慢的物体或场景,可获得更高的成像信噪比。 于Global shutter需要对每个像素都要增加一个存储单元,这样增加了sensor的生产难度以及成本。
5. 3A之AF
三种对焦方式:CDAF、FDAF、Laser assist AF CDAF反差对焦:
右上图中的白色方框代表对焦点,此处反射出的红色光线在经过镜头,到达传感器前就汇聚在一点,随后又散开,此时图像的对比度是很低的。 将这个对焦点与相邻像素的对比度作分析得出右下角的曲线,失焦状态下对比度低,在聚焦过程中,曲线变得逐渐变得倾斜,但是不能判断什么时候是最高点,只有经过了对焦点后曲线下降再往回移动,反复移动后可以得到一个局部梯度最大值,就认为是对焦成功。 优点:光学设计简单。 缺点: a. 速度较慢,在出现失焦图像时,机器无法判断该移动多少,甚至往哪个方向移动镜头才能聚焦,甚至到了峰值也不知道,必须移动过了以后再往回移动,来回几次后才能找到对焦点; b. 在物体对比度较低时会对焦失败,比如雪景,无云的蓝天以及各种纯色的图像。 对比度: 对比度对视觉效果的影响非常关键,一般来说对比度越大,图像越清晰醒目,色彩也越鲜明艳丽;而对比度小,则会让整个画面都灰蒙蒙的。
相位法
想象有两个小窗的房间,房间内有一个烛光,房间内一左一右站着两排人。让他们各排中间那位可以透过窗户看到烛光。这就是所谓的准焦。烛光后移时,右边这排人发现看到烛光的变成靠左边的人,左边那排人看到烛光是靠右手的人。这个时候,就可以看到,看到光的两个人越靠近,光就离我们越远,反之亦然。 AF传感器的基础原理:利用两个方向的光来推算物体的距离。
在上述这个例子中,线性传感器就是那两排人,成像面就像窗户,二次成像透镜想象成每个人的眼睛,图中这个光路可以看到,来自同一个光源,镜头左边与右边进入的两道光线聚集在成像面上。成像面上有个小窗,焦点附近的光透过,光线继续向后发散,由二次成像透镜将光重新聚集在线性传感器的中央。
光源后移,光束在成像面上失焦了,同时两道光束打在二次成像透镜上的位置也会改变,这样会似的上方的透镜略微上移,下方的成像略微下移。光源后移时,打在这一对显性传感器上的光距离会变,反之光源前移时,距离变小。这两个成像之间的距离就是相位差。 相机就是参考目前的相位差来驱动对焦马达。 PDAF:
紫色光线代表经过上半部分透镜的光线,蓝色代表经过下半部分透镜的光线,可以看到,CCD在焦前的时候上半部分的CCD接收到的是上半部分的光线,下半部分接收的是下半部分的光线,在焦后的时候,是相反的,上半部分接收的是下半部分的光线,下半部分接收的是上半部分的光线。这样就可以通过区分光线是来自透镜的上半部分还是下半部分,就可以知道是在焦前或者焦后了。当亮色光线重合时,图像最清晰。
PDAF sensor的一种实现如上图所示,在CMOS上面一半的位置加了金属遮盖,这样,被遮住左边一半的像素点就只能接受右边来的光,同理,pair的被遮住右边一般的像素点就只能接受左边来的光。一般在CMOS中,遮住左边和遮住右边的像素点是在相邻位置会成对出现。 遮蔽因子遮住图像传感器左右的两个像素点得到他们的相位差,再通过算法结算,得到焦点位置,最后通过音圈马达移动镜头的位置,完成对焦。 验证方法 1、 将抓取PDAF log开关打开 2、 抓取log,按照mtk文档排查,读取confidence数据,confidence数据是一组数据,我们需要排查这组数据变化是否较大。 3、 PD线性度测试(在log里查找pdvalue与af位置,看他们是否是呈线性关系) 4、 肉眼看是否是一次性对焦到位,如果是相位对焦。如果不是反差对焦。 Type1、Type2、Type3的区别 1、 Type1:PD像素通过传感器校正,PD值通过传感器计算 2、 Type2:PD像素通过传感器校正,PD像素通过vc输出到isp 3、 Type3:PD像素通过ISP校正,PD像素通过isp从原始图像中提取PD像素由ISP3.0上的PDAF算法提取。 Vc是传输raw和pd像素的两个通道。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/197280.html原文链接:https://javaforall.cn