什么是动态范围?
图像的动态范围=图像的亮度max值 / 图像的亮度min值。
现实场景中的宽动态范围可以达到100000:1,甚至更高的宽动态范围。
我们在屏幕上看到的动态范围只有只有100:1甚至更低。
如何将现实中的高的动态范围显示到屏幕上的呢?
tone mapping(色调映射),可以将颜色值从高动态范围(HDR)映射到低动态范围(LDR)。
图片所表现的亮度范围不足以表现现实世界中的亮度域,而如果简单的将真实世界的整个亮度域线性压缩到照片所能表现的亮度域内,会在明暗两端丢失很多细节,Tone Mapping就是为了克服这一情况而存在。
既然相片所能呈现的亮度域有限则我们可以根据所拍摄场景内的整体亮度通过光圈与曝光时间的长短来控制一个合适的亮度域,这样既保证细节不丢失,也可以不使照片失真。人的眼睛也是相同的原理,这就是为什么当我们从一个明亮的环境突然到一个黑暗的环境时,可以从什么都看不见到慢慢可以适应周围的亮度,所不同的是人眼是通过瞳孔来调节亮度域的。
而这个问题同样存在在计算机图形上,为了让图像更真实的显示在显示器上,同样需要Tone Mapping来辅助。
整个Tone Mapping的过程就是首先要根据当前的场景推算出场景的平均亮度,再根据这个平均亮度选取一个合适的亮度域,再将整个场景映射到这个亮度域得到正确的结果。