Abstract

经典的摄影任务是将现实世界亮度的潜在高动态范围映射到摄影印刷品的低动态范围。将数字图像映射到低动态范围的打印或屏幕的计算机图形从业者也面临着这种音调再现问题。本文介绍的工作利用了经过时间考验的摄影实践技术来开发新的色调再现算子。特别是,我们使用并扩展了Ansel Adams开发的技术来处理数字图像。所得算法简单,对各种图像产生良好的效果。

1 Introduction

我们在现实世界中体验到的光范围是巨大的,从星光灿烂的场景到阳光普照的雪,大约跨越十个数量级的绝对范围,从阴影到单个场景中的高光,超过四个数量级的动态范围。但是,我们可以在打印和屏幕显示设备上再现的光范围最多只能跨越两个数量级的绝对动态范围。这种差异导致了色调再现问题: 我们应该如何映射测量/模拟的场景亮度以显示亮度并产生令人满意的图像?

在音调再现问题上已经做了大量工作 [Matkovic等人1997; McNamara等人2000; McNamara 2001]。这项工作的大部分都使用了显式感知模型来控制操作员 [上升1985; Tumblin和Rushmeier 1993; Ward 1994; Ferwerda等人1996; Ward等人1997; Tumblin等人1999]。此类方法已扩展到动态和交互式设置 [Ferwerda等人1996; Durand和Dorsey 2000; Pattanaik等人2000; Scheel等人2000; Cohen等人2001]。其他工作集中在动态范围压缩问题上,通过在空间上改变从场景亮度到显示亮度的映射,同时保留局部对比度 [Oppenheim等人1968; Stockham 1972; Chiu等人1993; Schlick 1994; Tumblin和Turk 1999]。最后,人类视觉系统的计算模型也可以指导这种空间变化的地图 [Rahman等人1996; Rahman等人1997; Pattanaik等人1998]。

使用感知模型是解决音调再现问题的一种合理方法,并且可能导致有效的放手算法,但是当前模型存在两个问题。首先,当前的模型通常会引入诸如振铃或可见夹紧之类的伪像 (请参阅第4节)。其次,视觉外观不仅仅取决于匹配对比度和/或亮度; 场景内容、图像介质和观看条件必须经常被考虑 [Fairchild 1998]。为了避免这些问题,我们转向摄影实践以寻求灵感。这导致我们开发了一种色调再现技术,该技术设计用于各种图像,包括具有很高动态范围的图像 (例如,图1)。

2 Background

色调再现问题首先由摄影师定义。通常,他们的目标是为捕获的场景制作逼真的 “渲染”,并且他们必须在面对幻灯片或照片在相纸上呈现的限制的同时制作此类渲染。许多常见的实践是在150年的摄影实践中发展起来的 [伦敦和厄普顿1998]。同时,开发人员对媒体响应特性进行了大量定量测量 [Stroebel等2000]。但是,摄影实践的艺术和技术方面通常存在脱节,因此如果没有大量经验,很难产生令人满意的图像。

安塞尔·亚当斯 (Ansel Adams) 试图用一种他称之为区域系统的方法来弥合这一差距 [亚当斯1980; 亚当斯1981; 亚当斯1983],该方法最早是在20世纪40年代开发的,后来由小白 [怀特等人1984] 推广。这是一个 “实用感光度法” 系统,摄影师在该系统中使用现场测量的信息来提高产生良好最终印刷品的机会。区域系统在成立五十多年后仍然被广泛使用 [伍兹1993; 格雷夫斯1997; 约翰逊1999]。因此,我们认为它作为解决音调再现问题的基础是有用的。在讨论区域系统如何应用之前,我们首先总结一些相关术语。

Zone:区域定义为与场景中的近似亮度范围以及印刷品的近似反射率相关的罗马数字。有十一个打印区,范围从纯黑 (0区) 到纯白 (X区),每个打印区的强度加倍,并且场景区的数量可能更大 (图4)。

Middle-grey:这是场景的主观中间亮度区域,通常映射到打印区域V。

Dynamic range:在计算机图形学中,场景的动态范围表示为最高场景亮度与最低场景亮度之比。摄影师对可见细节的最高和最低亮度区域的比率更感兴趣。这可以看作是动态范围的主观度量。由于区域与场景亮度对数相关,因此动态范围可以表示为最高和最低可区分的场景区域之间的差 (图4)。

Key:场景的键指示主观上是轻,正常还是暗。粉刷成白色的房间将是高调的,昏暗的马stable将是低调的。

Dodging-and-burning:这是一种打印技术,其中在显影 (躲避) 期间从打印的一部分中保留一些光,或者将更多的光添加到该区域 (燃烧)。这将使最终打印中的区域相对于如果将相同的显影用于打印的所有部分时的区域变亮或变暗。在传统摄影中,这种技术是使用一根小棒或一张切出一个孔的纸来应用的。

区域系统的关键部分是其用于预测场景亮度如何映射到一组打印区域的方法。摄影师首先对他认为是中间灰色的表面进行亮度读数 (图2顶部)。在典型情况下,这将被映射到区域V,其对应于印刷品的18% 反射率。对于高调场景,中间灰色将是较暗的区域之一,而在低调场景中,这将是较亮的区域之一。这种选择是一种艺术的选择,尽管通常使用18% 灰卡来使这种选择过程更加机械 (图3)。

接下来,摄影师获取明暗区域的亮度读数,以确定场景的动态范围 (图2底部)。如果场景的动态范围不超过九个区域,则适当选择中间灰色可以确保在最终打印中捕获所有纹理细节。对于超过九个区域的动态范围,某些区域将通过标准的开发过程映射为纯黑色或白色。有时这样的细节损失是可取的,例如非常明亮的物体被映射到纯白色 (参见 [Adams 1983],第51页)。对于细节丢失令人反感的地区,摄影师可以采取躲避和燃烧的方式,这将在当地改变开发过程。

上述程序表明照相过程难以自动化。例如,如果不了解adobe的真实反射率,就很难确定adobe建筑是高调的。只有了解几何形状和光线反射,才能知道深色染土坯房和普通土坯房的亮度比之间的差异。但是,区域系统为摄影师提供了一小部分主观控件。这些控件构成了下一节中描述的音调再现算法的基础。

渲染或捕获的数字图像的色调再现所面临的挑战与传统摄影所面临的挑战基本相同。主要区别在于,数字图像在某种意义上是 “完美的” 底片,因此由于胶片工艺的限制,没有亮度信息丢失。这是一个祝福,因为在所有亮度区域都可以使用该细节。另一方面,这需要更极端的动态范围减小,原则上可以通过扩展躲避和燃烧过程来处理。我们在下一节中讨论这个问题。

3 Algorithm

上一节中总结的区域系统用于开发数字图像的新色调映射算法,例如通过渲染算法 (例如 [Ward Larson和Shakespeare 1998]) 创建的那些或使用高动态范围摄影 [Debevec和Malik 1997] 捕获的那些。我们并不是试图紧密模仿实际的摄影过程 [Geigel和Musgrave 1997],而是使用区域系统的基本概念框架来管理色调再现中的选择。我们首先应用类似于在相机中设置曝光的缩放比例。然后,如有必要,我们应用自动躲避和刻录来完成动态范围压缩。

3.1 Initial luminance mapping

我们首先展示如何根据场景的键值设置输出图像的色调范围。像许多音调再现方法 [Tumblin和Rushmeier 1993; Ward 1994; Holm 1996] 一样,我们将对数平均亮度视为场景键的有用近似值。此数量 “lw” 的计算公式为:

其中Lw(x,y) 是像素 (x,y) 的 “世界” 亮度,N是图像中的像素的总数,并且 δ 是小值,以避免在图像中存在黑色像素的情况下出现的奇异性。如果场景具有normal-key,我们希望将其映射到显示图像的中间灰色,或者以从零到一的比例0.18。这表明等式:

其中L(x,y) 是缩放亮度,并且a = 0.18。对于低调或高调的图像,我们允许用户将对数平均值映射到a的不同值。我们通常将a从0.18更改为0.36和0.72,并将其更改为0.09和0.045。图5给出了一个变化的例子。在本文的其余部分中,我们将参数a的值称为 “键值”,因为它与应用上述缩放后的图像键有关。

