找回密码
 加入我们
搜索
      
查看: 77333|回复: 140

[外设] “为什么启用 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

查看全部评分

发表于 2024-8-18 21:36 | 显示全部楼层
我擦,完蛋了……看不懂了
以前这种技术文不存在这种情况
发表于 2024-8-14 23:23 | 显示全部楼层
楼主有没有空讲一下Windows acm
发表于 2024-7-24 09:47 | 显示全部楼层
chuxuanax 发表于 2024-7-24 09:46
大佬 android 14 显示hdr图片和视频的时候 ui还是sdr 这是怎么做到的

https://source.android.com/docs/core/display/mixed-sdr-hdr
发表于 2024-7-24 09:46 | 显示全部楼层
大佬 android 14 显示hdr图片和视频的时候 ui还是sdr 这是怎么做到的
发表于 2024-3-14 13:06 | 显示全部楼层
Potat1 发表于 2023-3-8 23:10
win 11 的 HDR calibration 有一项“颜色饱和度”,拉高了就好了……

问题是拉多少是准的?
发表于 2024-3-12 23:17 | 显示全部楼层
大佬,知不知道这种情况怎么解决啊?
系统WIN11,Lightroom13.2版本(有HDR版本), 显示器 KTC M27T20,  
已经使用WIN-HDR工具校色了,平常使用没问题。
但是打开LR,PS的CR滤镜时,就会过曝泛白,颜色都不正确。
但是用其他工具打开图片颜色就是正确的。

用PS打开后,颜色就又变成了低饱和的灰色。就算是关闭HDR也是如此。

QQ截图20240312231032.jpg
发表于 2024-3-5 17:25 | 显示全部楼层
ipiger 发表于 2023-3-9 05:24
现在用win11 + LG 55 C1当显示器, 日常全局HDR模式, SDR亮度模块拉到10%左右.
日常无法分辨是处于SDR模式 ...

感觉还是显示器面板亮度不足的问题,我显卡直连sony的电视机,长期工作在hdr模式下,颜色什么都没有大问题,但是显示器就偏色严重。
发表于 2024-3-5 16:47 | 显示全部楼层
原理上就不存在这样的设备:把 SDR 的内容上变换进 HDR 的过程, 必然是会丢精度的。

能具体讲讲吗?过程中的哪一步是造成的精度损失?我理解是sdr的伽马曲线公式=hdr的PQ曲线公式,在直到sdr的gamma曲线上颜色值的情况下求解出pq曲线上的颜色值。不考虑计算精度应该是可以精确求解吧?
sdr是8位储存颜色信息,hdr是10位/12位,莫非丢失精度是发生在这一步?那求解到的qp曲线上的颜色值只能说精度更高了,为什么不能保证启用 HDR 之后 SDR 内容没有任何变化?
 楼主| 发表于 2023-4-20 19:02 | 显示全部楼层
denglizi 发表于 2023-4-14 18:11
请教楼主,开启HDR后画面偏黄是怎么回事

设备 HDR 下的白点不行,校准没做好。
发表于 2023-4-14 18:11 | 显示全部楼层
请教楼主,开启HDR后画面偏黄是怎么回事
发表于 2023-3-9 05:31 | 显示全部楼层
对了, LG电视当显示器, 常驻HDR模式使用的话, HDR色调映射最好改成HGiG模式, 这样不会被LG电视随意改变SDR内容的亮度.
发表于 2023-3-9 05:28 | 显示全部楼层
macbook pro 接LC 55 C1, 则没办法长期置于HDR模式,  
因为开启HDR后会变成12 bit 422的色彩模式, 色度丢失,文字彩边. 而且无法调整SDR内容的亮度, 白点亮度太高,亮瞎眼.
虽然最近破解了4K 120HZ RGB 10bit HDR, 色度丢失的问题解决了, 但是SDR 白点亮度太高还是无解.
发表于 2023-3-9 05:24 | 显示全部楼层
现在用win11 + LG 55 C1当显示器, 日常全局HDR模式, SDR亮度模块拉到10%左右.
日常无法分辨是处于SDR模式还是HDR模式.
看油管和B站,或者本地视频, 如果有HDR的视频,直接有HDR效果, 不用切换了.
 楼主| 发表于 2023-3-8 23:10 | 显示全部楼层
8886888 发表于 2023-3-8 09:15
买了台 三星的G7。 号称2000 尼特的 miniled。开启windows 11 22h2 之后还是色彩有点问题。。

