4. HDR基础概念:SDR与HDR对比、HDR10/HLG/Dolby Vision标准、PQ曲线与色域
在调试高通SA8155平台的Adreno显示驱动之前,必须透彻理解HDR(高动态范围)的核心技术原理。本章从SDR与HDR的对比出发,逐步拆解HDR10、HLG、Dolby Vision三大主流标准,深入分析PQ曲线(ST.2084与HLG OETF)以及BT.2020与BT.709色域的差异。这些概念是驱动工程师配置显示引擎、调试色彩映射和元数据传递的理论基础。
4.1 SDR与HDR对比:亮度、色域与位深
SDR(标准动态范围)基于CRT时代的技术遗产,而HDR则代表了显示技术的代际跃升。下表从关键维度进行对比:
| 对比维度 | SDR (BT.709) | HDR (BT.2020 / PQ) | 驱动关注点 |
|---|---|---|---|
| 峰值亮度 | 100 cd/m² (nit) | 1,000 ~ 10,000 cd/m² | 背光分区控制、ABL策略 |
| 黑电平 | 0.1 ~ 0.5 cd/m² | 0.0005 cd/m² 以下 | 黑位校准、漏光补偿 |
| 色域覆盖 | BT.709 (约35% CIE 1976) | BT.2020 (约75% CIE 1976) | 色彩空间转换、3D LUT |
| 位深 | 8-bit (256灰阶) | 10-bit (1024灰阶) 或12-bit | DSC压缩、FRC抖动 |
| 电光转换函数 | Gamma 2.2 (近似) | PQ (ST.2084) 或 HLG | LUT加载、DeGamma模块 |
| 元数据 | 无 | Static / Dynamic Metadata | InfoFrame注入、EDID解析 |
以下SVG图展示了SDR与HDR在亮度动态范围和色域覆盖上的直观对比:
4.2 三大HDR标准:HDR10、HLG与Dolby Vision
当前车载与消费电子领域主流的HDR标准有三种,它们在元数据、传输曲线和适用场景上存在显著差异。驱动工程师需要根据硬件能力和内容类型选择正确的处理路径。
| 特性 | HDR10 | HLG (Hybrid Log-Gamma) | Dolby Vision |
|---|---|---|---|
| 标准化组织 | CTA-861.3 | ARIB / BBC / NHK | Dolby Laboratories |
| 传输曲线 | PQ (ST.2084) | HLG OETF (混合对数伽马) | PQ (ST.2084) 或自定义 |
| 位深 | 10-bit | 10-bit | 12-bit (可向下兼容10-bit) |
| 元数据 | 静态 (MaxFALL, MaxCLL) | 无 (场景自适应) | 动态 (逐场景/逐帧) |
| 色域 | BT.2020 | BT.2020 (兼容BT.709) | BT.2020 (可扩展) |
| 向后兼容SDR | 否 (需要色调映射) | 是 (原生兼容SDR显示) | 否 (需要专用解码) |
| 车载应用 | 流媒体、蓝光 | 广播电视、直播 | 高端影院、旗舰机型 |
以下SVG图展示了三种HDR标准在信号处理流程中的差异:
4.3 PQ曲线:ST.2084与HLG OETF
电光转换函数(EOTF)是HDR的核心数学基础。SDR使用Gamma 2.2曲线,而HDR引入了两种完全不同的曲线:感知量化(PQ)和混合对数伽马(HLG)。
4.3.1 ST.2084 (PQ) 曲线
PQ曲线由杜比实验室提出,后被SMPTE标准化为ST.2084。其核心设计理念是感知均匀量化——将人眼对亮度的非线性感知映射到均匀的数字码值上。PQ曲线可以编码0.0005到10,000 cd/m²的亮度范围。
PQ曲线的数学表达式(归一化后):
L = ((max(V^(1/m) - c1, 0)) / (c2 - c3 * V^(1/m)))^(1/n)
其中:
V = 归一化信号值 (0 ~ 1)
L = 亮度 (cd/m²)
m = 78.8438
n = 0.1593
c1 = 0.8359
c2 = 18.8516
c3 = 18.6875
4.3.2 HLG OETF 曲线
HLG由BBC和NHK联合开发,专为广播电视设计。与PQ不同,HLG采用混合曲线:在低亮度区域使用Gamma曲线(兼容SDR),在高亮度区域使用对数曲线(扩展动态范围)。HLG不需要元数据,且能直接兼容SDR显示。
HLG OETF的数学表达式:
E' =
if 0 ≤ E ≤ 1/12:
sqrt(3 * E)
else:
a * ln(12 * E - b) + c
其中:
E = 场景光线性亮度 (归一化)
a = 0.17883277
b = 0.28466892
c = 0.55991073
以下SVG图对比了PQ曲线与HLG曲线的形状差异:
4.4 色域:BT.2020 vs BT.709
色域定义了显示设备能够再现的颜色范围。BT.709是SDR的标准色域,而BT.2020是HDR的广色域标准。两者在CIE 1931色度图上的覆盖范围差异巨大。
| 色域标准 | 红原色 (x, y) | 绿原色 (x, y) | 蓝原色 (x, y) | 白点 (x, y) | 覆盖CIE 1976 |
|---|---|---|---|---|---|
| BT.709 | (0.640, 0.330) | (0.300, 0.600) | (0.150, 0.060) | D65 (0.3127, 0.3290) | 约35% |
| BT.2020 | (0.708, 0.292) | (0.170, 0.797) | (0.131, 0.046) | D65 (0.3127, 0.3290) | 约75% |
| DCI-P3 | (0.680, 0.320) | (0.265, 0.690) | (0.150, 0.060) | D65 (0.3127, 0.3290) | 约53% |
以下SVG图展示了BT.709、DCI-P3和BT.2020在CIE 1931色度图上的覆盖范围:
4.5 驱动工程师的HDR调试清单
在SA8155平台上进行HDR显示调试时,以下关键步骤必须逐一验证:
- EDID解析: 读取显示器/面板的HDR静态元数据块(HF-VSDB),确认支持的色域、峰值亮度、最小亮度和SDR白点。
- InfoFrame注入: 在HDMI/DP接口上正确发送HDR Infoframe,包含色原色、白点、MaxFALL和MaxCLL。
- 色彩空间配置: 根据内容色域(BT.2020)和面板色域(BT.2020或DCI-P3)配置CSC矩阵。
- EOTF选择: 根据内容类型(PQ或HLG)选择对应的逆变换LUT,并加载到DPU的DeGamma模块。
- 色调映射: 如果面板峰值亮度低于内容MaxCLL,实现色调映射算法(如Reinhard、ACES或自定义LUT)。
- 背光控制: 配合Local Dimming算法,根据HDR亮度分布动态调整背光分区。
- 验证测试: 使用HDR测试图案(如彩条、灰阶斜坡、峰值亮度窗口)验证亮度、色域和灰阶精度。
- 高光裁剪: 色调映射曲线过陡,导致高亮区域细节丢失。解决方法是降低映射斜率或使用滚降(Roll-off)曲线。
- 色域过饱和: BT.2020内容直接映射到DCI-P3面板时,红色和绿色可能过饱和。需要引入3D LUT进行精确映射。
- 黑位浮起: PQ曲线在低亮度区域对黑电平敏感,面板漏光会导致黑位不纯。需要配合黑位校准和Local Dimming。
- 元数据丢失: 某些播放器或中间件可能不传递HDR元数据,导致驱动无法正确配置显示模式。需要实现元数据回退策略。
以下SVG图总结了HDR调试的整体流程: