专利名称::一种高动态范围的图形映射到低动态范围的方法及装置的制作方法
技术领域:
:本发明涉及一种图形处理技术,特别涉及一种高动态范围的图形压縮映射到低动态范围以适应现有的常规显示设备的方法及装置。技术背景近几年来,高动态范围(HighDynamicRange,HDR)技术在计算机图形学、虚拟现实等领域开始有着越来越多的应用。HDR是与传统的LDR(lowdynamicrange)相对的,LDR是采用8位纹理格式(每像素24或32位颜色),HDR这种全新的模型将每个像素的RGB以及亮度值用实际物理参数或是线性函数来表示,参数不再限于整数,可以达到更大的范围和更高精确度。一幅图像亮度级的最大值和最小值之比被称为动态范围(DynamicRange)。通过眼睛瞳孔的自动调节,从明亮的日光到星光,人眼能分辨物体的动态范围可以达到100000000:1,即使在同一个适应图形内,不需调节,人眼也能分辨10000:1的亮度范围。然而,常规显示设备能重建的亮度动态范围仅仅是IOO:1。HDR的图形在现实生活中大量的存在着,因此需要以某种方式将图像的动态范围进行縮放,使之匹配只能输出LDR的常规显示设备。这种方式称为色阶重建(ToneReproduction)或色调映射(ToneMapping),它提供一种方式将现实图形的亮度值縮放或者映射到显示设备能显示的范围。除了压縮亮度范围,还必须保留原始图像的感观质量(PerceptualQuality),如重建方法必须保留原始图像对比度、明亮程度、细节等信息。动态范围的重建方法大致分为两种,一种是空域不变(SpatiallyUniform),或者叫全局范围动态压縮。此类方法在对图像进行动态范围变换时,每个像素(Pixel)上使用同一条变换曲线,变换曲线可以预先指定或者根据图像的内容获取。这类算法中以WardLarson等人(Avisibilitymatchingtonereproductionoperatorforhighdynamicrangescenes)基于直方图调整的动态范围重建技术为标志,其不足在于不变的变换曲线不能自适应图像的各个区域,导致结果图像在细节、颜色、明亮程度上损失。另一种是空域变化(SpatiallyVarying),或者叫局部动态范围压縮。该类方法针对图像不同的区域进行不同的变换。根据人类视觉系统(HVS)的不同模型,各种不同方法在压縮动态范围的同时都以保留图像质量的某一方面为标准。一直到90年代末期,各种方法都是在多层模型上针对不同的HVS模型进行调整,但是由于低频图像上采用的滤波函数特性不佳,在结果图像中物体边缘产生的严重光晕(halo)—直是困扰该类方法多年的问题。1999年,Tumblin等人提出了LCIS方法(Lcis:Aboundaryhierarchyfordetail-preservingcontrastreduction),通过对图像不同细节的定义,提高了结果图像质量,但却使得方法的运行变得非常低效,速度过慢。发明目的本发明的目的是解决现有技术存在的上述不足,提供一种高动态范围压縮映射到低动态范围的方法和装置,能够有效地保障实时性要求,效率更高,还能够保留图形的细节、颜色、明亮程度等,并且易于实现、具有良好的可扩展性。本发明的目的通过下述技术方案来实现一种高动态范围的图形映射到低动态范围的方法,包括如下步骤a、先从高动态范围的图形纹理中读取每个像素的RGB值;b、将RGB值转换成实际光强值;c、然后利用如下的公式将实际光强值转换成平均光强值,I=exp[+Zlog(5+Zw(x,力)]《其中,Lw(x,y)表示实际光强值;x,y表示每个像素的二维坐标;乙表示平均光强值;N表示纹理像素的数量;^是个很小的常数,可取为0.0001;d、根据映射后所需的明亮效果,按如下公式来縮放每个像素的光强值,其中,a的取值范围在0到l之间,对于比较灰暗的图形,取较低的a值,反之,则取较高的a值;e、最后按如下公式,计算得到被映射的像素的光强值,其中,Z,(u)是被映射的像素的光强值;;^是最大光强值;"为自定义值,当图形不需要全黑的局部时,可将"设置为非零值,如0.005。所述步骤b中,按如下公式将RGB值转换成实际的光强值丄^=0.27i+0.67G+0.065所述步骤d中,a值一般建议取0.18。上述各技术方案中,所述步骤c中,在帧缓存器中读入每个像素的光强值,在两个管线中进行,在第一个管线中创建一个小的绘制目标,画一个长方形块覆盖整个绘制目标,在目标缓存中的每个像素上,像素shader程序累加源缓存中的光强值,并且存储计算结果;在第二个管线中,叠加第一个管线中的目标缓存,然后运行最后部分的计算,产生的纹理中则包含有^。一种高动态范围的图形映射到低动态范围的装置,包括有像素RGB值读取器,用于从高动态范围的图形纹理中读取每个像素的RGB值;RGB值光强转换器,用于将RGB值转换成实际光强值;光强平均值转换器,用于将实际光强值按如下公式转换为平均光强值,Zw=exp[+Zlog(<5+;0,力)]《其中,Lw(x,y)表示实际光强值;x,y表示每个像素的二维坐标;乙表示平均光强值;N表示纹理像素的数量;^是个很小的常数,可取为0.0001;像素光强值縮放器,用于根据映射后所需的明亮效果,按如下公式来縮放每个像素的光强值,其中,a的取值范围在O到l之间,对于比较灰暗的图形,取较低的a值,反之,则取较高的a值;像素光强值映射器,用于按如下公式得到被映射的像素的光强值,其中,^Oc,力是被映射的像素的光强值;;^是最大光强值;^为自定义值,当图形不需要全黑的局部时,可将^设置为非零值,如取为0.005。所述RGB值光强转换器内包含有按如下公式将RGB值转换成实际光强值的计算器^W=0.27i+0.67G+0.06S所述像素光强值縮放器中,a值一般建议取为0.18。所述光强平均值转换器包括帧缓存器和两个管线,帧缓存器中读入有每个像素的光强值,在第一个管线中创建有一个小的绘制目标块,设有一个长方形块覆盖整个绘制目标块,第一个管线中还有光强值累加存储器,利用像素shader程序在目标缓存中的每个像素上,累加源缓存中的光强值,并且存储计算结果;在第二个管线中包含有叠加计算器,用于叠加第一个管线的目标缓存,然后运行最后部分的计算,产生的纹理中则包含有^。本发明采用上述方法或装置,可以高效地压縮高动态范围图形,并保存其细节和对比度,映射到低动态范围,可以适应现有的常规低动态范围的显示设备,而且能够有效地保障实时性要求,具有易于实现、良好的可扩展性等优点,可满足三维场景(如三维游戏)、虚拟现实的要求。具体实施方式下面结合具体实施例对本发明作进一步的说明。实施例l:一种高动态范围的图形映射到低动态范围的方法,包括如下步骤.'a、先从高动态范围的图形纹理中读取每个像素的RGB值;b、将RGB值按如下公式转换成实际光强值Zw=0.27i+0.67G+0.065;c、然后利用如下的公式将实际光强值转换成平均光强值,<formula>formulaseeoriginaldocumentpage9</formula>其中,Lw(x,y)表示实际光强值;x,y表示每个像素的二维坐标;乙表示平均光强值;N表示纹理像素的数量;5=0.0001;d、根据映射后所需的明亮效果,按如下公式来縮放每个像素的光强值,<formula>formulaseeoriginaldocumentpage9</formula>其中,a的取值范围在0到l之间,对于比较灰暗的图形,取较低的a值,反之,则取较高的a值,本实施例中取为0.18;e、最后按如下公式,计算得到被映射的像素的光强值,<formula>formulaseeoriginaldocumentpage9</formula>其中,A(x,力是被映射的像素的光强值,这个值即是可以在常规低动态范围显示器上显示的对应高动态光强的值;;^是最大光强值,这是一个HDR值,亮度值大于^^的像素都会映射为全白,"^能被设成一个无限值,用于把产生的光强值映射为一个可以显示的值;"为自定义值,当图形不需要全黑的局部时,可将。设置为非零值,本实施例中取为0.005。本实施例中,所述步骤c在两个管线中进行,在第一个管线中创建一个小的绘制目标,画一个长方形块覆盖整个绘制目标,在目标缓存中的每个像素上,像素shader程序累加源缓存中的光强值,并且存储计算结果;在第二个管线中,叠加第一个管线中的目标缓存,然后运行最后部分的计算,产生的纹理中则包含有、本实施例中,采取了上述方法前后的帧率对比如下表<table>tableseeoriginaldocumentpage9</column></row><table><table>tableseeoriginaldocumentpage10</column></row><table>实施例2:基本步骤如实施例1,其中a值为0.42。实施例3:基本步骤如实施例l,其中a值为0.56。实施例4:基本步骤如实施例l,其中a值为0.78。实施例5:基本步骤如实施例l,其中a值为0.88。实施例6:—种高动态范围的图形映射到低动态范围的装置,包括有像素RGB值读取器,用于从高动态范围的图形纹理中读取每个像素的RGB值;RGB值光强转换器,用于将RGB值按如下公式转换成实际光强值Zw=0.27i+0.67G+0.065;光强平均值转换器,用于将实际光强值按如下公式转换为平均光强值,4=exp[+J]log(S+4(x,力)]《其中,Lw(x,y)表示实际光强值;X,y表示每个像素的二维坐标;乙表示平均光强值;N表示纹理像素的数量;《=0.0001;像素光强值縮放器,用于根据映射后所需的明亮效果,按如下公式来縮放每个像素的光强值,其中,a的取值范围在0到1之间,对于比较灰暗的图形,取较低的a值,反之,则取较高的a值,本实施例中取为0.18;像素光强值映射器,用于按如下公式得到被映射的像素的光强值,其中,A(x,力是被映射的像素的光强值,这个值即是可以在常规低动态范围显示器上显示的对应高动态光强的值。;;^是最大光强值,这是一个HDR值,亮度值大于^'&的像素都会映射为全白,z"'"能被设成一个无限值,用于把产生的光强值映射为一个可以显示的值;"为自定义值,当图形不需要全黑的局部时,可将"设置为非零值,本实施例中取为0.005。本实施例中,光强平均值转换器包括帧缓存器和两个管线,帧缓存器中读入有每个像素的光强值,在第一个管线中创建有一个小的绘制目标块,设有一个长方形块覆盖整个绘制目标块,第一个管线中还有光强值累加存储器,利用像素shader程序在目标缓存中的每个像素上,累加源缓存中的光强值,并且存储计算结果;在第二个管线中包含有叠加计算器,用于叠加第一个管线中的目标缓存,然后运行最后部分的计算,产生的纹理中则包含有^。实施例7:基本结构如实施例l,其中a值为0.42。实施例8:基本结构如实施例l,其中a值为0.56。实施例9:基本结构如实施例l,其中a值为0.78。实施例10:基本结构如实施例l,其中a值为0.88。权利要求1、一种高动态范围的图形映射到低动态范围的方法,其特征在于包括如下步骤,a、先从高动态范围的图形纹理中读取每个像素的RGB值;b、将RGB值转换成实际光强值;c、然后利用如下的公式将实际光强值转换成平均光强值,2、如权利要求1所述一种高动态范围的图形映射到低动态范围的方法,其特征在于所述步骤b中,按如下公式将RGB值转换成实际的光强值,lw=0.27i+0.67G+0.06丑。3、如权利要求2所述一种高动态范围的图形映射到低动态范围的方法,其特征在于所述步骤d中,a值取0.18。4、如权利要求1或2或3所述一种高动态范围的图形映射到低动态范围的方法,其特征在于所述步骤c中,在帧缓存中读入每个像素的光强值,在两个管线中进行,在第一个管线中创建一个小的绘制目标,画一个长方形块覆盖整个绘制目标,在目标缓存中的每个像素上,像素shader程序累加源缓存中的光强值,并且存储计算结果;在第二个管线中,叠加第一个管线的目标缓存,然后运行最后部分的计算,产生的纹理中则包含有&。5、一种高动态范围的图形映射到低动态范围的装置,其特征在于包括有,像素RGB值读取器,用于从高动态范围的图形纹理中读取每个像素的RGB值;RGB值光强转换器,用于将RGB值转换成实际光强值;光强平均值转换器,用于将实际光强值按如下公式转换为平均光强值,<formula>formulaseeoriginaldocumentpage3</formula>其中,Lw(x,y)表示实际光强值;x,y表示每个像素的二维坐标;乙表示平均光强值;N表示纹理像素的数量;^是个很小的常数,可取为0.0001;像素光强值縮放器,用于根据映射后所需的明亮效果,按如下公式来縮放每个像素的光强值,其中,a的取值范围在0到l之间,对于比较灰暗的图形,取较低的a值,反之,则取较高的a值;像素光强值映射器,用于按如下公式得到被映射的像素的光强值,<formula>formulaseeoriginaldocumentpage3</formula>其中,AOc,力是被映射的像素的光强值;A^是最大光强值;"为自定义值,当图形不需要全黑的局部时,可将"设置为非零值,如0.005。6、如权利要求5所述一种高动态范围的图形映射到低动态范围的装置,其特征在于所述RGB值光强转换器内包含有按如下公式将RGB值转换成实际光强值的计算器,^w=0.27i+0.67G+0.065。7、如权利要求6所述一种高动态范围的图形映射到低动态范围的装置,其特征在于所述像素光强值縮放器中,a值取为0.18。8、如权利要求5或6或7所述一种高动态范围的图形映射到低动态范围的装置,其特征在于所述光强平均值转换器包括帧缓存器以及两个管线,帧缓存器内存储有每个像素的光强值,在第一个管线中创建有一个小的绘制目标块,设有一个长方形块覆盖整个绘制目标块,第一个管线中还有光强值累加存储器,利用像素shader程序在目标缓存中的每个像素上,累加源缓存中的光强值,并且存储计算结果;在第二个管线中包含有叠加计算器,用于叠加第一个管线中的目标缓存,然后运行最后部分的计算,产生的纹理中则包含有^。全文摘要一种高动态范围的图形映射到低动态范围的方法及装置,涉及一种图形处理技术,提供一种能够有效地保障实时性要求和保护更多细节的高动态范围压缩映射到低动态范围的方法和装置,步骤是先从高动态范围的图形纹理中读取每个像素的RGB值;将RGB值转换成实际光强值;然后将实际光强值转换成平均光强值;根据映射后所需的明亮效果,缩放每个像素的光强值;最后按该公式L<sub>d</sub>(x,y)={L(x,y)[1+L(x,y)/L<sup>2</sup><sub>white</sub>]+σ}/1+L(x,y)计算被映射的像素的光强值。本发明可以高效地压缩高动态范围图形,并保存其细节和对比度,映射到低动态范围,以适应现有的常规低动态范围的显示设备,而且能够有效地保障实时性要求,具有易于实现、良好的可扩展性等优点,可满足三维场景(如三维游戏)、虚拟现实的要求。文档编号H04N3/15GK101212545SQ20071005095公开日2008年7月2日申请日期2007年12月24日优先权日2007年12月24日发明者何明耘,何晓曦,房春兰,蔡洪斌,航邱,陈雷霆申请人:电子科技大学