王京生
【摘 要】 在了解图像的状态的基础上,利用高动态范围图像存储格式、改善显示设备的电光转换特性,做到尽可能多地 保留原始图像中细节。
【关键词】 图像状态;4K图像;图像文件格式;图像显示;标准动态范围;高动态范围(HDR);OpenEXR
文章编号: 10.3969/j.issn.1674-8239.2017.03.008
Image Status and HDR Image
WANG Jing-sheng
(CCTV,Beijing 100020,China)
【Abstract】On the basis of understanding the state of the image, using high dynamic range image storage format, improving the electro-optical conversion characteristics of display devices, do keep in the original image details as much as possible.
【Key Words】image states;4K image;image file format; image display; SDR; High Dynamic Range(HDR); OpenEXR
1 图像状态及其转换
1.1 摄影机记录图像文件格式的分类
目前,各厂家的超高清(4K)摄影机记录的文件格式根据OETF(光-电转换函数)的不同大致分为三类:
(1)正常视频图像,即按照γ=0.45,色域采用ITU-R BT.709记录图像;
(2)log(对数曲线)图像,即按照厂商提供的log曲线记录图像;
(3)RAW格式,即在线性(linear)空间下,元数据保留最多的一种图像格式。
如果要在普通的具有标准动态范围、γ(伽马)值采用2.2或2.4的显示器或监视器上回放上述三种格式的文件,由图1可见,只有正常视频图像是可正常还原的;log图像明显很灰,饱和度也不足;RAW格式图像对比度过大,整体亮度偏暗。虽然已有部分校色软件提供log和线性空间图像的显示模式,但大多数电视工作者还是习惯在正常的视频模式下工作。怎样才能让log和线性空间下的图像在监看和预览时看到正常的色彩还原呢?这时,就需要在图像状态之间进行转换。
1.2 图像状态的定义及种类
图像状态是指图像在数字化处理过程中,因数据结构格式的不同,而使用的多种色彩编码方式。现已是一个标准的概念框架(ISO 22028-1),用于在色彩空间上有着相似特点和需要同样处理的图像分类,主要可分为以下三种。
(1)场景相关(Scene-referred)图像
场景相关图像是具有高动态范围(High Dynamic Range,HDR)的图像,无论是真实或三维虚拟场景中使用的都是与场景中的亮度或光谱辐射成正比的编码值;没有加载色调映射算法,编码值容许大于1。如果编码使用线性坐标,图像为场景线性(Scene-Linear)。大多数的RAW格式文件都是线性场景相关图像的文件。
如果要在普通显示器上显示HDR图像,需要采用一些方法,如可采用与log曲线相似的平滑S型曲线压缩超亮部分以及提高对比度来补偿显示效果,把像素的数值映射到这台显示器的色彩空间里,这种映射方法称为色调映射(Tone-mapping)。目前,大部分SDR(标准动态范围)显示设备在显示HDR图像时都是通过加载色调映射算法。但是,大多数色调映射算法没有考虑到图像亮度信号范围被压缩时,色度信号范围同时也被压缩了,导致显示图像的色彩不够鲜艳。尽管一些算法根据色彩模型对压缩图像的颜色还原进行了一定的补偿,但还是不能在视觉上完全恢复HDR图像的原始色彩。
(2)输出相关(Output-referred)图像
输出相关图像也被称为“显示相关图像”,是具有正常的动态范围图像,是被色调映射算法修正过的,编码的最大值是1(在整数的情况下,归一化后),但图像亮度值与原始场景中亮度不成正比。输出相关图像理论上是为显示准备的,但并不意味着简单地显示在某个特定的设备上,如在一个特定的监视器上显示時,可能已加载了色调映射算法,但还需要加载特定的γ曲线进行修正。例如sRGB(standard Red Green Blue,微软联合惠普、三菱、爱普生等厂商联合开发的通用色彩标准)图像、高清视频、DCI(Digital Cinema Initiatives,数字电影倡导组织)数字电影,都是输出相关图像的类型。
(3)中间参考图像
中间参考图像(或称中间媒介图像)指介于场景相关和输出相关之间的图像,颜色已经被处理,所以图像亮度值与原始场景亮度不成正比,也不能正确地在显示器中显示。中间参考图像的例子包括log编码的胶片扫描图像、学院密度交流(ADX)图像及一些数字电影摄像机的输出图像等。
1.3 图像状态的转换
线性图像工作流程中CG(Computer Graphics,计算机图形)渲染和合成时如何转换彼此间的图像状态是很容易混淆的。大部分的混乱来自“线性”一词,实际上有不同的线性编码:场景相关和输出相关。理解线性场景相关图像和线性输出相关图像(也被称为“线性化的输出相关图像”)之间的差异是非常重要。在这两种情况下,编码与亮度是成正比,换句话说,没有经过γ校正。 但差异在于,线性场景相关图像中编码值与原始场景的亮度成正比,而线性输出相关图像的编码值与显示的亮度成正比。这种算法是让计算机图形学采用线性的色彩空间,“线性”通常指的是场景线性色彩空间,而不是指输出线性的色彩空间。
线性场景相关图像具有很高的动态范围,如要在一种动态范围有限的显示设备上观看,为了让图像看起来还原度高,在γ校正之前需要加载相应的色调映射算法。相反,将视频图像转换到线性场景相关图像时,简单地去除γ校正还不行,还需要加载逆向色调映射算法来恢复原始场景的亮度值。但是,如果一个输出相关图像作为纹理来控制漫反射或类似的属性,那么它可能不适合加载逆向色调映射算法。
为了便于理解,相对log图像而言,视频图像有时也被称为“线性”。视频图像实际上是经过γ校正的输出中间参考图像,所以一定要去除γ校正转换为线性输出相关图像,再加载逆向色调映射算法转换为线性场景相关图像。
log编码的胶片扫描图像、场景相关图像、视频图像与线性的输出相关图像之间的转换方式如图2所示。
2 HDR及实现技术
2.1 HDR
动态范围是指图像中所包含的从“最亮”至“最暗”的比值,也就是图像从“最亮”到“最暗”之间灰度划分的等级数。动态范围越大,所能表示的层次越丰富,所包含的色彩空间也越宽广。
大家熟知的CIE-xy色度图(见图3)是CIE-Yxy(或称作CIE-xyY)模型(见图4)在x-y平面上的投影。而 CIE-Yxy是由CIE-XYZ变换得来,其中:。Yxy中的Y表示光的亮度,x、y分量的取值范围是[0,1],如图4所示,色域是立体的,Y值越大,亮度越高,动态范围越大,图像包含的细节就越丰富,色域的容积越大。BT.709中规定最高亮度为100 nit(cd/m2),目前HDR图像最高亮度可达1 000 nit,甚至10 000 nit。图5所示为在同等亮度下,BT.2020与BT.709色域的比较示意图(图中灰白色网格表示BT.2020色域,彩色网格表示BT.709色域)。可见,随着HDR图像最高亮度的增加,色彩的容积越大(见图6),在高亮度区域可观察到的色彩细节越丰富。
高动态范围(HDR),顾名思义就是从“最亮”到“最暗”可以达到非常高的比值。对最大亮度除以最低亮度的结果取对数,得到的结果就是动态范围的相对数值,单位为dB。
公式中,Intensity是指光线的强度。
根据公式计算,在亮度通道使用8 bit量化的情况下,可计算得出动态范围的数值约为2.4,加上单位就是48 dB;同理,可以计算得出16 bit的亮度通道的动态范围的数值约是4.8,即96 dB,是使用8 bit亮度通道的一倍。
真实场景中的动态范围从星光(10-6 cd/m2)到日光(108 cd/m2),能够跨越1014个数量级。人类视觉系统的动态范围很广,通过调节瞳孔的收缩,人眼可以适应夜晚的星光,也能适应白天强烈的日光,视觉系统可分辨的亮度动态范围达109数量级,如果视觉系统不进行适应性的调节,也能分辨105数量级的动态范围,在100 dB左右(为19挡~20挡光圈),见图7。
在HDR模式下,理论上动态范围的数值最高可以到达76.8。在OpenEXR文件格式中表现出来的HDR的数值最大值为12.0,约为240 dB,远远高出单纯使用16 bit亮度通道的所带来的动态范围,这是采用了优秀算法的结果。OpenEXR所能实现的最大动态范围已经超过了人眼的109数量级,带来了更加真实的视觉体验。
2.2 OpenEXR高动态范围图像格式
目前,影视后期合成及校色过程中通常使用OpenEXR(或简称为exr格式)作为文件的交换及归档格式,这是一种开放标准的高动态范围图像格式,可以存储一些后期合成处理所需的数据,也可存储比常规的8 bit和10 bit图像格式更高的动态范围和颜色精度;支持16 bit浮点数、32 bit浮点数和32 bit整数的像素颜色值(IEEE 754 标准)。OpenEXR采用了SM10E5编码格式,取16 bit表示亮度数值,其中包括1个符号位、5个指数位和10个浮点数位,能存储超过30挡光圈动态范围的图像(一般数字摄影机动态范围在14挡光圈左右),如图8所示。这样通过浮点数值的方法,大大拓宽了动态范围。
根据实际的计算结果,在通常情况下,OpenEXR可以提供和人眼基本相同的动态范围:最小值为 0 00001 0000000000=2-14≈6.10352×10-5,最大值为 0 11110 1111111111=(2-2-10)×215=65 504,动态范围约为180 dB。
在扩展的模式下,OpenEXR可以提供从最暗到最亮的数值分别为0 00000 0000000001=2-24≈5.96046×10-8和65 504,化为动态范围表示就是240 dB(约为40挡光圈动态范围)。
OpenEXR的多级分辨率和任意数据通道存储使其非常适合用于合成,它能把高光(specular)、漫反射(diffuse)、阴影、Alpha通道、RGB、法线和其他对后期合成有用的数据存储于一个文件里,如果对三维渲染出来的图像画面高光或漫反射不满意,合成师可以根据导演要求在合成软件里对指定的通道进行调整。
OpenEXR内置三种无损压缩算法,包括两种不同的zip压缩算法,对于没有很多噪点的图像,这两种zip压缩方法最有效;而PIZ压缩算法则更适合于噪点较多的图像。渲染exr格式图像时,通常有以下压缩选项。
None:无压缩。
RLE:与TGA图像格式的标准压缩算法相似的压缩算法。
zip(单行):对单行像素信息使用zip方式的压缩。
zip(16行像素块):对16行像素块进行的zip方式压缩,对胶片噪点不多的计算机绘制图像是最有效的压缩算法。
PIZ(小波压缩):一种新的结合小波和霍夫曼编码的压缩算法,对噪点比较多的图像最为有效。
PXR24:来自皮克斯的压缩算法,先把数据转换为24 bit,再进行zip压缩,它对于16 bit和32 bit整数值数据是无损的,但对于32 bit浮点数据则有轻微损失。
B44:对半浮点数据是有损的,对32 bit浮点数据不进行压缩。
B44A:对相同颜色的区域进行进一步压缩,是对B44的扩展,常规B44压缩则无视图像的内容。
2.3 改善EOTF(电—光转换函数)
近些年来,图像显示技术有了突飞猛进的发展,而SDR监视器显示的最高亮度只有100 nit,最低亮度为0.1 nit,对比度为1 000∶1,动态范围值是3,也就是说SDR监视器最多只能显示10挡光圈的动态范围。真正的HDR显示设备首先要提高最高亮度值,最好要达到1 000 nit(已有厂家可做到4 000 nit);第二,增强对比度,最好达到1 000 000∶1,动态范围值是6,可显示20挡光圈左右的动态范围(已与人眼的动态范围非常接近);第三,还要改善显示设备的EOTF,几种不同电光转换函数的特性见图9。目前,有两个新的转换曲线在ITU-R BT.2100标准中被推荐:(1)杜比实验室的Dobly Vision HDR方案提出的感知量化编码(PQ,perceptual quantizer),(2)由BBC和NHK联合研发的混合对数伽马(HLG, Hybrid Log Gamma)。
杜比PQ采用12 bit色彩深度,其亮度最高可达到10 000 nit。该方案根据显示端人眼对亮度分辨的閾值来确定量化比特的要求,符合人的视觉的生理和心理,对量化比特的使用更为经济。
而BBC与NHK提出的HLG方案通过混合两种不同的曲线来分别对HDR信号当中所包含的高亮和暗部区域进行解码,其中暗部区域使用标准伽马曲线(这与BT.709的标准基本相同),而高光部分(超过100 nit)则使用对数曲线,在支持HDR的同时也可以兼容SDR图像的显示。
3 结束语
高动态范围电视图像将为广大观众带来全新的视觉体验,更加明亮、色彩丰富、更高对比度的图像,将使娱乐节目生动艳丽,令新闻报道节目现场感十足,大大提高观众们的视觉感官效果。