OIS 防抖结构、闭环控制与 ISP 融合调优
OIS 防抖技术通过机械位移抵消手持抖动,核心涉及双轴补偿、VCM/SMA 驱动及闭环控制。文章解析陀螺仪信号采集、马达驱动电流 - 位移特性及霍尔传感器反馈机制。重点阐述视频模式下 OIS 与 EIS 的频段互补与时序对齐策略,包括 ISP 端 ROI 裁剪与畸变修正。对比 Qualcomm 与 MTK 平台驱动架构差异,涵盖零位校准、增益匹配及复杂场景优化方案,为影像系统工程师提供全链路实现与调试参考。

OIS 防抖技术通过机械位移抵消手持抖动,核心涉及双轴补偿、VCM/SMA 驱动及闭环控制。文章解析陀螺仪信号采集、马达驱动电流 - 位移特性及霍尔传感器反馈机制。重点阐述视频模式下 OIS 与 EIS 的频段互补与时序对齐策略,包括 ISP 端 ROI 裁剪与畸变修正。对比 Qualcomm 与 MTK 平台驱动架构差异,涵盖零位校准、增益匹配及复杂场景优化方案,为影像系统工程师提供全链路实现与调试参考。

光学防抖(OIS, Optical Image Stabilization)已成为智能手机影像系统的核心组件之一,尤其在高像素、大底传感器、长焦镜头和视频拍摄中对成片质量的提升尤为显著。本文基于真实工程实现路径,从 OIS 的机械结构类型(弹片/滚珠 VCM、SMA 驱动)与双轴控制原理出发,详细解析陀螺仪信号采集、马达驱动闭环控制、响应时序等核心环节,并结合 ISP 端的 EIS(电子防抖)实现逻辑,讨论二者在视频模式下的时序对齐与 ROI 动态裁剪机制。文章还将结合 Qualcomm 与 MTK 平台的驱动链路与调试方法,分享零位校准、增益匹配、延迟补偿等实战经验,帮助工程师系统掌握 OIS 全链路实现与优化。
光学防抖(OIS, Optical Image Stabilization)的核心任务,是通过精确控制镜头光学组件的物理位移,抵消用户手持或设备震动带来的成像光轴偏移。OIS 的实现方式既依赖于机械结构,也依赖于驱动与闭环检测系统,因此在工程设计阶段,机构形态、驱动方式、传感器集成路径会直接影响防抖的性能上限与调试难度。
目前智能手机中超过 95% 的 OIS 方案采用 双轴补偿,补偿方向为:
这种方案可覆盖大部分日常拍照与视频抖动场景,且控制环路相对简单,功耗与成本可控。
在长焦、大倍率变焦、AR/VR 等场景中,部分厂商探索了 三轴或多轴扩展,额外补偿:
但在手机中,除 Pitch/Yaw 外的补偿轴向通常依赖电子防抖(EIS/DIS)或 AI 视频稳定来完成,因为多自由度机构在尺寸、功耗、发热上的代价很大。
OIS 的机械主体在绝大多数机型中仍然基于 VCM(Voice Coil Motor)驱动结构,按照导向方式不同可分为两类:
| 机构类型 | 导向方式 | 特点 | 优势 | 劣势 |
|---|---|---|---|---|
| 弹片式 VCM | 四片或多片金属弹片 | 结构成熟、工艺成本低 | 成本低、批量一致性高 | 摩擦阻尼较大,高频响应受限 |
| 滚珠式 VCM | 精密滚珠 + 导轨 | 摩擦极低、位移精度高 | 响应速度快、抖动残留低 | 加工精度要求高,抗冲击性略差 |
在高端长焦模组中,滚珠式 VCM 越来越多,因为它在小幅高频补偿上的滞后小,有利于提升视频防抖的清晰度。
SMA(Shape Memory Alloy)形状记忆合金驱动利用加热—冷却过程中的材料形变来驱动光学组件,体积非常小,可用于轻薄手机模组。
特点:
因此,SMA 驱动更多是轻量化补偿或特定产品形态的补充方案,而不是主摄的主流防抖机构。
根据补偿对象不同,OIS 机构可分为两类集成方式:
在智能手机领域,镜头组移动式占据绝对主流,传感器移动式的优势主要体现在静态拍摄的解析力与低光视频防抖中。
光学防抖的本质,是通过实时检测设备的角速度,并驱动光学组件沿反方向等幅位移,从而保持光轴稳定。
这套系统必须是全闭环控制,否则无法保证位移精度和响应速度。区别于 AF(自动对焦)可以开环运行,OIS 必须依赖反馈来修正位置,因为防抖位移频繁且幅度小,一旦失去闭环会迅速累积偏差并导致画面漂移。
OIS 的第一步是感知抖动。
模组内部或主板上会配置 MEMS 陀螺仪(Gyroscope),工作频率一般在 800Hz~2kHz。陀螺仪输出三轴角速度(ωx, ωy, ωz),OIS 通常只使用 Pitch/Yaw 两个分量。
核心工程要求:
常见的数据流路径(以 Qualcomm 平台为例):
Gyro MEMS → I2C/SPI 接口 → SoC ISP/MCU → OIS 控制器 → VCM 驱动
OIS 的执行单元通常为 VCM(音圈马达) 或 SMA 驱动器,它们的控制量和位移量之间存在物理关系。
以 VCM 为例:
近似关系:
位移 Δx ≈ K_i × 电流 I 角度补偿 θ ≈ arctan(Δx / f)
其中 K_i 需通过标定获得,不同模组差异显著。
工程上会做电流 - 位移线性区匹配:
OIS 必须闭环运行,闭环信号来自:
闭环的作用:
闭环更新频率需与控制环路保持一致(≥1kHz),否则会出现高频抖动补偿不足的情况。
OIS 的控制器本质是一个 位置闭环 + 速度前馈 系统。常见的控制算法为 PID(比例 - 积分 - 微分),部分高端平台会加入状态空间控制或**模型预测控制(MPC)**以降低延迟。
优化要点:
Qualcomm 和 MTK 在驱动层的差异:
在视频拍摄中,防抖的目标不仅是单帧的清晰度,还包括整段视频的画面稳定与构图一致性。
OIS(光学防抖)与 EIS(电子防抖)并不是互相替代的关系,而是频段互补、分工明确:
只有在时序和位移数据完全对齐的前提下,两者才能协同工作,否则会出现'画面弹跳''裁剪延迟'等问题。
| 维度 | OIS 光学补偿 | EIS 数字补偿 |
|---|---|---|
| 频率范围 | 高频(>5Hz,最高可到几十 Hz) | 低频(<5Hz) |
| 补偿方式 | 移动镜头光学组件 | 裁剪 + 重映射画面 |
| 优势 | 不降低分辨率、抑制模糊 | 可补偿多轴位移、构图稳定 |
| 劣势 | 补偿范围有限(角度<1°) | 依赖裁切裕度,分辨率会损失 |
| 依赖输入 | 陀螺仪角速度、闭环位置反馈 | 陀螺仪 + 图像光流/特征点匹配 |
在工程上,OIS 负责解决**'画面抖动变糊'的问题,EIS 负责解决'画面不稳'**的问题。
OIS 和 EIS 都依赖陀螺仪数据,因此必须做到时间戳对齐:
关键实现要点:
sensor_time_sync 服务将 Gyro 与 Sensor VSYNC 对齐;MTK 在 Camera Middleware 中使用 TimeSyncService 实现同样功能。EIS 的核心是对画面进行动态 ROI(Region of Interest)裁剪。
在协同模式下:
Qualcomm 的做法:
MTK 的做法:
| 特性 | Qualcomm SM8650 系列 | MTK Dimensity 9300 系列 |
|---|---|---|
| 时间戳同步方式 | 硬件级 sensor_time_sync | Camera Middleware 软件对齐 |
| 数据融合模式 | 硬件 ISP 内部三方融合 | OIS 补偿后再送 EIS 模块处理 |
| ROI 追踪策略 | Gyro 预测 + 光流跟踪 | AI 物体检测 + 光流跟踪 |
| 延迟特性 | 内部延迟 2 帧 | 内部延迟 3 帧 |
Qualcomm 的优势在于所有补偿模块(OIS/EIS/畸变校正)在同一时钟域内运行,延迟低;
MTK 则在 AI 追踪和 ROI 适配上更灵活,特别是变焦视频时目标保持效果较好。
OIS 模组的调试和校准是保证其性能稳定、批量一致性可控的关键环节。一个未经校准的 OIS,即使硬件性能优越,也可能因为零位漂移、增益失配、延迟异常等问题,导致画面漂移、补偿不足或过补偿。
**零位(Zero Position)**是指在无补偿输入时,镜头组处于光轴对准图像中心的物理位置。
典型校准流程(生产端台架):
在 Qualcomm 平台的 ois_driver.c 中,零位加载常见逻辑:
ois_set_position(middle_x_dac, middle_y_dac);
OIS 的控制精度依赖于 电流—位移曲线 的线性度。
校准方法:
在 MTK 平台,增益表通常在 OIS_Driver_Table.txt 或 DCT 工具配置中,例如:
OIS_X_GAIN = 1024
OIS_Y_GAIN = 1035
常见结构问题:
排查方法:
OIS 在高频与低频抖动下的表现差异很大,因此测试必须覆盖两个频段:
在实验室中,OIS 性能可以通过标准测试台架获得较高分数,但在实际拍摄中,复杂的光线、场景和用户操作会暴露出更多问题。以下三个场景是整机调优中最常见、最棘手的 OIS 应用挑战。
问题背景
优化策略
ois_set_exposure_window() 控制 OIS 有效补偿时间,避免长曝光末尾失效。实测建议
问题背景
优化策略
实测建议
问题背景
优化策略
dual_ois_preload() 在后台加载长焦模组参数。dual_ois_switch_delay_us = 4000us),让 EIS 等待 OIS 稳定后再开始裁剪。实测建议
这些策略都要求 OIS、EIS、AE、AF 四个系统在 ISP 层具备信息共享和时钟统一,否则即使单独看性能很好,组合效果也会打折扣。
虽然 OIS 的机构和闭环原理相对统一,但在不同 SoC 平台上的驱动架构、接口路径和调试工具差异很大,直接影响到 OIS 的延迟、带宽、调试方式以及和 EIS 的协同效果。
sensor_time_sync 硬件级时间戳同步,将 Gyro 与 Sensor VSYNC 锁在同一时钟域,适合高精度 OIS/EIS 协同。vendor/qcom/proprietary/camx/src/ais/ois/ 路径,接口在 Camera HAL3 层通过 CAM_OIS_* IOCTL 调用。// Qualcomm 平台 OIS 初始化
ois_power_on();
ois_load_calibration_data(); // 从 EEPROM 读取零位、增益表
ois_set_mode(OIS_MODE_VIDEO); // 设置视频模式参数
ois_start();
CAM_OIS_SET_CENTER_POSITION、CAM_OIS_SET_GAINCAM_OIS_SWITCH_BANDWIDTH/vendor/mediatek/proprietary/custom/hal/camera_isp_ext/ois/// MTK 平台 OIS 初始化
ois_load_driver_table("OIS_Driver_Table.txt"); // 加载驱动参数表
ois_set_zero_position(x_dac, y_dac);
ois_set_pid_params(pid_p, pid_i, pid_d);
ois_enable_video_mode();
OIS_X_GAIN = 1024 // X 轴电流增益
OIS_Y_GAIN = 1035 // Y 轴电流增益
OIS_ZERO_X = 512 // X 轴零位 DAC
OIS_ZERO_Y = 510 // Y 轴零位 DAC
PID_P = 200
PID_I = 5
PID_D = 10
OIS_OFFSET_QUERY 接口,可以让 EIS 模块读取 OIS 实时位移| 维度 | Qualcomm 高端平台 | MTK 中高端平台 |
|---|---|---|
| 闭环位置 | 模组 MCU 内完成 | SoC 侧或模组 MCU |
| 时间同步精度 | 高(硬件时钟域) | 中(软件同步) |
| 参数调试灵活度 | 中(需厂商固件支持) | 高(驱动表可改) |
| 延迟表现 | 低(3~6ms) | 中(5~10ms,SoC 闭环时更高) |
| 多模组支持 | 支持,但切换延迟需配置 | 支持,易与 EIS/AI 模块共享数据 |
| 适配难度 | 高(需对接模组固件接口) | 中(驱动层可直接接入) |
适配建议:
随着影像系统从单摄时代进入多模组、大底、高帧率视频的新阶段,OIS 的硬件形态和算法协同方式也在持续演化。未来 2~4 年,OIS 技术的发展趋势可以归纳为以下三个方向。
传统 OIS 的控制策略依赖 PID 或状态空间模型,对突发性运动模式(如快速平移→突然停止)适应性有限。AI 的引入,能让 OIS 控制从'被动补偿'升级为'预测性补偿'。
传统弹片/滚珠 VCM 在机械结构上存在磨损与体积限制,高端模组在长时间使用后可能出现摩擦噪声和漂移问题。行业正在探索固态化驱动方案。
旗舰机型常配备多个具备 OIS 的模组(主摄、长焦、甚至超广),但目前它们在切换或并行拍摄时,大多是独立工作的。未来趋势是跨模组协同控制。
未来的 OIS 不会只是单纯的机械补偿,而是一个**'硬件执行 + AI 决策 + 多模组协同'**的综合系统:

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online