在描述一个场景的时候,动态范围(Dynamic Range)指的是其最亮部分与最暗部分的亮度比值。高动态范围的场景(High Dynamic Range Scene)指的是场景里同时存在非常明亮和非常暗淡的部分。
图像传感器所能捕捉的动态范围是有限的,它受到两个因素的限制,一个是满阱容量(Full Well Capacity,FWC),另一个则是它的本底噪声。
满阱容量:决定图像传感器饱和输出的两个重要因素为光源的辐射照度和图像传感器的曝光时间。光子照射在图像传感器像素表面,一些被像素平面吸收的光子会转换成电子,这些电荷在像素势阱中积蓄。但是积累到一定程度只会就会达到积累上限,不再继续进行光电转换。我们将积累的最大电子数量定义为像素的饱和电子容量。像素饱和时,多余的电子会溢出,CMOS图像传感器在这一时刻对应的输出数字信号就叫做饱和输出。饱和输出值结合总体系统增益,便可以计算出图像传感器的满阱容量。
满阱简单来说就是一个像素承载由光子转换为电子的数量;承载的电子数量越多,图像传感器的动态范围越大。
1、信噪比是衡量画面质量的决定性因素。
2、衡量一个相机的感光能力,主要看它的满阱总量。
3、当噪声一定时,满阱越大-接受的电子数越多-电讯号越强-信噪比越高-图像质量越好。
4、提升相机满阱总量的方法有:增大单个像素的面积、增加总像素数、单位面积内的感光效率。
1. 满阱容量越大,CMOS 就越不容易饱和。如果场景里明亮的部分释放出太多光子,那么图像传感器就会饱和,超出这个容量的光子无法被捕捉,这些高光信息也就无法被保存下来。
2. 类似地,对于太过暗淡的部分,那些光子的信号强度不够,那么就会淹没在图像传感器的噪声(Noise Floor)中,无法被记录下来。
CMOS是Complementary Metal Oxide Semiconductor(互补金属氧化物半导体)的缩写。
在计算机领域,CMOS常指保存计算机基本启动信息(如日期、时间、启动设置等)的芯片。有时人们会把CMOS和BIOS混称,其实CMOS是主板上的一块可读写的并行或串行FLASH芯片,是用来保存BIOS的硬件配置和用户对某些参数的设定。
在今日,CMOS制造工艺也被应用于制作数码影像器材的感光元件,尤其是片幅规格较大的单反数码相机。
另外,CMOS同时可指互补式金氧半元件及制程。
要想在一张照片里记录尽可能多的明暗细节,就需要尽可能扩大传感器的 FWC,并尽可能地抑制其本底噪声,然而,受制于使用场景所能容纳的传感器尺寸,以及当前可用的技术,传感器能获得的提升是有限的。
因此,工程师们另辟蹊径,通过其他的方法来捕捉这种高动态范围的场景,这就是高动态范围成像技术(HDR Imaging)。
高动态范围成像(英语:High Dynamic Range Imaging,简称HDRI或HDR),在计算机图形学与电影摄影术中,是用来实现比普通数位图像技术更大曝光动态范围(即更大的明暗差别)的一组技术。高动态范围成像的目的就是要正确地表示真实世界中从太阳光直射到最暗的阴影这样大的范围亮度。
HDR(High Dynamic Range)代表高动态范围。动态范围越大,图像能清晰呈现的明暗差别也就越大。与传统的SDR(标准动态范围)相比,HDR图像能够以更高质量同时显示画面的亮部和暗部。
HDR传感器的发展
2000s—LOFIC
我们拍摄的照片来自传感器上的像素,它们将光处理为电信号,组合起来输出画面。当捕捉对象亮度过强,大量电荷挤在单个像素内,生成的图像就会过曝。
LOFIC(Lateral Overflow Integration Capacitor,横向溢出集合电容)的结构就像鸳鸯锅,当电荷超过像素原本能承载的最大限度(最大阱容),多余的电荷就会流到相邻的“锅”里,而不至于溢出来。这样,高亮画面就能清晰显示了。
然而,LOFIC结构复杂,难以适应电子设备日益轻薄化的发展趋势。因此,LOFIC如今在相机和手机中已经难觅踪影。
2003——Large/small pixels
2003年,富士(Fujitsu)公司推出了具备Large/small pixels(大小像素)分离结构的“Super CCD SR”,巧妙借助像素性质的差异实现HDR。 1 传感器每“格”中的一大一小两个像素同时进行拍摄,获取高曝光和低曝光两幅画面。合成后,就形成了覆盖不同动态范围的HDR图像。不过,由于画面易形成瑕疵,这项技术并没有被大范围采用。
2010s——Multi-frame HDR
HDR技术最常见的运作方式是拍摄(捕获)具有不同曝光的多个画面,并合成出完美的HDR图像。其中,最原始的是Multi-frame HDR(多帧异曝光HDR)。由于曝光时间不同,它所用的原理是相机连续拍摄多张不同曝光的照片,并叠加这几张照片,从每张照片中提取最好的部分进行合成。
然而当拍摄物体处于运动状态或拍摄时出现抖动则会造成“运动伪影”,例如上图中八条腿的马。
2014——iHDR
iHDR(Interlaced HDR,行交织HDR)的诞生是为了解决运动伪影的问题(例如上图中在运动的马,合成后会出现多条腿的问题)。它将传感器划分为行,并以两行间隔设置长曝光和短曝光。当按下快门时,长曝光和短曝光同时开始。这种技术可以一次拍摄长曝光和短曝光图像,并最终获得一张HDR图像。不过,行交织的原理使iHDR损失了一半的分辨率,图片也时常不够自然。由于种种缺点,导致iHDR未能批量生产。
2014——ZigZag HDR
紧接着,索尼提出了像素排列的另一种可能——Zigzag HDR(Z字形HDR)。 2 这是iHDR的升级版本。传感器上同时存在长曝光和短曝光设置,以“ Z”字交叉分布。与iHDR相比,分辨率损失得到了有效降低,并且画面也更自然,还能应用于视频拍摄。
2014——HDR+
同年(2014年),谷歌推出了HDR+技术。 3 传感器至少8次连续拍摄同样曝光的画面,将其叠加分辨出暗部中的细节与噪点,从而利用算法实现宽广的动态范围。谷歌相机的“突发模式”能够在按下快门前即自动开始预拍,以实现HDR效果的快速抓拍。这与当初的multi-frame HDR已不可同日而语。
2017 4 ——QHDR
QHDR(Quad HDR,四像素HDR)与Zigzag HDR相比,不仅在行对齐方面有所不同,而且在传感器中像素的排列方式上也有所不同。在QHDR中,每个2×2的四像素区域成为一个单元,以不同曝光设置共同工作。这项技术速度快、效果好,非常适合应用在视频拍摄中。
2018——Staggered HDR
在Staggered HDR(单帧逐行HDR)功能中,快门以滚动逐行读取信息的特性,由上到下滚动输出长、短曝光的数据。在长曝光行数据输出的过程中,短曝光行图像也同时生成。这使得两行图像之间能够紧密衔接,从而解决了iHDR图像不自然的问题,也有效减少了运动伪影。
如今的相机技术已经朝着模仿人体视觉系统的方向飞速发展,力求使数码相机镜头捕捉的图像更加接近消费者的所见所感。为了实现这个目标,通过缩小像素面积来提高分辨率,从而捕获清晰图像,一直以来都是重要的发展方向。此外,为了更好地表现每个像素的颜色,HDR技术的重要性如今也不断被强调。
一、最传统:多帧异曝光
HDR 成像这个概念最早被大众熟知可以追溯到 2011 年发布的 iPhone 4S。
iPhone 4S 是首次引入 HDR 成像的手机之一,它使用的是多帧异曝光 HDR,原理也非常通俗易懂,如果一张图片无法容纳场景所有的动态范围,那么我们多拍几张,让它们的亮部和暗部信息进行接力不就好了:
在上面的示意图中,红色部分表示传感器的本底噪声,淹没在本底噪声中的信息是无法被获取的,但通过多帧接力,我们就可以将它们拼接起来,获得宽广的动态范围。
这种技法一般通过调节曝光时间来获得不同曝光的画面,最终通过多张不同曝光的图片来把整个动态范围包起来,因此也被称作包围曝光(Bracketing)。
包围曝光是的具体操作是:一次拍摄后,以中间曝光值和减少曝光值和增加曝光值的方式,形成3张或者更多不同曝光量的照片。这个例子是以1eV为步进拍摄的3张包围照片。
我们在包围曝光拍摄得到多张不同曝光值照片后,使用后期软件的蒙版功能,取低曝光值照片的高光处与高曝光值的暗光处,与正常曝光的照片进行合成。实际成片效果就比合成前好多了,暗处能看见,亮处有细节,每个部分都清晰可见。
包围曝光(多帧异曝光HDR)是大部分HDR算法的基础,包围曝光的基本思路:“取长补短,合为一个”深深影响了之后的HDR算法演进。
多帧同曝光这个做法非常简单,效果也不错,但很容易就发现一个问题,它对运动物体的效果不好。因为这种多帧异曝光 HDR 需要拍摄多张曝光时间不同的画面,在这个过程中如果出现运动物体,它在每一帧中移动的程度都不同,在不同帧里的位置也不同,在最终合成时就会出现各种各样此外,曝光较长的帧也更容易因为手抖而糊片,这种拍摄方式在应对弱光 + 大光比场景下可用性会大幅降低。
工程师针对早期HDR技术的种种弊病提出了全新的修补方案。
拍照时手会抖?没关系,我们祭出多帧防抖对齐算法,拍摄后通过标记不同照片中的特征点位置(比如眉毛,衣襟,肩膀),然后把这些照片叠起来,将特征点对齐,这样就能大大改善重影的问题。
拍照时被摄物会动?如果被摄物体在持续运动中,比如运动场上冲刺的运动员。该怎么办?没关系,我们选取其中一张为主图,保留运动员与他身后的背景,把其它照片中稳定可用的部分(比如背景)叠加到主图当作超采样的原料。如果被摄物体不过偶尔动几下,比如合影时的儿童,则可以筛选拍摄时没有运动残影的有效帧进行合成,而对有运动残影的图片予以舍弃。这种办法能有效避免重影。
暗光下噪点多?没关系,我们可以借助时间超采样理念,用多张照片重复叠加,不同照片在同一位置出现的红绿噪点可以相互重合,在进一步处理后,去除这些无序噪点。
若不是HDR+技术的出现,这类HDR技术还将会在手机市场长久占据大量市场。可惜技术的迭代是相当快的 。
二、HDR+:多帧同曝光
包围曝光这种方法有一个很明显的缺点,过曝那张照片拍摄时间过长,浪费了大量时间与图片信息。使整组照片拍摄时间达到了拍摄一张普通非HDR照片时间的3倍左右。如果在明亮的室外晴天这问题倒是不大,快门时间都在千分之一秒以上。可是到了光照条件先天不足的室内,那张过曝的照片拍摄时长会大大超出安全快门速度,非常容易因抖动引起模糊,至于被摄物移动导致合成失败等问题,则更难以处理。
Google 的工程师在提出了一种新的 HDR 实现方法,他们认为这种方法较传统的多帧异曝光 HDR 提升很大,所以取名叫 HDR+。
整个HDR目标可以简单总结就是“高光不过曝,暗处有细节” 。HDR +是如何实现高光不过曝的呢?很简单,让所有照片都欠曝就行了。
这便是HDR+的核心思路。捕获曝光不足的帧,对齐和合并这些帧以产生高比特深度的单个中间图像,并对该图像进行色调映射以产生高分辨率照片。
下面举例进行说明。
如上图,HDR+用4张1/40秒快门时间的照片堆在一起,4*(1/40秒)=1/10秒 达到正常曝光的1/10秒。而按正常曝光时间是1/10秒,“KABB”字样是过曝的。而1/40s的照片曝光时间太短,“KABB”处是不会过曝的,能完好保存亮处的色彩信息。用4张1/40s的照片堆栈为最终成品时,既能获得足够的亮度,也能控制住高光处的过曝情况。
在实际操作中要实现4帧的合成的话,实际照片数量比4张多呢,一方面是因为暗处可能需要更多帧来进行降噪处理,另一方面是因为因抖动或其它因素会产生无用的帧,被当作废片舍弃。当然其它原因也有不少。具体的实现过程相当复杂。谷歌白皮书给出的流程如下图:
现在很多手机的超级夜景模式就是基于HDR+的,如华为从P20 Pro开始的超级夜景,自此把手机的夜拍表现提升了整整一个档次。
上面提到的的HDR都是走的多帧的路子,但多帧又会带来合成的问题。而且多帧异曝光和多帧同曝光的路子分别被苹果和 Google 走了,那么接下来还有什么可以提升呢?
我们还是要把目光放回软硬件结合上——软件的路走过了,我们可以走硬件的路嘛。
下面介绍一些硬件 HDR 实现,它们都是由上游厂商提供的(Sony,OV)。
三、四像素拜耳阵列QHDR
这种sensor的设计是:每个像素是有四个子像素组成,他们公用一个color filter。
这种特殊的排列不是为了扩充像素数,而是进行单次多张HDR。按分区进行不同时长的曝光。比如所有标号为 1 的像素曝光 1/25 秒,所有标号为 2 的像素曝光 1/20 秒,所有标号为 3 的像素曝光 1/15 秒,所有标号为 4 的像素曝光 1/10 秒,相当于在这块传感器的一个拍照周期上执行了 4 次明暗各异的曝光,获得了 4 张图片。然后用 HDR算法 合成为最终图片。
主流上游厂都提出了自己的处理方案,Sony的称为QBC(Quad bayer coding),OV的称为4-cell(four-cell color-filter pattern HDR),下面分别介绍。
1、QBC(Quad bayer coding)
在非HDR模式下,四个像素合并成一个输出值,与当年Nokia 用的4100万像素出8百万像素的照片的所谓超采样是一个原理,具有降噪,增加动态范围的好处。在HDR模式时,会把四个像素分成两组,对角线方向的分到同一组,135度的那组曝光要短于45度的那组,然后再进行scale+combine,这样就生成完全pixel位置的HDR图像。
2、4-cell(four-cell color-filter pattern HDR)
这种4cell HDR与sony的QBC类似,也可以看作一个大像素由四个小像素构成。它由两种HDR设置:
1、按照对角线分成两个不同的曝光输出。
2、每个4-cell 单元,右小角的单元用不同的曝光,其余三个用相同的曝光。 (这个有点像大小像素的处理,后面介绍 Spatial HDR)。
四、隔行曝光iHDR(interlace HDR)
大家都知道CMOS成像是一行一行扫描的,而iHDR技术的原理,以完整的RGGB拜尔排列作为一行,对其设置交错改变的曝光参数。比如奇数行长曝光,偶数行短曝光。扫描过程就是从上到下读完奇数行,然后再从上到下读完偶数行,使每一行都被读取(扫)一遍。
但是iHDR的问题就在于,在列方向会损失一半的分辨率。这个很好理解,iHDR用奇数行与偶数行合成为一行,从而得到HDR照片,每行像素数不变,总行数只有拍摄时的一半。
因此,运用iHDR技术的设备在开启HDR功能的时候是会掉画质的。不过好在人眼对纵向分辨率的增减没有像横向分辨率那样敏感,只要不是细密斜向线条,人眼都不能明确的感知到画质下降。
这种方式类似对图像进行了Binning操作,因此,Sony也把提出的技术称为Binning Multiplexed Exposure (BME-HDR) ;对应地,OV也提出了类似的方案,称为Alternate row HDR。
1、BME-HDR
这种sensor每隔两行的曝光时间分别设为短曝光和长曝光。然后融合长短曝光的两帧图像,成为行数减半的一帧HDR图像。空间分辨率损失了一半,就好像是做了1x2binning,所以叫做binned multiplexed exposure。
2、Alternate row HDR
这个alternate row HDR是每两行用一个曝光,long或者short。对应长曝光、短曝光行的gain也可以分开控制。与sony 的BME HDR 类似,这个alternate row HDR会损失一半的空间分辨率。
iHDR这种方式,优势就在于快,只要ISP处理速度足够,那么拍摄HDR的速度和拍摄一张普通照片并无差别,按照最简单的情况看,读取过程就是ISP从上到下读完奇数行,然后再从上到下读完偶数行,使每一行都被ISP读取一遍。所需时间与普通照片自上而下曝光没有太大差别。
因为交替曝光几乎就是同时发生,所以抑制重影的表现比HDR+还好不少。只不过这种方法面对画质动态范围全面提升的HDR+没有很好的对应方案。
五、 zHDR(Zig-zag HDR)
相比先前的iHDR,zHDR则是一种拍摄高动态范围影片的改进方式。在iHDR理念的基础上,把隔行交替曝光改成了特殊排列的 高 中 低 曝光。相比隔行的iHDR,行列都交替曝光的zHDR的处理过程比iHDR要复杂不少。相比分辨率砍半的iHDR,zHDR能够输出全分辨率的图像,这可以算是个不小的进步。
这里主要是Sony了自己的方案:SME-HDR(Spatially multiplexed exposure)
1、SME-HDR
这种sensor在空间上以棋盘格的pattern排列着长曝光和短曝光的像素。下图中颜色的深浅代表曝光时间的长短 。然后通过算法处理融合两个曝光的图像成为一帧HDR图像。按照Sony的说法,这种SME技术只损失20%的空间分辨率,而前边BME会损失一半的空间分辨率。也有别的ISP公司,用更好的算法来融合两个曝光的图像,能够更少地损失空间分辨率。
从技术上来说,单帧HDR要比多帧HDR简单不少,在早期设备处理能力不足的时候,速度快,没拖影,性能要求低的单帧HDR反而要更有优势。到了HDR+时代,单帧HDR渐渐不敌多帧合成HDR。技术的迭代就是这么残酷。这些技术曾经短暂地在部分手机上应用过,但是很快因为效果不佳也退出了市场。
数次尝试结果都很一般,硬件 HDR 的出路在何方呢?后面将继续介绍。