文 / 软件工程师 Manfred Ernst 和 Bartlomiej Wronski,Google Research
我们从未停止对 Pixel 进行优化,并会通过定期更新,让它变得更实用、更有趣以及更多的功能,如最近对相机应用的 V8.2 更新。其中一项优化(已于十月份在 Pixel 5 和 Pixel 4a 5G 中推出)便是这一“底层”功能:基于曝光序列的 HDR+ 拍摄。此功能会通过融合以不同曝光时间拍摄的图像来提高图像质量(特别是光影部分),从而产生更自然的色彩、更丰富的细节和纹理,并降低噪声。
HDR 场景为何难以拍摄?
原始的 HDR+ 连拍系统是高质量手机拍照成像的关键:快速拍摄一组故意曝光不足的连续图像,然后将融合、渲染,使图像在色调范围内保留细节。但这个系统有一个不足之处,那就是在高动态范围 (HDR) 场景中的阴影部分噪声较大,这是因为所有拍摄的图像都曝光不足。
图像传感器自身的物理限制,以及阴影部分的信号较弱,共同导致 HDR 场景拍摄困难。无论是针对阴影还是高光场景,我们都有办法正确曝光,但无法在单次曝光中兼顾两者。
摄影师有时会拍摄两张不同程度的曝光,然后将其融合来克服这些限制。这种方法称为曝光融合 (exposure bracketing),可以实现两全其美的拍摄效果,但通过手动调整参数来完成这个过程非常耗时。此外,它在计算成像方面也非常具有挑战性,因为它需要做到以下几点:
在保持 Pixel 相机快速、可预测的拍摄体验的同时,拍摄额外的长曝光帧。
利用长曝光帧,同时避免帧间物体运动产生的鬼影。
为了克服这些困难,原始的 HDR+ 系统采用了一种不同的方法来处理高动态范围场景。
HDR+ 的不足
HDR+ 所用的拍摄策略是建立在曝光不足基础上的,这可以避免高光部分的细节丢失。虽然这种策略以牺牲阴影部分的成像质量为代价,但 HDR+ 通过使用连续拍摄抵消了增加的噪声。
此方法适用于具有中度动态范围的场景,对于 HDR 场景却无任何帮助。如要究其原因,我们需要更深入地了解这两种噪声是如何在图像中出现的。
连拍中的噪声
一种重要的噪声叫做散粒噪声 (shot noise),它仅取决于拍摄时获得的总进光量,也就是 N 个帧的进光量之和。每个曝光时间为 E 秒的帧,其散粒噪声与一个曝光时间为 N × E 秒的单个帧相同。如果这是所拍摄图像中唯一的噪声类型,那么连续拍摄可以达到和长时间曝光一样的效果。
遗憾的是,在拍摄每一帧时,传感器都会带入第二种噪声:读出噪声 (read noise)。读出噪声与拍摄时的进光量无关,而是取决于所拍摄的帧数,也就是说,每拍摄一帧,就会额外增加固定量的读出噪声。
这就是为什么用连拍方法来减少总噪声不如简单地长时间曝光来得有效:多帧拍摄虽然可以减少散粒噪声,但也会增加读出噪声。虽然读出噪声随帧数的增加而升高,但我们仍然可以通过连拍降低整体噪声,但这样做会降低效率。如果将一个长曝光分解成 N 个短曝光,则最终图像中的信噪比会因为读出噪声的增加而降低。
在这种情况下,要获得单次长曝光的信噪比,我们则需要合并 N2 个短曝光帧。在下面的例子中,如果一个长曝光被分成 12 个短曝光,我们必须拍摄 144 (12 × 12) 个短帧来匹配阴影部分的信噪比!
拍摄和处理这些帧会花费更多时间,连拍和处理连拍可能需要一分钟以上,从而导致糟糕的用户体验。相反,采用包围式曝光则使我们能够在兼具高光保护和降噪功能的情况下,同时拍摄短曝光帧和长曝光帧。
基于多曝光融合的解决方案
多曝光融合带来的挑战使得原始的 HDR+ 系统无法使用它,但我们在之后不断改进,加上最近的不懈努力,终于让它在相机应用中得到实现。首先,为 HDR+添加多曝光融合需要重新设计拍摄策略。
使用零秒延时(ZSL) 技术使拍摄变得复杂, 这项技术可为 Pixel 上的快速拍摄体验提供支持。在 ZSL 的助力下,按下快门前,取景器中显示的帧均是用于 HDR+ 连拍融合的帧。在使用多曝光融合的情况下,我们会在按下快门后拍摄一个额外的长曝光帧,而此帧不会显示在取景器中。
请注意,在按下快门后保持相机静止半秒钟来适应长曝光,有助于改善图像质量,即使正常手抖也不会对此造成影响。
在夜视模式下,此拍摄策略则不受取景器的限制,因为所有帧都是在按下快门之后拍摄的,此时取景器已关闭,此模式能够很好地适应长曝光帧拍摄。本例中,我们拍摄了三个长曝光帧,以进一步去噪。
融合算法
在融合多曝光图像序列时,将一个短帧选作参考帧,以避免可能发生的高光部分过曝和运动模糊。在合并所有其他帧之前,先将其与此帧对齐。这就带来了一个挑战:对于复杂的场景运动或遮挡区域,无法找到精确匹配的区域,此时使用朴素融合算法将会造成鬼影 (Ghosting Artifacts)。
为解决此问题,我们设计了一个新的空间融合算法,其与超分辨变焦(Super Res Zoom) 所用的算法类似,会逐个判断像素的内容,决定是否应该合并图像内容。这一去鬼影过程在处理不同曝光程度的帧时将会更加复杂。
长曝光帧会产生不同的噪声特征,高光部分会出现过曝或不同程度的运动模糊,这使得与短曝光参考帧的对比更加困难。此外,所拍摄曝光序列中的鬼影更明显,因为遮掩这些错误的噪声减少了。
尽管存在这些挑战,我们的算法和原始的 HDR+ 及超分辨变焦一样,能够很好地解决上述问题,并不会产生鬼影。同时,它的图像合并速度较之前提升 40%。
这是因为在成像过程初期就对裸格式图像进行了融合,所以我们能够在保持其余成像步骤和 HDR+ 的标志性效果不变的同时,实现所有这些好处。此外,喜欢使用计算成像中的裸格式图像的用户也能从这些图像质量和性能改进中获益。
Pixel 上的多曝光融合
多曝光融合的 HDR+ 功能目前已在 Pixel 4a (5G) 及 Pixel 5 上推出,用户可以在使用默认相机时,在夜视和人像模式下使用这一功能。Pixel 4 及 4a 用户则可以通过 Google 相机应用在夜视模式下使用多曝光融合功能。
用户无需采取任何操作,即可激活基于多曝光融合的 HDR+ 功能。基于多曝光融合的 HDR+ 功能将根据场景的动态范围和运动存在与否,选择最佳曝光度,以拍摄出优质的图像(示例)。
编辑:jq
全部0条评论
快来发表一下你的评论吧 !