ios开发 如何修改曝光度参数 iphone如何调节曝光时间 您所在的位置:网站首页 iphone调曝光时间 ios开发 如何修改曝光度参数 iphone如何调节曝光时间

ios开发 如何修改曝光度参数 iphone如何调节曝光时间

2024-07-17 23:17| 来源: 网络整理| 查看: 265

前言

该篇文档主要介绍当3A的状态为手动的时候,AE通过怎样的操作进行手动的调整。比较适合相机开发有一定基础的同学进行交流。今天的文档会先从理论知识开始讲解,其次会从我们常见的相机专业模式作为例子去进行加深理解。

那废话不多说,开始今天的归纳总结!

曝光的三大要素ISO/Gain控制Exposure Time 曝光时间控制Frame Duration 控制ISO/Gain控制

 ISO简单来说就是我们日常经常说的感光度,感光度越高表示对光线越敏感。以下将会以图解的形式描述ISO的组成。

ios开发 如何修改曝光度参数 iphone如何调节曝光时间_帧率

我们对此有个印象就好,后续会对其进行一个详细的说明。

ISO的Sensor部分 

Sensor包括模拟Gain和数字Gain,这两个Gain共同作用于感光度。

我们首先来看几个比较重要的语句

CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE

获取Camera sensor Gain可调整的设备范围。

这个是获得Sensor所有的Gain的合计范围,包括数字Gain以及模拟Gain 。

CameraCharacteristics#SENSOR_MAX_ANALOG_SENSITIVITY

当前Camera Sensor支持的最大模拟Gain。

当后续设置SENSOR_SENSITIVITY小于等于这个值,全部用模拟Gain。

SENSOR_SENSITIVITY一般就是用于我们应用层调整ISO的一个FLAG,他这里调整的是整个Sensor Gain,后续会讲解他的使用。

需要注意的是:我们需要通过现实中相机表现理解为什么SENSOR_SENSITIVITY小于等于这个值,全部用模拟Gain。首先我们要知道一个前提知识点,拉模拟信号噪点会比较小,数字信号噪点会比较大,所以一般情况肯定是优先调整模拟Gain的。再例如就是当处于一个非常暗的环境下,会发现拍出来的照片会有非常多噪点,这里的原因就是在暗黑环境中,相机需要将感光度调整到最高,这时候模拟的Gain就会被拉满,最后只能通过数字Gain去强行拉高感光度。

ISO的ISP部分

值得注意的是这个部分的ISO一般在应用层不进行修改,当然有些手机也是可以的主要是看手机的硬件水平,我们这边先看看怎么获取他的取值范围。

CameraCharacteristics#CONTROL_POST_RAW_SENSITIVITY_BOOST_RANGE

 设置ISO

就如上面说的,我们应用层设置ISO主要就是通过设置sensor部分的Gain

CaptrueRequest#SENSOR_SENSITIVITY

这里的Gain是Total Gain

 在支持postRawSensitivityBoost的设备上(支持ISP Gain),图像最终的Gain是SENSOR_SENSITIVITY*postRawSensitivityBoost

接下来我们看看postRawSensitivityBoost怎么设置的,这个不算重点,因为目前来说,许多手机都不允许设置这个值。

CaptrueRequest#CONTROL_POST_RAW_SENSITIVITY_BOOST

值得注意的是,该值表示Camera sensor输出RAW图给ISP之后,ISP在YUV/JPG图像上额外应用的Gain值,对RAW format buffer没有影响。

简单来说:对于最后感光度的体现,不同格式的图片存在差异。

YUV/JPG:SENSOR_SENSITIVITY*postRawSensitivityBoost

RAW:SENSOR_SENSITIVITY

曝光时间

曝光时间(exposure time)即快门速度(shutter speed),其单位为s. 它决定图像传感器受光时间长短。用来衡量进光的数量,自然进光的数量越多,整体的亮度越大。在应用层的使用也是偏简单的,调用Google所提供的接口即可。

CameraCharacteristics#SENSOR_INFO_EXPOSURE_TIME_RANGE

查看曝光时间可调节的范围

CaptureRequest#SENSOR_EXPOSURE_TIME

设置曝光时间

CaptureResult#SENSOR_EXPOSURE_TIME

捕获结果的曝光时间

 Frame Duration控制

直译过来就是保留帧的持续时间,可能听着有点懵逼,接下来我将通过一个图解进行加深理解。

ios开发 如何修改曝光度参数 iphone如何调节曝光时间_帧率_02

可以看到其实我们的帧率就是算出在一秒钟内进行了几次FD,FD其实代表的就是一帧的时间。同时FD其实也受曝光时间影响,所以从某种意义来说曝光时间往往会影响图像的帧率。曝光时间越大,帧率就会越小。 

专业模式中实际运用

其实大家观察手机的专业模式会发现一个很有趣的问题,按照我原本的理解,拉高专业模式中的ISO,整体画面应该会亮一点。拉高曝光时间画面也应该更亮一些。但是事实是什么呢,现象非常有趣。

在设定上,如果只是修改ISO或者曝光时间中一个,另外一个值也会发生改变,我的理解就是有点像半自动的感觉,当你修改其中一个值的时候,相机会希望画面尽可能不会变化太大,导致另外一个值也会相应的改变,就例如你把曝光时间调大,这时候ISO就会自己变小,因为相机希望画面不要修改太多,处于一个平衡状态。

其次我们再来看看专业模式中的EV。我们其实在学习的时候会知道EV只能在3A自动的时候进行调节,因为其实调节EV,在本质上来说就是调节感光度和曝光时间去进行曝光补偿,但是有个生气的就是,在商业化的相机中,很多时候EV的值和ISO以及曝光时间的值都能同时调整,这就不符合我们一开始的学习基础。但是因为考虑到是商业化,也大抵是能理解,只是这么做的化,肯定就会出现各种问题。就例如,我这边举一个例子:

将EV调节到最大之后,将ISO调节到最小,这时候预览会掉帧。对于这种问题我们要找到他的根因,首先掉帧就肯定是因为帧率降低了,我们得找出为什么帧率会降低了。首先EV最大的情况下,相机自身首先会通过修改ISO值进行补偿,当ISO值都达不到补偿效果的时候这时候曝光时间也会被拉大,进行补偿。但是这时候你如果强行把ISO再调低,曝光时间就会把时间无限拉大。正如我们前面说的,曝光时间影响着FD,FD影响着帧率,自此问题根因找到。

最后进行总结以下

观察专业模式:

为什么之前说EV只能在3A自动的时候进行调节?

调节EV的本质其实就是修改ISO跟曝光时间

调节EV,就是3A自己在动

如果固定了ISO,调节EV,就只会动S

如果固定了S,调节EV,就只会动ISO



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有