4. 长帧与短帧配置

宽动态(WDR)的核心,说白了就是让暗处看得清、亮处不过曝。这背后全靠长帧和短帧的配合。长帧负责把暗部细节捞起来,短帧负责把高光区域压住。两者合成一帧,才能得到我们想要的宽动态图像。

我刚开始调宽动态的时候,总觉得曝光时间越长越好,结果暗部是亮了,但运动物体拖影严重,客户直接投诉。后来才明白——长帧和短帧的配置,不是拍脑袋定的,得按场景来算。

曝光时间设定原则

长帧和短帧的曝光时间,不是随便给的。它们之间有一个核心约束:短帧曝光时间 × 增益比 ≤ 长帧曝光时间。这个不等式一旦被打破,合成后的图像就会出现亮度断层。

我个人习惯先定长帧,再算短帧。长帧的曝光时间,通常取当前场景下不产生明显运动模糊的最大值。比如室内监控,人走动速度不快,长帧可以放到 8ms~12ms;如果是路口抓拍,长帧超过 4ms 就会糊。

短帧的曝光时间,则取决于场景的动态范围。动态范围越大,短帧需要越短。我遇到过最极端的场景——一个地下车库出口,外面是大太阳,里面漆黑一片。那时候短帧我压到了 0.1ms,长帧放到 16ms,才勉强把车牌和内部细节都保住。

核心原则:长帧负责暗部,短帧负责亮部。两者曝光时间比值,决定了宽动态的合成能力。比值越大,动态范围越宽,但运动伪影也越严重。

增益匹配策略

曝光时间定了,增益怎么配?这里有个坑——很多人以为长帧和短帧用同样的增益就行。其实不对。

长帧曝光时间长,暗部信号已经积累得比较充分,增益可以低一些,甚至用 0dB。短帧曝光时间短,亮部信号虽然强,但为了和长帧的亮度水平匹配,往往需要额外加增益。

我常用的匹配策略是这样的:

  • 长帧增益:尽量低,0dB~6dB 之间。如果暗部噪声明显,可以适当提高,但不要超过 12dB,否则噪声会被放大到不可接受。
  • 短帧增益:根据长帧曝光时间与短帧曝光时间的比值来算。比如长帧 8ms、短帧 1ms,比值是 8 倍,那么短帧增益需要比长帧高约 18dB(20×log10(8) ≈ 18dB)。
  • 最终微调:算出来的增益值只是起点。实际还要看合成后的图像亮度是否均匀。我一般会在合成后取暗部和亮部的平均亮度,如果差距超过 10%,就微调短帧增益。
注意:增益不是越高越好。短帧增益过高,会把短帧自身的噪声也放大,合成后亮部区域会出现颗粒感。我曾经在一个仓库项目中,短帧增益拉到 24dB,结果亮部全是噪点,被客户退了三次货。

帧率与宽动态的权衡

帧率和宽动态,天生是一对矛盾。宽动态需要长帧和短帧两帧合成一帧,这本身就比普通模式多占一帧的时间。如果你还要保持高帧率,那就得压缩每帧的曝光时间。

举个例子:你要跑 30fps,每帧可用时间只有 33ms。宽动态模式下,长帧+短帧的总曝光时间不能超过这个值。如果你长帧放 20ms、短帧放 10ms,那还剩 3ms 给读出和合成,勉强够用。但如果你要跑 60fps,每帧只剩 16ms,长帧和短帧都得压缩,宽动态效果就会大打折扣。

我一般这样权衡:

  • 室内场景:运动少,帧率可以降到 15fps~20fps,把更多时间留给长帧,宽动态效果最好。
  • 室外场景:运动多,帧率至少 25fps,长帧不能超过 12ms,短帧控制在 2ms 以内。
  • 交通抓拍:帧率 30fps 是底线,但长帧只能给 4ms~6ms,短帧 0.5ms~1ms,宽动态主要靠传感器本身的 HDR 能力。
我的经验:如果场景对帧率要求高,可以尝试“短帧优先”策略——先保证短帧足够短,把高光压住,长帧再尽量往长了放。这样虽然暗部可能不够亮,但至少不会出现大面积过曝。

典型场景参数模板

下面是我整理的一些典型场景参数模板。这些值不是死的,但可以作为调优的起点。你拿到一个新场景,先套用模板,再根据实际效果微调,能省不少时间。

场景类型 长帧曝光 短帧曝光 长帧增益 短帧增益 目标帧率
室内办公室 10ms~16ms 1ms~2ms 0dB~3dB 12dB~18dB 15fps~20fps
地下车库出入口 12ms~20ms 0.1ms~0.5ms 3dB~6dB 18dB~24dB 15fps
室外道路监控 4ms~8ms 0.5ms~1ms 0dB~3dB 12dB~16dB 25fps~30fps
交通抓拍 2ms~4ms 0.2ms~0.5ms 0dB 12dB~20dB 30fps
商场入口 8ms~12ms 1ms~2ms 3dB~6dB 12dB~18dB 20fps~25fps

你可能会问:这些参数怎么来的?其实都是算出来的。以地下车库出入口为例,动态范围通常超过 100dB,长帧和短帧的曝光时间比值需要达到 100 倍以上。长帧 16ms、短帧 0.16ms,比值正好 100 倍。增益方面,短帧需要比长帧高 40dB(20×log10(100) = 40dB),但实际传感器增益上限通常只有 24dB,所以剩下的 16dB 要靠数字增益补。嗯,这里要注意——数字增益会放大噪声,所以能不用尽量不用。

长帧与短帧配置决策流程 场景分析 确定动态范围需求 长帧曝光时间 暗部细节 + 运动模糊上限 短帧曝光时间 高光压制 + 动态范围比值 增益匹配计算 帧率与宽动态权衡 参数模板输出

这张图是我自己画的长帧短帧配置流程。你从场景分析开始,先确定动态范围需求,然后分别定长帧和短帧的曝光时间,接着算增益匹配,最后根据帧率要求做权衡。每一步都有明确的输入和输出,不会跑偏。

最后说一句:参数模板只是起点。每个场景的光线条件、运动特性、传感器型号都不一样。我建议你拿到一个新项目,先按模板跑一遍,然后用示波器看合成后的亮度直方图——如果暗部和亮部之间有明显断层,说明长帧和短帧的亮度没对齐,需要微调增益或曝光时间。嗯,调多了就有感觉了。