2. 色彩科学基础:CIE 1931色度图、色域、白点与Gamma/PQ/HLG曲线

在HDR显示链路中,色彩科学是连接物理光信号与视觉感知的数学桥梁。本章将系统梳理CIE 1931色度图、三大标准色域(BT.709、DCI-P3、BT.2020)、关键白点(D65、D50)以及光电转换曲线(Gamma、PQ、HLG)的核心概念与工程参数。

2.1 CIE 1931色度图:色彩度量的“世界地图”

CIE 1931色度图是由国际照明委员会(CIE)在1931年基于人眼视觉实验建立的色彩描述模型。它通过三个假想的原色(X、Y、Z)将可见光谱映射到二维平面,其中Y分量同时携带亮度信息。

  • 马蹄形边界:代表单色光谱轨迹(380nm-780nm),是人眼可见颜色的物理极限。
  • 内部区域:所有可能的混合色,饱和度从边界向中心递减。
  • 等温线:连接不同色温点的直线,用于定义白点位置。
工程要点:CIE 1931色度图是色域对比、色彩转换和色差计算的绝对参考系。所有显示设备的色域都只是该马蹄形区域的一个子集。
CIE 1931色度图示意 380nm 780nm 520nm D65 BT.709 DCI-P3 BT.2020 CIE 1931色度图 马蹄形边界:单色光谱 内部:混合色区域 白点:D65 (x=0.3127, y=0.3290)

2.2 三大标准色域:BT.709、DCI-P3、BT.2020

色域是显示设备所能呈现的颜色范围,在CIE 1931色度图上表现为一个三角形(由红、绿、蓝三原色坐标围成)。不同标准针对不同应用场景定义了不同的色域范围。

色域标准 应用场景 红原色 (x, y) 绿原色 (x, y) 蓝原色 (x, y) 白点 覆盖CIE面积
BT.709 HDTV、SDR内容 (0.640, 0.330) (0.300, 0.600) (0.150, 0.060) D65 约35.9%
DCI-P3 数字影院、HDR显示 (0.680, 0.320) (0.265, 0.690) (0.150, 0.060) D65(显示)/ D50(影院) 约45.5%
BT.2020 UHDTV、HDR广播 (0.708, 0.292) (0.170, 0.797) (0.131, 0.046) D65 约75.8%
实战提示:当前HDR内容制作多采用DCI-P3色域(如iPhone、iPad、MacBook Pro的XDR显示屏),而BT.2020是未来UHD广播的目标色域。色彩空间转换时,需注意色域映射算法(如相对色度、感知、饱和度优先)对最终观感的影响。

2.3 白点:D65与D50

白点定义了显示设备在显示“白色”时的色度坐标,是色域三角形的重要参考点。不同白点对应不同的色温,直接影响画面的整体色调。

  • D65(标准照明体D65):色温约6504K,CIE坐标(x=0.3127, y=0.3290)。是HDTV、UHDTV、互联网视频和绝大多数显示设备的标准白点。
  • D50(标准照明体D50):色温约5003K,CIE坐标(x=0.3457, y=0.3585)。常用于印刷、摄影和数字影院(DCI-P3影院标准)。
常见误区:DCI-P3色域在数字影院中使用D50白点,但在消费级HDR显示设备(如电视、显示器)中通常使用D65白点。这意味着同一份DCI-P3内容在不同设备上播放时,需要进行白点转换(色适应),否则画面会偏蓝或偏黄。
D65与D50白点对比 等温线 D65 (0.3127, 0.3290) D50 (0.3457, 0.3585) 色温降低 D65: 6504K (冷白) D50: 5003K (暖白)

2.4 Gamma曲线与PQ/HLG曲线

光电转换函数(OETF/EOTF)决定了数字信号与显示亮度之间的映射关系。SDR时代广泛使用Gamma曲线,而HDR时代则引入了PQ(Perceptual Quantizer)和HLG(Hybrid Log-Gamma)两种核心曲线。

2.4.1 Gamma曲线(SDR)

