- 积分
- 205
- 阅读权限
- 30
- 主题
- 1
- 帖子
- 80
- 注册时间
- 18-8-19
- 在线时间
- 55 小时
- UID
- 8967
- 精华
- 0
排长
- 大洋
- 330
- 阅读权限
- 30
|
我来讲解一下吧
如果有试过的话,大家应该都知道,HDR直接输到SDR的显示器上,影片就变成灰色。为什么呢?
因为HDR有自己的颜色范围和亮度范围,与SDR是完全不同的两套亮度/色度体系。如果把HDR当成SDR窄亮度,窄色域来渲染,颜色自然就不对了。
先解释一下hdr,打个比方,用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。
那么HDR->SDR的转化,是怎么转化的呢
通常渲染器都会设置一个值,来代表你的显示器亮度。如果是100nit,它就把100nit以上的给截掉(删掉对应0.5-1),0.1以下的也给截掉。那么现在剩余就真的是有(0.1-0.5)的范围了,然后再把这部分信号,给“拉升”到(0-1)的范围,这里的拉升是指先把HDR解码成实际亮度,再编码回SDR的相对亮度。
有时候觉得HDR->SDR感觉画面很暗,就是这个值设置的太高了,超过了你的显示器应有亮度。这时候调小这个值,就会亮很多。 |
|