PDAF原理简介_pfc电路工作原理图

PDAF原理简介_pfc电路工作原理图PDAF原理原理及分类原理:是在感光芯片上预留出一些规律性对称的遮蔽像素点,专门用来进行相位检测,通过像素之间的距离及变化来决定对焦的偏移量即相位差(PD值)从而实现快速对焦。SP(shieledpixel)屏蔽掉像素一般的感光区域(黑色部分),值获得一半信号。需要另外的像素屏蔽掉另一半信号,得到完整的相位差信息。SP越多,对焦越快,但信号损失越严重,目前SP密度控制在1%~3%。屏蔽掉像素一般的感光区域(黑色部分),值获得一半信号。需要另外的像素屏蔽掉另一半信号,得到完整的相位差信息。S

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

1.PDAF原理

原理:是在感光芯片上预留出一些规律性对称的遮蔽像素点,专门用来进行相位检测,通过像素之间的距离及变化来决定对焦的偏移量即相位差(PD值)从而实现快速对焦。

1.1PDAF系统框图

PDAF系统框图

1.2 PDAF 分类

1.2.1 单PD(shieled pixel)

屏蔽掉像素一般的感光区域(黑色部分),值获得一半信号。需要另外的像素屏蔽掉另一半 信号,得到完整的相位差信息。SP越多,对焦越快,但信号损失越严重,目前SP密度控制在1%~3%。
屏蔽掉像素一般的感光区域(黑色部分),值获得一半信号。需要另外的像素屏蔽掉另一半 信号,得到完整的相位差信息。SP越多,对焦越快,但信号损失越严重,目前SP密度控制在1%~3%。
在这里插入图片描述
在这里插入图片描述

1.2.2 双PD(Dual Pixel)

将同一个像素底部的感光区域(即光电二极管)一分为二,在同一个像素内即可完成相位信 息捕获。dual PD 也有叫 2PD、全像素双核对焦,这种像素覆盖率100%,所以对焦体验最佳。但由于将光电二极管一分为二,井口变小,FWC急剧衰减,dynamicrange衰减严重,拍照 非常容易过曝。三星凭借优秀的ISP和调试能力过曝控制的还可以,但金立M2017驾驭能力就稍弱了。但单从对焦来说,dual PD>2*1PD>shield pixel,这种优势尤其体现在暗环境下对焦的稳定性上,比如10lux/5lux/1lux这些极暗环境下的对焦。

使用两个光电二极管(即两个检测点)
把两个光电二极管放在一个像素井内(即成对出现 )分别读取两个二极管内的信息(即每个只取一半)也就是说之前需要两个像素并且各遮一半才能组成一组对焦点,现在不需要了,对光线利用率也很高。对焦时开一个二极管,成像时两个二极管拼起来同时使用。使用这种方法能彻底解决掩蔽式相位对焦“挖像素”带来的掉画质问题,并且理论上可以做到所有像素都能参与对焦

优点:暗光对焦能力非常强悍 不需要额外相位对焦像素 画质表现接近反差对焦传感器 而且可以生成深度图供景深处理,是目前手机上较为理想的解决方案
缺点:全像素采样视频模式下不能相位对焦

1.2.3

简单分析三种PDAF技术:

1.shield pixel
屏蔽掉像素一般的感光区域(黑色部分),值获得一半信号。需要另外的像素屏蔽掉另一半 信号,得到完整的相位差信息。 SP越多,对焦越快,但信号损失越严重,目前SP密度控制在1%~3%。

2.super PD
将相邻的像素共用一个on chip microlens得到相位差信息,一般在Green上处理。 同样的,二合一的PD越多,对焦越快,但信号损失越严重,目前密度也控制在1%~3%

3.dual PD
将同一个像素底部的感光区域(即光电二极管)一分为二,在同一个像素内即可完成相位信 息捕获。dual PD 也有叫 2PD、全像素双核对焦,这种像素覆盖率100%,所以对焦体验最佳。但由于将光电二极管一分为二,井口变小,FWC急剧衰减,dynamic
range衰减严重,拍照 非常容易过曝。

但单从对焦来说,dual PD>2*1 PD>shield
pixel,这种优势尤其体现在暗环境下对焦的稳定性上,比如10lux/5lux/1lux这些极暗环境下的对焦。另外,即使是同一种PDAF,受microlens的设计、像素大小、用于PD的color filter、sensitivity、Fab制程等因素影响,各家的效果还是不一样。

2.高通PDAF校准流程

2.1 gain map介绍

由于shiled pixel一半被遮盖住,感光面积只有正常pixel感光能力的一半,所以感光能力要比正常的pixel感光能力弱,gainmap就是对遮蔽pixel做感光能力的补偿
在这里插入图片描述

2.1.2 gain map校准流程

  1. 将马达推到远近焦中间位置
  2. 下寄存器打开PD点
  3. 自动AE到指定的曝光值
  4. 取一张raw10图片
  5. 调用高通的DLL计算出应该补偿的数值
  6. 把增益写入OTP

