百科狗-知识改变命运!
--

HDR以及HDR相关的后处理

桃子1年前 (2023-12-16)阅读数 9#综合百科
文章标签亮度轨道

什么是HDR

常常在渲染中见到HDR,那么HDR到底是什么东西,其中包含着怎样的具体含义呢?

首先,HDR是High Dynamic Range的缩写,Dynamic Range的定义是场景中亮度的max值跟min值的比值,自然界中,这个数值范围比较大,如果用10的对数来描述的话,这个值接近于10(称之为10阶),也就是说,maxLum / minLum ~= 10^10,即使对于相机所拍摄的单个画面场景,其数值也接近于4阶,这个范围非常的广,因此称之为HDR,与之相对的就有LDR(Low Dynamic Range)的说法,用以指代那些范围较窄的显示方式,比如CRT的Dynamic Range大概为两阶,即使是现代的主流显示器能力,Dynamic Range有所扩展,但依然未能突破2阶的限制。

正因为显示器能够支撑的亮度范围相较于自然界真实的亮度范围存在不小的差距,因此在渲染中会使用各种策略与手段来模拟自然界的HDR光照效果,这些策略包括但不限于Tonemapping,Bloom,Exposure Adjustment等等,具体细节后面介绍。

为了实现HDR的效果,就需要在渲染的中间阶段能够最大程度的保留场景的亮度信息,传统的color是按照8bits/channel的方式存储的,而这种方式由于精度较低,所以能够表达的亮度范围是非常有限的,对于自然界中的亮度范围,这种方式是不够的,因此实现HDR的第一步,就是将渲染过程中与光照相关的资源以及计算输出的中间结果用一种能够覆盖更广范围的格式存储下来,业界最普遍的做法是用Float16来存储一个通道数据。

人眼视觉感知机制

为什么要提到人眼视觉感知机制?这是因为,虽然人眼能够感知到一个比较宽的颜色亮度范围,但是人眼同时能够感知到的亮度范围却是有限的(最高不超过四阶),因此在人眼接触到一个HDR的场景时,人眼视觉系统的内部调整机制就会产生作用,将一些亮度数据过滤掉,从而在人眼能够同时接受的亮度范围内最大程度的保留场景信息,从这个角度看来,人眼是一个非常优秀的HDR->LDR转换器,为了能够给观察者以最真实自然的场景呈现效果,了解人眼的视觉感知机制就必不可少了。

从生物学的角度来看,人眼中存在两种不同的视觉感知单元,这两种感知单元对于亮度的敏感度是不一样的,从而导致人眼对于不同亮度的感受程度也有所不同。这两种感知单元的特点给出如下:

上面这个图揭示了人眼的不同视觉对于不同亮度的敏感程度,可以看到scotopic在对于低亮度范围内感知能力较强,而photopic在亮度较为适中时感知能力较强,在这二者之间的亮度范围的视觉称之为mesopic vision。

此外,人眼在从低亮度区域进入高亮度区域或者从高亮度区域进入低亮度区域时,会自动调节进入人眼的光线(类似于相机光圈),使得能够快速适应光场强度的变化,且对于高亮度场景跟低亮度场景而言,人眼都能够捕获到足够多的场景数据,亮度剧烈变化的自适应调整过程可以通过exposure adjustment来完成,而对于不同亮度范围的场景数据的可见度的调整则有赖于Tonemapping算法的实现。

Bloom

Bloom指的是这样的一种效果:对于那些亮度数值较高的像素区域,通过在其周边产生一层柔和平滑的光晕,如下面图中灯光所在位置的外发光效果所示。此外,这里需要说到的是,Bloom还有其他的别名,比如Glare以及Glow等。

Bloom的实现步骤其实比较简单:

与Bloom效果对应的,还有Star效果,其实现的大致效果如下图所示:

这种效果的实现方式跟Bloom类似,区别在于模糊处理的步骤的不同,在进行模糊处理的时候,Star效果需要对高光贴图分别进行垂直+水平模糊处理,并将结果分别存储到两张不同的贴图中(Bloom是先对高光贴图进行一个方向的模糊处理,之后在此结果上再进行另一个方向的模糊处理),之后将这两个贴图的结果混合到原始的场景贴图中。

