1. Camera系统概述:从光子到数字图像

做摄像头调优这些年,我最大的感受是:不懂硬件原理,调优就是瞎蒙。你连传感器怎么输出数据的都不知道,遇到偏色、噪点、拖影这些问题,根本无从下手。

这一章,咱们先把Camera系统的底裤扒干净。从光子怎么变成数字信号,到ISP内部干了什么,再到模组接口怎么选——把这些搞明白,后面30章你才能站得稳。

1.1 摄像头工作原理:光信号→电信号→数字信号

说白了,摄像头就是个光电转换器。光线通过镜头,打在传感器上,传感器把光强转换成电压,再经过ADC(模数转换器)变成数字值。

整个过程分三步:

  1. 曝光:快门打开,光线进入,传感器上的像素开始积累电荷
  2. 读出:快门关闭,每个像素的电荷被读出,转换成电压
  3. 量化:ADC把模拟电压转成数字值(通常是10bit或12bit)

关键指标:曝光时间、增益、帧率三者互相制约。你调高了增益,噪点就上来了;你降低了帧率,运动物体就糊了。这就是为什么调优永远在做权衡。

我记得刚入行时,有个项目在暗光下拍出来的画面全是雪花。我当时拼命调ISP的降噪参数,效果一直不理想。后来才发现——传感器增益设得太高了,信号还没进ISP就已经被噪声淹没了。嗯,从那以后我养成了习惯:先查传感器原始数据,再动ISP参数。

1.2 图像传感器:CMOS vs CCD

现在市面上99%的摄像头都用CMOS传感器。CCD基本退出了消费市场,只在一些工业、科研领域还能见到。

为什么CMOS成了主流?我列个表你就明白了:

对比项 CMOS CCD
功耗 低(单电源供电) 高(需要多路电压)
读出速度 快(每个像素独立放大) 慢(串行读出)
噪声 较高(像素内放大器引入) 低(读出电路简单)
成本 低(标准CMOS工艺) 高(专用工艺)
集成度 高(可集成ADC、DSP) 低(需要外部支持芯片)
应用场景 手机、安防、车载、IoT 天文、医疗、工业检测

我的经验:做消费电子项目,闭着眼睛选CMOS。但如果你做的是高精度工业检测,CCD在低噪声和均匀性上确实有优势。我曾经在一个医疗内窥镜项目里试过CMOS,暗光下的固定噪声怎么都消不掉,最后换了CCD才过标。

1.3 ISP图像信号处理器架构

ISP(Image Signal Processor)是摄像头的大脑。传感器输出的Raw数据,经过ISP一系列处理,才能变成你屏幕上看到的样子。

典型的ISP流水线长这样:

ISP 图像信号处理流水线 Raw 输入 黑电平校正 去马赛克 白平衡 Gamma 校正 色彩校正 降噪 锐化 色调映射 YUV 输出 各模块作用说明 • 黑电平校正:去除传感器暗电流引入的固定偏移 • 去马赛克:从Bayer阵列插值出RGB三通道 • 白平衡:校正不同光源下的色偏 • Gamma校正:非线性映射,适配显示设备 • 色彩校正:通过CCM矩阵修正传感器色彩响应 • 降噪/锐化:空间域或频域处理,提升画质

你可能会问:这些模块的顺序能调吗?能,但别乱调。比如降噪必须放在锐化之前,否则锐化会把噪声放大。白平衡必须在色彩校正之前,因为CCM矩阵依赖正确的白平衡系数。

避坑指南:我曾经在一个项目里,为了赶进度,把Gamma校正放在了白平衡前面。结果画面偏色怎么都调不正,折腾了两天才发现是流水线顺序搞反了。ISP的每个模块都有严格的依赖关系,顺序错了,神仙也救不了。

1.4 Camera模组组成与接口类型

一个完整的Camera模组,远不止传感器和镜头这么简单。我拆开给你看:

  • 镜头(Lens):决定进光量和视场角。F值越小,进光越多
  • 红外滤光片(IR Filter):截止红外光,防止偏色
  • 传感器(Sensor):光电转换核心
  • 软排线/基板(FPC/Substrate):电气连接
  • 连接器(Connector):与主板对接

接口方面,目前主流就三种:

接口类型 带宽 传输距离 典型应用 我踩过的坑
MIPI CSI 最高 4.5 Gbps/Lane 短(< 30cm) 手机、平板、嵌入式 差分线等长没做好,画面出现条纹
USB USB 2.0: 480 Mbps
USB 3.0: 5 Gbps
中(< 5m) PC摄像头、工业相机 UVC协议兼容性问题,掉帧
Parallel 通常 8-16bit,几十MHz 极短(< 10cm) 低端MCU、老平台 信号串扰严重,分辨率上不去

个人建议:新项目能选MIPI就别选Parallel。MIPI的差分信号抗干扰能力强,而且带宽高,未来升级分辨率不用换接口。USB接口适合做即插即用的产品,但延迟和带宽稳定性不如MIPI。

说到接口,我记得有个血泪教训。一个车载项目,摄像头通过长FPC连接到主板,MIPI信号线没做等长处理。结果画面时不时出现水平条纹,查了三天,最后用示波器一看——数据线和时钟线的skew超过了MIPI规范允许的0.15UI。重新Layout后问题消失。

所以,硬件设计上的问题,软件调优是补不回来的。这也是为什么我把Camera系统概述放在第一章——你连硬件怎么工作的都不知道,后面调ISP参数就是在碰运气。