按下快门前的算法——对焦

对焦算法可以分为测距式,相位式,反差式。

其中测距式是通过激光,(TOF,Time of Flight)等主动式地得知物距,然后对焦。更常用的是后两者。

反差式CDAF(Contrast Detection Auto Focus

反差式如上图所示,可以看到镜头明显有“拉风箱”一般的往复推拉,遍历得到一个对比度最好的结果。这种对焦方法相对精准,但耗时较长。

CDAF具体使用的是爬山算法。爬山算法包含两个过程,第一阶段叫粗扫(Coarse Search),第二阶段叫细扫(Fine Search)。算法控制马达移动镜头朝一个方向移动时,图像对比度会出现逐渐增大然后变小的过程,类似爬山。

相位式PDAF(Phase Detection Auto Focus)

先来了解一下双眼效应和拇指测距。

两个眼睛因为位置不同,他们的最佳对焦点是不同的,分别需要特定角度的光线才能成最清晰的像。所以拇指测距时,分别用两只眼睛对着拇指,沿着这个方向的延长线在目标物中可以得到不同的两点。这两点的长度/瞳距=目标距离/手臂长度。

知乎日报 - 知乎

既然拇指测距可以测得距离,那么PDAF也是一样的道理。PDAF根据像素对(PD Pixel Pair)的相位差衡量ROI区域的清晰度。

那么什么是相位差呢?PDAF怎么利用相位差呢?

上图中虽然光线只画了一路(对称的),但是实际上光线不会是一条,所以在sensor上的响应是以其为波峰的分布。如果没有对焦好,那么会存在两个波峰,子图4比子图3对焦更差,两个波峰的距离就越远。当对焦完美时,两个波峰重叠。

因为对称的缘故,两个波的形状是一样的,只是有一个相对的偏移量,这个偏移就是相位差。相位差可能是正数可能是负数,相位取0时清晰度最高。

因为出厂的时候标定过,所以只需要知道相位差,马达马上就知道该把镜头往哪个方向推,推多远,这也是为什么PD对焦更快的原因。PDAF对焦速度比CAF快一倍以上,是现在手机上的主流。

How Phase Detection Autofocus Works

由微分的思想,波可以使用两个有差异性的点表示。这两个点如何构造,出现了多种PD sensor。按照PD点的个数可以分为稀疏的和全局的。我们都以全像素All-pixel为例。

Dual PD

dual PD把每个像素进一步细分。dual的含义就是“双重的”,因为同样属于shield pd,但相比于更早的L和R隔了很远,dual PD的左右PD同在一个微透镜下:

每个color filter下面有两个二极管:

对焦阶段两种光电二极管分别成像,在对焦完成后真正成像的阶段,两个光电二极管合并起来,所以不会存在相位差的干扰。

当dual PD技术和quad bayer结合起来,就是Octa PD:

OCL

OCL是“On-Chip Lens”的缩写,它指的是几个相邻的像素共享感光元件上的微透镜。有2x1OCL,有2x2OCL。

2x2ocl指ocl技术和quad bayer联合起来。同一个颜色通道的四个象限共用一个透镜:

当光照条件好的时候可以remoisc得到高分辨率图像,光照差的时候通过bining可以得到更好的画质。

二者的区别

二者都是全像素级别的PD对焦。区别只是相位差的来源不一样,Octa PD是更传统的dual PD,2x2OCL是共用透镜带来的四个象限的差异。

前者真正成像时得益于有两个二极管,所以可以合并,消除相位差,这样因为quad raw同一个颜色通道的四个值更加统一。而2x2OCL相位差无法消除,同一个颜色通道的四个象限在成像时也会和图像梯度有规律地变化,不利于后续图像处理。

Octa PD因为要集成两个二极管,微透镜数目也更多,所以一般当sensor较大时使用这种技术;OCL则使用在中型sensor上。如下图所示:

在实际中,一般是先使用PD对焦,快速将镜头推到大致准确的位置,然后再进行反差式对焦,让图像真正达到对比度高的理想状态。


reference:

All-pixel Auto Focus (AF) Technology | Image Sensor for Mobile | Technology | Sony Semiconductor Solutions Grouphttps://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=8993499All-pixel Auto Focus (AF) Technology | Image Sensor for Mobile | Technology | Sony Semiconductor Solutions Group

https://www.ovt.com/products/ov50a/

Sony unveils 2x2 on-chip lens tech for Quad Bayer sensors, which promises better AF performance - GSMArena.com news

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/45321.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【服务器】端口映射

文章目录 1.端口映射的概念1.1 端口映射的类型1.2 端口映射的应用场景1.3 示例 2.为什么要进行端口映射呢?3.原理3.1【大白话】原理解释3.2 原理图 4.代码 1.端口映射的概念 端口映射(Port Mapping),也称为端口转发(P…

docker基础知识以及windows上的docker desktop 安装

记录以供备忘 基础概念: 什么是docker 将程序和环境一起打包,以在不同操作系统上运行的工具软件 什么是基础镜像 选一个基础操作系统和语言后,将对应的文件系统、依赖库、配置等打包为一个类似压缩包的文件,就是基础镜像 什么是…

科学防治激素脸 荟敏堂中医治则有绝招

仟江水商业电讯(7月12日 北京 委托发布)最近几年,“激素脸”一词出现在我们生活中的频率似乎越来越高。很多人都曾经或者正在饱受其苦:皮肤瘙痒、紧绷、刺痛,甚至出现红斑、红血丝、表皮萎缩、粗糙、脱屑等等&#xff…

AI在软件开发中的角色:辅助创新还是自动化取代?

文章目录 每日一句正能量前言:人工智能与软件开发的未来交汇点AI工具现状AI对开发者的影响工作方式的改变需要掌握的新技能保持竞争力的策略结论 AI开发的未来AI在软件开发领域的未来发展方向AI是否可能完全取代开发者如何在AI时代规划开发者的职业发展结论 后记&am…

备考美国数学竞赛AMC8和AMC10:吃透1850道真题和知识点

距离接下来的AMC8、AMC10美国数学竞赛还有几个月的时间,实践证明,做真题,吃透真题和背后的知识点是备考AMC8、AMC10有效的方法之一。 通过做真题,可以帮助孩子找到真实竞赛的感觉,而且更加贴近比赛的内容,…

Golang | Leetcode Golang题解之第230题二叉搜索树中第K小的元素

题目: 题解: type MyBst struct {root *TreeNodenodeNum map[*TreeNode]int // 统计以每个结点为根结点的子树的结点数,并存储在哈希表中 }// 统计以 node 为根结点的子树的结点数 func (t *MyBst) countNodeNum(node *TreeNode) int {if…

大数据时代的数据库管理:分库与读写分离的重要性

前言 “分库”和“数据库拆分”这两个术语在数据库领域经常被提及,通常指的是类似的概念,但在细节上有所区别。分库通常指的是将一个大型数据库中的数据分布到多个较小的数据库中,以提高性能和可管理性。而数据库拆分则更广泛地指将数据库…

解决GET请求中文乱码问题

解决GET请求中文乱码问题 1、乱码的根本原因2、解决方法方法一:修改Tomcat配置(推荐)方法二:使用URLEncoder和URLDecoder(不推荐用于GET请求乱码)方法三:String类编解码(不直接解决乱…

DBA 数据库管理 部署Mysql 服务,基础查询

数据库:存储数据的仓库 数据库服务软件: 关系型数据库: 存在硬盘 ,制作表格的 数据库的参数 [rootmysql50 ~]# cat /etc/my.cnf.d/mysql-server.cnf 主配置文件 [mysqld] datadir/var/lib/mysql 存放数据库目录…

我们水冷电阻器支持高脉冲负载和高抗振能

我们电阻器是液冷电阻器,与风冷型电阻器相比,尺寸非常小。它们支持高脉冲负载和高抗振能力。 水冷电阻器具有完全绝缘的铝制外壳,带有液体冷却通道。主要的电阻元件是由厚膜浆料制成,具有低热漂移和出色的电阻精度。电阻元件嵌入氧…

如何实现接口的幂等性

1,什么是幂等性 即相同的多次请求,只执行一次。 2,简述怎么保证幂等性? 单机部署的场景 使用唯一标识符: 在客户端发起请求时,附加一个唯一的请求标识符(如 UUID)。服务端接收到请求后&#…

南京邮电大学运筹学课程实验报告1 图与网络求解 指导

一、题目描述 实验四 图与网络问题求解    实验属性: 设计型    实验目的 1.理解图的基本概念; 2.掌握运筹学软件的使用方法; 3. 掌握图中Dijkstra算法Matlab求解原理和方法。 …

Java性能优化-HashMap遍历的7种方式及性能测试对比

场景 Java中使用JMH(Java Microbenchmark Harness 微基准测试框架)进行性能测试和优化: Java中使用JMH(Java Microbenchmark Harness 微基准测试框架)进行性能测试和优化_java热点函数-CSDN博客 参考以上性能测试工具的使用。下面针对Java中对HashMap的7种遍历方…

《梦醒蝶飞:释放Excel函数与公式的力量》11.3 ISTEXT函数

第11章:信息函数 第三节 11.3 ISTEXT函数 11.3.1 简介 ISTEXT函数是Excel中的一个信息函数,用于检查指定单元格中的内容是否为文本。如果单元格内容是文本,则返回TRUE;否则返回FALSE。ISTEXT函数在数据验证、条件格式化和逻辑判…

社区团购小程序源码系统 带完整的安装代码以及搭建部署教程

系统概述 在这个数字化时代,线上活动成为了连接用户与组织者的桥梁。为了满足不同场景的需要,开发一个灵活、可定制的在线活动报名表单小程序显得尤为重要。本文将深入介绍一个自定义在线活动报名表单小程序的源码系统,并提供详细的搭建部署…

Android高级——Logger日志系统

Logger日志系统 Logger日志系统是基于内核中的Logger日志驱动程序实现将日志记录保存在内核空间中使用一个环形缓冲区来保存日志,满了之后,新的日志就会覆盖旧的日志 日志类型 main,记录应用程序级别system,记录系统级别radio&…

在Ubuntu下安装samba实现和Windows系统文件共享

一、安装 apt install -y samba samba-clientSamba is not being run as an AD Domain Controller: Masking samba-ad-dc.service Please ignore the following error about deb-systemd-helper not finding those services. (samba-ad-dc.service masked) Created symlink /et…

百度网盘资料使用

1. 将链接复制到浏览器打开,点击提取文件 2. 提取文件,进入如下界面 3. 因为文件太大,而且未开会员,所以无法全部转存到网盘,只能分批次转存 点击目录,进入文件夹 1)选择一个喜欢的文件&#…

9.Python学习:Socket

1.网络通信要素(IP端口传输协议) 2.Socket编程 2.1TCP、UDP协议了解 2.2 Socket流程 服务端有两个socket对象,客户端有一个 3.Socket实战 服务端代码: import socket #创建Socket对象 sksocket.socket() #绑定ip与端口号-使…

在分布式环境中,怎样保证 PostgreSQL 数据的一致性和完整性?

文章目录 在分布式环境中保证 PostgreSQL 数据的一致性和完整性一、数据一致性和完整性的重要性二、分布式环境对数据一致性和完整性的挑战(一)网络延迟和故障(二)并发操作(三)数据分区和复制 三、保证 Pos…