找回密码
 加入我们
搜索
      
查看: 45520|回复: 136

[外设] “为什么启用 HDR 之后颜色不正”问题详解

  [复制链接]
发表于 2022-11-9 16:24 | 显示全部楼层 |阅读模式

“日用到底应不应该开启 HDR ”、“ 为什么显示器开启 HDR 之后颜色不正”这种简单的问题往往能水出个十条八条,甚至还能有人就因为这个吵得不可开交,今一睡醒有看到有人在吵这破玩意,抱着住手,你们不要再打啦!”的心态,准备写点东西来纠正一下几个常见的误区,争取让大家都把这个问题想明白。也希望以后再有这种破事水的帖子能一个链接甩过去终结话题,别再是两三页下来都是俩人试图用各自奇怪的经验论说服对方了。



1.追根溯源


要想捋清楚“为什么开启 HDR 之后颜色会变”,我们总得先知道「什么是 HDR 」,以及「在启用 HDR 之后,显示系统是如何工作的」





——什么是 HDR ?





「HDR 到底是高亮度还是高对比度」这个话题是另一个大战场,要是大伙有兴趣后面可以展开聊聊,这里就按下不表了。对于不同的设备和场景而言,HDR 在技术上的实现方式有非常大的差异,从不同的角度可以给出截然不同的回答。但我要说的是:



对于显示器而言,输入的信息就是且仅是三条 0 ~ 1 的归一化信号,在这里,HDR 和峰值亮度、对比度和色域都没有任何关系,纯粹就是 EOTF (传统 SDR 观念里的 Gamma) 的差异。



考虑到实际软硬件支持的情况,在当下这个时间节点,你甚至可以认为显示器启用 HDR 之后,就仅仅是把 Gamma 给切换成了 PQ , 其它的工作都是在系统端依靠软件完成的。



——在启用 HDR 之后,显示系统是如何工作的



对于 Windows 而言,这个过程是把输出的信号变成了全局的 PQ ST.2084  / Rec.2020 信号。 因为不存在可以输入、处理 SDR 和 HDR 的混合信号的显示设备,所以当需要显示 HDR 内容时,系统发送的信号在输入显示器前,就必须是全局的 SDR 或 HDR 信号。但从现实意义上出发,需要显示的所有内容必然不可能都是 HDR 素材,所以当你在系统里打开 HDR 时,实际上需要进行的是三步操作:


1. 识别窗口的 tag , 区分素材是 SDR 还是 HDR


2.把所有素材上变换进 ST.2084 / Rec.2020  


3.以全局 ST.2084 把最终的画面发送给显示设备


显然,最大的误会就出在了这里:SDR 素材是如何上变换进 HDR 的?



——SDR 素材是如何上变换进 HDR 的



正如前文所提,在 HDR 下,系统发送的信号是全局 PQ / Rec.2020 的......于是部分坛友就想当然地认为:发灰说明显示器不行,信号是全局 PQ / Rec.2020 的,显示器也得满足峰值亮度 10000 尼特 / BT.2020 全覆盖才能正常显示吧?


如果你以前也是这么想的,那么认识一下“什么是色彩管理”以及“什么是 HDR ”都会对你理解接下来的内容有很大帮助。


色彩管理的本质就是统一不同“尺子”的度量衡 ——


假设有这么一台 EOTF 跟踪十分标准的,白点亮度 400 尼特的显示器 A . 10 尼特对于该设备的 SDR 模式而言位于约 18% 灰;在 HDR 下,相同的 10 尼特则位于约 30% 灰,“色彩管理”需要做的工作,就是通过数学的手段,把原本的 18% 变换为 30% 灰。


而且 ST.2084 是基于绝对亮度的:在传统 SDR 的思维里,白点亮度为 400 尼特的显示器 A 和白点亮度为 10000 尼特的显示器 B , 显示的 "50% 白" 显然是不同的。但在 PQ 里,不管白点是 400 尼特还是 10000 尼特,50% 白总是约 90 尼特


所以不管设备是 45% NTSC 还是 100% Rec.2020 , 不管设备的白点是 100 尼特还是 10000 尼特,出现“发灰”、“褪色”的情况都和设备的显示能力没有任何联系 —— SDR 下该怎么显示,在实现了正确的上变换时,HDR 下就应该怎么显示。


