像我们小时候写作文时候一样,从左上角开始横向书写,写完第一行,再回到左边来,进行第二行的书写。当写完一张纸256行后(一帧),需要到本子下一页的左上角继续书写第二页。在换行(行消隐)和换页(场消隐)的过程中,笔是要拿起来的,不能在本子上画下巨丑的回扫线。所以,拿起笔换行换页的回扫线过程就是行场消隐。像电视机里面的电子枪或者我们的笔,都是在不断地走“之”字型

帧长度(场高)VTotal :不占用曝光时间,但是会影响帧率(FPS),如果按照行曝光,曝光时间必须小于VTotal行。

VTotal = VTS = V_Size + V_Blank

(场有效高度)(场消隐)

行长度(场宽)HTotal:如果按照行曝光,会增加曝光时间,会影响帧率(FPS)

HTotal = HTS = H_Size + H_Blank

(行有效长度) (行消隐)

2.行场同步

电视信号发送端为了使接收端的行扫描与场扫描规律与其同步,在行(场)扫描正常结束后,向接收机发出一个脉冲信号,表示这一行(场)已经结束,这个脉冲信号就是行(场)同步信号。

3.何调整帧率呢?

1)帧率计算公式:

FPS = PCLK /( VTS*HTS)   

(像素时钟)

VTS = V_Size + V_Blank   

(场有效高度) (场消隐)

HTS = H_Size + H_Blank    

(行长) (行有效长度) (行消隐)

从上面的公式可以看出,想要调整帧率,可以调整PCLK,也可以调整 VTS*HTS。Hts和Vts都会影响帧率,但在实际应用中,可以只修改其中的一个值,从而可以修改帧率,比如只修改Hts的值。Hts(行长; 会增加曝光时间),Vts(帧长,不占用曝光时间)。

HTS:行长,一行有多少个pixel;

VTS:  一帧曝光了多少行。

HTS*VTS  为这一帧画面里面所有的pixel;

1/pclk:是曝光一个像素点所用的时间。

row time  =  HTS *(1/pclk)  积分时间等于 1 的时候,此公式表示一行的曝光时间。

row time  = 1/(FPS*VTS)S

   一个时钟等于一个像素点

sensor根据曝光量计算时间exposure和gain的乘积,然后选一组最佳的exposure和gain组合,exposure根据timeline转换为曝光行,配置给寄存器。

曝光时间又是由什么决定的呢?

曝光时间的计算公式为:

exposure time = integration time * [ 行长 * (1 / pclk)]

(单位:us) (行为单位的积分时间) (单位:MHZ)

开启一次快门时间内所曝光的行数*每行曝光所用的时间,是一次快门的时间。

方法一:修改调整PCLK

PCLK的修改需要修改MCLK。对9M001型号的sensor,MCLK maximum data rate为48MHZ。我们可以把他改小,在麒麟的设备中,众趣的客户需要将帧率降为7/10/15FPS。

MT9M001 Reg初始化序列配置行场消隐、分辨率寄存器:

{0x03, 0x03ff},    // Row Size 帧长  V_Size=1023

       {0x04, 0x04ff},     // Col Size  行长   H_Size=1279

       {0x05, 0x0009},    // Horizontal Blanking H_Blank=9

       {0x06, 0x0019},    // Vertical Blanking    V_Blank=25

所以, HTS=1288,VTS=1048

 

方法二:曝光时间

3.total integration time (tINT):

tINT = Reg0x09 x row time - overhead time - reset delay,

where:

Row time = ((Reg0x04 + 1) + 244 + Reg0x05 - 19) pixel clock periods

Overhead time = 180 pixel clock periods

Reset delay = 4 x Reg0x0C pixel clock periods

4.各种像素时钟/帧速率的默认行时间:

Vertical Blanking (long integration time)=(Reg0x09 – Reg0x03) x (A + Q)

CLKIN: Clock in. Master clock into sensor (48 MHz maximum).

PIXCLK: Pixel clock. Pixel data outputs are valid during falling edge of this

clock. Frequency = (master clock).

tINT = Reg0x09 x row time - overhead

time - reset delay   (where ,Reset delay = 0,Row time =

31.53662us,Overhead time  = 3.7494us)

expposure = Reg0x09*31.53662us

 - 3.7494 单位uS, expposure 0-8191(13bit), 注意曝光时间过长会影响帧率, VGA分辨率下, Reg0x09= 1049,曝光时间大概是33ms(注意SXGA下时钟4分频,Row time要x4 )

expposure 设置Reg0x09 寄存器

gain = set_gain / 1000, 范围是1000-15000, 对应是 1x-15x倍增益, 在1000-4000之间每个最小step是125对应是0.125倍增益,在4250-8000之间每个最小的step是250,对应0.25倍增益,9000-15000之间每个最小step是1000 对应1倍增益,其他不在这三个区间的值会被设成最大增益15x。

频率和时间关系转换:

1 Hz = 1 / s;  50 Hz = 0.02 s = 20 ms; 60 Hz = 1 / 60 s = 1000 / 60 ms

1 KHz = 1000 Hz

1 MHz = 1000 000 Hz

1 GHz = 1000 000 000 Hz

1S秒 = 1000 ms毫秒 = 1000_1000 us微妙 = 1000_000_000 ns纳秒

1GHz = 1000 MHz = 1000_000 KHz = 1000_000_000 Hz

曝光时间以行长为单位; PCLK以Hz为单位;

行长以周期数为单位,帧长以行长数为单位;其中周期数就是频率

T 周期以ms为单位;f 频率以Hz为单位;f = 1 / T;周期和频率都是时间单位,只是表现形式不同

 

 

 

 

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