admin管理员组文章数量:1794759
Anti
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
本文标签: anti
版权声明:本文标题:Anti 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1696254911a322967.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论