EOTF B CHH.jpg


回到具体的问题。Windows 的上变换依靠的是通过 EDID 来获得设备的的色域和最高亮度,并根据设备的实际信息来做的上变换。但是由于系统并没有办法抓取显示设备的 HDR EOTF (其实 ICC profile 逻辑上是包含设备完整的 EOTF 信息的,但 HDR 的 ICC 和 MHC2 是另一个大坑,后面有机会可以唠两句) 所以不论显示设备的 HDR EOTF 实际长什么样,都会被当作绝对跟随 Hard Clip 来进行最终的上变换处理。




2.拨乱反正




——按你说的 45% NTSC 也不会发灰,为什么我的显示器打开 HDR 就发灰



因为目前的绝大多数素材都是 SDR 的,所以“发灰”的设备在启用 HDR 之后通常会发现整个屏幕显示的所有内容都是“发灰”的

首先要做的是确认问题发生在哪一个环节。在前文我提到过 HDR 下的工作机制。由于原本就是 ST.2084 / Rec.2020 的素材并不会进入上变换的管线,且 Windows HD Color 存在一个独立调整 HDR 下 SDR 素材亮度的滑块,我们可以通过这两个功能的组合来判断当前素材有没有经过 Windows 的上变换,从而确认“发灰”的是全局所有内容,还是经上变换的 SDR 素材

启用系统的 HDR 并打开一部 HDR 电影,并移动 SDR 的亮度滑块,确认右侧的电影亮度是否改变。如果电影亮度发生了变化,那么说明电影进入了 SDR 的变换管线,需要更换播放器直到电影亮度不变(建议用 Windows 电影与电视或者 VLC)

hdrt C .jpg

如果亮度稳定的 HDR 电影也是严重"发灰"的,那么说明系统输出了全局的 HDR 信号,但显示设备没有完成自动握手,仍然处于 SDR 模式。如果显示器可以手动切换到全局的 HDR 模式,检查切换之后是否还存在发灰的现象。




——如果 HDR 的电影颜色正常,只有原先的 SDR 素材发灰呢




Windows 的上变换依靠的是通过 EDID 来获得设备的的色域和最高亮度,并根据设备的实际信息来做的上变换。

说明“发灰”的问题是上变换的过程中造成的。EDID 可以理解驱动板向系统的声明:它包含了非常多的信息,但这些信息是需要工程师在固件开发时手动填入的。虽然系统会通过 EDID 抓取设备的实际信息,但如果信息本身就是错误的,那自然后续的上变换过程都是有问题的。

即使 SDR 素材的上变换过程出现了问题,但 HDR 素材仍然是可用的。所以这类设备平时用用 SDR , 在需要看 HDR 内容时再启用 HDR …… 也不是不能用?



3.打个总结

回到今天看的那个帖子,「在能正确处理HDR的显示器上,是没有任何变化的。」这个观点正确吗?

显然是错误的。对于显示设备而言,只要能输入 HDR 信号,就算是“能正确处理 HDR ”了。支持 HDR 的驱动板,指的就输入 HDR 信号不会黑屏。甚至于显示器实际上不存在“处理 HDR ”的这个过程,信号的处理都在系统端完成,要实现「启用 HDR 之后发色正常不出问题」,显示器需要做的只是填对 EDID 和在识别到 HDR 信号后自动握手,和显示设备的 HDR 能力(亮度、对比度、色域覆盖)没有任何关联。这里打个补丁,如果你的系统还是 win 10 刚支持 HDR 的早期版本......当时的上变换管线没有完全做好,不管显示器怎么努力都是会发灰的,Windows 要 HDR 至少需要把系统更新到 1809  

但如果要实现「启用 HDR 之后 SDR 内容没有任何变化」...... 那很不幸的是,从原理上就不存在这样的设备把 SDR 的内容上变换进 HDR 的过程, 必然是会丢精度的。这是一个显而易见的数学问题,所以在 HDR 下的 SDR 表现,必然没有系统 SDR / 显示器 SDR 信号对齐时来得好。

另一个问题在于...... 一些 HDR 400 的显示器如果在低亮度下严格遵循 Hard Clip , 那么很可能在 HDR 下的细节还没有 SDR 来得多。但 Windows 强制以标准 PQ EOTF 来做上变换的特性意味着如果在低亮度下进行一定的 roll off , 系统 HDR 下的 SDR 可用性会变得十分糟糕

综上所述,我认为尽量让信号对齐,在 SDR 下看 SDR , HDR 下看 HDR 仍然是体验最好的。当然,如果设备在 HDR 下的损失你自身可以接受,那么省一步切换的操作全局 HDR 也没啥问题。显示器是给自己用的,怎么舒服怎么来。

该讲的原理都讲了,怎么排查问题也教了,这破事以后总吵不起来了吧?





评分

参与人数 5邪恶指数 +65 收起 理由
barricadeM6 + 5
witson + 20
醉酒棕熊 + 20
erid414 + 10
houyuzhou + 10

查看全部评分

发表于 2022-11-9 16:27 | 显示全部楼层
专业贴-.-话说WIN自带的HDR/SDR平衡一般拉到哪个比例比较好?显示器是LGC2
 楼主| 发表于 2022-11-9 16:31 | 显示全部楼层
reinhard_x 发表于 2022-11-9 16:27
专业贴-.-话说WIN自带的HDR/SDR平衡一般拉到哪个比例比较好?显示器是LGC2

自己看着舒服就行......一般默认就好了
发表于 2022-11-9 16:35 | 显示全部楼层
芋子,那你是让WIN接管HDR,还是纯手工切换?
发表于 2022-11-9 16:35 | 显示全部楼层
码住慢慢看
发表于 2022-11-9 16:36 | 显示全部楼层
正在用飞利浦8900,日常使用开HDR也没问题,而且都不用考虑色域缩限问题
 楼主| 发表于 2022-11-9 16:38 | 显示全部楼层
KimmyGLM 发表于 2022-11-9 16:35
芋子,那你是让WIN接管HDR,还是纯手工切换?

我是手动切的,需要用 HDR 的时候再开 HDR 性能最好嘛......但普通用户也许不太在乎丢的精度,手动切换毕竟还是挺麻烦的。
发表于 2022-11-9 16:40 | 显示全部楼层
本帖最后由 houyuzhou 于 2022-11-9 16:42 编辑

”但如果要实现「启用 HDR 之后 SDR 内容没有任何变化」...... 那很不幸的是,从原理上就不存在这样的设备:把 SDR 的内容上变换进 HDR 的过程, 必然是会丢精度的。这是一个显而易见的数学问题,所以在 HDR 下的 SDR 表现,必然没有系统 SDR / 显示器 SDR 信号对齐时来得好。“

我这里的体验是 LG C1无法感知到区别,截图比对,实拍比对,肉眼比对。多屏环境,两边SDR 中间 HDR,一直是无缝操作。  索尼X90J,有明显区别,颜色会错误,需要手动把色域切换到BT2020,切换了之后也能看出画面有轻微变灰,变淡迹象,横向对比很明显,所以不敢常开HDR。

应该就是精度丢失程度差异了。


但是之前用过的所有显示器,都不能开桌面的HDR,开了后会明显的色彩错误,严重发灰,过曝等不同体验,怎么动显示器设置都没用。
发表于 2022-11-9 16:43 | 显示全部楼层
reinhard_x 发表于 2022-11-9 16:27
专业贴-.-话说WIN自带的HDR/SDR平衡一般拉到哪个比例比较好?显示器是LGC2

这东西最大意义是避开OLED的ABL。
SDR内容亮度设置到全屏全白不会变暗的极限数值,用起来就是普通显示器的体验。
C2是160nit左右吧。
 楼主| 发表于 2022-11-9 16:43 | 显示全部楼层
houyuzhou 发表于 2022-11-9 16:40
”但如果要实现「启用 HDR 之后 SDR 内容没有任何变化」...... 那很不幸的是,从原理上就不存在这样的设备 ...

