版主: Grognard
昵称:Grognard
等级:
Lv.3 
经验
14
金币
0
积分
11
 发表于 2019-11-23 11:40  查看 2435 | 倒序浏览
这东西没那么容易解释的清。。。HDR和SDR是两套亮度/色度体系,就像别人用英语说一个interesting,然后你非按中文翻译成了因垂思婷

一、为啥变灰了:
变灰表现在:亮度降低+颜色饱和度下降。这是因为HDR有自己的颜色范围和亮度范围。如果把HDR当成SDR窄亮度,窄色域来渲染,颜色自然就不对了。

打个比方,视频编码一般用0和1代表最暗和最亮。HDR中亮度范围(0-1),代表0.0001到10000,SDR中,0-1代表0.1到白色亮度(一般假设为100),单位nit。

一般视频,绝大多数的图像亮度都落入(0.1-100)这个SDR范围,只有极少高亮区域超过100很多。HDR为了记录这部分高亮信息,留出了一段保留区域(0.5-1)来记录(100-10000)。也就是说,视频中的大部分图像亮度,都落到了(0.1-0.5)之间。剩下的(0-0.1)是保留给极暗信号的。

现在如果这时,直接把HDR的(0.1-0.5),当成了SDR的(0.1-0.5),那么本来SDR原本只有(0.1-100)的显示空间,现在直接给压缩到了(1-20)的范围。这样一错,图像就发灰了,白色不亮100->20,黑色不黑0.1->1。

二、madvr是怎么做HDR->SDR的转化呢?
首先它会问你的显示器白色最亮是多少,比如你查了当前亮度设置下的显示器,设置一个100啊,80啊,400啊。如果你设置的是100nit,他就把100nit以上的给截掉(删掉对应0.5-1),0.1以下的也给截掉。那么现在剩余就真的是有(0.1-0.5)的范围了,然后再把这部分信号,给“拉升”到(0-1)的范围,这里的拉升是指先把HDR解码成实际亮度,再编码回SDR的相对亮度。

举个例子就是,如果你显示器最大400nit,也设置了400nit,madvr就会保留(0.1-0.65)范围的HDR信号。一个400nit的HDR信号代表0.65,然后0.65会被拉升到1,这个1传到显示器,显示器就以100%亮度显示,你就能看到显示器显示的400nit了。否则按0.65的输入,算下来其实只有155nit,画面暗了一半多。

要正确的转化SDR,前提就是告诉madvr,你当前的亮度到底是多少。但一般用户根本不可能知道这个具体数字。

如果实际100nit的显示器,填了400nit,madvr就会以为你的显示器很亮而压低输出给显示器的信号,结果画面实际过暗。反过来,你把显示器亮度拉最大,却给了一个100nit的参考值,madvr就以为你只能显示100nit而拼命提高信号大小,结果你400nit的显示器一下就过亮了。

三、我这里建议这样设置:
平时显示器什么亮度就先不动,先把madvr那里填一个120nit。如果这时看一段时间,觉得画面整体有点偏暗,那么就需要提高一下显示器亮度了。
如果反过来,觉得画面有点亮,感觉像是相机过曝,那么就得把那个120nit改大一点,比如150,200,直到你觉得画面亮度正常了为止。

这里的解释其实已经省略了大量的细节,距离的数字也是一个大概的范围。不过大致能体现出两者的区别。
沙发: enzoczw
昵称:enzoczw
等级:
Lv.4 
经验
29
金币
28
积分
23
  发表于:2020-07-11 03:13
希望论坛越来越好!
板凳: LZDD387
昵称:LZDD387
等级:
Lv.51 
经验
2737
金币
819
积分
430
  发表于:2022-09-04 15:10
感谢楼主分享
快速回帖