2、色彩科学基础:人眼视觉特性、亮度感知与非线性、Gamma曲线的物理意义
在显示工程中,Gamma 校正并非数学游戏,而是对人眼视觉特性的精确补偿。理解这一基础,是调试龙芯 HDMI 显示输出的前提。
2.1 人眼视觉特性:对数感知与韦伯定律
人眼对亮度的响应并非线性,而是近似对数关系。这一特性最早由韦伯(Weber)和费希纳(Fechner)总结为 韦伯-费希纳定律:人眼能感知的亮度变化比例是恒定的,而非绝对差值。
- 韦伯比:ΔL / L ≈ 常数(在中等亮度范围约为 0.01~0.02)。
- 物理含义:在暗区,人眼对微小亮度变化敏感;在亮区,需要更大的亮度变化才能产生相同的视觉差异。
- 工程影响:若显示系统线性编码,暗部量化步长过大,亮部量化步长过小,导致暗部出现明显色阶(banding),亮部细节浪费。
关键结论:人眼是“非线性传感器”,显示系统必须使用非线性编码来匹配人眼特性。
记忆口诀:人眼看亮度,比例定差异;暗处更敏感,亮处需大力。
2.2 亮度感知与非线性:从物理光到视觉响应
物理世界的亮度(Luminance,单位 cd/m²)与视觉感知的明度(Lightness)之间存在明确的非线性映射。CIE 标准推荐了 L* 函数 作为均匀感知空间:
L* = 116 * (Y/Yn)^(1/3) - 16 (当 Y/Yn > 0.008856)
L* = 903.3 * (Y/Yn) (当 Y/Yn ≤ 0.008856)
其中 Y 为物理亮度,Yn 为参考白亮度。L* 每变化 1 个单位,人眼感知的明度变化大致相等。
| 物理亮度比例 (Y/Yn) | 感知明度 L* | 视觉特性 |
|---|---|---|
| 0.01 (1%) | ≈ 10.0 | 暗部细节敏感 |
| 0.18 (18% 灰) | ≈ 50.0 | 中间调视觉中心 |
| 0.50 (50%) | ≈ 76.0 | 亮部感知压缩 |
| 1.00 (100% 白) | 100.0 | 最大亮度 |
工程陷阱:若直接线性输出物理亮度,人眼在暗部会看到明显的“阶梯”,而在亮部则感觉细节模糊。这就是为什么所有消费级显示设备都必须进行 Gamma 校正。
2.3 Gamma 曲线的物理意义
Gamma 曲线描述了 输入数字信号(编码值) 与 输出物理亮度 之间的幂律关系:
L_out = (V_in / V_max)^γ × L_max
其中:
- V_in:输入电压或数字编码值(0~1 归一化)
- γ (Gamma):幂指数,标准显示系统通常 γ ≈ 2.2
- L_out:输出物理亮度
- L_max:最大亮度
Gamma 曲线的物理意义体现在三个层面:
- 视觉匹配层:γ ≈ 2.2 的曲线恰好补偿人眼的倒数对数响应,使编码值均匀对应感知明度。
- 信号传输层:在模拟时代,CRT 显像管天然具有 γ ≈ 2.5 的响应,预校正(Gamma 校正)使系统整体线性化。
- 量化效率层:非线性分配量化步长,暗部步长小、亮部步长大,最大化 8bit/10bit 编码的视觉利用率。
核心公式:显示系统总 Gamma = 编码 Gamma × 显示设备 Gamma = 1.0(理想线性系统)。
实际中,总 Gamma ≈ 1.1~1.2 更符合观看环境(暗室 vs 亮室)。
实际中,总 Gamma ≈ 1.1~1.2 更符合观看环境(暗室 vs 亮室)。
2.4 标准 Gamma 曲线对比
| 标准 | Gamma 值 | 应用场景 | 特点 |
|---|---|---|---|
| sRGB / BT.709 | ≈ 2.2(分段近似) | PC 显示器、互联网、高清电视 | 暗部线性段避免噪声放大 |
| BT.1886 (Rec.709 显示) | ≈ 2.4 | 专业监视器、广播级 | 暗部更深,对比度更高 |
| DCI-P3 (数字影院) | 2.6 | 数字电影放映 | 适应全黑环境,暗部细节丰富 |
| Apple Display P3 | ≈ 2.2 | 苹果设备 | 与 sRGB Gamma 兼容 |
龙芯调试要点:HDMI 输出默认遵循 BT.709/sRGB Gamma 曲线(γ ≈ 2.2)。若连接专业监视器,需确认是否切换至 BT.1886 曲线,否则画面会偏灰或偏暗。
2.5 人眼视觉与 Gamma 曲线关系图
下图展示了从物理亮度到人眼感知的完整映射链路,以及 Gamma 曲线在其中扮演的“桥梁”角色。
2.6 龙芯 HDMI Gamma 调试中的物理意义
在龙芯平台调试 HDMI 输出时,Gamma 曲线的物理意义直接转化为以下工程参数:
- 查找表(LUT)校正:通过 256 级或 1024 级 LUT 将线性 RGB 数据映射为 Gamma 编码数据。
- 暗部噪声抑制:Gamma 曲线在暗部斜率较大,量化步长小,但也会放大传感器噪声。需在驱动中设置去噪阈值。
- 亮部细节保留:亮部斜率平缓,需确保 ADC/DAC 精度足够,避免亮部细节丢失。
- 色温一致性:Gamma 曲线需与白点校正(D65/D50)联合调试,否则不同亮度下色温会漂移。
调试口诀:
暗部看噪声,亮部看细节;
Gamma 选 2.2,色温 D65;
LUT 分段校,视觉才舒适。
暗部看噪声,亮部看细节;
Gamma 选 2.2,色温 D65;
LUT 分段校,视觉才舒适。
2.7 本章小结
| 概念 | 核心要点 | 对龙芯调试的影响 |
|---|---|---|
| 人眼对数感知 | 亮度感知与物理亮度呈对数关系 | 必须使用非线性编码 |
| Gamma 曲线 | V_out = V_in^γ,γ ≈ 2.2 | HDMI 输出默认遵循 sRGB Gamma |
| 量化效率 | 暗部步长小,亮部步长大 | 8bit 编码即可覆盖人眼分辨极限 |
| 标准选择 | sRGB 2.2 / BT.1886 2.4 / DCI 2.6 | 根据目标显示设备选择对应曲线 |