CMOS Sensor 的一些基本概念,及曝光相关的计算

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=α是因为这是首帧,存在收敛误差可能,后面都是一样了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值