不论是Bloom还是Star Effect,如果模糊的效果不是很好的话,还可以再进行多次模糊(如果性能消耗没问题的话)

Exposure Adjustment

前面实现Bloom的时候提到过,在得到平均亮度之后,需要对屏幕中各个像素的亮度进行scale调整:

这个操作实际上就是在对场景中的整体亮度进行调整,其目的是使得整体画面不至于过亮或者过暗,换句话说,也就是场景中的大部分像素的亮度都处于中灰度(middle gray)区域,而对应到取值上呢,就是希望原场景中的平均亮度的像素经过这个公式调整后,其亮度值为中灰度:

HDR以及HDR相关的后处理

0.18这个数值是怎么计算出来的呢?我们知道gamma矫正有两种gamma值,分别称为display gamma与encoding gamma。display gamma是显示器在将程序传输过来的数据由硬件自动完成的,其公式给出如下:

古老的CRT中测出来的display gamma是2.5,后来的2.2是微软联合爱普生等多家公司推出了sRGB标准之后的推荐值。而为了使得相机拍摄的结果传输到显示器上能够正确显示,就需要拍摄的时候0.5的亮度经由显示器输出,其亮度还依然为0.5,那么在相机对场景颜色进行编码存储的时候,就需要相应做一个处理:

这里的0.4545就是所谓的encoding gamma值,实际上,encoding gamma的引入并不仅仅是为了保证显示的正确,另一个原因是人眼对于暗部数据更为敏感(前面说到,人眼对于亮度的变化率deltaL/L的感知是一个常量,因此,在暗部区域,轻微的亮度变化就可能引起人眼感知的剧烈变化),因此为了能够照顾人眼的这种特性,在存储的时候会将更多的空间分配给低亮度区域数据。说了半天好像还是没有解释0.18是怎么来的,实际上在sRGB空间中,CIELAB的中灰度亮度值约等于0.466(可以参考 这篇文章 ),即由于人眼对于低亮度区域更敏感,因此在实际中真实亮度值为0.18的颜色,在人眼看来,其实就等于中灰度,而在encoding gamma的作用下0.18^0.45 = 0.462。

上面给出的是一种固定的曝光度调整的算法,其作用的结果是所有的场景最终的平均亮度值都变为0.18,不过实际上我们知道,在从一个阴暗区域进入一个阳光非常强烈的户外区域时,人眼会有一个从暗到明的缓慢变化过程,在这个过程中,人眼对于亮度的敏感程度是一直在变化的,为了模拟这个过程,就需要在进行曝光度调整的时候,考虑这个动态变化:

这个公式中La指的是上一帧的平均亮度值,Lw指的是当前场景中真实的平均亮度值,T指的是从两帧之间的时长,自适应常量 τ对于不同的视觉单元有不同的取值:对于Rod单元而言,这个值为0.4(即经过0.4秒完成适应过程),而对于Cone单元而言,这个值为0.1。前面说到,不同的视觉单元对应的是不同的亮度范围,那么就有如下的公式:

这里的Lw跟前面的含义一致,根据当前场景的亮度值确定出插值参数 σ,之后计算出对应的自适应常数τ,根据这个值计算出当前帧的平均亮度L_a_new。

Tonemapping

HDR在中间计算的时候,输出的颜色以及亮度结果都是大于1的,而显示器能够显示的颜色数值,其上限为1,因此为了让显示器能够正确的展示前面HDR的计算结果,就需要实现一套从HDR到LDR的转换方法,一个好的转换算法需要满足一下三个条件:

Tonemapping方法有很多,下面对一些经典的算法进行简要介绍。

不过常量key value的线性映射可能无法适用于所有场景:对于高光场景跟低亮度场景使用相同的平均亮度可能会使得画面不够真实,Grzegorz[3]提出了一种自适应调整key value的计算公式:

将这个公式转换为曲线,其走势给出如下:

通过这个调整之后,可以使得平均亮度越高的场景,其调整后的平均亮度值也有所增加,且高亮度场景的调整趋势比较平滑,低亮度场景调整趋势比较明显(可以保证高亮度区域不至于过曝,而低亮度区域不至于过于阴暗)

