
097、Flicker Detection的"频闪猎手"——50Hz/60Hz/日光灯/PWM调光LED的频闪检测与补偿,从硬件同步到软件抗频闪去年夏天在产线上盯着一台刚量产的安防枪机,画面里走廊的LED灯带每隔几帧就出现一道横向的亮暗条纹,像老式CRT显示器的刷新滚动。客户反馈说“画面在呼吸”,质检那边直接挂了八台样机。我拿着示波器去测灯源,发现是PWM调光频率约1.2kHz,占空比调得很低,而sensor的曝光时间恰好落在了一个尴尬的区间——不是整倍数的行曝光周期,于是每帧采到的光能量不一致,亮度波动就出来了。这就是典型的flicker,但它的根因不在灯,而在曝光与光源的相位关系。问题现场:不是所有条纹都叫flicker先分清两类现象。一类是行间亮度梯度,画面从上到下逐渐变亮或变暗,像百叶窗效果,这通常来自sensor卷帘快门逐行曝光时,光源功率在行周期内发生了周期性变化。另一类是帧间亮度跳变,整帧忽明忽暗,频率低到肉眼可见,这往往是曝光时间与光源频闪周期不成整数倍关系,导致每帧积分的光能量不同。前者在手机拍屏幕时最常见,后者在监控场景下更致命。我遇到过最坑的一次,客户报“画面闪烁”,我查了半天sensor寄存器,发现AGC在疯狂跳动,以为是增益环路不稳,最后用高速相机对着灯拍才发现是那盏所谓的“无频闪”LED灯,驱动电源其实是50Hz全波整流后直接限流,纹波频率100Hz,而sensor曝光设成了19ms——刚好是10ms半周期的非整数倍,每帧采到的光能量差出15%以上。所以第