用了 hdr 校 ...

win 11 的 HDR calibration 有一项“颜色饱和度”,拉高了就好了……
发表于 2023-3-8 09:15 | 显示全部楼层
买了台 三星的G7。 号称2000 尼特的 miniled。开启windows 11 22h2 之后还是色彩有点问题。。

用了 hdr 校准那个软件,校准了之后亮度变成了1100。  亮度倒是没有问题了。。就是色彩怪怪的,比如红色看起来比较淡

还是就是说的 发灰问题。。。   

无奈单独做了个宏,一键切换HDR
 楼主| 发表于 2023-2-25 22:50 来自手机 | 显示全部楼层
芝士雪豹 发表于 2023-2-25 19:58
链接



错的。
发表于 2023-2-25 19:58 | 显示全部楼层
链接

标准的hdr400没有任何hdr的效果,强开hdr属于自欺欺人的脑放行为,它的标准色域就是sdr,和hdr600是从0到1的区别(sdr也属于0)


请问这个说法是否是正确的的?
发表于 2023-2-20 16:42 | 显示全部楼层
madvr
开启的nv hdr和系统的os hdr啥区别啊
发表于 2023-2-20 14:17 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2022-12-15 19:52 | 显示全部楼层
桌子还是不够深
这帖子看得都不敢买miniled了
发表于 2022-12-15 19:06 | 显示全部楼层
Potat1 发表于 2022-12-15 13:07
俺也觉得,不过手动切换还得重新握手......大部分消费者肯定不乐意为了那点精度黑来黑去的。 ...

主要现在消费级HDR的产品力太差了,便宜的产品就更差了。大家对这个东西接受程度还不高
 楼主| 发表于 2022-12-15 13:07 | 显示全部楼层
外界很多传闻 发表于 2022-12-15 10:55
WIN11有一个HDR校准,校准过后观感好一些

这个就可以解决 EDID 信息错误的问题。
 楼主| 发表于 2022-12-15 13:07 | 显示全部楼层
skywaymanz 发表于 2022-12-15 10:14
反应过来了,明白了。谢谢啦
两种原理就不同的标准却要共存本身就是矛盾啊,感觉2种模式按需切换最好 ...

俺也觉得,不过手动切换还得重新握手......大部分消费者肯定不乐意为了那点精度黑来黑去的。
发表于 2022-12-15 10:55 | 显示全部楼层
WIN11有一个HDR校准,校准过后观感好一些
发表于 2022-12-15 10:14 | 显示全部楼层
本帖最后由 skywaymanz 于 2022-12-15 10:15 编辑
Potat1 发表于 2022-12-15 09:53
当然是因为 HDR 内容不需要进行变换啊......


反应过来了,明白了。谢谢啦
两种原理就不同的标准却要共存本身就是矛盾啊,感觉2种模式按需切换最好
 楼主| 发表于 2022-12-15 09:53 | 显示全部楼层
skywaymanz 发表于 2022-12-15 09:50
这是为什么呢?因为HDR内容进行EOTF变换后输出的亮度数值是绝对值?

当然是因为 HDR 内容不需要进行变换啊......
发表于 2022-12-15 09:50 | 显示全部楼层
Potat1 发表于 2022-12-14 20:41
当然不是。
正确的 EDID 是 HDR 下针对 SDR 内容做正确上变换的前置条件,不影响 HDR 内容。你哪怕 EDID  ...


这是为什么呢?因为HDR内容进行EOTF变换后输出的亮度数值是绝对值?
 楼主| 发表于 2022-12-14 20:41 来自手机 | 显示全部楼层
skywaymanz 发表于 2022-12-14 09:35
如果一个显示器EDID信息是错误的,比如色域标成了100%Rec.2020。。
这种情况开启HDR模式后,屏幕上的SDR和H ...

当然不是。
正确的 EDID 是 HDR 下针对 SDR 内容做正确上变换的前置条件,不影响 HDR 内容。你哪怕 EDID 里把可见光不可见光全都覆盖了,HDR 内容也是正常的。
发表于 2022-12-14 11:59 | 显示全部楼层
发灰倒是没遇到过,现在使用里最纠结的还是开启HDR后用QQ或者系统自带截图会出现过曝的情况……
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

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

GMT+8, 2025-7-16 22:08 , Processed in 0.015696 second(s), 8 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2007-2024 Chiphell.com All rights reserved.

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