OV Camera AE相关的寄存器学习配置记录

转载来自:http://blog.csdn.net/gzzaigcnforever/article/details/44757491


自动AEC相关的寄存器配置的原理如上图。主要设置如下:
    {0x3a0f, 0x40},
    {0x3a10, 0x38},
    {0x3a1b, 0x48},
    {0x3a1e, 0x30},
    {0x3a11, 0x90},
    {0x3a1f, 0x10},    



 band_step60 = preview_sysclk * 100/preview_HTS * 100/120;
 OV5640_write_i2c(0x3a0a, (band_step60 >> 8));
 OV5640_write_i2c(0x3a0b, (band_step60 & 0xff));
 max_band60 = int((preview_VTS-4)/band_step60);
 OV5640_write_i2c(0x3a0d, max_band60);
 // 50Hz
 band_step50 = preview_sysclk * 100/preview_HTS; 
 OV5640_write_i2c(0x3a08, (band_step50 >> 8));
 OV5640_write_i2c(0x3a09, (band_step50 & 0xff));
 max_band50 = int((preview_VTS-4)/band_step50);
 OV5640_write_i2c(0x3a0e, max_band50);



自动曝光时间的manual 设置:
曝光时间最好是n/100或者n/120来设置,一般设置这个曝光时间可以去除灯光闪烁的条纹现象light flicker。

假设输出一行的时间为row,曝光行数exp.
exp*row = 10*N ms(N为整数)。曝光内灯光影响均匀,不会出现受灯光强度不同的影响。
row time = 1/pclk*1792. 
exp = pclk/100/HST。

row 是通过PCLK*HST来设置,即输出一行所需的时间。
最终得到需要的exp一次可以曝光多少行,即可决定曝光时间。基本上720p的话,1/60秒之内肯定能曝光完成并输出一帧。
曝光行数需要*16倍并写入下面的0x[3500, 3502]之中。写入的曝光value后,内部会自动转为当前帧率下的曝光时间。实际上value的写入可比计算出来的exp小一些。

上述的设置,可以很好的去除flicker现象。
不过一定环境下还能做一定的曝光补偿。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值