Camera帧率和AE的关系
1.camera首先是通过曝光的pixel加上dummy pixel以及曝光的line加上dummy line来决定一帧的曝光时间,这一帧曝光时间的倒数就是帧率,这个没有错吧,但是看代码时候看到preview的时候软件会不断的给sensor写shutter值,环境亮暗变化时候shutter值也不断的变化。这样每一帧的曝光时间就不同了,这样的话帧率就会自动调节,不就不一定了么?
还有写shutter的值是否增加了dummy line呢?还是增加了dummy pixel呢?我以前好像看到过别人说增加dummy pixel会增加曝光时间,而增加dummy line不会增加曝光时间,这又怎么理解?
还有base shutter,pre shutter这些都是什么意思,根据什么设置?
最近在看camera的东西,看的比较难受,看的是RAW格式的代码,
现在在帧率和AE上比较纠结,搞不明白,请高手指教。
————————————————————————————————————————————————————————————————————————————————————
2.一般sensor曝光时间都是指曝光多少行,
曝光时间<帧长时,
帧率fps = PCLK/(行长x帧长)
曝光时间>帧长时,
帧率fps = PCLK/(行长x曝光时间)
————————————————————————————————————————————————————————————————————————————————————
3.曝光时间是帧率的倒数的说法是不对的,例如sensor在阳光下的曝光时间可以到1/1000s,帧率是不是就能到1000fps呢?
————————————————————————————————————————————————————————————————————————————————————
4.曝光就是让sensor感光,并把积累的电荷转换为数字,
所以曝光所需要的行数 x 每一行所需要的时间 = 曝光时间;
所需行数就会与dummy line有关,
而每一行所需的曝光时间就会与dummy pixel有关,
而整个画面的帧率就与这些有关系。
”preview的时候软件会不断的给sensor写shutter值,环境亮暗变化时shutter值不断的变化“———这就属于自动曝光控制机制;
————————————————————————————————————————————————————————————————————————————————————
5.行长和帧长可以理解为HSYNC和VSYNC的长度,假设HSYNC和VSYNC都是高有效,dummy pixel和dummy line则是增加低电平的时间。可以参考芯片的datasheet上的时序图。
————————————————————————————————————————————————————————————————————————————————————
6.sensor曝光是一行一行来做,dummy line不会占用曝光时间但是会影响帧率,dummy pixel会增加曝光时间,所以会影响帧率。
固定帧率的时候,这个时候每一行的曝光时间是固定的,但是会造成不同场景下面图像亮度不够的问题。有时候为了满足这比较暗的场景下面得到更多的光信息,这个时候需要加大曝光时间,来达到我们希望的效果,比如lowlight下增加了曝光时间,但是帧率自然就下降了。
需要帧率优先还是曝光优先,要看不同应用了,一般拍照时候是曝光优先,录像时候是帧率优先(固定帧率)
以上纯粹个人经验和理解
————————————————————————————————————————————————————————————————————————————————————
Camera帧率和AE的关系的更多相关文章
- RTP timestamp与帧率及时钟频率的关系
转自:http://blog.csdn.net/jasonhwang/article/details/7316128 RTP timestamp是用时钟频率(clock rate)计算而来表示时间的. ...
- 【Android】[转] Android屏幕旋转使用OrientationEventListener的监听
说明 遇到一个奇葩的问题,我在使用onConfigChanged拦截屏幕的横竖屏旋转时,发现直接进行180度的横屏/竖屏转换居然没有反应!查找原因发现仅对landscape或者portrait状态有用 ...
- 【转】GT 的性能测试方案解析
前言 本文将整理腾讯GT各个性能测试项的测试方法,目的是为了帮助移动性能专项测试同学快速过一遍腾讯GT各个性能数据是如何获取的.另外对腾讯GT还不了解或者不知道它能做什么的同学可以看看这篇文章:htt ...
- 探索未知种族之osg类生物---器官初始化四
上一节我们对完成了对osg生物内部非常重要器官graphicsContext的初始化工作.这样就可保证我们场景中至少有一个graphicContext存在,不至于刚出生就面临夭折.我们根据上一节中os ...
- FFMS2 API 译文 [原创]
FFMS2 又称 FFmpegSource2,参阅 https://github.com/FFMS/ffms2. 原文:https://github.com/FFMS/ffms2/blob/maste ...
- 从CVPR 2014看计算机视觉领域的最新热点
编者按:2014年度计算机视觉方向的顶级会议CVPR上月落下帷幕.在这次大会中,微软亚洲研究院共有15篇论文入选.今年的CVPR上有哪些让人眼前一亮的研究,又反映出哪些趋势?来听赴美参加会议的微软亚洲 ...
- OSG-CompositeViewer
原文连接地址:http://www.osgchina.org/index.php?Itemid=490&id=134:usecompositiv&option=com_content& ...
- H.264(MPEG-4 AVC)级别(Level)、DPB 与 MaxDpbMbs 详解(转载)
转自:http://www.cnblogs.com/zyl910/archive/2011/12/08/h264_level.html 对于H.264(MPEG-4 AVC)而言,级别(Level)是 ...
- python opencv —— io(帧、图像、视频的读取与保存)
0. VideoCapture VideoCapture:构造函数: 常见成员函数: open:打开视频文件,或者捕获视频设备,该函数会首先调用 release() 函数以关闭已打开的文件或设备: P ...
随机推荐
- 使用js里面的迭代器filter实现数组去重
实现数组去重的方法很多,最原始的方法是一个值一个值的去遍历,写到空数组里面: let r=[],arr = ['a', 'b', 'c', 'a']; for(var i=0,len=arr.leng ...
- centos6.6-6.8的cobbler的kickstarts文件
author:headsen chendate: 2018-07-10 19:14:39 1,普通的mbr版的kickstarts的配置文件: [root@cobbler-server ~]# cat ...
- 如何用原生js替换字符串中的某个字符(或字符串)为指定的字符串?
<html> <head><title>我的第一个 HTML 页面</title></head><script type=" ...
- java项目中初期常见的错误及解决方案
在做项目的初期,想必总会有各种奇奇葩葩的错误出现,本博文主要整理了博主在项目初期遇到的错误,希望能为大家减少犯这些错误 1.Env 名字写错了,图片中错误类型是名字没有发现的异常,因此需要检查后面报错 ...
- ggplot2画图小试
# 注意aes(x=wt, y=mpg)中的wt不是字符"wt",因此它是属性字段名(例如,EXCel中字段名有Student,那就是Student,而不是"Studen ...
- IIS6中给Framework2,。0站点的虚拟目录(2.0版本)下发布Web API项目(4.0版本)问题处理
Web-API项目以虚拟目录形式部署到IIS6/IIS7 若原有站点为Framework2.0版本,在此站点(或虚拟目录站点)下,新增API虚拟目录,然后选择Framework4.0版本,IIS6和I ...
- c#系统中类的方法 Console、Object,ToolStripDropDownItem,string
一.Console 1.System 命名空间中的 Console 类提供了一个函数 ReadLine(),用于接收来自用户的输入,并把它存储到一个变量中. int num; num = Conver ...
- bootloader,kernel,initrc
http://www.ibm.com/developerworks/cn/linux/l-k26initrd/index.html http://www.68idc.cn/help/server/li ...
- Spark源码分析 – Dependency
Dependency 依赖, 用于表示RDD之间的因果关系, 一个dependency表示一个parent rdd, 所以在RDD中使用Seq[Dependency[_]]来表示所有的依赖关系 Dep ...
- JS获取浏览器信息及屏幕分辨率
因为vue有自己的生命周期,初始化数据的时候,可以在钩子函数created()函数里初始化数据,也可以在mounted()函数里获取,但是两者是不同的,获取浏览器和屏幕分辨率的时候,不能在create ...