【Tunning】ISO GAIN值 EV(exposure value)三者关系

一、ISO / Gain / EV 基本定义

参数 含义说明
Gain 图像传感器对光信号的放大倍数(模拟或数字),直接作用于原始信号,影响图像亮度和噪声水平
ISO 是 Gain 的用户抽象表现,代表感光度,值越高图像越亮,噪点越多
EV 曝光值(Exposure Value),衡量整体曝光亮度的单位,结合 ISO 和曝光时间共同决定图像亮度

二、数学公式与计算示例

1. ISO 与 Gain 的关系

多数平台采用近似线性关系: 但是有的平台不是 比如 高通和sony!!!

ISO ≈ Gain × BaseISO

示例:

  • BaseISO = 100
  • Gain = 2x → ISO = 2 × 100 = 200
  • Gain = 4x → ISO = 400

2. EV 的基本公式(简化)

当光圈固定时:

EV = log₂(曝光时间 × ISO / 标准值)
  • 曝光时间:单位秒
  • ISO:感光度
  • 标准值通常设为 100,仅作归一化参考

示例:

  • 曝光时间 = 1/50 秒(=0.02 秒)
  • ISO = 400
  • EV = log₂(0.02 × 400) = log₂(8) ≈ 3

三、Python 伪代码及逐行解释

import math

# 计算 ISO 值:Gain 是底层输入,BaseISO 是平台给出的基础 ISO,一般为 100
def calc_iso(gain, base_iso=100):
    return gain * base_iso

# 计算 EV 值:根据曝光时间(单位:ms)和 ISO,估算图像亮度的指数级值
def calc_ev(exposure_time_ms, iso):
    exp_time_s = exposure_time_ms / 1000.0  # 将曝光时间从毫秒转换为秒
    return math.log2(exp_time_s * iso)      # 计算 EV = log₂(曝光量)

# 示例输入值
gain = 2.0                     # 2 倍模拟/数字增益
exposure_time = 20            # 曝光时间为 20ms
base_iso = 100                # 假设基础 ISO 是 100

iso = calc_iso(gain, base_iso)      # 计算对应的 ISO:2.0 × 100 = 200
ev = calc_ev(exposure_time, iso)    # 计算 EV:log₂(0.02 × 200) = log₂(4) = 2.0

# 打印结果
print(f"Gain: {gain}x, ISO: {iso}, EV: {ev:.2f}")

代码解释总结:

  • 函数 calc_iso() 用于将传感器增益值转换为实际 ISO 值。
  • 函数 calc_ev() 用于根据曝光时间和 ISO 估算图像的亮度等级。
  • EV 值越大,图像越亮;但同时也要关注噪声与过曝问题。

四、ISO / Gain / EV 在影像调试与测试中的实际作用

场景 / 功能模块 参数判定作用 举例说明
AE 自动曝光调试 EV 决定目标曝光水平,Gain/ISO 决定增益调节方式 设定 EV_target = 10,系统自动选择适合的 Gain/ISO
图像质量对比分析 固定 ISO 对比不同曝光,或固定 EV 观察增益影响 测试图像噪声与细节随 ISO 增加而变化
平台硬件配置校准 Gain 与 ISO 的映射关系用于校准算法线性 检查 log 输出 Gain 与实际 ISO 是否匹配
RAW 数据一致性验证 通过比对 EV 确认不同拍摄条件下是否一致曝光 用相同 EV 设置拍摄不同模组图像,进行图像亮度对比

五、平台输出与应用对比表

平台 ISO / Gain 设置方式 EV 应用点 参数输出方式 特殊说明
MTK Sensor HAL 或 AE 模块控制 Gain AE 算法中用于亮度目标判断 AE debug log、ISP meta 信息 Gain 通常以 1024 为 1x
高通 sensor_lib / chromatix 文件配置 AEC 模块控制 EV 曲线 QXDM 工具、logcat 输出 区分 analog / digital gain
海思 VI ISP 驱动 + sensor I2C 配置 AE engine 控制目标曝光值 raw_tool 工具输出、debug log 常用于安防,EV 目标更加保守

六、总结关键点

  • Gain 是硬件级别调节,越高亮度越高,但噪声也增加
  • ISO 是 Gain 的表现形式,方便软件系统理解和控制
  • EV 是曝光“总评分”,用于判断图像整体是否曝光正确

调试中可以:

  • 固定 ISO,调节曝光时间,验证曝光对图像的影响
  • 固定 EV,在不同模组或平台下采集图像,分析一致性
  • 对比不同 gain/EV 设置下的噪声、曝光、色彩一致性

这是一个非常专业的问题,涉及到不同平台对 Gain 与 ISO 的映射方式。虽然大多数平台采用了近似的线性关系(ISO ≈ Gain × BaseISO),但也有部分平台或特定模式下使用的是非线性或分段线性映射。以下是相关平台的差异说明:


一、使用非线性或混合映射的主流平台(或情况)

平台 / 模块 特点描述
高通 Qualcomm 在 AEC(自动曝光控制)中使用了 LUT(查找表)进行 Gain→ISO 映射,可能是分段线性或插值,特别是在 HDR 模式下
索尼传感器 ISP(自带 ISP 的 IMX 系列) Analog Gain 和 Digital Gain 是分开的,ISO 计算中存在非线性转换关系
海思 Hisilicon 在低照度模式下对 Gain 做了动态拉伸处理(例如增强低亮图),导致 ISO 与 Gain 映射出现非线性
某些 MTK 平台(低端平台或特定模式) 在 YUV pipeline 或 Tuning Tool 中 Gain → ISO 的显示存在差值压缩,不是简单乘法
AR/VR 平台(Google/Meta 定制) 为了画质稳定和时序控制,有些平台在 ISO 报告时进行了“曲线拟合”或曲线压缩

二、非线性映射背后的原因

  1. 兼容不同 sensor 的增益范围与线性区间(有些 sensor 在高增益时信号不再线性)
  2. 便于 AE 曲线拟合,提升动态曝光响应
  3. 通过 LUT 控制图像亮度的渐进性,提升画质体验
  4. 在 HDR、多帧合成场景中进行特殊处理(如 TetraCell、Quad Bayer 模式)

三、实际调试中的判断方式

判断某平台是否采用非线性 ISO 映射方法,可以通过以下方式识别:

方法 说明
查 AEC/AWB 的 log 输出 比较 log 中 Gain 与 ISO 的比例是否恒定
拍摄固定 EV 的图像对比 如果在不同 Gain 下图像亮度跳变异常,可能存在非线性
查 chromatix 或 tuning 文件 高通平台可直接看到 gain-to-iso LUT 表配置
sensor datasheet 查询 部分高端 sensor 明确列出 ISO/Gain curve

四、建议使用策略

  1. 算法中不要强依赖线性换算关系,尽量使用平台输出的实际 ISO。
  2. 若做跨平台图像一致性比对,建议以 EV 值作为统一标准,而非单看 ISO 或 Gain。
  3. 在 HDR 场景中,务必检查 sensor analog gain 与 digital gain 的分配方式,以免误解曝光量。

你可能感兴趣的:(camera,tunning,计算机视觉,算法,人工智能)