1、基本概念
1)帧
简单来说,一帧就是一副图像。显示器上面我们看到的画面就是一帧一帧的显示的。只不过显示的速度足够快,人眼以为画面是运动的。
2)帧率
是以帧为单位,sensor单位时间内曝光并输出图像的频率,通常使用fps(frame per second)来表示,比如帧率是30fps,则代表1秒内输出30帧图像。
3)有效像素数
如上是 imx335 datasheet 中的说明,有效像素是2616x1964,就是指所有可以用的像素,实际我们一般是使用推荐的像素2592x1944,当后续需要裁剪/偏移之类的操作,可以留有余量。
4)pclk
是控制像素输出的时钟,即pixel采样时钟,一个clk采集一个像素点 , 单位MHz。表示是每个单位时间内(每秒)采样的pixel数量。
5)H_Blank/V_Blank
H_Blank:是指行消隐或称水平消隐,如下帧结构示意图所示,假定曝光起始位置在图像的左上角,对于逐行曝光的 sensor 来说,曝光从第一个像素开始,依次曝光直至这行的最后一个像素曝光结束,
这时曝光位置要从此行的尾部快速移动到下一行的头部,开始下一行的曝光,这段行与行之间的返回过程称为H_Blank。
V_Blank:是指场消隐或称垂直消隐,如下帧结构示意图所示,假定曝光起始位置在图像的左上角,曝光完成一帧图像后,曝光位置要从图像的右下角返回左上角,开始新一帧的曝光,这一段时间间隔称为V_Blank。
7)dummy_line
虚拟行,是用来填充V_Blank的行,一般最大曝光行数是要大于有效像素的长的,就是因为加了dummy_line的原因,这个后面会继续说明。
8)frame_offset
是指最小的dummy_line,这里要注意:最大曝光行 = VTS - frame_offset,而最小曝光行则不是frame_offset , datasheet 中会定义一个最小曝光行,这是两个概念。
9)line_length
一行的长度,它包含H_Blank,通常说的 HTS 就是行长,
line_length =
width_number_of_effective_cloumns+H_Blank
11)frame_length
一帧的行数,也就是帧长,它包含V_Blank,通常说的 VTS 就是帧长,
frame_length =
height_number_of_effective_rows + V_Blank
10)line_time
曝光一行的时间。
12)exposure_time
曝光时间,指一帧曝光了多长时间,这里是绝对时间。单位用秒(s)、毫秒(ms)或微秒(us)表示。
13)integration_time
积分时间,单位为行(H),通常也称为曝光行。 对于逐行曝光的sensor来说,积分时间是指这一帧曝光了多少行,这是一个相对时间。
2、与 Sensor 曝光相关的计算
1)曝光一行的时间计算(line_time)
line_time = line_length/pclk
--- 单位通常是:us(微秒)
--- 也就是曝光一行所用的时间,等于一行的长度除以1秒时间内采样的像素数,可以理解成:路程/速度=时间。
2)曝光时间计算(exposure_time)
exposure_time = integration_time * line_time
--- 积分时间是指曝光一帧所用的行数,那这一帧的绝对曝光时间就等于,曝光所用行数乘以曝光一行所用的时间。
3)帧率计算(fps)
line_length = pclk * line_time;
fps=pclk/(VTS∗HTS) = pclk/(frame_length∗line_length)
以上两式代入得:fps = 1/(frame_length ∗ line_time)
如上式可以理解成,帧率等于1秒内能曝光多少帧,比如 sensor 出30fps,那按上式来看,每帧的曝光时间就是1/30=33ms。
--- 注1:fps即表示1秒内帧数,此公式中line_time单位是秒。
--- 注2:调节帧率一般都会通过调整VTS来完成(也就是调整V_Blank,如增加了帧与帧间隔的时长,自然每秒内能处理的帧数就少了),
改HTS和VTS是一样的,但可能有些sensor对行长有8倍,16倍的要求,需要找原厂确认,要注意sensor 厂家不同对 sensor 的设计要求有所区别,具体要咨询相应厂家的fae ;
4)帧长(frame_length)VTS = frame_length =height_number_of_effective_rows + dummy_line ( V_Blank )
VTS ≥ height_number_of_effective_rows + frame_offset
min_integration_time ≤ integration_time ≤ VTS - frame_offset
5)sony对于同一个概念有不同的描述,但本质一样,这里以IMX307为例:
通常在 sony sensor 的 datasheet中都可以查找到effective number of pixels,VMAX 与 VTS是一个概念,HMAX 与 HTS 是一个概念。
integration_time = VTS - SHR0
SHR0本意是表示Shutter释放的时机,SHR0的值越大,说明Shutter释放得越晚,integration_time越小,
IMX307 是通过控制SHR0来间接控制曝光行的,其他厂家的sensor 是有直接控制曝光行(integration_time)的寄存器。
如下图所示,integration_time = VTS (frame1+v_blk) - SHR0(β) ;
有SHR0=α是因为这是首帧,存在收敛误差可能,后面都是一样了。
审核编辑:郭婷
-
显示器
+关注
关注
21文章
4934浏览量
139765 -
像素
+关注
关注
1文章
203浏览量
18550
原文标题:CMOS Sensor 的一些基本概念,及曝光相关的计算
文章出处:【微信号:vision263com,微信公众号:新机器视觉】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论