等式2的主要问题是,许多场景主要具有正常的动态范围,但是在高光附近或天空中具有一些高亮度区域。在传统摄影中,此问题是通过压缩高和低亮度来解决的。然而,现代摄影已经放弃了这些 “s” 形的传递曲线,而倾向于主要压缩高亮度的曲线 [Mitchell 1984; Stroebel等人。2000]。具有这些特征的简单音调映射运算符由下式给出:

请注意,高亮度按约1/L缩放,而低亮度按1缩放。分母导致这两个刻度之间的优雅融合。这种配方保证使所有亮度都在可显示的范围内。但是,如上一节所述,这并不总是可取的。公式3可以扩展为允许高亮度以可控方式烧毁:

其中Lwhite是将被映射到纯白色的最小亮度。这个函数是等式3和线性映射之间的混合。图6中显示了Lwhite的各种值。如果将Lwhite值设置为场景中最大亮度Lmax或更高,则不会发生燃尽。如果将其设置为无穷大,则该函数返回到等式3。默认情况下,我们将Lwhite设置为场景中的最大亮度。如果将此默认值应用于具有低动态范围 (即Lmax < 1) 的场景,则效果是微妙的对比度增强,如图7所示。

对于较高动态范围图像,此功能的结果显示在图8的左图像中。对于许多高动态范围图像,此技术提供的压缩似乎足以在低对比度区域保留细节,同时将高亮度压缩到可显示范围。但是,对于非常高的动态范围图像,重要的细节仍然丢失。对于这些图像,需要应用躲避和刻录的局部色调再现算法 (图8的右图)。

3.2 Automatic dodging-and-burning

在传统的躲避和刻录中,印刷品的所有部分可能接收到与底片不同的曝光时间,使 “上” 选定的暗区域或使 “下” 选定的光区域以避免细节损失 [Adams 1983]。对于数字图像,我们有可能扩展这一想法,以处理非常高的动态范围图像。我们可以认为这是为每个像素选择一个键值,这相当于在等式2中指定一个局部a。这与感知驱动的音调映射运算符的局部自适应方法具有相似的目的 [Pattanaik等人1998; Tumblin等人1999]。

躲避和燃烧通常应用于由大对比度限制的整个区域。例如,局部区域可能对应于浅色背景上的单个暗树 [Adams 1983]。使用局部对比度的度量来估计局部区域的大小,该度量在多个空间尺度上计算 [Peli 1990]。这种对比度度量经常在每个空间尺度上使用中心环绕函数,通常通过减去两个高斯模糊图像来实现。已经提出了各种这样的功能,包括 [土地和麦肯1971; 马尔和希尔德雷斯1980; 布洛姆马特和马滕斯1990; 佩利1990; 杰尼根和麦克莱恩1992; 戈夫等人1995; 佩索阿等人1995] 和 [汉森等人2000]。在测试了这些变体中的许多变体之后,我们选择了源自Blommaert的亮度感知模型 [Blommaert和Martens 1990] 的中心环绕函数,因为它在我们的测试中表现最好。此函数是使用以下形式的圆对称高斯轮廓构造的:

这些配置文件以不同的比例s和不同的图像位置 (x,y) 运行。使用此类配置文件分析图像相当于将图像与这些高斯卷积,从而产生响应Vi作为图像位置,比例和亮度分布L的函数:

这种卷积可以直接在空间域中计算,或者可以通过在傅立叶域中乘法来评估效率的提高。最小的高斯轮廓将仅略大于一个像素,因此评估上述方程式的准确性很重要。我们根据误差函数进行集成,以获得足够高的精度,而不必诉诸超级采样。

我们使用的中心环绕函数定义为:

其中中心V1和环绕V2响应是从等式5和6导出的。这构成了高斯方法的标准差异,由于以下原因,通过2 φ a/s2 + V1归一化。自由参数a和 φ 分别是键值和锐化参数。

为了便于计算,我们将下一个更高标度的中心大小设置为与当前标度的环绕相同。我们对中心-环绕比的选择是1.6的,这导致高斯模型的差异非常类似于高斯滤波器的拉普拉斯算子 [Marr 1982]。从我们的实验中,与其他选择的中心-环绕比相比,该比率似乎在各种图像上产生了更好的结果。但是,可以少量更改此比率,以优化特定图像的中心环绕机制。

