本文所讨论的 Global Tone Curve,特指一种 rendering transform:它把 scene-referred 信号重构成具有明确观看意图的影调关系,决定主体位于什么亮度位置、不同亮度区间获得多少对比度,以及暗部和高光如何进入目标显示范围。
它不同于另外两类常被统称为“曲线”的处理:
- HDR-to-SDR tone mapping operator(TMO) 面向已经形成的 HDR rendition,将其压缩或重映射到 SDR 的显示能力;
- OETF/EOTF 描述场景光、信号值与显示光之间的传递关系,解决信号如何编码或还原,而不独立定义内容的观看意图。
这三类处理都可能表现为非线性映射,也可能在最终链路中组合出现,但它们解决的问题、工作的信号域和设计目标并不相同。除非特别说明,下文中的 tone curve 均指第一种面向 scene-referred 信号的全局影调重构。
同一份场景信息,为什么在 SDR 中层次自然,到了 HDR 中却可能显得平淡?为什么 HDR 的高光看起来合理,经下映射得到的 SDR 却可能主体偏暗?反过来,如果分别为 SDR 和 HDR 调整影调,又怎样避免两个版本看起来像两次不同的拍摄?
这些问题表面上是在调整亮度,背后却指向同一个问题:如何把场景中的动态范围分配给目标显示系统,并保持预期的观看意图。
我最初会把它理解为“两条 curve 应该尽量接近”,尤其希望 SDR 和 HDR 的暗部映射保持一致。但继续往下看会发现,直接比较两条曲线并不充分:它们面对不同的输出范围,HDR 还可能继续经过 HDR-to-SDR mapping。真正需要接近的,是两条完整路径最终产生的观看结果。
这也是我想在本文中讨论的核心判断:
SDR 与 HDR 的一致性属于完整的 rendering path,而不只是属于某一条 tone curve。
本文只讨论通用的数字成像问题。所有流程、曲线和数值均为抽象或合成示意,不对应任何具体产品、项目或量产参数。
1. Tone curve 到底在做什么?
相机记录的是经过曝光、传感器响应和前级处理后的场景信息,显示设备呈现的则是处于有限亮度范围和特定观看环境中的图像。二者并不是天然的一一对应关系。
可以把这条路径抽象成:
scene-referred signal
↓
rendering / global tone curve
↓
display-referred linear light
↓
output encoding(BT.709、PQ、HLG 等)
如果以输入亮度或曝光量为横轴、目标显示亮度为纵轴,那么 tone curve 决定了每一段场景动态范围能够获得多少输出对比度。通常可以从三个区域理解它:
- Toe:决定黑位附近的压缩、暗部细节可见性,以及噪声会被暴露到什么程度;
- Mid-tone:决定主体亮度、曝光感和图像中最主要的对比关系;
- Shoulder:决定高光从何处开始压缩、如何过渡到输出峰值,以及高光是否具有自然的 roll-off。
曲线的局部斜率同样重要。斜率越大,意味着对应输入区间获得的输出对比度越多;但显示动态范围是有限的,一个区域获得更多对比度,通常意味着另一个区域需要被压缩。因此,tone curve 并不只是“提亮”或“压暗”,而是在不同亮度区间之间分配有限的对比度预算。
摄影式 tone reproduction 很早就把这种映射理解为对场景 key、主体和高光空间的共同安排。Reinhard 等人的经典工作借鉴 Zone System,将场景亮度映射为可显示的结果,也直观展示了 global operator 如何在保持整体观感的同时压缩动态范围。Reinhard et al., 2002
再强调一次这里的边界:给线性数据套上一条 gamma 并不等于完成 tone rendering。BT.709 的源端传递特性和 BT.1886 的参考显示 EOTF 约束了信号如何编码和显示,却不会替我们决定主体位置、toe、shoulder 或高光裁剪策略。ITU-R BT.709;ITU-R BT.1886
图 1:示意曲线仅用于说明对比度预算,不代表任何实际产品参数。
2. 传统 SDR 中如何构建影调?
在传统 SDR 流程中,最终可用的显示亮度范围相对有限。ISP 需要把传感器捕获的场景范围压缩到这一输出空间,同时维持可接受的主体亮度、暗部层次和高光过渡。
一个便于讨论的抽象流程是:
RAW / linear scene signal
↓
exposure normalization and black-level handling
↓
global tone rendering
↓
colour rendering and output encoding
↓
SDR display
这不是在规定唯一的模块顺序。实际 ISP 中,颜色处理、局部对比度和 global tone mapping 可能交错发生;这里仅用于隔离 tone curve 所承担的问题。
2.1 传统 S-curve 是一种取舍,不是一种默认答案
在我过去的理解里,一条“好看”的 tone curve 往往带有电影化倾向:把最多的对比度留给主体所在的中间调,用 toe 收拢暗部,再用 shoulder 压缩高光。最终得到的通常是一条 S-curve。它不会把传感器记录到的每一级亮度都等量展示出来,却能让主体更集中、黑位更扎实、高光过渡更有控制,整幅图也因此获得更强的视觉对比。
问题在于,另一个同样合理的目标几乎与它反向而行:我们又希望用户看见更多暗部和高光层次,希望输入中存在的信息不要过早消失。抬高 toe 能让阴影更可见,却也会暴露噪声和黑电平残差;减弱 shoulder 能保留更多高光差异,却会挤压主体可用的中间调空间。所谓“电影感”和“细节丰富”并不总能同时最大化。
这也是我现在更愿意先确定影调锚点,而不是先选择函数形式的原因:黑位附近哪些信息可以放弃,主体应该落在哪里,diffuse white 需要保留多少层次,又从哪里开始接受高光压缩?分段幂函数、样条或参数化 S-curve 只是实现这些决定的工具。数学上平滑的曲线,不一定具有清楚的观看意图。
2.2 风格化输出与可编辑空间不是同一件事
一种值得借鉴的思路来自相机:默认 rendition 可以带有明确风格,同时尽可能为摄影师保留继续编辑的空间。但这里必须区分两个目标——让最终图像看起来层次很多,与让上游数据仍有恢复和重构的余地,并不是一回事。
相机能够同时提供有风格的 JPEG/HEIF 和更可编辑的 RAW,是因为它没有要求同一个已经渲染完成的输出兼顾所有目标。一旦细节在 display-referred、有限位深的结果中被强压缩或裁剪,后续编辑并不能凭空把它恢复出来。因此,对 ISP 来说,更现实的问题不是寻找一条“既强对比又保留一切”的万能曲线,而是明确:哪些风格应该烘焙进默认观看版本,哪些 scene information 需要在进入这条曲线之前得到保护。
2.3 中间调为什么值得获得最多空间
用户对画面偏亮、偏暗以及主体是否突出,往往主要由中间调而不是峰值决定。中间调斜率控制主体附近能得到多少对比度;斜率太低,画面容易显得灰和平,斜率太高,又会让过渡生硬,并迫使 toe 和 shoulder 承担更强的压缩。
这使传统 SDR 的设计变成一种很具体的预算分配:主体多获得一部分空间,暗部或高光就必须让出一部分空间。Toe、mid-tone 和 shoulder 不是三个可以独立调到最优的区域,它们共同分享同一段有限的输出范围。
这也意味着,单靠全局直方图很难决定一条真正合理的曲线。直方图能告诉我们像素集中在哪些亮度区间,却不知道哪些像素属于主体:一小块人脸和一大片天空可能占据完全不同的统计权重,但前者对观看意图未必更不重要。场景自适应可以改变 curve,却不能把“像素更多”直接等同于“应该获得更多对比度”。
这里也说明了为什么 tone curve 不能完全脱离色彩处理讨论:即使只对亮度定义一条单调曲线,RGB 通道裁剪、亮度与色度的耦合以及 gamut mapping 仍可能改变最终观感。不过,本文先把重点限制在全局影调关系上。
3. 从 SDR 走向 HDR:约束发生了什么变化?
HDR 扩大了可用显示亮度和编码范围,但它没有取消 tone rendering。更大的输出范围带来的是新的分配空间,而不是“让输入线性通过”。ITU-R BT.2100 定义了 PQ 和 HLG HDR-TV 系统的信号参数;关于实际制作、显示映射与观看环境,还需要结合 ITU-R BT.2390 理解。
3.1 有标准的 HDR,与没有标准答案的 HDR rendering
说“HDR 没有明确的定义”并不准确。PQ、HLG、参考观看条件和 HDR reference white 都有相应标准。真正没有唯一答案的是:一张具体照片应该怎样使用 reference white 以上的空间,以及多少亮度应该留给普通表面、多少留给镜面反射和发光物。
Apple 将 headroom 定义为显示峰值与 SDR/reference white 的比值;它既可以写成倍数,也可以写成 stops。1 stop 表示 2×,2 stops 表示 4×。Apple 对 headroom 的说明 以 203 nit 作为 ISO HDR 的默认 reference white,因此 4× headroom 对应的峰值约为 812 nit;如果峰值是 1 015 nit,则约为 5×,也就是 2.32 stops。这里的峰值不应再被称为另一个“白点”,更合适的说法是 reference white 以上可用的 content/display headroom。
Lightroom 的 HDR 直方图也以 SDR white 为分界,并按每 1 stop 标记更高的 HDR 区域。Adobe 给出的实践经验不是要求每张照片都用满 headroom,而是先尝试把最亮的高光控制在约 2 stops,只有面积较小、确实需要强调的高光才可能继续向上延伸。Adobe, High Dynamic Range—Explained
3.2 HDR 增加了高光空间,却没有自动解决整体亮度
自然图像中,reference white 以上的像素往往只占画面的一小部分,而主体和大部分表面仍位于它以下。即使少量高光能够达到很高的峰值,它们也未必能提高整幅图的平均亮度;反过来,如果为了利用 HDR 而让这些点主导 curve 或自动曝光判断,主体亮度和整体曝光感反而可能被拉偏。
这解释了一个容易忽略的事实:峰值定义了图像“最高可以到哪里”,却不决定大部分图像“应该待在哪里”。SDR 主要在有限范围内争夺对比度预算;HDR 虽然放宽了高光上限,仍然需要决定中间调、diffuse region 与高光之间的相对位置。不同峰值的显示器还可能执行额外 display mapping,观看环境和画面内的高亮区域也会改变人眼对暗部与整体亮度的判断。
3.3 一个尚未完全解释的观察:为什么 203 nit 有时显得偏暗?
在一些实验中,我观察到:如果把原本与 203 nit reference white 对齐的 scene anchor 提高到约 350 nit,画面的整体亮度有时反而显得更自然。这个变化相当于把锚点提高约 0.79 stop,同时把 1 000 nit 峰值下剩余的相对 headroom 从约 4.93×缩小到约 2.86×。
我还不能把它归结为一条普遍规律。可能的原因至少包括:203 nit 是 reference/diffuse-white anchor,而不是图像平均亮度;大部分像素低于这一锚点,少量高光不足以支撑整体明亮感;实际观看环境、显示器的 reference white、系统 tone mapping 和观察者适应状态也会改变结果。Apple 的 EDR headroom 本身也会随显示亮度和环境变化,而不是一个始终固定的显示能力。Apple EDR
因此,这个现象目前更适合作为一个待验证的问题:我们感受到的“正常亮度”,究竟主要由 nominal reference white 决定,还是由中间调位置、画面平均亮度、高光面积和观看环境共同决定?在给出答案前,还需要固定显示状态,用不同场景和锚点做更系统的主观比较。
HDR tone curve 因而不应被理解为 SDR curve 的简单纵向拉伸。两者可以共享场景锚点和整体意图,但必须面对不同的输出边界。一旦系统还要同时交付 SDR,问题也就从“怎样画一条 HDR curve”转变成“怎样维护两条输出路径之间的关系”。
4. 两种架构,真正要比较的是两条路径
当前 ISP 中可以抽象出两种常见做法。第一种以 HDR rendition 为主版本,再经过 down-mapping 得到 SDR:
scene x → HDR rendering R_H(x) → HDR-to-SDR mapping M(·) → SDR
第二种从同一份 scene representation 分别构建 HDR 和 SDR:
scene x → HDR rendering R_H(x) → HDR
↘ SDR rendering R_S(x) → SDR
前一种方式把主要影调决策集中在 HDR 路径中,SDR 更容易继承同一个版本意图;但如果 HDR rendering 已经压缩、裁剪或重排了某些层次,后续 down-mapping 未必能够恢复最适合 SDR 的关系。后一种方式给了 SDR 更大的独立优化空间,却也给了两个版本更多彼此漂移的自由度。
ITU-R BT.2408 对 single-master、下映射和 SDR/HDR 匹配给出了制作层面的讨论;BT.2446 则把 HDR/SDR 转换中的 tone mapping、颜色体积压缩和输出 EOTF 分开描述。这也提醒我们:问题不能只按“有几条 curve”分类,还要看映射发生在哪个 signal domain、前面已经丢失了什么信息。ITU-R BT.2408;ITU-R BT.2446
图 2:路径一致性的比较对象是 M(R_H(x)) 与 R_S(x),而不是不同输出域中的两条原始曲线。
4.1 从 curve consistency 改成 path consistency
如果只要求 HDR curve 与 SDR curve 在暗部数值接近,实际上漏掉了 HDR-to-SDR mapping 对最终结果的影响。更合适的目标可以写成:
M(R_H(x)) ≈ R_S(x)
左侧是“先形成 HDR,再下映射到 SDR”的结果;右侧是“直接从 scene 构建 SDR”的结果。两者需要先被放到可比较的显示或感知域中,而不是直接比较 PQ code value、gamma-encoded SDR value 或两个未对齐单位的线性数值。
这并不意味着两个结果必须逐像素相等。真正希望稳定的是亮度排序、主体位置、关键层次和整体曝光语义。如果这些关系一致,即使两条曲线在不同输出域中长得并不相同,它们仍然可以属于同一个 rendition family。反过来,两条曲线即使共享几个控制点,只要控制点附近的局部斜率不同,主体周围的对比度和影调质感仍然会发生变化。
我因此更倾向于把一致性理解成三个连续的问题:锚点决定“落在哪里”,局部斜率决定“附近怎样展开”,完整路径决定“最终看起来是否仍是同一个版本”。
5. 共享阈值:哪些地方应稳定,哪些地方可以分化?
路径一致性仍然需要一个边界:输入 scene range 中,哪一部分属于 SDR 与 HDR 的共同表达区,哪一部分开始使用 HDR 额外的 headroom?可以在共同的 scene-referred exposure 域中定义一个共享阈值 x_t。
在 x_t 以下,目标不是把两条曲线锁死,而是稳定黑位、暗部结构、主体位置和中间调斜率。这里承载的是两个版本共有的观看意图,过大的变化会让 SDR 与 HDR 看起来像两次不同的曝光。
在 x_t 以上,两条路径开始有理由分化。SDR 的输出上限更低,需要更早进入 shoulder,把更多输入范围压缩进有限的高光空间;HDR 则可以继续展开 diffuse white 以上的层次,把额外亮度留给镜面反射、天空或发光物。
图 3:共享阈值定义在共同输入域中。图中的 1× reference white 和 5× headroom 仅为解释关系的示意。
这个阈值不能被做成一个生硬开关。即使两条映射在 x_t 处具有相同输出值,如果局部斜率突然改变,图像中仍会出现可见的对比度断层。因而至少要同时检查 value continuity 与 slope continuity;如果曲线还会随场景统计动态变化,则时间上的连续性同样重要。
这也修正了“多少值以下不可变动”这个表述。更准确地说,阈值以下是高一致性约束区,而不是绝对不可变区。显示黑位、环境光和噪声水平仍可能要求适当补偿,只是这些补偿不应破坏两个版本共同的主体与影调结构。
6. 从原则走到一条可控的曲线
前面讨论的是设计目标,但真正落到实现时,还需要把“主体优先”“高光平滑”这类描述变成可以调节和验证的参数。对我来说,一个比较清楚的起点不是直接拟合整条曲线,而是先统一输入输出域,再确定锚点和锚点附近的斜率。
6.1 先把曲线放在合适的坐标系里
Scene-referred 信号往往跨越多个数量级,直接在线性横轴上调曲线会让暗部挤在很小的范围内。更自然的做法,是把输入亮度转换为相对某个 scene anchor 的曝光量:
u = log2(max(Y_scene, ε) / Y_anchor)
这里的 u 表示相对曝光 stops,不是 nit。Y_anchor 只负责建立 scene-referred 坐标,不能因为后面要输出 HDR 就把输入数值直接解释成显示亮度。
输出侧则可以使用 display-linear luminance,或者相对 reference white 的倍数:
v = L_display / L_reference-white
Tone curve 负责从 u 到 v 的 rendering;PQ、HLG 或 SDR 编码放在它之后。这样做的好处是,曲线形状、显示亮度和输出编码不会在讨论中混成同一个变量。
6.2 用锚点定义意图,用斜率定义质感
一条曲线至少需要描述几个有意义的位置:接近黑位的输入、暗部主体、中间调主体、diffuse white,以及能够进入最高亮度区域的高光。锚点回答“这一类内容应该落在哪里”,局部斜率则回答“它附近的层次应该怎样展开”。
如果只固定锚点,曲线仍可能在锚点之间出现不自然的对比度变化;如果只控制整体斜率,又可能让主体或 diffuse white 漂移。因此,一个可控的参数集合通常同时包含:
- 输入与输出黑位,以及 toe 开始和结束的位置;
- 中间调锚点及其局部斜率;
- shoulder 的起点、压缩强度和输出峰值;
- 相邻分段在连接处的连续性条件。
具体采用单调样条、分段多项式、sigmoid 还是带渐近线的有理函数,并不是最先要决定的事。只要函数能够满足单调性、端点和斜率约束,就可以作为实现工具。相反,如果参数没有明确对应观看意图,再灵活的函数也只会增加调节自由度。
最基本的数学约束包括:
dR(u) / du ≥ 0 保持亮度排序
R_i(u_join) = R_{i+1}(u_join) 输出值连续
R'_i(u_join) = R'_{i+1}(u_join) 局部斜率连续
第一条避免亮度反转;后两条避免在分段连接处产生可见断点。实际使用中还需要限制最大和最小斜率,防止某个窄区间获得过强对比,或被压缩到几乎没有层次。
6.3 联合构建 SDR 与 HDR,而不是独立画完再对齐
如果 SDR 与 HDR 要共享 x_t 以下的观看意图,可以先定义一条共同的基础映射 B(u),再在阈值以上平滑过渡到各自的 shoulder:
R_S(u) = (1 - w(u)) B(u) + w(u) S(u)
R_H(u) = (1 - w(u)) B(u) + w(u) H(u)
在共享区内令 w(u)=0,SDR 与 HDR 使用相同的基础关系;进入分化区后,w(u) 平滑增加,SDR 逐渐转向压缩更强的 S(u),HDR 则转向利用额外 headroom 的 H(u)。如果 w(u) 在阈值处不仅数值为零、导数也为零,就更容易同时保持 value continuity 和 slope continuity。
这个表达并不是唯一实现,只是把设计意图显式化:分化应该从哪里开始,以多快的速度发生,以及哪些区间仍然属于共同版本。它也比两条曲线分别调完后再强行拉齐几个控制点更容易解释。
如果 HDR-to-SDR mapper M 已经确定,还可以直接检查 M(R_H(u)) 与 R_S(u) 的差异;如果 M 也会随内容或显示动态变化,那么它必须被视为完整路径的一部分,与两条 curve 一起验证,而不能只在最后做一次静态 LUT 对比。
6.4 动态曲线需要限制自由度
固定曲线很难覆盖低调、逆光、大面积天空和夜景等差异明显的场景,因此实际系统常会根据图像统计量调整曝光锚点、toe 或 shoulder。问题在于,统计量只提供线索,不直接等于观看意图。
中位数、分位数和高光占比可以帮助判断场景范围,但不能单独决定主体亮度。比较稳妥的思路是让场景统计只在有限范围内调节一条已经有明确基线的曲线,同时为人脸、主体或其他重要区域保留更高优先级。这样即使语义判断失效,系统仍然退回到可接受的基础 rendering,而不是生成一条完全由直方图驱动的极端曲线。
视频还多了一条约束:同一场景内的参数必须保持时间稳定。逐帧追随直方图很容易让中间调或 shoulder 来回移动,形成 brightness pumping。参数平滑、迟滞、变化速率限制,以及在镜头切换时重新初始化,和单帧曲线本身同样重要。
6.5 Tone scale 不能替颜色问题背锅
Tone curve 虽然主要描述亮度关系,但最终图像仍然是彩色的。逐通道应用非线性曲线可能改变 RGB 比例,进而产生 hue shift;只修改亮度后再恢复色度,也可能把高饱和颜色推到目标 gamut 之外。高光压缩越强,这些问题通常越明显。
因此,一条“亮度上正确”的曲线不一定能产生颜色上正确的输出。ACES 2 的公开 Output Transform 也体现了这种分工:scene-referred 数据先经过 Rendering Transform,其中 tone scale、chroma compression 和 gamut compression 是相互关联但可区分的步骤,之后才进入显示编码。ACES 2 Output Transforms
这并不意味着 ISP 必须采用 ACES 的实现,而是说明一个通用原则:评价 tone curve 时,至少要同步观察饱和度、肤色、高亮颜色和 gamut boundary,不能把所有偏色都归结为曲线形状,也不能只看灰阶 ramp 就宣布 rendering 完成。
7. 怎样评价一组 SDR/HDR 曲线?
“看起来不错”是最终目标,却不是一个足以指导迭代的评价方法。更实用的做法,是把检查分成曲线本身、图像结果、路径一致性和真实观看四个层次。
7.1 曲线层:先排除结构性问题
曲线层检查不需要图像素材,可以直接在密集采样的 exposure ramp 上完成。至少需要确认:
- 曲线全域单调,没有亮度反转;
- 黑位、reference white 和峰值落在预期位置;
- toe、mid-tone 与 shoulder 的连接处没有斜率突变;
- 没有过长的近水平区间,导致多个输入层次被压成几乎相同的输出;
- 参数在允许范围内变化时,曲线仍保持这些性质。
对于 SDR/HDR 双路径,还可以在共同的比较域中定义一个共享区误差:
E_shared = ∫[u ≤ x_t] q(u) · d(M(R_H(u)), R_S(u)) du
其中 d 不是两个编码值的直接相减,而是在统一显示光或感知域中的距离;q(u) 表示不同输入区间的重要程度。需要注意,q(u) 不能只等于全图直方图,否则面积很小但语义重要的主体仍可能被低估。
7.2 图像层:统计量能定位问题,但不能替代观看
合成 ramp 之后,可以加入完全公开或自行拍摄的测试场景,刻意覆盖低调场景、普通室内、逆光人物、大面积天空、夜景灯光和只有少量镜面高光的图像。这里真正需要控制的不是图像数量,而是主体位置、高光面积和 scene dynamic range 是否覆盖了不同矛盾。
图像层可以记录黑位附近占比、输出 clipping ratio、reference white 以上像素占比、主体区域亮度和各区间的局部对比度。这些指标很适合回答“问题发生在哪里”,却不能单独回答“这张图是否更好看”。例如,更低的 clipping ratio 可能只是把所有高光都压灰;更多可见暗部也可能同时带来更明显的噪声。
因此,我会把统计量当作诊断工具,而不是最终评分。它们应该帮助定位是 toe、主体锚点、shoulder 还是颜色体积出了问题,再回到图像和观看环境中确认。
7.3 路径层:同时比较位置、斜率和结构
对每个输入同时计算 M(R_H(u)) 与 R_S(u),可以先看关键锚点偏移,再看锚点附近的局部斜率,最后观察输入亮度排序和主体结构是否保持。这样能够区分两类表面相似的问题:整幅 SDR 平移了 0.2 stop,和主体附近的对比度被重新分配。两者的平均数值误差可能接近,观看感受却不同。
高光区也不应该被纳入“越相同越好”的统一误差。那里本来就是 SDR 与 HDR 允许分化的区域,更值得检查的是分化是否平滑、HDR 高光是否仍有层次、SDR 是否出现突兀 shoulder,以及 down-mapping 后是否重新回到合理的 SDR 结构。
7.4 显示层:离开目标显示链路,HDR 评价是不完整的
最终检查必须固定显示模式、峰值、reference white、环境光和观察距离,并记录显示器是否还执行了额外 tone mapping。否则,同一份输出在不同 brightness setting 或系统设置下可能表现成不同的 headroom,主观结论也无法复现。
203 nit 与 350 nit 的观察可以放进这一层实验。保持高光 peak 不变,只改变同一个 scene anchor 的目标显示亮度,例如依次测试 203、250、300 和 350 nit;同时记录主体亮度偏好、整体明亮感和高光是否失去相对突出。再替换高光面积不同的场景,就能初步判断结果主要由 anchor placement 决定,还是由画面平均亮度、高光占比和观看环境共同决定。
如果对象是视频,还需要加入场景内稳定性、镜头切换响应和亮度突变容忍度。ITU-R BT.2408 对 HDR 制作中的图像亮度、格式转换和 artistic intent preservation 提供了更完整的制作背景。ITU-R BT.2408
这个评价框架的目的,不是构造一个能够替代人的总分,而是把“SDR 和 HDR 看起来一致”拆成可以观察、比较和反驳的假设。
8. 小结
传统 S-curve 的价值,在于它敢于把有限的对比度预算集中给主体;它的代价,则是暗部与高光不可能同时保留所有层次。HDR 增加了高光 headroom,却没有消除这种取舍,因为决定整体亮度感的仍然主要是主体、中间调和它们周围的对比关系。
构建一条可控 curve 的关键,也不是先找到某个漂亮的解析函数,而是明确输入输出域、观看锚点、局部斜率和连续性。函数只是承载这些意图的工具。动态曲线可以适应更多场景,但必须受到基线、语义优先级和时间稳定性的约束;tone scale 之外,颜色体积和显示编码也需要被放回完整 Output Transform 中检查。
当 ISP 同时输出 SDR 与 HDR 时,我认为真正需要维护的不是两条曲线的外形,而是两条 rendering path 的关系:M(R_H(u)) 与 R_S(u) 是否仍然表达同一个场景意图。共享阈值以下,应重点保护锚点、局部斜率和结构;阈值以上,则允许 SDR 更早进入 shoulder,让 HDR 使用额外 headroom。
这套理解没有给出唯一的 curve,也不试图用一个指标替代所有主观判断。它只是把问题从“参数应该调成多少”改写成几个更稳定的问题:哪些关系必须保持,哪些差异是有意设计的,变化发生在哪个信号域,以及最终应该在哪条显示链路上验证。对我来说,这比追求两条曲线数值重合,更接近 SDR/HDR 双输出影调设计的本质。
参考资料
- ITU-R, BT.709: Parameter values for the HDTV standards for production and international programme exchange.
- ITU-R, BT.1886: Reference electro-optical transfer function for flat panel displays used in HDTV studio production.
- ITU-R, BT.2100: Image parameter values for high dynamic range television.
- ITU-R, BT.2390: High dynamic range television for production and international programme exchange.
- ITU-R, BT.2408: Guidelines for operational practices in HDR television production.
- ITU-R, BT.2446-1: Methods for conversion of high dynamic range content to standard dynamic range content and vice-versa.
- Erik Reinhard et al., Photographic Tone Reproduction for Digital Images, ACM SIGGRAPH, 2002.
- Apple, Use HDR for dynamic image experiences in your app, WWDC24.
- Apple, currentEDRHeadroom.
- Adobe Camera Raw Team, High Dynamic Range—Explained, 2023.
- Academy of Motion Picture Arts and Sciences, ACES 2 Output Transforms, 2025.