有些Sensor的PD Pixel都是G Pixel,有的是R、B Pixel,有的是B、G Pixel,故不同芯片的数据左右差异大小不同。

2.2 PDAF DCC

相位视差和镜头运动之间的转换用离焦转换系数(DCC)表示,其单位为dac/pixel。
在这里插入图片描述

DCC为一个无符号量,以正值的形式存储在eeprom中。如果PDAF校准工具输出的DCC的值为一个负值,则会返回一个错误代码,表示校准结果无效。在sensor配置中,左右PD点配置错误可能会导致这种情况

在这里插入图片描述

像素的视差以像素为单位表示,计算得到的位移量是一个相对值,表示镜头需要移动多少距离,而不是表示镜头当前所在的位置,PD值有正负之分,PD值决定马达的位移方向,当PD值等于0时,图像是最清晰的

2.3 DCC Calibration

2.3.1 校准chart

DCC校整可以使用菱形chart或者条形chart进行测试
线条chart ,和菱形chart相比,条形chart可以获得更均匀的相位差数据,DCC校准Chart是校准DLL所需要输入的工具之一,对于垂直放置PD点的sensor,推荐使用水平的线条测试Chart

2.3.2 测试距离

DCC校准推荐的相机模组到测试chart的推荐距离位置在 AF_cal_inf到af_cal_near中间的位置,大多数摄像头模组设计的测试距离在20cm到30cm,在使用长焦镜头的camera模组中,这个测试距离有可能会达到2m
camera视场角覆盖测试图活动区域的85%-95%,如下图所示。
在这里插入图片描述
正确使用测试chart,避免DCC校准过程中的系统误差,从而导致PDAF性能问题。测试图尺寸不合适,测试图旋转/或倾斜,以及过度曝光导致常见的DCC校准错误。下图显示了正确使用测试图的例子,以及常见的测试图问题。在这里插入图片描述

2.3.3 DCC校准过程

Lens从远焦移动到近焦总共移动9步,在镜头移动过程中,会获取十张图片,从这十张图片中获取十个相位差的值和10个焦距值,用这些数据进行线性回归,得到DCC值,图像被划分为6X8个区域,从而形成6X8DCCmap,如下图所示:
在这里插入图片描述

2.3.4 校准流程:

  1. 打开PD点
  2. 马达推到远近焦中间位置
  3. AE曝光
  4. 获取Gain map数据
  5. 从远焦到近焦取十张图片
  6. PDAF第二步计算DCC
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/196309.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 安卓ExpandableListView的详细使用教程(附代码解析过程)「建议收藏」

    安卓ExpandableListView的详细使用教程(附代码解析过程)「建议收藏」ExpandableListView又称可扩展的ListView,它可以实现点击父项展开子项的效果,本文实现了一个比较精美的ExpandableListView。

    2022年6月30日
    25
  • js 除法 取整「建议收藏」

    js 除法 取整「建议收藏」1.丢弃小数部分,保留整数部分 js:parseInt(7/2) 2.向上取整,有小数就整数部分加1 js:Math.ceil(7/2) 3,四舍五入. js:Math.round(7/2) 4,向下取整 js:Math.floor(7/2)都是JS内置对象

    2022年6月21日
    94
  • APP推送系统工作原理

    APP推送系统工作原理一、传统APP架构下的信息传送APP主动向服务器请求数据,服务器被动的提供数据。步骤如下:然而,如果此时服务器又有了新的新闻,在用户没有主动刷新的情况下,服务器是不会主动推送给用户的。推送解决了这个困境,它让服务器主动连接APP,通知APP有了新的新闻,可以再请求。收到推送的APP(即使已关闭)又去服务器请求最新的新闻,用户就能看到了。二、实现推送的方法实现一个推送系统需要服务器端和…

    2022年6月2日
    29
  • Jenkins(2)docker容器中安装python3[通俗易懂]

    Jenkins(2)docker容器中安装python3[通俗易懂]前言使用docker安装jenkins环境,jenkins构建的workspace目录默认是在容器里面构建的,如果我们想执行python3的代码,需进容器内部安装python3的环境。进jenki

    2022年7月28日
    3
  • 从ResNet101到ResNet50

    从ResNet101到ResNet50一直用VGG训练,几天前想看下ResNet的效果如何,因为SSD源码中有python实现的ResNet网络结构实现代码,包含ResNet101和ResNet152,直接拿ResNet101来训练,GTX1060配置,batchsize竟然只降到2才跑的起来,果然一直收敛不了。看了下model_libs.py里面的实现代码:defResNet101Body(net,from_layer,u

    2022年10月7日
    1
  • html注释快捷键

    html注释快捷键1.选中需要注释的内容—>ctrl+shift+/2.取消注释—>ctrl+shift+\转载于:https://www.cnblogs.com/wyhluckdog/p/10131898.html

    2022年4月27日
    114

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号