Anti_flicker(去水波纹即闪光)与HB,VB与CLK的关系

Anti_flicker(去水波纹即闪光)与HB,VB与CLK的关系。
在某sensor中,消除灯管频率导致的flicker问题,需要同时配置exposure step register(0xD6)和Hb({0x10[1:0],0x01}),Vb({0x10[5:4],0x02}),exp_level(0x28~0x2f)来实现。消除flicker的原理即是曝光时间是灯管周期的整数倍。
计算方法为:
step * row_time = N * T 
注:
1)step便是0xD6要写入的值。
2)row_time=(Hb + Sh_delay + Win_width + 4)* pclk周期其中Hb由0x10[1:0]和0x01所设。Sh_delay由0x1f所设。Win_width由0x0b和0x0c所设
3)N为大于等于1的整数。
4)T为灯管频率的周期。即工频为50Hz时,T=0.01s=10ms 工频为60Hz时,T=1/120s=8.333ms 另外,当曝光时间小于一个step的时候,还是会出flicker,这时应该配合VB将相位固定住。公式为:(488+Vb)* rowtime = N* T 示例如下:
如果MCLK=24MHz; 50Hz 此时win_width = 640 sh_delay=50 有:
step * (694 + Hb) * 1/12000000 = 0.01*N 
满足条件的step 和Hb有:
HB HB(hex)  steps steps(hex) 
56  38  160 A0 
106 6A 150 96 
266 10A 125 7D 
306 132 120 78 
506 1FA 100 64 
556 22C 96 60 
806 326 80 50 
906 38A 75 4B 
当选择step=150,Hb=106时,为固定banding,Vb的设置可有:
VB VB(hex) min_frame_time  max_FPS 
112 70 40 25 
262 106 50 20 
412 19C 60 16.66667 
562 232 70 14.28571 
712 2C8 80 12.5 
862 35E 90 11.11111 
1012  3F4 100 10 

Exp_level的设置很简单,只用是所计算出来的step的整数倍即可,可按照想要的帧率配置,如在该实例下,选step=150,Hb=106,Vb=112 
Exp_level1 {0x28[3:0],0x29} = 0x258 --对应帧率为25fps 
Exp_level2 {0x2a[3:0],0x2b} = 0x4b0 --对应帧率为12.5fps 
Exp_level3 {0x2c[3:0],0x2d} = 0x708 --对应帧率为8.33fps 
Exp_level4 {0x2e[3:0],0x2f} = 0xE10 --对应帧率为4.17fps 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值