123、OIS光学防抖:陀螺仪标定、音圈马达控制与滚珠式vs悬丝式的机械特性对比 123、OIS光学防抖:陀螺仪标定、音圈马达控制与滚珠式vs悬丝式的机械特性对比去年在调试某旗舰机型的OIS时,遇到一个让人抓狂的问题:预览画面在低频抖动下防抖效果很好,但一旦用户走路或者坐车,画面边缘就开始出现诡异的“呼吸效应”——像是有只无形的手在反复拉扯画面。更诡异的是,同一颗模组换到竞品主板上就正常了。折腾了两周,最后发现是陀螺仪标定参数里一个不起眼的“温度漂移补偿系数”写死了,导致高频段增益失配。这种坑,没被OIS折磨过的人根本想不到。今天这篇笔记,我把这些年跟OIS死磕的经验掰开揉碎,从陀螺仪标定到音圈马达控制,再到滚珠式和悬丝式那点机械上的“脾气”,全抖出来。陀螺仪标定:别信出厂数据,自己动手才靠谱很多工程师拿到模组,直接拿陀螺仪出厂标定值就用。我劝你趁早改掉这个习惯。手机陀螺仪通常是MEMS结构,出厂时在恒温台上做的标定,到了实际主板上,电源纹波、PCB应力、甚至旁边麦克风的振动都会让零偏和灵敏度跑偏。零偏标定是第一步。把模组静置在水平台上,采集至少200帧陀螺仪数据,算均值。这里有个细节:别用简单的算术平均,要剔除头尾各10%的数据,因为上电瞬间陀螺仪有个热稳定过程,前几十帧往往有瞬态漂移。我习惯的做法是:上电后先等500ms,然后连续采300帧,去掉前50帧和后50帧,剩下的200帧做中值滤波。代码里这样写:// 采集陀螺仪零偏,注意:上电后必须等500m