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
在某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