Gamma曲线源于CRT显示器的物理特性,其数学形式为:L = Vγ,其中L为亮度,V为电压/数字信号,γ通常为2.2(显示端)或2.4(广播端)。

  • 编码Gamma(OETF):约0.45(即1/2.2),用于将场景线性光压缩为非线性信号。
  • 解码Gamma(EOTF):约2.2-2.4,用于将信号还原为显示亮度。
  • 系统Gamma:编码与解码的乘积,通常为1.1-1.2(考虑观看环境)。

2.4.2 PQ曲线(Perceptual Quantizer,ST 2084)

PQ曲线由Dolby提出,后被纳入SMPTE ST 2084标准,是HDR显示的核心EOTF。其设计基于人眼视觉的对比度敏感度函数(CSF),在低亮度区域分配更多码值,高亮度区域分配更少码值,从而实现10,000 cd/m²的亮度范围。

参数 Gamma (SDR) PQ (HDR) HLG (HDR)
峰值亮度 100 cd/m² 10,000 cd/m² 1,000+ cd/m²(可变)
黑电平 0.1 cd/m² 0.005 cd/m² 0.005 cd/m²
位深需求 8-bit 10-12 bit 10-12 bit
兼容SDR — 否(需元数据映射) 是(后向兼容)
主要标准 BT.1886 SMPTE ST 2084 ITU-R BT.2100

2.4.3 HLG曲线(Hybrid Log-Gamma)

HLG由BBC和NHK联合开发,被纳入ITU-R BT.2100标准。其特点是在信号的低半部分使用Gamma曲线(兼容SDR),高半部分使用对数曲线(扩展HDR高光),无需元数据即可在SDR和HDR设备上显示。

工程选择:PQ曲线适合流媒体和本地播放(需要静态/动态元数据),HLG曲线适合直播和广播(无需元数据,天然兼容SDR)。在显示子系统中,PQ需要解析MaxFALL/MaxCLL等元数据,HLG则依赖系统Gamma设置。
Gamma、PQ、HLG曲线对比 数字信号 (0-1) 亮度 (cd/m²) Gamma 2.2 PQ HLG SDR兼容区 曲线特性 Gamma: 幂律,SDR标准 PQ: 感知量化,10K nit HLG: 混合,兼容SDR

2.5 色彩空间转换实战要点

在HDR链路中,色彩空间转换(CSC)是连接不同色域、白点和EOTF的桥梁。以下是一个典型的转换流程:

  1. 解线性化:根据源EOTF(PQ/HLG/Gamma)将非线性信号还原为线性光。
  2. 色域矩阵变换:通过3x3矩阵将源色域(如DCI-P3)转换到目标色域(如BT.2020)。
  3. 白点色适应:使用Bradford或CAT02矩阵将白点从D65转换到D50(或反之)。
  4. 再线性化:根据目标EOTF将线性光重新编码为非线性信号。
  5. 色调映射(可选):当源亮度范围超过目标设备时,需进行色调映射(如从10,000 nit映射到1,000 nit)。
代码示例:BT.709到DCI-P3的色域矩阵转换(Python伪代码)
import numpy as np

# BT.709 to DCI-P3 色域转换矩阵(示例值)
M_709_to_P3 = np.array([
    [0.8225, 0.1775, 0.0000],
    [0.0332, 0.9668, 0.0000],
    [0.0171, 0.0724, 0.9105]
])

def convert_color_space(rgb_709):
    """将BT.709 RGB转换到DCI-P3 RGB"""
    rgb_linear = inverse_gamma(rgb_709)  # 解Gamma
    rgb_p3 = np.dot(M_709_to_P3, rgb_linear)
    return apply_gamma(rgb_p3)  # 重新编码
避坑指南:色彩空间转换必须在线性域中进行。如果在非线性域(如Gamma编码后)直接做矩阵乘法,会导致严重的色相偏移和饱和度失真。始终遵循“解线性化 → 矩阵变换 → 再线性化”的三步原则。