计算公式7的唯一目的是为每个像素建立位置度量,这相当于找到适当大小的比例sm。每个像素的比例可能不同,选择它的过程是我们躲避和刻录技术成功的关键。这也是对原始Blommaert模型 [Blommaert和Martens 1990] 的偏离。原则上,要被视为局部的区域是给定像素周围的最大区域,其中不会发生大的对比度变化。为了计算该区域的大小,在不同的尺度s下评估公式7。注意,V1(x,y,s) 大致在半径为s的圆盘中提供 (x,y) 周围的亮度的局部平均。对于V2(x,y,s) 也是如此,尽管它在相同尺度s下在较大的区域上工作。V1和V2的值预计在小亮度梯度的区域中非常相似,但在高对比度区域中会有所不同。要选择亮度相当均匀的像素周围的最大邻域,我们阈值V以选择相应的比例sm。从最低规模开始,我们寻求第一个规模sm,其中:

是真的。这是门槛。7分母中的V1使阈值V与绝对亮度水平无关,而2 φ a/s2项可防止V在V接近零时变得太大。

给定给定像素的明智选择的比例,我们观察到V1(x,y,sm) 可以用作该像素的局部平均值。因此,通过将分母中的L替换为V1,可以将等式3的全局音调再现算子转换为局部算子:

此功能构成了我们的本地躲避和燃烧运算符。较亮区域中的暗像素的亮度将满足L&lt;V1,因此该算子将降低显示亮度Ld,从而增加该像素处的对比度。这类似于摄影 “躲避”。类似地,相对较暗的区域中的像素将被较少压缩,并且因此被 “燃烧”。在任何一种情况下,像素相对于周围区域的对比度都会增加。由于这个原因,上述比例选择方法至关重要,如图9的示例所示。如果sm太小,则V1接近亮度L,并且局部算子降低为我们的全局算子 (图9中的s1)。另一方面,选择过大的sm会导致在明亮区域周围形成暗环 (同一图中的s3),而选择如上所述的比例会导致适当数量的细节和对比度增强,而不会引入不需要的伪影 (图9中的s2)。

使用较大的比例sm倾向于增加对比度并增强右比例2边缘。等式8中的阈值的值以及等式7中的 φ 的选择用作边缘增强参数,并且通过操纵将为每个像素选择的比例来工作。递减迫使适当的规模sm变大。增加 φ 也倾向于选择稍大的尺度sm,但由于 φ 除以s2,因此只能在小尺度上选择。在图10中给出了变化 φ 的效果的示例。

进一步的观察结果是,由于V1倾向于小于尺度太小 (s) 1右尺度2尺度太大 (s) 3 l对于非常明亮的像素,我们的本地操作员不能保证将显示亮度Ld保持在1以下。因此,对于非常明亮的区域,可能会发生一些烧坏,这就是我们之后将显示亮度剪辑为1的原因。如第2节所述,可能需要少量的燃尽以使诸如太阳之类的光源看起来非常明亮。

总之,通过为每个像素自动选择合适的邻域,我们有效地实现了在摄影中应用的逐像素躲避和刻录技术 [Adams 1983]。这些技术会局部改变胶片的曝光,从而使最终打印中的某些区域变暗或变亮。

4 Results

5 Summary

摄影师的目标是以创建令人愉悦的图像的方式压缩场景的动态范围。我们开发了一种相对简单且快速的数字图像色调再现算法,该算法借鉴了150年的摄影经验。它旨在遵循他们的实践,因此非常适合创建主观满意且基本上无工件的图像是理想目标的应用程序。

