1. Camera 系统概述:从光到数字的旅程
做摄像头驱动这么多年,我经常被问到同一个问题:“相机到底是怎么把一张照片‘算’出来的?” 其实这个问题背后,藏着整个 Camera 系统的核心逻辑。今天我们就从最基础的东西聊起。
1.1 摄像头工作原理:光信号 → 电信号 → 数字信号
说白了,摄像头就是一个光电转换器。它的工作流程可以拆成三步:
- 镜头收集光线 —— 外界景物反射的光,通过镜头组聚焦到传感器表面。
- 传感器光电转换 —— 每个像素点的感光二极管把光子转换成电子,形成模拟电压信号。
- ADC 数字化 —— 模拟电压经过模数转换器(ADC),变成我们熟悉的数字 RAW 数据。
关键点:传感器输出的 RAW 数据是“拜耳阵列”格式(Bayer Pattern),每个像素只记录 R/G/B 其中一种颜色。后续的 ISP 才负责把它还原成彩色图像。
我在项目中遇到过不少新手,以为传感器直接输出 RGB 图像。其实不是的。你想想看,如果每个像素都记录三种颜色,那感光面积得缩小多少?所以拜耳阵列是成本和画质之间的一个折中方案。
1.2 主流 Sensor 厂商与型号
目前市面上主流的 Sensor 厂商,我按出货量和应用场景排了个序:
| 厂商 | 常见系列/型号 | 典型应用 | 特点 |
|---|---|---|---|
| Sony | IMX系列(IMX586、IMX415、IMX335) | 手机、安防、车载 | 低噪声、高动态范围、堆叠式工艺领先 |
| Samsung | ISOCELL系列(GM1、GW1、HMX) | 手机、平板 | 像素高、Tetracell 技术、性价比好 |
| OmniVision | OV系列(OV5640、OV8865、OV12D) | 安防、车载、笔记本 | 成本低、出货量大、技术支持快 |
| Onsemi | AR系列(AR0230、AR0820) | 车载、工业 | 高可靠性、宽温范围、全局快门 |
| GalaxyCore | GC系列(GC2053、GC8034) | 安防、IoT | 国产替代、价格优势、中低端市场 |
个人建议:做项目选型时,别只看 datasheet 上的参数。我踩过坑——有些 Sensor 标称 4K 30fps,但实际跑起来发热严重,或者 MIPI 信号质量不行。最好先拿 EVB 板实测一下。
1.3 ISP Pipeline 概览
ISP(Image Signal Processor)是 Camera 系统的“大脑”。RAW 数据进来,经过一系列处理,最终输出 YUV 或 JPEG。我习惯把 ISP Pipeline 分成前端处理和后端处理两段:
前端处理(Sensor 侧)
- 黑电平校正(BLC) —— 去掉传感器暗电流带来的固定偏移。
- 镜头阴影校正(LSC) —— 补偿镜头边缘亮度衰减。
- 坏点校正(DPC) —— 修复传感器上的死点或亮点。
- 去噪(NR) —— 降低传感器读出噪声。
后端处理(ISP 侧)
- 去马赛克(Demosaic) —— 把拜耳阵列插值成 RGB 全彩图。
- 白平衡(AWB) —— 让白色在不同光源下看起来都是白的。
- 色彩校正(CCM) —— 把 Sensor 的色彩空间映射到标准色域。
- Gamma 校正 —— 调整亮度曲线,适配人眼感知。
- 边缘增强(Sharpness) —— 提升图像清晰度。
- 动态范围压缩(HDR/Tone Mapping) —— 保留亮部和暗部细节。
注意:不同芯片厂商的 ISP Pipeline 顺序可能不一样。比如高通平台喜欢把 AWB 放在 Demosaic 之后,而 MTK 平台可能放在之前。调参时一定要先看 ISP 的参考手册。
我曾经在一个项目中,因为没注意 ISP 模块的先后顺序,调了一周的 AWB 参数都没效果。后来才发现——白平衡模块被放在了 Gamma 之后,Gamma 已经把色温信息给扭曲了。嗯,从那以后我每次拿到新平台,第一件事就是画 Pipeline 流程图。
1.4 整体系统框图
下面这张图是我自己总结的 Camera 系统数据流。你可以把它当作整个课程的“地图”:
1.5 我的一些经验总结
做 Camera 驱动和 ISP 调优,说白了就是跟噪声、色彩、亮度、清晰度这四个东西打交道。我个人的习惯是:
- 先保证 RAW 数据干净 —— 如果 Sensor 出来的 RAW 就有问题,后面 ISP 怎么调都救不回来。
- 再调 ISP 前端 —— 把坏点、阴影、黑电平这些基础问题搞定。
- 最后调 ISP 后端 —— 色彩、白平衡、Gamma 这些是“锦上添花”的步骤。
核心原则:ISP 调优不是“调参数”,而是“理解每个模块在做什么,以及它们之间的相互影响”。
我记得刚入行时,带我的老工程师说过一句话,我一直记到现在:“Camera 系统里没有‘万能参数’,只有‘适合场景的参数’。” 同一个 Sensor,用在室内监控和户外行车记录仪上,ISP 参数可能完全不同。所以别指望抄别人的配置就能搞定——你得理解背后的原理。