本文主要是最近看的两个文档的总结,相对零散的笔记,包括《imx298 software reference PDAF》与《PDAF Truly》。

1、PDAF功能的实现需要使用到shield pixel的概念,包括right-half-shield与left-half-shield两种,起到模仿左右眼的类似功能,参考如下图片。

2、shield pixels主要分布在芯片居中的92%范围内,其中的32×32规格的pixel array被标称为1个block,shield pixel在这一个block中的占比为1/64,即每个block中有16个shield pixel,right-half-shield与left-half-shield各8个,不同厂家之间组织方式会有区别,可能出于规避专利的问题。

3、使用PDAF功能是需要进行模组校正(Calibration),包括SPC(shield pixel calibration)与DCC(defocus conversion coefficient)。严格意义上讲,SPC功能才是正常的校正动作,而DCC功能非校正而是生成DAC与Focus的系数关系,进而实现PDAF功能。

4、SPC:为了实现PDAF功能,芯片的像素矩阵中,部分G pixel进行了遮光结构设计,光能信号比正常的G pixel要弱一些。因此,为了达到正常G pixel的能效水平,需要对此类型的G pixel增加额外的增益,此动作称之为SPC。校正前后的效果可参考下面图示,其中横坐标为像高对应位置,而纵坐标则为pixel感光效能。

5、如上图所示,两根不同走势dash线分别表示right-half-shield与left-half-shield两种情况,通过调整pixel的增益,是的其效能水平与其他正常的G pixel一致。此校正过程使用的是纯白的背透式标靶,拍摄纯白标靶后通过线性插值获得各个对应位置的增益,并把此增益写入OTP位置,此OTP数据称为SPC Map,共两份Map,right-half-shield与left-half-shield各一份。

6、下图是SPC Map的组织方式,总共将成像区域划分为9×7个block,其中每个block包含512×512个pixels,最左上角的第一个block中心点为(280,212)。这63个blocks的中心点被称为Knots(绳子打结处的节点),生成63个插值后的数据,数据大概计算方式为G-pixel/PD-pixel,只有G pixel有shield pixel,其他没有。

7、DCC:在讨论PDAF功能的时候,大部分情况下我们都会声称通过该功能模组能够知道当前被摄物的距离。其实我们并非物理上知道被摄物的距离,而是通过左右shield pixel之间的差异来将被摄物映射到镜头移动距离中的某个位置。系统在进行对焦的时候,需要将检测到的相位差(phase difference)转换为离焦率(Defocus Value),这个转换过程应用到的表单数据称为DCC(defocus conversion coefficient)。

8、DCC的测试计算方式包括如下的动作:

将模组的有效对焦行程切分为10等分,即(近焦DAC - 远焦DAC)/10,以此来覆盖马达的对焦范围;

在每个对焦DAC位置进行对焦,并记录当前对焦DAC位置的相位差;

完成马达对焦行程后取一组10pcs的对角DAC与获得的PD数据进行做比(PD/DAC);

生成10pcs相近的比值记为k,DAC与PD组成的二维数据进行描线可以通过算法拟合出逼近斜率为k的直线;

9、由于模组之间的个体差异,DCC需要每一模组单独测量,而且由于镜头的场曲、shading之类的问题,同一模组的四周与中心同样存在差异,不能以同一系数进行转换,一般而言四周的系数会比中心的系数要高一些。一般而言将区域划分为小的M×N个blocks,每个block通过上面⑧的过程获得单独的k。而后计算时离焦率跟离焦系数与相位差之间按如下的换算方式进行:Defocus Value = Phase Difference × Coefficient,如下图所示:

10、DCC校正过程中,需要使用到黑白相间的背透式标靶,拍摄距离按照15cm进行。由于现行shield pixel只有L、R两个方向,所以校正标靶的黑白条案有走向要求,需要平行于LR shield pixel方向才能被识别并检测;-------------------------------此项待确认。

11、PDAF检测过程(from Truly document):

获得被摄物对焦位置的某一行或若干行的数据信息;

读取right-half-shield与left-half-shield数列信息;

使用right-half-shield与left-half-shield所生成的数列①中所获取的行信息进行卷积分计算(卷积分计算会是原来行信息只携带对应卷积序列的信息);

将卷积后的两个新数列做平滑微分插值等预处理,获得两个平滑切相对位移的数据;

将此两数据的相位差传入系统中,应用PDAF库及DCC数据进行计算获得离焦率;

通过该离焦率向马达下达对应DAC动作的指令并完成对焦;

上述是一个简单的原理介绍,实际的第⑤步骤中还需要混入置信区间的概念,以此作为是否合焦等的确认。