丢精度指的是色阶,你摆个 0 ~ 255 的灰阶图能做到截图比对、实拍比对、肉眼比对都没有任何区别,那你可以准备准备领这届菲尔茨了。
发表于 2022-11-9 16:43 | 显示全部楼层
这个超有营养,支持一下
发表于 2022-11-9 16:45 | 显示全部楼层
那mac os的情况是不是要和windows不一样?mac外接显示器的时候感觉应该是和lz说的一样,是有一个单独的hdr开关选项和识别显示器EDID来输出全局的hdr信号,但是像MacBook这类自带显示器的设备他并没有单独的hdr开关,而且所有sdr的内容也能正确显示,所以他对内置的屏幕是一直是全局的hdr信号吗,只不过有非常正确的映射所以看不出来吗
发表于 2022-11-9 16:45 | 显示全部楼层
houyuzhou 发表于 2022-11-9 16:43
这东西最大意义是避开OLED的ABL。
SDR内容亮度设置到全屏全白不会变暗的极限数值,用起来就是普通显示器 ...

那根进度条拉到哪里算是160啊?
发表于 2022-11-9 16:46 | 显示全部楼层
Potat1 发表于 2022-11-9 16:43
丢精度指的是色阶,你摆个 0 ~ 255 的灰阶图能做到截图比对、实拍比对、肉眼比对都没有任何区别,那你可 ...

看灰阶C1稀烂的,都是条条,开不开HDR都很烂。

话说有个地方一直没有理解,如果开HDR后,SDR内容是转换为HDR给显示器了,那为什么截图\录屏出来还是正常的。

HDR游戏截图给SDR看是会出错的,但是开了全局HDR的WINDOWS桌面,浏览器等一切正常。会不会是WINDOWS就算开了HDR,也是选择性的调整输出模式。
发表于 2022-11-9 16:47 | 显示全部楼层
reinhard_x 发表于 2022-11-9 16:45
那根进度条拉到哪里算是160啊?

这个我都是问爱色丽。。。
开个全白网页,肉眼看拉到不会变暗的位置吧。  
看全白160有些刺眼了,100-150之间足够。
 楼主| 发表于 2022-11-9 16:50 | 显示全部楼层
houyuzhou 发表于 2022-11-9 16:46
看灰阶C1稀烂的,都是条条,开不开HDR都很烂。

话说有个地方一直没有理解,如果开HDR后,SDR内容是转换 ...

不存在你说的这种可能性,信号切换是需要重新握手的,相当于显示器换了个信号源......
发表于 2022-11-9 16:51 | 显示全部楼层
科普贴,学习一下~~感谢分享~
 楼主| 发表于 2022-11-9 16:52 | 显示全部楼层
yiriyige 发表于 2022-11-9 16:45
那mac os的情况是不是要和windows不一样?mac外接显示器的时候感觉应该是和lz说的一样,是有一个单独的hdr ...

内建显示器也可以选是否启用 EDR , 不过 MacBook 比较接近黑箱,不排除实现瞬间切信号的可能性......
发表于 2022-11-9 16:52 | 显示全部楼层
houyuzhou 发表于 2022-11-9 16:40
”但如果要实现「启用 HDR 之后 SDR 内容没有任何变化」...... 那很不幸的是,从原理上就不存在这样的设备 ...

LG C1系统里不打开HDR的话完全没法看,亮度太低了,刚买的时候我甚至怀疑我买了个坏的显示器,太暗了
发表于 2022-11-9 16:53 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2022-11-9 16:54 | 显示全部楼层
我有个问题,我发现不论是win还是mac,打开后都是全局hdr,怎么能做到在显示hdr内容才开启hdr呢,就像iPhone那样
 楼主| 发表于 2022-11-9 17:00 来自手机 | 显示全部楼层
moweiraul 发表于 2022-11-9 16:54
我有个问题,我发现不论是win还是mac,打开后都是全局hdr,怎么能做到在显示hdr内容才开启hdr呢,就像iPhon ...

……你要不先把文章内容看一遍。

如果你说的是「SDR 和 HDR 分别以不同的亮度正常显示」,那么 Windows 和 macOS 都是可以做到的。

但如果你说的是 SDR 和 HDR 的混合信号,那么是没有任何设备可以做到的。
发表于 2022-11-9 17:02 | 显示全部楼层
lucksufe 发表于 2022-11-9 16:53
主要烦的是开HDR以后显示器亮度和色彩锁死了


