023、Dual Conversion Gain的巧妙之处——一个电容如何解决低光和高光不可兼得的矛盾与调参要点

📅 2026/8/11 18:40:26
023、Dual Conversion Gain的巧妙之处——一个电容如何解决低光和高光不可兼得的矛盾与调参要点
023、Dual Conversion Gain的巧妙之处——一个电容如何解决低光和高光不可兼得的矛盾与调参要点从一次“白天过曝、晚上噪点爆炸”的投诉说起去年做一颗车规级前视摄像头客户反馈很直接白天逆光出隧道那一下高光区域直接糊成一片死白晚上城市道路又噪得跟雪花电视似的。我们当时用的是一颗1/1.8英寸、2.9μm像素的背照式CMOS标称动态范围72dB理论上不该这么拉胯。我第一反应是ISP的tone mapping没调好把HDR合并的权重曲线拉了一遍又一遍白天好了点晚上噪点更惨。折腾了两周最后翻datasheet才发现这颗sensor的DCGDual Conversion Gain默认是关掉的——也就是说我一直在单转换增益模式下跟物理极限较劲。这个教训让我重新把DCG的机制从头捋了一遍。今天这篇笔记就把这个“一个电容解决低光和高光矛盾”的经典设计掰开揉碎讲清楚顺便把调参时那些容易踩的坑都标出来。问题根源一个像素里电荷容量和灵敏度天生就是死对头先回到最底层的物理逻辑。一个标准4T像素传输管TX、复位管RST、源跟随器SF、行选择RS里光电二极管把光子转成电子电子积累在FD浮置扩散节点上FD节点的电压变化经过SF缓冲后读出。这里有个核心矛盾FD节点的电荷容量Full Well CapacityFWC和转换增益Conversion GainCG是成反比的。CG的定义是每收集一个电子FD节点电压变化多少微伏公式是CG q / C_FDq是电子电荷C_FD是FD节点的总电容。电容越大能存的电子越多FWC大但每个电子产生的电压变化就小CG低读出噪声在电压域里占比就大低光性能差。电容越小灵敏度高低光好但存不了几个电子就饱和了高光直接溢出。这就是那个“不可兼得”的物理根源。传统单增益设计只能选一头要么做大电容保高光牺牲低光要么做小电容保低光高光全靠外部HDR算法硬拉效果嘛就是我在开头说的那种翻车现场。DCG的巧妙之处一个电容两种活法DCG的思路很直白既然一个电容不够用那就放两个用开关控制要不要把第二个电容并进去。典型结构是在FD节点上并联一个额外的电容C_DCG通过一个控制信号DCG_EN来切换。DCG_EN拉高额外电容并入FD总电容变大CG降低FWC变大——这是高光模式Low CG / High FWC适合白天、强光、高动态场景。DCG_EN拉低额外电容断开FD只剩本征电容CG升高灵敏度拉满——这是低光模式High CG / Low FWC适合夜晚、暗光、低噪声场景。关键点在于这个切换是逐帧甚至逐行进行的不是全局固定。现代sensor支持在帧内切换比如一帧里前几行用高CG读暗部后几行用低CG读亮部然后ISP把两段数据合成一张高动态图像。这就是DCG HDR的基本原理比传统的多帧曝光HDR长短帧合成有个天然优势没有运动伪影。因为长短帧是时间上先后拍的物体一动就出鬼影DCG是同一时刻、同一像素、不同增益下读两次空间和时间完全对齐鬼影问题从根上就没了。这个设计最妙的地方在于它没有增加像素面积没有改变光电二极管的量子效率只是在FD节点上加了一个MOS电容和一根控制线成本几乎为零却把单像素的动态范围硬生生拓宽了20~30dB。这就是“一个电容解决矛盾”的真相——不是消除了矛盾而是让同一个像素在不同时刻选择不同的矛盾侧重点。调参要点不是把DCG打开就完事了很多工程师拿到支持DCG的sensor第一反应是“打开这个功能动态范围就上去了”。实际调起来坑比想象的多。我按踩坑顺序列一下。第一个坑高低CG的切换点切换照度怎么定。DCG不是万能的它只是给了你两个档位但什么时候用哪一档得由你说了算。切换点定高了暗光下还在用低CG模式噪点压不住切换点定低了白天稍微暗一点就切到高CG高光区域直接饱和。我的经验是切换点不要只看环境照度要看实际场景的亮度分布。用直方图统计当暗部像素占比超过30%且亮部像素占比低于10%时切高CG反过来亮部像素占比超过20%时切低CG。这个阈值要留滞回hysteresis比如切高CG在200 lux切回低CG要等到350 lux防止在临界区来回抖动。第二个坑高低CG的增益匹配。DCG切换后CG变了但ISP的模拟增益和数字增益不会自动跟着变。如果你在低CG模式下用了2x模拟增益切到高CG模式后还保持2x那画面亮度会跳变因为高CG本身已经把信号放大了。正确做法是切换时同步调整增益保证切换前后画面亮度连续。具体来说高CG模式的信号强度大约是低CG模式的2~4倍取决于电容比值所以高CG模式下要把模拟增益降下来或者用数字增益补偿。这里有个细节模拟增益降下来后读出噪声会变因为模拟增益对噪声的放大倍数也变了。我一般建议高CG模式下模拟增益不超过1.5x低CG模式下不超过4x超出部分用数字增益补但数字增益会放大量化噪声所以能不用就不用。第三个坑DCG切换的时序。帧内切换DCG时切换动作本身会在FD节点上引入电荷注入导致切换那一行出现亮度条带。解决方法是把切换动作放在行消隐期HBlank里完成并且预留足够的建立时间。有些sensor支持“提前切换”模式就是在前一行的消隐期就把DCG状态设好当前行读出的就是新状态。这个一定要看datasheet的时序图别想当然。我踩过的坑是以为DCG_EN是全局信号结果发现它是逐行生效的导致画面上下半部分亮度不一致查了半天才发现是时序没对齐。第四个坑高低CG的噪声匹配。高CG模式灵敏度高但读出噪声也相对高因为FD节点电容小kT/C噪声变大。低CG模式噪声低但信号也小。两者在合成HDR时如果噪声特性不匹配会在过渡区域出现噪声突变——暗部区域用高CG数据亮部区域用低CG数据中间过渡带如果权重切换太陡噪点会突然变粗或变细肉眼看起来就是一条“噪声分界线”。我的做法是在合成时用软权重soft transition过渡带宽度至少占整个亮度范围的10%~15%并且对高CG数据做轻度降噪比如2D NR强度加10%让两边的噪声颗粒感接近。第五个坑温度对DCG的影响。电容值随温度漂移DCG的比值不是恒定的。低温下电容变大CG降低高光模式FWC增大高温下电容变小CG升高低光模式灵敏度更高。这个漂移量不大但对高精度应用比如医疗影像会有影响。我建议在sensor校准时至少测-20°C、25°C、60°C三组DCG比值存进OTP里运行时根据温度传感器查表补偿。实战案例车规前视摄像头怎么用DCG回到开头那个项目。我把DCG打开后白天逆光场景用低CG模式FWC大高光不饱和晚上用高CG模式灵敏度高噪点压得住。但光打开还不够我做了三件事第一把切换点设在300 lux滞回区间250~400 lux根据直方图动态调整而不是固定照度。因为隧道出口那一下照度从5000 lux瞬间掉到50 lux固定阈值会来不及切换导致前几帧过曝。第二高低CG的增益匹配做成自动联动。sensor驱动里写了一个状态机DCG切换时模拟增益同步调整保证画面亮度跳变小于5%。这个联动不是简单的查表而是根据当前增益值做插值因为不同增益下DCG比值会有微小变化。第三HDR合成时把DCG数据和正常曝光数据分开处理。DCG数据用于高光区域恢复正常曝光数据用于暗部两者在中间亮度区用高斯权重融合。这样既保留了DCG的高动态优势又避免了DCG噪声特性对暗部的影响。最终结果动态范围从72dB提升到95dB标称值客户反馈的白天过曝和晚上噪点问题都解决了。但说实话这个提升不是DCG单独贡献的是DCG 增益联动 HDR合成策略三者配合的结果。DCG只是给了你一个更大的画布怎么画还得看你的手艺。方法论沉淀DCG调参的通用框架从这次实战里我总结了一套DCG调参的通用流程适用于任何支持DCG的sensor第一步摸清sensor的DCG特性。看datasheet里的CG值、FWC值、DCG比值一般标称2x或4x但别全信实测为准。用均匀光源拍灰阶卡分别在高CG和低CG模式下测响应曲线算出实际CG比值和饱和点。第二步定切换策略。根据应用场景决定是全局切换还是帧内切换。全局切换简单适合安防监控这种场景相对固定的帧内切换适合车载、运动相机这种场景变化剧烈的。切换点用直方图统计加滞回。第三步做增益联动。把DCG切换和模拟增益、数字增益做成一个整体控制逻辑保证切换时亮度连续。这里建议用查表插值别用固定公式因为不同sensor的增益响应非线性。第四步调HDR合成。如果用了帧内DCG HDR合成权重是关键。过渡带要宽权重要软噪声要匹配。可以用双边滤波或者引导滤波做权重图但注意计算量。第五步全温度范围验证。DCG的电容漂移、增益漂移、噪声漂移都要测至少三个温度点存校准表。这套流程我后来用在好几个项目上包括一颗医疗内窥镜sensor和一颗工业检测相机都跑通了。核心思想就一句话DCG是硬件给你的自由度怎么用好这个自由度靠的是软件和算法的精细控制。最后说点个人经验DCG这个技术从2000年代初提出到现在已经成了高端sensor的标配。但很多工程师把它当成一个“开关”打开就完事这是最大的误区。DCG的真正价值在于它给了你一个在时间和空间上重新分配动态范围的自由度——你可以让同一个像素在不同时刻以不同灵敏度工作然后通过算法把这些信息融合起来。这个自由度用好了效果远超单纯堆硬件。如果你正在调一颗支持DCG的sensor我的建议是别急着写代码先花一天时间把datasheet里的时序图和电容结构看透然后用示波器实测DCG切换时的FD节点电压波形感受一下那个电容的“呼吸”。理解了物理本质调参就是水到渠成的事。另外DCG不是万能的。它解决的是单像素的动态范围问题但整个系统的动态范围还受限于ADC位数、ISP处理位宽、显示设备对比度。别指望DCG一开所有高动态场景都搞定。该做多帧合成的还是得做该上HDR的还得上DCG只是工具箱里多了一把好用的扳手不是万能钥匙。最后留个思考题如果让你设计一颗支持三档DCG的sensor高/中/低三档CG你会怎么分配电容比值切换策略会比两档复杂多少想清楚这个问题你对DCG的理解就真正到位了。