黄嘉宝 顾晓娟
(1.北京电影学院中国电影高新技术研究院,北京 100088)
(2.北京电影学院影视技术系,北京 100088)
近几年来,高动态范围 (High Dynamic Range,HDR)技术在影视领域中逐渐兴起:在电视领域,越来越多的消费级HDR 显示器投入市场,国内外的电视台和网络媒体都纷纷积极推动HDR节目在业务上的发展;在电影领域,具有超高光通量的激光光源放映机以及大尺寸LED 银幕的出现,使得人们可以在电影院中观看HDR 电影。
然而,HDR 技术在行业内迅速发展的同时,也存在着一些限制。在制作端,拍摄、制作、存储HDR 内容需要更高的成本、更高的技术要求和一定的设备支持;在用户端,家用电视机、电脑、手机等显示设备从SDR 过渡到HDR 还需要很长一段时间;在影院端,由于成本和技术的制约,放映设备从SDR 升级为HDR 也非一蹴而就。因此,目前大部分电视节目、电影、网络视频等内容都还是以SDR 的标准进行拍摄、制作和播出的,而这些SDR的发行母版并达不到HDR 电视频道、院线及网络平台的播出标准。面对HDR 影像需求量的不断增长,解决目前HDR 内容匮乏的方法之一就是使用逆色调映射算法(Inverse Tone Mapping Operator,iTMO)将现有的SDR 影片转换成HDR 版本。
逆色调映射,指的是将影像从低动态范围拓展为高动态范围,使其在HDR 显示设备上以适合的对比度显示。目前,国内外已经有许多学者做过了将SDR 内容转换为HDR 的研究,现有的算法可以分为两大类,一类是模型驱动 (Model-Driven)的算法,另一类是数据驱动 (Data-Driven)的算法。
本文首先对不同时期、不同分类的逆色调映射算法的发展历史进行了详细的梳理,探讨其在当今影视领域中的应用并举出了实例,最后提出了几条逆色调映射算法在内容创作上的设计原则,对该技术的前景做出了简要的分析。
模型驱动的逆色调映射算法可以由一个数学公式来描述规律,表示为:L=f (L),其中L对应SDR 影像亮度,f(·)表示逆色调映射,L对应映射后的HDR 影像亮度。模型驱动的算法在处理图像上有一定的优势,例如计算量小、图像处理速度快,以及可以直观地用曲线来表示。按照图像处理的方式,目前算法的模型可分为四大类,分别是全局模型、分段模型、基于蒙版的模型和基于用户的模型。
2.1.1 全局模型
在全局模型中,SDR 影像的同一帧画面中的每个像素都应用同一种逆色调映射方式进行变换。
(1)线性变换模型
Akyüz等人在不同动态范围下的主观感受实验中发现,SDR 图像不需要经过复杂的处理,仅仅通过简单的线性缩放就能达到令人接受的HDR 效果。他们采用如下公式对SDR 影像进行亮度范围的拓展:
其中L表示画面中的最高亮度,L表示画面中的最低亮度,L表示HDR 显示器的最高亮度。
虽然Akyüz在主观实验中发现对亮度进行线性缩放使得影像的平均亮度更亮,更能得到观测者的青睐,但是他们的算法在今天可能并不适用。首先,该算法中映射后的HDR 图像亮度受每帧画面的最大亮度L及最小亮度L所影响,因此它不适用于动态视频的逆色调映射,因为可能造成闪烁的现象。其次,随着目前HDR 显示技术的发展,HDR显示器的峰值亮度可以达到4000尼特及以上,那么线性变换使得影像的平均亮度大大提升,从而在视觉上造成令人不适的结果。
(2)非线性变换模型
Masia等人提出自适应伽马曲线,适用于拓展曝光过度图像的亮度范围。通过测量图像的最大亮度、最小亮度和平均亮度,为每幅图像计算出合适的伽马值,进而对SDR 图像进行伽马校正,提高其动态范围。其公式可表示为:
其中L表示HDR 显示器的峰值亮度,L表示SDR 显示器的峰值亮度,γ=a×key+b,a和b 为常数 (a=10.44,b=-6.282),key表示画面的亮度倾向,该值越高,画面的平均亮度越高,反之画面的平均亮度越低,计算方式为:
L表示图像的平均亮度,计算方式为:
(x,y)表示图像中像素的坐标,δ是一个为了避免L(x,y)=0时产生奇异性的一个很小的数。
即便使用伽马曲线可以控制图像的平均亮度在一个不太高的区间内,这种算法的局限性在于它可能增大图像的对比度,使得转换成HDR 后的影像损失一部分的暗部细节。
Huo 等人受人类视觉系统 (Human Visual System,HVS)特性的启发,提出了一种基于视网膜响应的逆色调映射算法。算法模拟了人眼视觉适应的特性,将输入亮度进行非线性变换,其公式可表示为:
式(5)中的V表示SDR 影像的码值,σ表示映射为HDR 影像后的像素 (x,y)周围的局部亮度,使用双边滤波对周边像素进行加权平均计算该值,即σ=L(σ,σ),其中σ表示空间域中的权重,σ表示亮度域上的权重。δ是一个为了避免分母为0的一个很小的常数,n表示灵敏度控制指数,取值为0.7 到1.0,原文中作者建议该值取0.9。
该算法的可取之处在于从人体生理学的角度上进行研究,然而,它需要人为地对n的值进行调参。其次,使用双边滤波导致了算法的时间复杂度较高,需要逐帧对画面的局部循环进行计算,且卷积核的尺寸越大,滤波的速度越慢。另外,与Masia的算法类似,Huo的算法结果会随着画面中视觉元素的变化而变化,将它们应用在动态视频中可能会产生画面闪烁的现象。
2.1.2 分段模型
分段模型将同一帧SDR 画面根据亮度区间进行分组,每组应用不同的逆色调映射方式对像素的亮度范围进行拓展。
Meylan等人提出了一种色调缩放函数,该函数为包含了两种不同斜率的分段线性函数,分别对图像的漫反射区域和高光区域的亮度进行不同程度的线性缩放,分段拓展图像的动态范围。另外,在高光区域应用了图像平滑,以减少分段缩放造成图像灰度变化的不连贯,其公式可表示为:
2.1.3 基于蒙版的模型
基于蒙版的模型利用单色蒙版对画面的不同区域进行划分,一般将画面分割成高光区域和非高光区域,进而对不同的区域进行相应的处理。比起全局模型和分段模型,基于蒙版的模型更适用于对画面进行细化处理,正因如此,该模型的计算量更大,运算时间相对较长。
Banterle等人提出了一种基于蒙版的逆色调映射框架,首先使用逆伽马变换将输入的SDR 图像亮度进行线性化处理,接着应用基于Reinhard的摄影学色调重现算子的逆色调映射算子将SDR 图像拓展成HDR 图像,同时根据图像分割出来的高光区域计算出插值权重,最后使用线性插值对拓展后的图像与原始的SDR 图像进行组合。
Rempel等人提出了一种名为LDR2HDR 的逆色调映射算法,该算法首先将SDR 图像中非线性的像素值通过逆伽马变换转换成线性亮度,接着使用线性变换扩大图像的对比度,同时使用双边滤波对图像进行平滑处理以抑制噪声的产生;下一步使用灰度蒙版分割出画面的高光区域,并对蒙版应用高斯滤波以柔化边缘,然后使用边缘停止函数(Edge-stopping Function)检测画面里高光的边缘,以防止羽化后的蒙版影响高光边缘外的像素;最后对蒙版分割出的高光区域进行线性增强。如图1所示,LDR2 HDR 将输入的SDR 图像 (左1)使用灰度蒙版(右2)将高光区域划分出来进行亮度增强,最终输出HDR 图像(右1)。
图1 Rempel的LDR2HDR 逆色调映射算法流程①
Kovaleski和Oliveira也提出了一种基于蒙版的模型,它包括了基于双边滤波 (Cross-Bilateral Filtering)的亮度增强函数,可以处理曝光不足的画面。在他们的算法中,第一步对原SDR 图像应用双边滤波以去除噪声,然后对图像线性化处理;第二步,使用双边网格将图像中码值高于230 (原文使用8比特位深的图片进行实验,码值在0~255间)的像素区分开,并对其应用双边滤波,以平滑高光区域的轮廓,同时保证了物体的边缘不受影响;最后,将原SDR 的亮度映射到目标显示器的动态范围内,同时高光区域也得到了增强,二者相结合得到最终HDR 画面。后来该算法得到了改进,图像无论在任何曝光条件下都能完成高质量的转换,并且支持实时对SDR 视频进行处理。
2.1.4 基于用户的模型
在基于用户的模型中,需要涉及到用户的参与和交互,和上文所述的几类自动算法相比,此类算法属于半自动模型。
Wang等人提出了一种基于用户的算法,需要人为地在图像中使用画笔工具框选出欠曝或过曝的区域,并框选出与之具有相似纹理的正常曝光区域,通过纹理合成技术来重构欠曝或过曝区域的细节。与自动的算法相比,虽然Wang的算法在重构欠曝或过曝区域的细节上更具有真实性,但需要耗费较长的时间进行人工处理,并且该算法不适用于视频转换。
Jain 等人提出了Internet HDR 算法。和Wang的算法类似,该算法涉及到用户交互,不同之处在于Wang使用原图中相似纹理处来恢复丢失的信息,而Jain通过使用Google图像搜索引擎来获取与原图相似的信息,以恢复SDR 图像中阴影和高光区域丢失的信息来创建HDR 图像。
图2 Didyk的半自动系统的软件截图②
Didyk等人开发了一套用于增强SDR 视频中高光区域的半自动系统,首先对画面中的过曝区域进行检测,并自动对过曝区域进行预分类,将其分成漫反射、镜面反射、光源三个部分,如图2中蓝色、品红、黄色三种色块分别与之对应,然后将分类结果显示给用户;在用户协助阶段,用户可以选择接受或者修改系统自动分类的结果;最后使用一个自适应非线性色调曲线 (Adaptive Non-Linear Tone-Curve)对镜面反射区域和光源两个部分进行亮度和对比度的增强。与其他自动算法相比,人工介入更能保证高质量视频的输出,同样,该半自动系统需要人为花费一些时间进行校正和质检的工作。
近几年来,基于深度学习的图像处理提供了数据驱动的解决方案,这些算法模型基本上都不再使用封闭的数学公式来描述。它们和基于模型驱动的算法的区别,首先,在建模方式上,模型驱动的算法是人类根据现实规律来建模,而数据驱动的算法是计算机在大量数据的基础上经过训练和拟合,形成一个决策模型。其次,在对图像的处理方式上,模型驱动是对图像中的像素进行直接处理,而数据驱动是对图像的抽象特征进行计算。另外,在处理结果上,大部分基于模型驱动的算法都不能补偿由于图像量化、曝光不足或过度、伽马校正等因素造成的图像信息丢失,它们解决的只是图像亮度的拓展,而基于数据驱动的图像增强算法不仅能改变图像的亮度曲线,还能自动地预测并重建出图像中丢失的信息。
这类算法的建模步骤分为三步,首先需要收集大量的数据,其次建立起一个初步的神经网络,最后利用采集到的数据对该神经网络进行训练。其中,卷积神经网络 (Convolutional Neural Network,CNN)模型具有很高的学习能力,并且它的结构非常适用于图像处理。
(1)基于自编码架构的逆色调映射模型
自编码 (Autoencoder)架构由编码器 (Encoder)和解码器 (Decoder)两个部分组成。编码器是全卷积网络的结构,它负责提取输入的SDR 图像或影像的潜在特征。解码器是反卷积网络的结构,它负责将提取到的潜在特征转换为HDR 图像或影像。
图3 Endo的深度逆色调映射算法流程③
2017年,Endo等人提出了第一个基于深度学习的逆色调映射算法,该算法的主要思想基于包围曝光技术,从一张SDR 图像生成不同曝光的SDR 图像,最终合成一张HDR 图像。图3描述了该算法的学习和推理两个阶段:在学习阶段,使用摄影机响应曲线 (Camera Response Function,CRF)对HDR 图像生成k张不同曝光的SDR 图像序列,让神经网络学习在这k张图像的同一像素中不同亮度值的变化;在推理阶段,学习后的模型将生成具有k个不同曝光量的SDR 图像序列,最后通过合并这些图像以创建HDR 图像。
同年,Eilertsen等人设计了一种基于混合动态范围自动编码器的全卷积神经网络,通过预测图像中高光区域因过曝而丢失的信息,将SDR 图像重建为HDR 图像。SDR 输入图像由编码器进行编码,通过卷积运算对输入的图像数据进行降维,编码后的图像由HDR 解码器进行解码,进而将抽象的潜在特征可视化输出的HDR 图像。同时残差连接在编码器和解码器之间传输数据,以利用高分辨率图像细节来重建HDR 图像。该算法的局限在于不擅长处理暗部区域,但它能够还原过曝区域的细节,前提是这个范围不宜太大。
Yang等人提出了一种深度往复式HDR 转换框架。这个模型适用于曝光不足或曝光过度的图像校正,它包含了两个卷积神经网络,第一个网络负责处理输入的SDR 图像,将其转换成HDR 图像并重构阴影和高光部分丢失的细节,而第二个网络负责对重建的HDR 图像进行色调映射并输出细节经过增强的SDR 图像。
Xu等人提出利用过去基于深度学习的算法来转换动态视频会导致画面闪烁的问题,因此他们设计了一种基于深度学习的视频逆色调映射算法,可对视频进行处理,同时解决帧间的闪烁问题。他们的视频转换框架由一个3D 全卷积神经网络和一个3D 反卷积神经网络构成,其中3D 的卷积神经网络在视频处理领域发挥巨大的优势。但他们使用的训练样本是在一个镜头中取连续的21帧组成的视频序列,即该算法是基于单个镜头来处理视频的,它的局限性在于不能处理多个镜头、多个场景的常规影片。
(2)基于生成对抗网络的逆色调映射模型
生成对抗网络 (Generative Adversarial Network,GAN)由生成模型和判别模型组成,在每次的单独交替迭代训练中,生成网络和判别网络在博弈的过程中不断进行优化。
Ning等人提出了基于生成对抗网络的逆色调映射模型,其中生成网络为自编码模型,负责将输入的SDR 图像转换成HDR 图像,而判别网络为分类模型,负责将生成网络输出的HDR 图像判别为“真”HDR 图像或“假”HDR 图像。判别网络将分类后得出的结果由0到1以及之间的数字表示,若结果为1,则判定为“真”HDR 图像,若结果为0,则判定为“假”HDR 图像,若结果为0到1之间时表示图像为“真”HDR 的概率大小。该判定结果进而反馈给生成网络,作为损失函数来不断优化网络中的参数。
(3)基于新型卷积神经网络架构的逆色调映射模型
Marnerides等人提出了一种基于Expand Net的深度卷积神经网络,用于在SDR 转换到HDR 的过程中重建丢失的信息。设计该架构而摒弃自编码架构是为了避免编码器在对图像信息进行下采样和解码器对数据上采样为图像的过程中数据受到一部分的损失,造成图像清晰度的下降,以及减少光晕、条带等图像劣化的现象。Expand Net架构分为三个分支,即局部分支、扩张分支和全局分支,分别负责处理SDR 图像的高频特征、中频特征和高频特征,然后三个分支的处理结果进行融合,并由一个小的卷积层进行进一步处理,以最终生成HDR 图像。
目前在影视领域中,将SDR 内容转换为HDR的需求量越来越大,因此在商业上也出现了一些利用现有的SDR 母版制作成HDR 母版以及在实况转播中实时将SDR 信号上变换为HDR 信号的解决方案。
将SDR 的视频母版制作成HDR 版本实际上属于内容创作的范畴,这个过程一般在DI系统中完成。英国Film Light公司的Baselight调色系统针对HDR 调色进行了一些优化,并推出了逆色调映射工具Boost Range,使得SDR 素材的动态范围拓展到HDR 的动态范围上。该工具可以对每个镜头的逆色调映射效果进行微调,例如调节高光拓展的幅度、镜头整体曝光、峰值白、对比度、饱和度、高光饱和度和趾部。
图4 Baselight中的Boost Range工具
图5 灰度渐变图
图6 灰度渐变图映射前 (左)及映射后 (右)示波器截图,纵轴为图像中像素的绝对亮度 (单位:尼特)
以亮度从100 尼特映射到1000 尼特为例,Boost Range工具基于某种非线性变换模型对SDR图像进行逆色调映射。使用该工具对图5所示的灰度渐变图的亮度进行映射,参数设置如图4 所示,其中Film Light建议将Boost参数的值设置为1,其他参数设置为初始值。映射前的亮度在0~100尼特的区间均匀分布(见图6左),映射后图像的亮度在暗部和高光区域得到了非线性的拓展,而中间调部分的亮度趋向于使用线性的方式进行提高 (见图6右)。
图7为主观测试图在使用Boost Range工具进行逆色调映射前后的对比,图中红色方框强调了画面中亮度发生明显变化的区域 (见图7 左上、右上),如天空中云层反射的太阳光、人物面部和水果的高光和银质器具表面的镜面反射光。结合图7左下、右下示波器截图可见,该工具并不会大幅度提升画面中的暗部及中间调的亮度,而画面中的高光区域得到了适当的拓展。另外,由于亮度的整体提升,映射后画面的饱和度稍低于映射前画面的饱和度。
图7 测试图映射前主观图 (左上)、映射后主观图 (右上)④及映射前示波器截图 (左下)、映射后示波器截图 (右下),纵轴为图像中像素的绝对亮度 (单位:尼特)
除此之外,可以使用在DI系统中加载3D 查找表(Look-up Table,LUT)的方式来对SDR 素材进行亮度范围的拓展。例如,为了促进HLG 产品的推广,BBC 授权了一系列LUT 的许可,其中包括了四种BT.709 (SDR)转换到BT.2100 HLG 的3D LUT,它们分别适用于不同的应用条件,即显示相关的保持SDR 外观的直接映射、场景相关的匹配HDR 摄影机的直接映射、显示相关的保持SDR 创作意图的逆色调映射、场景相关的匹配HDR 摄影机的逆色调映射。
使用信号转换器可以实时地将SDR 视频信号转换为HDR 视频信号,这种方式通常用于电视台的实况转播。市面上常见的转换设备有SONY 的HDRC-4000 和AJA 的HDR FS-HDR 等,用 于4K 现场直播制作流程中4K/HDR 和HD/SDR 同步制作和播出,大大节省HDR 和SDR 独立制作的时间和成本。
高动态范围影像的制作已经成为了一种趋势,但是目前大部分影视工作者仍然以制作SDR 内容为主,而逆色调映射技术的研究正好解决HDR 内容不足的迫切问题。另外,现有的逆色调映射算法的优势及不足之处都可以为今后算法的设计提供有用的理论参考。为了展现高动态范围影像独特的魅力,从内容创作的角度出发,逆色调映射算法的设计可以依据以下几个原则:
(1)画面的平均亮度不能过度拓展。由于影像中大部分元素都在中间调的范围内,若大大提高影像的平均亮度,画面的中间调过于明亮会导致观众眼睛的不适。报告ITU-R BT.2390-7 建议,对于峰值亮度为1000尼特的显示器而言,漫射白的亮度应该在200尼特左右,镜面反射及光源的亮度应该在200尼特到1000尼特这一区间内。
(2)适当将画面的最高亮度拓展到显示器的峰值亮度。相比传统的SDR 影像,HDR 影像利用了更多的资源去存储从漫射白到高光白的细节信息。在影像质量允许的范围内,以及在不影响画面主体作为首要兴趣点的前提条件下,可以尝试把画面中例如火焰、爆炸、灯泡等元素的高光推到极限,其原因首先是这充分利用了HDR 影像的码值,其次是使得影像更接近于真实场景,增强观众的沉浸感。
(3)保持画面暗部的细节。HDR 显示器的黑电平比常规显示器的黑电平要更低,因此HDR 影像具有层次更丰富的暗部细节。在对画面整体进行亮度缩放的同时,需要注意画面的暗部应该适当地向更低的电平进行拓展。
(4)两个相邻镜头的平均亮度不宜相差过大。虽然人眼能感知到的动态范围高达24档,但是静态的动态范围只有12档左右,人眼从观看较亮画面到较暗画面时会进行暗适应的过程,反之进行明适应的过程,而且暗适应的时间比明适应的时间要长很多。因此,若在长时间观看HDR 影像时不断地调节眼睛静态的动态范围,观众会造成用眼疲劳的问题。
(5)合理地对色彩的饱和度进行处理。对于同一码值的像素而言,亮度越低,人眼感知到该像素的饱和度越高,亮度越高,人眼感知到该像素的饱和度越低。因此,对SDR 影像进行动态范围的拓展,可能会稍微降低画面的饱和度,尤其是高光部分。在这种情况下,需要适当对提升了亮度的高光区域进行一些饱和度的补偿。
现在,我们正处于一个SDR 向HDR 过渡的时代,而逆色调映射算法正是这个时代的必然产物。在未来,这项技术也会有更广阔的发展空间。过去的电影由于拍摄、制作、发行和放映条件的限制,其分辨率、动态范围、色彩空间等画面的质量指标都没有达到最理想的效果,因此逆色调映射算法与超分辨率、色彩空间扩张、2D 转3D 等技术同理,都是为了将从前低质量的作品重制为高技术格式的影像,使得电影这一门艺术在科技不断更新的时代中一直传承下去。❖
注释
①图片来源:Rempel A.,Trentacoste M.,Seetzen H.,et al.Ldr2Hdr:On-the-Fly Reverse Tone Mapping of Legacy Video and Photographs[J].ACM Transactions on Graphics,2007,26 (3):39.1-39.6.
②图片来源:Didyk P.,Mantiuk R.,Hein M.,et al.Enhancement of Bright Video Features for HDR Displays [J].Computer Graphic Forum,2008,27 (4):1265-1274.
③图片来源:Endo Y.,Kanamori Y.,and Mitani J..Deep Reverse Tone Mapping [J].ACM Transactions on Graphics,2017,36(6):177.1-177.10.
④图片来源:北京电影学院影视技术系高技术格式测试片 《如你所见》镜头素材。