摄像头模组 PDAF对焦(Phase Detection Auto Focus)的更多相关文章

  1. MTK 平台上查询当前使用的摄像头模组及所支持预览分辨率

    1,MTK 平台如何查询当前使用的是哪颗摄像头及相关的模组信息? 在该目录下可以查到当前平台及相关项目的配置文件 ProjectConfig.mk \ALPS.JB.MP.V1_W_20120919\ ...

  2. 摄像头模组 AWB(Auto White Balance)

    本文转载yapingmcu的<图像算法---白平衡AWB(讲的很好)>.原文http://blog.csdn.net/yapingmcu/article/details/50637797 ...

  3. 摄像头模组光学CRA(chief ray angle)

    http://blog.csdn.net/sylorchen/article/details/54618874 Lens CRA CRA(Chief Ray Angle):从镜头的传感器一侧,可以聚焦 ...

  4. android camera(一):camera模组CMM介绍

    一.摄像头模组(CCM)介绍: 1.camera特写 摄像头模组,全称CameraCompact Module,以下简写为CCM,是影像捕捉至关重要的电子器件.先来张特写,各种样子的都有,不过我前一段 ...

  5. 【转】android camera(一):camera模组CMM介绍

    关键词:android  camera CMM 模组 camera参数平台信息:内核:linux系统:android 平台:S5PV310(samsung exynos 4210)  作者:xubin ...

  6. android camera(一):camera模组CMM介绍【转】

    转自:https://blog.csdn.net/kevinx_xu/article/details/8821818 androidcmm图像处理工作手机三星 关键词:android  camera ...

  7. iPhone X 的原深感模组

    物理与数字世界正走向融合,我们每天醒来的时间.睡眠时长.心率和步数等数据都会被分享.上传并转化为分析数据.无处不自的 AI.互联互通和软件平台将改变用户对现实的感知. 2018 年的 CES 展(国际 ...

  8. opencv实现camera模组的暗电流和lenshading补偿 .

    目录(?)[-] 简介 基本原理 产生原因 校正补偿原理 具体实现 框架搭建 功能实现 暗电流 lenshading补偿 效果演示 图片处理 效果演示 简介 在接触过的qcom和mtk平台中,came ...

  9. [原创]移远RM500U-CN模组驱动移植

    1. 简介 中国广电正式放号了,为了支持广电700MHz的5G基站,需要换用新的5G模组.移远通信的RM500U模组正好可以满足我们的使用要求; 我们选用该模组的原因:双卡单待 支持SIM卡热插拔 支 ...

随机推荐

  1. [编程题] 合唱团 && 地闹逃脱

    1. 合唱团 有 n 个学生站成一排,每个学生有一个能力值,牛牛想从这 n 个学生中按照顺序选取 k 名学生,要求相邻两个学生的位置编号的差不超过 d,使得这 k 个学生的能力值的乘积最大,你能返回最 ...

  2. Spiral Matrix I&&II

    Given a matrix of m x n elements (m rows, n columns), return all elements of the matrix in spiral or ...

  3. Android Studio2.3相关文章

    安卓之旅第一站--第一次Android Studio2.3搭建过程总结 http://blog.csdn.net/iam549032340/article/details/56838907 Andro ...

  4. IO扩展控件(System.IO.Abstractions)

    刚看到这个Namespace的时候还以为是.Net Framework里自带的包,结果查了一圈无任何结果.果断上Github搜索,一击即中 https://github.com/tathamoddie ...

  5. 解决CentOS7.4KDE桌面或者gnome桌面安装VLC及声音问题

    一.安装VLC 1.下载源 https://mirrors.tuna.tsinghua.edu.cn/epel/7/x86_64/e/epel-release-7-11.noarch.rpm http ...

  6. 【Go】语法基础之结构体

    结构体的定义很简单: type Vertex struct { X, Y float64 } 可以理解为多个变量的集合. 结构体的使用: 1.直接使用: v := Vertex{1, 2} 或 var ...

  7. 仿苹果系统应用的apk

    仿苹果系统应用的apk 韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha 收集了好久的仿苹果IOS7全套apk - Android安卓综合 ...

  8. 【BZOJ 2803】【POI 2012】Prefixuffix

    http://www.lydsy.com/JudgeOnline/problem.php?id=2803 核心思想是利用单调性. 因为长度为L的前缀和后缀循环同构是AB和BA的形式,我们设\(f(i) ...

  9. BZOJ 2809 [Apio2012]dispatching(斜堆+树形DP)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2809 [题目大意] 给出一棵树,求出每个点有个权值,和一个乘算值,请选取一棵子树, 并 ...

  10. [转]spring tx:advice 和 aop:config 配置事务

      <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www. ...