人眼对亮度的感知不是线性的_我们说的 HDR 也许不是一个东西

HDR = High Dynamic Range,高动态范围。在现在的语境下,经常与高清、高画质联系在一起。但很多时候人们对这个词是不求甚解的,甚至把他作为 4k 高清的等价代名词,又或者把他与摄影上的 HDR 风格混为一谈。这篇文章,我希望把 HDR 这个概念彻底解释清楚。

思考:为什么要有 HDR?

目前我们对图像和视频的存储,基本上都是 8bit/channel 的,也就是用 8bit 的数据,存储一个通道的灰度值。8bit 数据可以表示 256 个不同的灰度值。如果场景亮度变化超过了 256 个灰度值能表示的范围,那么现在的图像格式就不能记录下场景里所有的信息。如果我们用更多的比特数来记录灰度值,那么就可以记录更大范围的场景信息,这就是 HDR。

上面这就是通常大家对「为什么要有 HDR」这个问题的解释。然而这是不完全正确的。我们在多媒体处理这个领域里做专业的事情,应该要看得更深刻。

什么叫「场景亮度变化超过了 256 个灰度值能表示的范围」呢?如果场景亮度是 0~255,那正好和 8bit 整数 0~255 一一对应;如果场景亮度是 0~65535 呢?我们一定要用 16bit 来记录吗?难道不可以做一个缩放,用 255 来对应 65535 吗?这是完全可以的,无论一个场景的亮度范围是多少,我们永远可以做一个缩放,用 8bit 的数据来记录。所以,「因为场景亮度范围大于 256 个灰度值,所以要用 HDR」这样的解释,其实是站不住脚的。

那么为什么不这么做?直接在数值上做缩放有什么问题?

题图就是一个具体例子,这个例子的场景中亮度范围远远超过了 8bit 整数能表达的范围。我们拍摄多张不同曝光量的图像,来记录整个场景。这里把图再贴一遍

0f83b33b569fe4fd47c5589e8514f413.png
图1. 一个高动态范围的多曝光实拍照片

我们从左到右、从上到下依次给这些图片编号 1~12,那么如果直接缩放,用 8bit 数据记录所有的亮度范围,就会和右下角12号或者11号图一样,整个画面暗得看不清。

这很好理解,因为在这里其实是用「缩短相机曝光时间」这样的「物理手段」对传感器上接收到的「真实亮度」进行了缩放,相机的曝光时间就相当于缩放系数,对整个场景,不论亮的还是暗的,进行同样倍数的亮度缩放。让传感器的最大值对应场景中的亮度最大值,那么场景中的亮度小的部分,在画面上就会很暗很暗。这样的话,虽然传感器能够「记录下」整个场景,但这个记录的结果与人眼的感知是天差地别的。

根源:人类对亮度感知是非线性的

为什么会这样呢?最根本的理由就是非线性。在人类感知亮度的这个过程里,有太多的非线性因素了。在研究和讨论 HDR 的过程中,我们需要时刻牢记,我们做的所有措施,都是为了处理这些非线性因素。

人眼对亮度的感知范围极其巨大

这一点许多人往往没有意识到,但这一点确实非常重要。就如一开头举例的这个场景,晴朗的白天,从室内透过窗户向外看,在这个场景中最亮的部分和最暗的部分亮度相差多少?一百倍?一千倍?不,远远超过。

根据相机的测光记录,最亮的部分和最暗的部分亮度变化超过了 14EV,也就是 2^14 ≈ 16,000 倍,一万六千倍(EV = Exposure Value,曝光值,摄影中用 EV 表示亮度变化,1EV 意味着 2 倍的亮度变化)。然而在这个场景中,人眼可以毫不费力同时看清楚窗外的白墙,和室内椅子底下地砖的纹理。

更极端一些,在我自己经历过的日全食的场景中,人眼可以看清挡在太阳前面的月球表面的纹理,以及周围太阳散发出来的日冕的纹理。在这样的极端场景中,亮度变化甚至可达 20EV,也就是 2^20 ≈ 1,000,000 倍,一百万倍。这个场景是极其震撼的,难以用语言来形容,也无法用照片准确记录。

71b0431ee579fc5cbbd5bb45de0cb911.png
图2. 由王乐天拍摄,我处理的 2017 北美日全食的照片,用了几十张照片进行合成,图中最亮和最暗处亮度差别可达数万倍至数十万倍

上图的部分处理过程参见以前的专栏文章,在这张照片记录的瞬间亮度差最大有14~15EV,在前后时刻有更大的亮度差,可达 20EV。

章佳杰:完美记录惊人的细节!这张日全食照片是怎样诞生的?【01】​zhuanlan.zhihu.com
616859578cbd9b31541be94a516349a9.png

人眼亮度响应是非线性的

人眼对亮度的响应本身就是非线性的,这也是大众往往没有意识到的(但是摄影师对此非常熟悉)。打个比方࿰

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值