当前位置: 首页 > news >正文

003、读出电路深度剖析:列并行ADC与单斜率ADC的噪声特性及帧率影响

003、读出电路深度剖析:列并行ADC与单斜率ADC的噪声特性及帧率影响

一个让我熬夜三天的bug

2018年某款旗舰机项目,暗光预览下画面出现周期性横纹,像百叶窗一样。团队排查了三天,从sensor驱动到ISP配置,从电源纹波到时钟抖动,最后发现是读出电路的列并行ADC在低增益模式下出现了列间固定模式噪声(FPN)。那个夜晚,我盯着示波器上ADC转换时序的毛刺,突然意识到——我们对读出电路的理解,还停留在“能用就行”的层面。

读出电路:被低估的性能瓶颈

很多工程师把注意力放在sensor像素设计和ISP算法上,却忽略了读出电路这个“中间人”。实际上,读出电路决定了sensor能输出的最大帧率、动态范围底噪,以及最让人头疼的固定模式噪声。

CMOS图像传感器的读出电路主要有两种架构:列并行ADC和单斜率ADC(也叫全局ADC)。它们不是简单的“谁更好”的问题,而是在不同应用场景下的权衡。

列并行ADC:速度与噪声的博弈

列并行ADC的核心思想很简单:每一列像素都配一个ADC转换器。这样,所有列可以同时开始转换,大幅提升读出速度。

噪声特性:我踩过的坑

列并行ADC最致命的噪声源是列间失配。每个ADC的参考电压、比较器偏移、电容失配都会产生差异,导致同一行像素在不同列读出时出现固定偏差。这就是我开头提到的百叶窗现象的根源。

实际调试经验:在低增益(高ISO)场景下,列间FPN会被放大。我曾经在某个项目中,列间FPN达到0.3%,在暗光下肉眼可见。解决方案是双采样(CDS)配合列校正,但校正表需要实时更新,因为温度变化会导致失配漂移。

另一个容易被忽视的是量化噪声。列并行ADC通常采用逐次逼近(SAR)架构,分辨率受限于电容匹配精度。12bit的列并行ADC,实际有效位数(ENOB)能做到10bit就不错了。别被datasheet上的“12bit”骗了,那是理想值。

帧率影响:速度的代价

列并行ADC的帧率优势明显。以4K分辨率(3840×2160)为例,如果每列一个ADC,读出时间主要取决于一行像素的转换时间。假设ADC转换周期为1μs,那么一帧的读出时间约为2160×1μs=2.16ms,加上像素曝光时间,轻松实现60fps。

但这里有个陷阱:列并行ADC的功耗与列数成正比。高分辨率sensor(比如48MP)需要近8000个ADC同时工作,功耗轻松超过500mW。手机sensor的散热问题会让你怀疑人生。

单斜率ADC:精度与噪声的妥协

单斜率ADC采用全局架构,所有像素共享一个斜坡发生器和一个比较器。像素电压与斜坡电压比较,通过计数器记录转换时间。

噪声特性:别被“高精度”迷惑

单斜率ADC理论上可以实现高分辨率(16bit以上),因为精度取决于斜坡的线性度和计数器的位数。但实际应用中,斜坡噪声是最大的敌人。

亲身经历:某安防项目,使用单斜率ADC的sensor在低照度下出现“雪花”噪声,排查发现是斜坡发生器上的1/f噪声被放大。解决方案是增加斜坡滤波电容,但代价是斜坡斜率变缓,转换时间增加。

另一个问题是比较器噪声。单斜率ADC的比较器需要在整个转换过程中保持稳定,任何抖动都会导致转换误差。我见过最离谱的情况是,电源纹波通过比较器耦合到输出,产生周期性噪声。

帧率影响:慢工出细活

单斜率ADC的帧率受限于转换时间。对于16bit分辨率,需要2^16=65536个时钟周期。假设时钟频率100MHz,转换时间约655μs。对于1080P分辨率(1920×1080),一帧读出时间约1080×655μs=707ms,帧率不到1.5fps。

别这样写代码:有些工程师试图通过降低分辨率来提高帧率,比如只读出部分像素。但单斜率ADC的转换时间与像素数量成正比,降低分辨率确实有效,但会损失画质。

两种架构的实战选择

手机/消费电子:列并行ADC是主流

手机sensor追求高帧率(60fps以上)和低功耗,列并行ADC是必然选择。但需要做好列校正和温度补偿。我的经验:在sensor驱动中预留列校正表更新接口,每帧根据温度传感器数据动态调整。

车载/安防:单斜率ADC仍有优势

车载和安防场景对帧率要求不高(30fps足够),但对动态范围和噪声要求苛刻。单斜率ADC配合多斜率技术,可以实现120dB以上的动态范围。注意:多斜率转换需要精确控制斜坡切换点,否则会出现灰度跳变。

工业检测:混合架构是趋势

高端工业相机开始采用混合架构:列并行ADC负责高速读出,单斜率ADC负责高精度转换。通过时分复用,在低分辨率下使用单斜率模式,高分辨率下切换到列并行模式。调试难点:两种模式的切换时序需要精确同步,否则会出现图像撕裂。