Photographic Tone Reproduction for Digital Images相关推荐

  1. HDR Tone Mapping

    在游戏引擎渲染管线中,我们对于R.G.B通道颜色信息的数值范围通常设置在[0,1]之间(或者是[0,255]).其中,0代表没有光亮度,1代表显示器能够显示的最大光亮度.这个表示方式虽然直接易懂,但它 ...

  2. 基于物理的渲染—HDR Tone Mapping

    转载:https://blog.uwa4d.com/archives/Study_HDRToneMapping.html 在游戏引擎渲染管线中,我们对于R.G.B通道颜色信息的数值范围通常设置在[0, ...

  3. 图像处理中的Tone Mapping初步学习

    转自KlayGE游戏引擎 Reinhard 早期的普遍做法是一篇叫做Photographic Tone Reproduction for Digital Images的论文,大家就用作者的名字称它为R ...

  4. 论文阅读笔记------iTM-Net: Deep Inverse Tone Mapping Using Novel Loss Function Considering TMO

    Kinoshita Y, Kiya H. iTM-Net: Deep Inverse Tone Mapping Using Novel Loss Function Considering Tone M ...

  5. [转]HDR渲染器的实现(基于OpenGL)

    http://dev.gameres.com/Program/Visual/3D/HDRTutorial/HDRTutorial.htm 作者:何咏(欢迎和大家交流,我的QQ:35574585,Ema ...

  6. 数字图像处理经典论文汇总

    Colorization and Color Transfer(图像上色和颜色迁移) Semantic Colorization with Internet Images, Chia et al. S ...

  7. 图像处理经典文章合集

    Colorization and Color Transfer(图像上色和颜色迁移) Semantic Colorization with Internet Images, Chia et al. S ...

  8. HDR与ToneMapping

    精力有限,最近没怎么写帖子和日志,不过时隔多日后,现在为您奉上这篇关于高动态范围渲染的文章,希望您能喜欢并轻松愉快地阅读. 什么?你只是看到这鸟语标题才戳进来的?并且完全不知道我在说些什么? 唉呀,对 ...

  9. PBR--RTR4笔记--第八章 光与颜色

    这只是笔记,有很多理解和翻译错误的,请谨慎参考.请以原书为准. 8.0 说明 ​ 这章很重要,系统的讲解了colorspace相关知识,随后介绍了tone-mapping.Explosure. ​ c ...

  10. GraphicsLab Project之HDR渲染

    作者:i_dovelemon 日期:2016 / 07 / 24 主题:HDR, Bloom, Tone mapping, Post-process, Blur 引言 HDR渲染技术,从我学3D图形学 ...

最新文章

  1. 五、redis和关系型数据库如何配合使用
  2. 海思芯片对比选型_海思芯片的选型及特征参考说明大全
  3. linux 全局搜索文件_Linux笔记之文件搜索1
  4. bigint最大有多少位_一台 Java 服务器可以跑多少个线程?
  5. Oracle Imp and Exp (导入和导出) 数据 工具使用
  6. 龙蜥利器:系统运维工具 SysAK的云上应用性能诊断 | 龙蜥技术
  7. iOS 52个技巧学习心得笔记 第一章 熟悉OC
  8. 【机器人学习】平台并联机构matlab逆解
  9. 服务器固件测试--PCI设备的介绍(集成网卡和外插网卡)
  10. KK模组与普通丝杠模组的区别
  11. 微软商店无法连接网络的问题解决
  12. Python3.x+迅雷x 自动下载高分电影
  13. 七夕撒狗粮,结婚五周年
  14. Confluence 7.2 宏乱码解决办法
  15. 测试开发—Xcode使用远程手机调试
  16. 华硕幻X GZ301VV原厂预装系统带ASUS RECOVERY
  17. 虚拟机遇锁定文件失败问题
  18. 编写一个程序从键盘输入字符,并按要求输出
  19. Vue中 path和name的区别是什么
  20. 实现web多层级文件压缩并下载

热门文章

  1. 信息化系统软件实施工程师基础技能
  2. 从零开始快速搭建LoRaWAN节点设备
  3. 可魔术变身笔记本的平板电脑,华为全功能MediaPad 10 FHD评测
  4. 木瓜移动每日出海快讯0428:谷歌发布Q1财报
  5. 电脑迷你世界,迷你世界电脑版
  6. 在语义层面构建的对抗样本SemanticAdv: Generating Adversarial Examples via Attribute-conditioned Image Editing
  7. C语言写的一个贪吃蛇小游戏(windows系统)
  8. python 模拟登录超星强智系统
  9. GPRS-PDP上下文激活过程
  10. 滴滴全线业务优化,芭比Q 了?