整理自知乎网页

高动态范围图像(High-Dynamic Range,简称HDR),相比普通的图像,可以提供更多的动态范围和图像细节,根据不同的曝光时间的LDR(Low-Dynamic Range,低动态范围图像),并利用每个曝光时间相对应最佳细节的LDR图像来合成最终HDR图像。它能够更好的反映出真实环境中的视觉效果。

这篇文章主要讲视频的HDR技术,拍照的HDR大部分是算法处理的结果,这里不做讨论。

(一)原始的时域多帧HDR技术

原理

相机在时间上连续输出由欠曝到过曝的图像,然后做图像融合,得到HDR图像。

融合后HDR图像

img

比较典型的一种融合方法是根据luminance,contrast,motion等条件,对第K帧图像的像素[i,j]给出权重。Wij,k 是第K帧,位置i,j像素的权重,Xk((i,j)是原始像素值,Xf(i,j)是融合后的像素值。公式如下

对彩色图像,权重的计算会考虑色彩的饱和度等因素。

局限

由于传统时域多帧是基于连续曝光的整帧图像(Frame Based)进行融合,所以图像之间的间隔时间就是一帧图像的周期,由此会产生很多artefacts:

场景内物体增减
近距离物体快速移动形成拖影
Color artefact

Frame based的多曝光HDR技术常用于still image 的capture,也有视频HDR 采用这种技术,比如sensor以60fps的帧率交替输出长短曝光,融合后输出30fps的HDR图像。

长短帧交替输出

Frame based Video HDR sensor

早期的HDR video有采用这种技术,自从DOL技术出现后,这种Frame based Video HDR技术就逐渐退出历史舞台了。

(二)Temporal HDR

Temporal HDR是利用不同曝光时间实现的HDR。有下面几种方案:

1. DOL

DOL HDR 也叫做line interleaving HDR 技术。以两曝光DOL为例,sensor每行会以长短曝光两次先后输出,从readout角度来看,就是长曝光帧与短曝光帧 line interleaving 依次输出,如下图,第一行L输出,第一行S输出,第二行L输出,第二行S输出,以此类推。

DOL曝光时序

frame based HDR,长短曝光帧的间隔是一个帧周期,也就是必须一整帧(长)曝光结束,再开始一整帧(短)曝光,如下图

frame based HDR

对于DOL HDR而言,由于line interleaving(行的交织),存在两帧的overlap,等于一帧输出没结束,下一帧就来了,长短曝光帧的间隔大大缩小了。

从下图可见,长曝光帧与短曝光帧overlap了一部分,所以这种技术叫digital overlap。其实就是减少了短帧的消影时间(sweep time)。

digital overlap

Staggered-HDR可以归为这一类

Staggered-HDR的原理

在一次完整曝光的过程中,sensor分别在短、中等和长曝光时读出一次数据,数据进行芯片外处理以得到HDR图像。

DOL长短曝光时间比与动态范围扩展

以两曝光DOL 为例

Exposure ratio = Long exposure time/ short exposure time

假设Exposure ratio = 16,假设在亮度没有饱和的条件下,相当于曝光最大值增大了16倍:2^4。也就是动态范围扩大了4个bit。

以此类推,每增加一个曝光帧,如果exposure ratio =16,动态范围就可以扩大4bit。

按照一般HDR sensor 单曝光为12bit来算的话,2次曝光可以让sensor的输出动态范围扩大到16bit,4曝光就可以让sensor输出的动态范围扩大到24bit(12+4+4+4)。

多帧曝光扩展动态范围

exposure ratio 也不是越大越好,exposure ratio会受到三方面的制约,图像质量,sensor设计以及isp line delay buffer。

从图像质量上来说,短曝光时间越短,图像噪声越高,长曝光越长,motion的影响越大。Exposure Ratio越大,在图像融合后的SNR drop也越大。

从sensor设计上来说,长短曝光之比受到读出电路的限制,sony的DOL第二代采用虚拟通道技术一定程度改善了这个限制。

从ISP的角度来说line delay buffer 也限制了最大曝光时间。在短曝光行出来之前,第一个长曝光行应该还在delay buffer里,这样才能两者对齐好给后面的frame stitch操作。而长短曝光比越大,需要的line delay buffer就越大。

DOL buffer

对于sensor做hdr融合case而言,line delay buffer size就是固定的,所以ISP倾向于在isp这端做HDR融合,这样可以更灵活的设计。(Maver注:对于车载而言,带宽是个主要关注点,所以大部分用户不会选择在ISP侧做HDR融合)

2. IHDR

BME(Binned multiplexed exposure),也叫iHDR(interlaced HDR sensors)。

IHDR

如右边图案所示,在传感器上间隔两行分别使用长短曝光设置,最终合成一帧行数减半的图像。

DOL技术如果想要出每秒25帧的HDR视频,sensor就需要每秒出50帧,对ISP和CPU的性能要求比较高。而该技术的一帧图像就包含了长短帧曝光,降低帧率的要求。输出速率降低了,对sensor的帧缓存要求也降低了。

但它的缺点也很明显, binned(二合一)的读出方式让图像分辨率减少了一半,该技术主要适用于对分辨率要求不高的预览或录像HDR。

3. Zig-zag HDR

千辛万苦研究提升的分辨率怎么能说降就降呢?不甘心啊~

芯片厂商又研发了新的方案,称作SME(Spatially multiplexed exposure) ,或叫做Zig-zag (Z字形)HDR。

Zig-zag HDR

图如其名,长短曝光分别呈现“Z”字型,每一行像素既有长曝光也有短曝光。据称只要算法足够优秀,该方案就能够输出接近全像素的HDR照片,并且可以用作实时预览。

在4合1模式下,2x2像素区域内分别设置长(L)、中等(M)、短(S)三级曝光,将 4个像素合并为一个输出,称之为3-Exposure HDR。

zig-zag HDR输出

采用三曝光实现实时HDR预览,拍照时采用传统帧序列HDR方法,抓取三张不同曝光的图像进行平台端算法处理。

由于人眼对亮度的感知是呈对数的,用tone curve可以压缩亮区图像数据的同时,保留暗区的细节(类似一个预处理的gamma)。

Temporal HDR的局限

Sony在推出DOL的时候,宣传DOL是‘准同时’输出长短曝光。既然是‘准同时’,那就还不是同时,所以也会有一些典型时域多帧HDR的图像质量问题,同时DOL也有一些特有的IQ问题。

1. 伪像(HDR Transition Artefacts)

可以从下左图看到composition noise造成的edge,这种edge有时候会误导机器视觉。

HDR Transition Artefacts

从DOL hdr的noise profile可以看出来,如下图,在HDR拼接处,可以看到SNR的显著变化,叫做snr drop,当SNR drop大的时候,就会出现明显的edge,如上图所示。

DOL HDR noise profile

曝光比越小,SNR drop就越小, 可以想见,如果曝光比为1,也就没有snr drop了。反之,曝光比越大,动态范围越大,snr drop也越大,如下图所示。

曝光比为32时的noise profile

2. 水波纹(banding)

由于短帧曝光时间短,每次曝光交流电的亮度都不同,会类似水波纹的现象banding。

flicker

为了避免水波纹,就得让最小曝光时间是半周期的整数倍,这样sensor的每行像素曝光时的亮度就是一样的。如果交流电是50Hz,曝光时间需要是10ms的整数倍。

antibanding

这样就不会出现水波纹现象了。但是由于最小曝光时间变大了,动态范围就损失了。所以有时候为了保证不损失动态范围,就得容忍水波纹。这就得看应用场景了。

3. PWM光源图像的闪烁与丢失

类似的问题发生在PWM供电的Led光源上,尤其是交通信号灯以及汽车信号灯,如下图所示

抓拍红绿灯不亮的原因

我们看到的红绿灯不是一直亮着的,一个电源周期里面,只有比较小的一段时间是亮的。

sensor的长曝光帧能捕捉到到红绿灯亮的时候,但是短曝光帧就没捕捉到,这样也会造成闪烁(flickering)甚至信号灯图像的丢失。

注意:不是仅仅宽动态才会引起这个问题,当曝光时间短的时候都会有这个问题。比如说电警设备,抓拍快门一般都在几百上千分之一,很容易出现一直黑着的情况。因此需要做一个电源同步的操作。由于红绿灯闪烁的频率和当地的供电频率一致,通过硬件的方法,可以知道红绿灯亮着的时间。从而确保每次曝光的时候,红绿灯都是亮着的。

(三)Spatial HDR

sensor除了在时域上用多帧进行HDR(Temporal HDR),还有另外一个方向是空间上的HDR(Spatial HDR)。

我目前只看到了split/sub pixel技术。

车载领域也广泛使用Temporal domain HDR技术,但是随着车载相机在ADAS与自动驾驶领域的迅速发展,对图像质量有着特别的需求,导致Temporal domain HDR技术不能满足需要。车载比较典型的两个IQ需求是不能有motion artefact 和 LED flickering。

motion artefact

LED flickering

Temporal (时间的)HDR 在原理上就存在这些缺陷,所以要解决这个问题就需要使用其他的HDR体制:Spatial(空间) HDR技术是现在车载领域的主流解决方案。

比较典型的是Sony sensor(imx390/490)采用的Subpixel技术与OV sensor(ovx1a)采用的split pixel技术,他们都属于SpatialHDR技术范畴,其基本原理是一致的。

大小pixel的分离结构

与普通CFA的不同,大小pixel技术的sensor在相邻位置有一大一小两个pixel,他们空间上非常接近,可以认为对空间采样相同。

split/sub piexl结构

由于pixel的大小不同,物理上的sensitivity不同,FWC也不同,会产生与时域HDR一样的不同曝光效果,形成了对不同动态范围的覆盖。如下图可以看到LPD(Large Pixel Diode)与SPD(Small Pixel Diode)是如何扩展动态范围的。

大小分离pixel的电路设计

典型的大小分离pixel的电路如下图所示

split/sub pixel电路设计

SPD和LPD分别用黄色的二极管标出。CGC(conversion gain control)与TG(transfer gate)控制了photo diode 向FD充电,当TGs使能时,FD接收SPD来的电荷,RS会使能让FD的电荷转存出来。然后当TGL使能时,FD接收LPD来的电荷,RS会再一次使能让FD的电荷转存出来。RST负责在每一次转存后把FD电容清空。这样的电路结构就实现了LPD和SPD的分别读出。这个部分的电路时钟非常快,所以可以认为大小像素是同时曝光的。后面的读出电路也会把大小像素同时读出,由下图可见,T_lpd与T_spd是同时的。

split/sub pixel读取时序

大小像素HDR与时域HDR在motion artefact上的比较

由下图可以看出基于大小像素的HDR与时域HDR在拍摄运动物体上的motion artefact比较。

左图是基于大小像素的图像,完全没有motion artefact,右图是时域HDR,可以看到明显的motion artefact。

motion artefact

对于这种更挑战的场景,舞厅的旋转光球,左图是大小像素HDR,右图是时域HDR,可以看到时域HDR的图像把小的运动光点都混到了一起。

motion artefact

大小像素与Dual conversion gain的结合

单独靠大小像素只能形成两个曝光的图像,再结合之前介绍过的DCG技术,在大小pixel分别配合HCG,LCG,就可以形成4曝光。

假设单曝光输出12bit,曝光比是16,那总共的动态范围可以达到24bit输出。

注意:在相同增益下,HCG比LCG模式图像要亮,相当于自带一个增益。

Dual conversion gain

两种场景的切换

如下图,横轴是场景的光亮度,纵轴是SNR,红色曲线是LPD像素的SNR曲线,蓝色曲线是LPD像素的SNR曲线。

SNR

SPD的饱和点更高,而LPD的低光SNR更高。这两条曲线说明了大小像素这种设计可以很灵活的适配场景的变化,当场景非常亮的情况,就用大小像素融合输出,这样可以扩大动态范围。

当场景非常暗的情况,就完全切换到LPD像素,因为它的SNR更高。

疑问

疑问1:是否会对清晰度有影响?大的像素和小像素的位置不一样,接收到的画面也就可能不一样,融合起来是否会对清晰度造成影响?

疑问2:如果用sub pixel 的技术,能不能解决红绿灯闪烁甚至消失的问题?是不是电警设备不需要加电源同步(这边一般是FPGA做的),用宽动态就可以解决红绿灯不亮的问题。这样会不会更加节省成本?

回答:不行,电警设备抓拍车要求快门时间很小,只要是曝光时间小,就还是会抓不到,一定要做电源同步。

用sub pixel技术的话,他们是一起曝光的,只是感光度不一样,感光率比较低的可以完美的抓拍到红绿灯而不过曝。但是必须要求曝光时间大于红绿灯的一个周期,这样曝光时间明显就会比较长,相比于电警动则几千分之一的快门,拍快速运动的物体有点问题。

疑问3:电警的FPGA模块到底有哪些作用?

回答:1. 控制爆闪灯下的抓拍:由于爆闪灯亮的时间很短,只有几ms,需要确保在sensor的曝光时间内闪烁 2. 电源同步:由于红绿灯闪烁的频率和当地的供电频率一致,通过硬件的方法,可以知道红绿灯亮着的时间。从而确保每次曝光的时候,红绿灯都是亮着的