个人经验性建议

  1. 别迷信datasheet:sensor厂商给出的ADC性能参数通常是在理想条件下测得的。实际项目中,电源噪声、温度漂移、PCB布局都会影响ADC性能。拿到sensor后,先做噪声基底测试,再谈其他。

  2. 列校正不是万能的:列间FPN可以通过校正消除,但校正表会随时间漂移。建议在sensor初始化时做一次校正,然后在运行过程中每10分钟更新一次。更新频率过高会导致闪烁,过低则校正效果变差。

  3. 关注读出时序:很多噪声问题源于读出时序冲突。比如,列并行ADC的转换时钟与像素复位时钟耦合,会产生串扰。用示波器抓一下读出窗口的时钟抖动,往往能发现问题。

  4. 功耗与性能的平衡:列并行ADC的功耗与帧率成正比。如果项目对功耗敏感(比如手机),考虑在低帧率模式下关闭部分ADC列,或者降低ADC分辨率。别让sensor成为发热大户。

  5. 单斜率ADC的斜坡设计:斜坡的线性度直接影响ADC精度。建议使用分段斜坡:低电压段用慢斜坡(高精度),高电压段用快斜坡(高速度)。这种设计在车载HDR sensor中很常见。

  6. 最后一点,也是最重要的一点:读出电路的问题往往在系统联调时才暴露。不要等到项目后期才关注ADC噪声,在sensor选型阶段就要评估读出架构是否匹配你的应用场景。我见过太多项目因为ADC性能不足而被迫降规格。


这篇文章写于深夜,窗外下着小雨。想起当年那个百叶窗bug,最后发现是sensor驱动中列校正表初始化顺序错误。有时候,最复杂的问题,往往源于最简单的疏忽。希望这些经验能帮你少走弯路。

http://www.jsqmd.com/news/1168462/

相关文章:

  • CSP 202309-2 坐标变换(其二)实战:从几何变换到前缀和代码实现
  • 如何为MatrixCPP编写远程函数:BISHENG_REMOTE宏的完整使用手册
  • 2026 嘉善上门黄金回收实测实录,行情解读与线下门店交易避坑全梳理 - 微城市网络
  • 3_Python高级技巧
  • Unity 相机:正交 (Orthographic) vs 透视 (Perspective)
  • 如何用H5P交互式视频将普通视频变成互动学习神器
  • 基于SpringBoot + Vue工程机械租赁平台
  • MateCloud版本管理:微服务架构下的多版本API兼容性终极指南
  • NVIDIA-Nemotron-3-Nano-30B-A3B-OptiQ-4bit模型架构:128专家稀疏MoE系统解析 [特殊字符]
  • 2026 南京正规靠谱的防水补漏公司有哪些推荐?5 家合规机构盘点 - 徽顺虹
  • 预算智能控制:NVIDIA-Nemotron-Labs-3-Elastic-30B-A3B-NVFP4如何实现思考与回答阶段动态模型切换
  • 002、满阱容量与动态范围:像素阱容设计对高光饱和与低光灵敏度的权衡
  • 上海非国家工作人员受贿罪律师盘点|企业员工受贿、回扣返利辩护 - 法律资讯
  • NodeJS开发者福利:Yaydoc本地部署与调试完整手册
  • GLM-5.2-4bit核心特性解析:从MoE架构到4位量化技术
  • 无货源订单同步怎么选?重点看同步、货源关联、物流回传,抖掌柜全搞定 - 抖掌柜
  • NVIDIA Parakeet-unified-en-0.6b部署攻略:Linux环境下的离线与流式服务搭建步骤
  • CANN Runtime任务模块架构
  • 一文读懂MXFP4量化技术:AMD GLM-5-MXFP4如何平衡速度与精度?
  • 聚焦设计与交付双优:2026年度贵阳八大本土靠谱装修公司综合推荐报告 - 装修新知
  • 绵阳黄金回收哪家靠谱?2026最全避坑问答与各区实时金价指南 - 小城生活闲谈
  • Claude 中转站如何帮助内容团队提效:写作、翻译、选题一体化接入
  • MOSS-Transcribe-Diarize开发者指南:自定义提示词和热词的高级用法
  • Stratum/XMRig 挖矿流量检测实战:基于 Suricata 5.0 的 3 条核心规则与误报优化
  • 公众号可以挂载的投票小程序,文章菜单栏均可接入 - 投票评选活动
  • 基于MA12070与PIC32的高保真音频系统设计
  • 2026筑宅安|湖州阳光房漏水专业修缮,家装商用玻璃顶渗漏、屋面工程一站式根治渗水难题 - 筑宅安
  • 2026武汉思久高级中学招生计划+收费标准|最新官方招生简章 - 湖北升学规划
  • Gemma-4-26B-A4B-it-qat-OptiQ-4bit基准测试:MMLU、GSM8K等6大指标全面评测
  • 为什么选择gh_mirrors/ins/insights?开源商业智能工具的终极对比指南