我的理解是理论下hdr下内容的亮度应该由内容来决定
发表于 2022-11-9 17:07 | 显示全部楼层
yiriyige 发表于 2022-11-9 17:02
我的理解是理论下hdr下内容的亮度应该由内容来决定

实际上内容亮度也存在问题,实际很多片子给出的MaxCLL等数据是错误的或者直接就不给。
发表于 2022-11-9 17:09 | 显示全部楼层
说明“发灰”的问题是上变换的过程中造成的。EDID 可以理解驱动板向系统的声明:它包含了非常多的信息,但这些信息是需要工程师在固件开发时手动填入的。虽然系统会通过 EDID 抓取设备的实际信息,但如果信息本身就是错误的,那自然后续的上变换过程都是有问题的。


我也觉得EDID信息错误可能是导致桌面发灰的主要原因。
请教一下楼主EDID信息错误可能会出现在哪些环节?Windows系统?Nvidia 驱动?DP/HDMI线材?电视/显示器设置?

目前我电视作为显示器就有这样一个问题,电视需要检测到HDR内容后才会启用HDR模式,所以我这边用显卡通过DP1.4转HDMI2.1转换器输出到C2,在切换HDR时EDID信息跟新会有一个延迟,windows会拿到错误的EDID信息,所以开关HDR根据EDID信息会出现发灰或者过饱和的问题。这种时候切换一下刷新率让EDID信息更新一下就能正常了。

另外Nvidia Control Panel里面可以支持的色彩模式应该也是和EDID有关吧?目前正在折腾看能否通过CRU将一些关键信息固定下要不然有些时候玄学HDMI问题会把各种色彩色深什么的搞乱掉。
发表于 2022-11-9 17:10 来自手机 | 显示全部楼层
moweiraul 发表于 2022-11-9 16:54
我有个问题,我发现不论是win还是mac,打开后都是全局hdr,怎么能做到在显示hdr内容才开启hdr呢,就像iPhon ...

不能,因为iPhone也是全局HDR下管理SDR内容+亮度控制
发表于 2022-11-9 17:10 | 显示全部楼层
Potat1 发表于 2022-11-9 16:52
内建显示器也可以选是否启用 EDR , 不过 MacBook 比较接近黑箱,不排除实现瞬间切信号的可能性...... ...

MacBook带给我的感觉是,切换内建显示器的那些配置文件就是一个重新握手的过程(屏幕会短暂黑一下),这个配置文件决定了输出到屏幕上的是hdr信号还是sdr信号,sdr内容的颜色在切换srgb还是默认的xdr配置文件之间看不出区别是因为做了非常好的映射?
 楼主| 发表于 2022-11-9 17:12 | 显示全部楼层
erid414 发表于 2022-11-9 17:09
我也觉得EDID信息错误可能是导致桌面发灰的主要原因。
请教一下楼主EDID信息错误可能会出现在哪些环节?W ...

所有系统内显示的显示器信息都是通过读取 EDID 实现的。

硬要说的话,是所有环节
 楼主| 发表于 2022-11-9 17:14 | 显示全部楼层
yiriyige 发表于 2022-11-9 17:10
MacBook带给我的感觉是,切换内建显示器的那些配置文件就是一个重新握手的过程(屏幕会短暂黑一下),这 ...

只要 mapping 对了颜色都不应该出问题,但是丢精度是肯定的。
发表于 2022-11-9 17:16 | 显示全部楼层
AAHPH 发表于 2022-11-9 16:52
LG C1系统里不打开HDR的话完全没法看,亮度太低了,刚买的时候我甚至怀疑我买了个坏的显示器,太暗了 ...

因为系统里不打开的话,电视没有进入HDR模式,设置是不同的。
也可以手动改。
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

Archiver|手机版|小黑屋|Chiphell ( 沪ICP备12027953号-5 )沪公网备310112100042806 上海市互联网违法与不良信息举报中心

GMT+8, 2024-5-27 22:12 , Processed in 0.016281 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2007-2024 Chiphell.com All rights reserved.

快速回复 返回顶部 返回列表