4、AE参数配置详解(上):曝光时间范围、模拟增益范围、数字增益范围、帧率与曝光时间的关系
自动曝光(AE)是ISP链路中最基础也最关键的模块之一。在海思3519平台上,AE参数配置直接影响画面的亮度、噪声、运动模糊以及帧率稳定性。本章聚焦AE参数配置的上半部分,深入解析曝光时间范围、模拟增益范围、数字增益范围以及帧率与曝光时间之间的约束关系。
4.1 AE参数体系总览
海思3519的AE控制链路遵循“曝光时间 → 模拟增益 → 数字增益”的优先级顺序。当场景亮度不足时,AE首先延长曝光时间;达到曝光时间上限后,再提升模拟增益;模拟增益达到上限后,最后才启用数字增益。这种策略旨在最大化信噪比,避免过早引入数字噪声。
核心原则: 曝光时间优先 → 模拟增益次之 → 数字增益兜底。理解这一优先级是配置AE参数的前提。
4.2 曝光时间范围配置
曝光时间决定了传感器收集光子的时长,是AE调节亮度的首要手段。海思3519通过VI(视频输入)模块的寄存器控制曝光时间,单位为微秒(μs)。
4.2.1 曝光时间上下限
| 参数项 | 典型最小值 | 典型最大值 | 说明 |
|---|---|---|---|
| 曝光时间下限 | 1 / (帧率 × 2) | — | 受传感器行扫描时间限制,通常为1行时间 |
| 曝光时间上限 | — | 1 / 帧率 | 不能超过一个帧周期,否则丢帧 |
| 推荐配置范围 | 100 μs | 33,333 μs (30fps) | 兼顾低光与运动场景 |
注意: 曝光时间上限必须严格小于帧周期。若设置曝光时间等于帧周期,传感器将无法完成读出,导致画面撕裂或帧率下降。建议保留至少一行时间的余量。
4.2.2 曝光时间与行时间的关系
海思3519的曝光时间以行(line)为最小步进单位。每行时间由传感器主时钟和分辨率决定:
// 行时间计算示例(以1920×1080@30fps为例)
// 假设传感器主时钟 74.25 MHz,每行像素总数 2200(含消隐)
行时间 = 2200 / 74.25 MHz ≈ 29.63 μs
最小曝光步进 = 1 行时间 ≈ 29.63 μs
最大曝光行数 = 帧周期 / 行时间 = 33333 μs / 29.63 μs ≈ 1125 行
4.3 模拟增益范围配置
模拟增益在传感器读出阶段对信号进行放大,位于模数转换(ADC)之前。模拟增益每增加一倍(6 dB),信噪比损失约3 dB,但优于数字增益。
4.3.1 模拟增益的典型范围
| 增益等级 | 线性倍数 | dB值 | 适用场景 |
|---|---|---|---|
| 低增益 | 1× ~ 2× | 0 ~ 6 dB | 室外明亮场景 |
| 中增益 | 2× ~ 4× | 6 ~ 12 dB | 室内/阴天 |
| 高增益 | 4× ~ 8× | 12 ~ 18 dB | 低光环境 |
| 极限增益 | 8× ~ 16× | 18 ~ 24 dB | 极暗场景(噪声明显) |
调试建议: 海思3519的模拟增益上限通常设为 16×(24 dB)。超过此值后,建议优先降低帧率或启用数字增益,避免模拟增益过高导致热噪声和固定模式噪声(FPN)恶化。
4.3.2 模拟增益与噪声的权衡
4.4 数字增益范围配置
数字增益在ADC之后对数字信号进行乘法放大。海思3519的数字增益通常以12位或14位精度实现,范围一般为1× ~ 16×(0 ~ 24 dB)。
4.4.1 数字增益的代价
- 量化噪声放大: 数字增益同时放大信号和量化噪声,每6 dB增益导致有效位数损失1 bit。
- 暗部噪声可见: 在低光区域,数字增益会使原本不可见的读出噪声变得明显。
- 动态范围压缩: 数字增益可能导致高光区域提前饱和,压缩整体动态范围。
4.4.2 数字增益与模拟增益的协同
| 增益类型 | 放大位置 | 噪声特性 | 海思3519推荐上限 |
|---|---|---|---|
| 模拟增益 | ADC之前 | 放大信号+传感器噪声,信噪比损失较小 | 16× (24 dB) |
| 数字增益 | ADC之后 | 放大信号+量化噪声,信噪比损失较大 | 4× (12 dB) |
最佳实践: 在海思3519的AE策略中,应尽量让模拟增益先达到上限,再启用数字增益。数字增益超过4×后,建议考虑降低帧率以换取更长的曝光时间,从而避免过度依赖数字放大。
4.5 帧率与曝光时间的关系
帧率决定了每个帧周期的长度,直接约束了最大可用曝光时间。理解这一关系是避免AE配置冲突的关键。
4.5.1 帧周期与曝光时间的数学约束
帧周期 (T_frame) = 1 / 帧率 (fps)
最大曝光时间 ≤ T_frame - T_readout - T_blanking
其中:
T_readout = 传感器读出时间(通常为帧周期的10%~20%)
T_blanking = 垂直消隐时间(通常为帧周期的5%~10%)
4.5.2 不同帧率下的曝光时间上限
| 帧率 (fps) | 帧周期 (μs) | 理论最大曝光 (μs) | 推荐最大曝光 (μs) | 适用场景 |
|---|---|---|---|---|
| 60 | 16,667 | ~14,000 | 13,000 | 高速运动、体育 |
| 30 | 33,333 | ~30,000 | 28,000 | 通用监控、直播 |
| 25 | 40,000 | ~36,000 | 34,000 | 安防、低光 |
| 15 | 66,667 | ~62,000 | 58,000 | 极低光、长曝光 |
4.5.3 帧率与曝光时间的动态权衡
4.6 参数配置综合示例
以下是一个针对海思3519的典型AE参数配置示例,适用于30fps的通用监控场景:
/* AE参数配置结构体示例 */
typedef struct {
uint32_t u32ExposureMin; // 最小曝光时间 (μs),建议 100
uint32_t u32ExposureMax; // 最大曝光时间 (μs),建议 28000
uint32_t u32ExposureDef; // 默认曝光时间 (μs),建议 10000
uint32_t u32AnalogGainMin; // 最小模拟增益 (倍),建议 1.0× (编码为 1024)
uint32_t u32AnalogGainMax; // 最大模拟增益 (倍),建议 16.0× (编码为 16384)
uint32_t u32AnalogGainDef; // 默认模拟增益 (倍),建议 2.0× (编码为 2048)
uint32_t u32DigitalGainMin; // 最小数字增益 (倍),建议 1.0× (编码为 1024)
uint32_t u32DigitalGainMax; // 最大数字增益 (倍),建议 4.0× (编码为 4096)
uint32_t u32DigitalGainDef; // 默认数字增益 (倍),建议 1.0× (编码为 1024)
uint32_t u32FrameRate; // 目标帧率 (fps),建议 30
} AE_PARAM_S;
调试提示: 海思3519的增益编码通常采用Q10格式(1.0× = 1024)。配置时注意增益值必须为整数,且模拟增益和数字增益的步进建议为0.125×(128编码)或0.25×(256编码),以保证AE收敛的平滑性。
4.7 常见问题与避坑指南
- 曝光时间设置过大导致丢帧: 检查帧周期与曝光时间的差值,确保至少保留5%的读出余量。
- 模拟增益与数字增益切换抖动: 在增益切换点附近设置滞回区间(hysteresis),避免AE在边界来回震荡。
- 帧率变化时曝光时间未同步更新: 帧率切换后必须重新计算曝光时间上限,否则可能导致画面闪烁或过曝。
- 数字增益过高导致量化条纹: 数字增益超过8×后,暗部容易出现带状噪声,建议限制在4×以内。