这个公式中,Lav指的是画面的平均亮度值,而L_hdr指的是各个像素的亮度值,Crysis 2007中就使用的是这种方法。Reinhard的Tonemapping算法得到的画面过于灰暗,为了解决这个问题,Crysis在2007年提出了另一种Tonemapping的方法。其基本思路是,前面提到了tonemapping就是个S曲线,那么为什么不直接使用公式模拟一个S曲线出来呢?下面这个曲线是以log2(x)为横坐标,Ld为纵坐标所绘制的曲线,其中Lav取得值为0.18。

A. 先进行线性映射

B. 进行缩放调整,避免像素超过LDR所能表示的上限(也就是1)

这个算法对应的亮度调整曲线给出如下(横坐标为log2(Lscaled),纵坐标为Color):

这个算法对于低亮度的像素基本上是没有影响的,而对于可能会超出LDR表示范围的像素,就会有较大幅度的修正,不过同时会导致画面的对比度下降使得画面偏灰,且由于公式本身的特性导致,屏幕中没有任何一个像素可以映射到纯白像素(即1):

应对无法映射到纯白像素的缺点,Reinhard提出了一种改进版实现,第一步维持不变,第二步引入一个新的变量Lwhite用于指定哪个亮度值可以映射到纯白像素1上面:

横纵坐标同上,此处Lwhite取值为0.5,从这个曲线可以看出虽然增加了Lwhite解决了无法映射到纯白像素值的缺点,但是同样也丢掉了像素不会超出LDR所能表示的范围1.0的优点。

可以看到实现效果有所变化,但是整体画面依然偏灰。

这种算法也被GTA V所使用的,其本质是使用一个人为设计的曲线来模拟专业相机的Tonemapping特性,其映射曲线绘制如下所示:

整个曲线的走势也是S型,不过其增长的区域非常宽,对比度也更大,且完全消除了Reinhard灰蒙蒙的瑕疵,此外,在这个算法的实现中,还可以将gamma 矫正相关的功能集成进来,避免额外的指数运算的消耗。

其映射曲线如下图所示:

ACES是目前效果最好的Tonemapping方法,目前UE4.8以及《古墓丽影》等多款游戏或者引擎使用的都是这种映射方法,将ACES与Uncharted的的映射曲线进行对比:

可以看到,在低亮度区域两者的表现基本上是一致的,而在高亮度区域,ACES拥有更好的平滑性,与更宽广的映射区域,这就使得ACES在高光区域的映射表现更为平滑。

参考文献

船用M站卫星电话和F站卫星电话的本质区别是什么?

后者叫perturbative T,引入了一些近似,计算量比full T小很多,很多软件都能算nwwolfchj(站内联系TA)CCSD(T) 是非迭代三激发模式CC3 是迭代三激发模式CCSDT 是全三激发模式CCSD(T)和CC3是CCSDT的两种不同简化版,CCSDT消耗计算资源相当大,一般的机器估计承受不了其漫长的计算时间,特别是在CC能收敛过程中,除非你特别有耐心。能实现CCSD(T)的软件多了去了,几乎流行的量化程序都可,GAUSSIAN,Molpro,Molcas, GAMESS-US,Q-Chem等,有些还可实现CCSD(TQ)功能,目前能实现CCSDT的程序较少,有ACES及其几个变体(最重要的是其有解析梯度,可节约不少时间,而GAMESS-US等是数值差分,同样问题需要更长的时间),NWCHEM, MRCC 等,前两个可以并行, MRCC似乎只支持串行。另外,GAUSSAIN程序里面的SAC-CI如果在General-R=3的情况下不进行简化,考虑全活性空间,包括所有迭代和非迭代后也可以认为是CCSDT,但其时间耗费不是一般的长,硬盘的读写不是一般的大,并且对谐振频率理论上用数值方法可求,但操作性不好,但优化没问题。建议上述计算在大型服务器上用并行做。coolrainbow(站内联系TA)(T)的三激发振幅是假的,不是用迭代算出来的,而是用微扰算出来的jyzhao1981(站内联系TA)CCSD(T)是耦合簇方法(coupled-cluster)中簇算符T截断到T1+T2水平,(T)是用微扰产生的三激发行列式,并不是真正的,不过CCSD(T)可以说是目前计算小分子最精确的方法,它的计算量是电子数N的7次方。CCSDT是簇算符T截断到T1+T2+T3水平,计算量是N的8次方。

移动卫星通信系统的分类卫星移动通信系统的分类可按其应用来分,也可以按他们所采用的技术手段来分。 (一) 按应用分类 可分为海事卫星移动系统(MMSS)、航空卫星移动系统(AMSS)和陆地卫星移动系统(LMSS)。海事卫星移动系统主要用于改善海上救援工作,提高船舶使用的效率和管理水平,增强海上通信业务和无线定位能力。航空卫星移动系统主要用于飞机和地面之间为机组人员和乘客提高话音和数据通信。陆地卫星移动系统主要用于为行驶的车辆提供通信。 (二) 按轨道分类 通信卫星的运行轨道有两种。一种是低或中高轨道。在这种轨道上运行的卫星相对于地面是运动的。它能够用于通信的时间短,卫星天线覆盖的区域也小,并且地面天线还必须随时跟踪卫星。另一种轨道是高达三万六千公里的同步定点轨道,即在赤道平面内的圆形轨道,卫星的运行周期与地球自转一圈的时间相同,在地面上看这种卫星好似静止不动,称为同步定点卫星。它的特点是覆盖照射面大,三颗卫星就可以覆盖地球的几乎全部面积,可以进行二十四小时的全天候通信。 (三) 按频率分类 按照该卫星所使用的频率范围将卫星划分为L波段卫星,Ka波段卫星等等。 (四) 按服务区域分类 随着航天技术日新月异的发展,通信卫星的种类也越来越多。按服务区域划分,有全球、区域和国内通信卫星。顾名思义,全球通信卫星是指服务区域遍布全球的通信卫星,这常常需要很多卫星组网形成。而区域卫星仅仅为某一个区域的通信服务。而国内卫星范围则更窄,仅限于国内使用,其实各种分类方式都是想将卫星的某一特性更强地体现出来,以便人们更好的区分各种卫星。 采用卫星轨道进行分类:以卫星为基础的移动通信的应用和研制情况,大体上可分为3种情况: (1) 卫星不动(同步轨道卫星) 目前已经广泛应用的Inmarsat以及正积极开发中的AMSC(美国),CELSAT(美国),MSS(加拿大)、Mobilesat(澳大利亚)等移动通信系统均属于这种情况。这些系统已经实现到车,船和飞机等移动体上的通信,实现到手机的通信指日可待。 (2) 卫星动(非同步轨道卫星),终端不动 它是通过非同步轨道卫星实现到较大终端(例如移动通信网的基站)的通信,而以后再连接到手持机的用户。Calling(美国)系统大体上属于这种情况。移动用户通过关口站上的卫星进行通信也基本属于这种情况。 (3) 卫星动(非同步轨道卫星),终端也动。 当前提出来的大量中、低轨道系统(如铱星系统、全球星系统、奥迪赛系统)极化均属这种情况,他们的特征就是做到终端手持化,实现了卫星通信适应未来个人移动通信的需求。 自本世纪60年代以来,人类已经将数以百计的通信广播卫星送入高轨道(GEO),在实现国际远距离通信和电视传输方面,这些卫星一直担当主角。但是,高轨道(GEO)卫星也存在一些问题: (1) 自由空间中,信号强度反比于传输距离的平方。高轨道(GEO)卫星距地球过远,需要有较大口径的通信天线。 (2) 信号经过远距离传输会带来较大的时延。在通话器通话中,这种时延会使人感到明显的不适应。在数据通信中,时延限制了反应速度,对于2001年台式超级计算机来说,半秒种的时延意味着数亿字节的信息滞留在缓冲器中。 (3) 轨道资源紧张。高轨道(GEO)卫星只有一条,相邻卫星的间隔又不可以过小,因为地球站天线分辨卫星的能力受限于天线口径的大小。在Ka频段(17~30GHz)为了能够分出2°间隔的卫星,地面站天线口径的合理尺寸应不小于66cm。按这样计算,高轨道(GEO)卫星只能提供180颗同轨道位置。这其中还包括了许多实用价值较差,处于大洋上空的位置。 中轨道(MEO)卫星通信系统简介一、 概述 高轨道卫星(GEO)移动通信业务的特征来源于使用位于赤道上方35800km的对地同步卫星开展通信业务的条件。在这个高度上,一颗卫星几乎可以覆盖整个半球,形成一个区域性通信系统,该系统可以为其卫星覆盖范围内的任何地点提供服务,例如美国一颗卫星就可以覆盖美国大陆的连续部分,如阿拉斯加、夏威夷、波多黎各几百海里的近海地区。在GEO卫星系统中,只需要一个国内交换机对呼叫进行选路,信令和拨号方式比较简单,任何移动用户都可以被呼叫,无需知道其所在地点。同时,移动呼叫可以在任何方便的地点落地,不需要昂贵的长途接续,卫星通信费用与距离无关,它与提供本地业务的陆地系统的费用相近。当卫星对地面台站的仰角较大的时候(如在美国本土经度范围内,卫星对地面的仰角一般在20°~56°之间),移动天线具有朝上指向的波束,可以与地面的反射区分开,这样就可以几乎完全避免在陆地系统中常见的深度多径衰落。卫星信号因其仰角大,仅仅穿过树冠,从而使由枝叶引起的衰减降到只有几dB。 二、 特点 卫星移动通信业务可以提供两种普通的业务:一种为公共卫星中继通话器,另一种是专用卫星中继通话器,前者需要互联公用交换通话器网,使一个移动体呼叫世界上任一个固定通话器,后者只是在一移动台和它的调度员之间进行。这两种业务都可以传送通话器,寻呼和定位信息。这两种业务也可以结合起来形成特有的通信能力。 (1) 公用卫星中继通话器业务 该网络包括卫星,工作于L频段的移动台、工作于K频段的网络操作中心和关口地球站/交换机互连完成,它使用由网络操作中心经专用信令信道指配给移动台和关口站的射频信号。为了建立一个呼叫和确定接续路由,移动台拨叫终点地址通话器号码,同时也给出自己的号码。网络操作中心指配给该移动台一个L频段射频信道,并将相应的K频段信道指配给靠近固定通话器地址的关口站,在此产生通常的通话器信令,以建立呼叫。网络操作中心记录路由、主叫和通话时间以便计算。另一方面上的操作与此类似。在提供长途连接灵活接续能力上,关口站的重要性是值得注意的,可能需要成百上千个关口站。呼叫一旦建立,话音带内数据、分组消息、定位和寻呼等业务信息均可以传递,一个无线台可以完成所有这些功能。 (2) 专用卫星移动通话器业务 该系统包括卫星、移动台和位于用户建筑外的基站,该基站由简化的关口(无呼叫路由选择和长途互连设备),根据需要指配给系统一条或几条电路,它可以使用简单的“按下即谈话”操作,也可以使用更复杂的交换方式,以便将系统的时间指配给不同的用户用于不同的目的。每一个移动体可以使用单一无线台完成调度通话器、不同速率数据、分组消息以及寻呼、定位消息的传递。若该无线台可以调谐到上面所提到的公用卫星中继通话器信令信道,则它也可以具有无线公用通话器功能。 ACeS卫星通讯系统是亚洲地区海域航行船只,山区工作者,旅游与各离岛通讯的良好通讯器材。使用GALUDA-1同步卫星,位于赤道正上方东经一百二十三度,距离地球三万六千公里的上空轨道上。 ACeS卫星通讯系统的卫星主体由美国络克希德马丁公司制造。手机则有由爱立信公司制造:Ericsson Aces R190亚星通话器。 特点: 1、话费可随时充Ericsson AceS R190卫星中继通话器是目前世界上体积最小最轻通话器; 2、通话费$0.25美金/分钟(打进),$0.35美元/分钟(打出); 3、无需入网费,月租费,占额费; 4、话费可随时充值。 应用领域:远离城市之乡村、森林、山区、沙漠、戈壁、矿场、油井、海洋、地质、旅游、勘探、铁路、水利、电力、气象、科学考察。

鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com

免责声明:我们致力于保护作者版权,注重分享,当前被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!邮箱:344225443@qq.com)

图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)