转载连接http://www.360doc.com/content/20/1105/13/67063969_944236154.shtml

sensor曝光分为逐行曝光和全局曝光。逐行曝光的sensor 技术难度较全局曝光sensor 低,价格便宜,且分辨率较大,对于一些静态图像拍摄是不错的选择。

先看看,什么是帧?
简单来说,一帧就是一副图像。

具体地,在将光信号转换为电信号的扫描过程中,扫描总是从图像的左上角开始,水平向前行进,同时扫描点也以较慢的速率向下移动。当扫描点到达图像右侧边缘时,扫描点快速返回左侧,重新开始在第1行的起点下面进行第2行扫描,行与行之间的返回过程称为水平消隐(也叫行消隐,H_BLANK)。一幅完整的图像扫描信号,是由水平消隐间隔分开的行信号序列构成,称为一帧。

如下图所示,是一帧的结构图,在最下面部分有一部分是V_BLANK。V_BLANK的由来是因为扫描点扫描完一帧后,要从图像的右下角返回到图像的左上角,开始新一帧的扫描,会有一段间隔时间,这一时间间隔,叫做垂直消隐(也称场消隐,V_BLANK),V_BLANK的作用通常用来调节帧率。


帧结构示意图
sensor逐行曝光基本原理
sensor逐行曝光从第一行开始曝光,一个行周期结束之后第二行才开始曝光。依次类推,经过N-1 行后第N 行开始曝光。第一行曝光结束后开始读出数据,读出一行需要一行周期时间(含行消隐时间,即H_Blank)。至第一行完全读出后,第二行刚好开始读出,依次类推,当第N-1 行读完后,第N 行开始读出,直到整幅图像完全读出。

sensor逐行曝光过程
sensor全局曝光基本原理
全局曝光Sensor的所有行同时开始曝光,并同时结束曝光,在曝光结束后,Sensor将所有电子从感光区转到存储区,之后逐行地读出像素数据。 这样曝光的好处是获得图像每一行的曝光时间比较一致,并且在拍摄运动物体时图像不会出现偏移和歪斜。

sensor全局曝光过程
与sensor曝光相关的计算

  1. line_time的计算:
    line_time的计算公式:line_time = line_length / pclk

和这个公式相关的是下面三个变量的定义先说下

a). line_length: 一行的长度(包含h_blank)b). pclk: 是控制像素输出的时钟,即pixel采样时钟,单位MHz。表示是每个单位时间内采样的pixel数量c). line_time: 曝光一行的时间

所以,曝光一行的时间等于一行的长度除以曝光一个像素需要的时间。

如果你不能理解,简单类比一下我们小学学过的距离计算公式:路程 = 速度 × 时间。要计算小明跑完400米操场花了多长时间,是不是可以拿小明跑步的路程400米除以小明每秒钟跑步的距离来计算。那么,把跑道换成一个个排列起来的像素不也是一样的吗?linetime就相当于上面要计算的小明跑完400米要花的时间,line_length就相当于400米的路程,pclk就相当于跑步的速度,每个单位时间小明能跑多远。

  1. exposure_time的计算:
    exposure_time的计算公式:exposure_time = exposure_line * line_time

同样和这个公式有关的几个定义先说下:

a). exposure_time: 曝光时间。指这一帧曝光了多长时间。b). exposure_line: 字面意思是曝光行。值得注意的是,曝光行不是指一次性曝光多少行,对于逐行曝光的sensor来说,永远都是一次曝光一行。所以,曝光行是指这一帧曝光了多少行。c): line_time: 曝光一行的时间

所以,可以用line_time即曝光一行的时间,乘以曝光了的行数exposure_line,等于整个曝光花费的时间。

注:

  1. 调节exposure_time曝光时间是通过写exposure_line寄存器实现的;

  2. 曝光时间以行长为单位

  1. fps帧率的计算:
    frame_length = Vsync = Dummy Line = VTotal = VTS = V_Size + V_Blank // 帧长; 不占用曝光时间

line_length = Hsync = Dummy Pixel = HTotal = HTS = H_Size + H_Blank // 行长; 会增加曝光时间

fps的计算公式:fps = pclk / (VTS * HTS )= pclk / (frame_length * line_length) = 1 / (frame_length * line_time)

注:fps即表示1秒内帧数,此公式中line_time单位是秒

同样和这个公式有关的几个定义先说下:

a). pclk: 是控制像素输出的时钟,即pixel采样时钟,单位MHz。表示是每个单位时间内采样的pixel数量b). frame_length:  一帧的行数(包含v_blank)c). line_length: 一行的长度(包含h_blank)

这里frame_length * line_length的意思是用一帧的行数乘以一行的长度,即相乘得到一帧图像总共有多少像素。pclk是像素时钟,单位是MHz。如100MHz,就表示每秒钟可以采集100M个像数。用pclk除以frame_length * line_length两者之积,即是算1秒钟内采集的100M个像数点可以分成多少帧(frame_length * line_time = 曝光一帧的时间)。

注:

1). line_time一组setting只有一个值,一般是不变的,可看做常数,所以调节帧率是通过写frame_length寄存器,即调节frame_length实现的。

2). 同理,回到上一个知识点 2. exposure_time的计算:可以发现,exposure_time = exposure_line * line_time,而line_time一般是常数。所以,调节exposure_time曝光时间是通过写exposure_line寄存器实现的,即通过写曝光实现。

4.其他相关:
dummy_line:用来填充v_blank的行

frame_offset:最小的dummy_line,即一帧曝光结束到下次准备好重新开始曝光的时间

frame_length = exposure_line + dummy_line

frame_length ≥ exposure_line +frame_offset

5.帧长的计算方式
回顾上述几点,我们知道一帧的计算方式:

1). frame_length(帧长) = exposure_line(曝光行) + dummy_line

2). frame_offset是指最小的dummy_line

  1. 索尼sony也有自己的计算方式,但是本质是一样的: (IMX307为例)
    1). VMAX(帧长,同VTS一个概念) = exposure_line(曝光行) + (SHS1 + 1)

2). SHS1本意是表示Shutter释放的时机,以XVS信号为参照系,SHS1的值越大,说明Shutter释放得越晚,即dummy_line越大,曝光行越少. 该公式及说明记载于Datasheet p.77

3). 结合第5点和第6点,我们可以知道。dummy_line = SHS1+1

4). 对于IMX307这颗sensor来说,SHS1的范围为1~(VMAX-2),记载于Datasheet p.78的表格

即dummy_line的范围为2 ~ (VMAX-1), 即frame_offset的值为2

camera曝光和帧率相关推荐

  1. 机器视觉——相机曝光与帧率的关系

    原文:http://blog.163.com/pluto_918/blog/static/203853902012111255634175/ 工业相机的主要参数包括:分辨率.帧率.像素.像元尺寸.光谱 ...

  2. Android Camera曝光

    1.概述 曝光三要素:光圈大小.快门速度.感光度(ISO).简单介绍下,光圈值曝光瞬间开孔大小:快门速度指快门开启时间:感光度指图像传感器对光线的敏感程度. 2.光圈 光圈F值 = 镜头焦距/镜头光圈 ...

  3. Camera基本结构及原理

    ** Camera基本结构及原理 ** ** 备忘 **: 文末支持一波,感谢鞠躬 一.学习目的 本模块主要是了解一个摄像头模组的基本组成,每个组成部分的主要作用是什么,同时掌握一些基本术语. 二.必 ...

  4. Baumer工业相机堡盟相机不满帧如何使用CameraExplorer设置相机参数让它的帧率达到满帧

    项目场景 Baumer工业相机堡盟相机是一种高性能.高质量的工业相机,可用于各种应用场景,如物体检测.计数和识别.运动分析和图像处理. Baumer的万兆网相机拥有出色的图像处理性能,可以实时传输高分 ...

  5. 安卓 camera 调用流程_音视频开发之旅(四)Camera视频采集

    目录 Camera基础知识 视频采集的流程 遇到的问题和常见的坑(重点) 收获 一. Camera基础知识 Camera 有几个重要的基础概念. facing相机的方向,一般后置摄像头和前置摄像头. ...

  6. 音视频开发之旅(四)Camera视频采集

    目录 Camera基础知识 视频采集的流程 遇到的问题和常见的坑(重点) 收获 一. Camera基础知识 Camera 有几个重要的基础概念. facing相机的方向,一般后置摄像头和前置摄像头. ...

  7. 第1讲 Android Camera性能分析 课程组织安排

    本讲是Android Camera性能分析专题的第1讲,我们介绍课程组织安排,包括如下内容: 课程详细内容 课程配套源码和资料 视频在线观看: 极客笔记:极客笔记在线课程 加入知识星球与更多Camer ...

  8. 地平线:面向规模化量产的智能驾驶系统和软件开发

    导读 7月27日,地平线在智东西公开课开设的「地平线自动驾驶技术专场」第3讲顺利完结,地平线智能驾驶应用软件部负责人宋巍围绕 <面向规模化量产的智能驾驶系统和软件开发>这一主题进行了直播讲 ...

  9. 使用opencv进行USB摄像头参数配置

    #include <opencv2/opencv.hpp>cv::VideoCapture cap;int fps = 30; int hue = 50;//色调 int saturati ...

最新文章

  1. python菜鸟教程字典-Python3 字典
  2. WAF机制及绕过方法总结:注入篇
  3. 【转】DIB位图(Bitmap)的读取和保存
  4. Qt笔记-递归获取文件夹中文件(含过滤文件名)
  5. 漫步最优化三十一——梯度法
  6. 在java中使用ffmpeg将amr格式的语音转为mp3格式
  7. Swoole HTTP 的应用
  8. mysql5.7 datetime 默认值为‘0000-00-00 00:00:00‘值无法创建问题解决
  9. 使用手机访问电脑上写的网页
  10. 计算机组成和计算机体系结构区别
  11. 人大金仓数据库的备份与还原 KingbaseES V8R6
  12. 闫令琪图形学入门笔记(光栅化篇)
  13. word在任意页面添加页码
  14. EZEMC测试软件_EMI 和 EMC 仿真、测量和预兼容性测试
  15. 如何在生产环境mysql删除亿万级数据解并且不影响数据库主从延迟的解决方案
  16. 粗糙集理解之一:基本概念
  17. 电话号码自动分隔 html,手机版网站中电话、手机号码添加链接
  18. 阿爸,通往地狱的路要走好
  19. 【09-JVM面试专题-实例化过程详细讲讲?对象的基本结构你知道吗?TLAB堆上内存分配是怎么样的?你了解这个TLAB吗?】
  20. 基础知识 fock()函数

热门文章

  1. matlab amd gpu,没有N卡?那就用AMD GPU训练深度学习模型
  2. SAP 移动平均价和标准价
  3. 26岁,月入3万,癌症晚期:熬夜没什么,就是容易死!
  4. Android简易天气App,值得一看
  5. SDUT OJ 数据结构实验之图论五:从起始点到目标点的最短步数(BFS)
  6. 基于图像识别的电子相册项目
  7. 计算机进化量子攻略,《超进化物语》量子巨龙怎么打 量子巨龙打发解析
  8. dbutils mysql,DbUtils操作数据库
  9. 华硕rt-n16无线打印服务器,无线打印好拍档华硕RT-N16赠照片打印机
  10. 【Docker镜像原理容器数据卷】