HDR Sensor 原理介绍

                                       HDR Sensor 原理介绍

什么是sensor的动态范围(dynamic range)?

sensor的动态范围就是sensor在一幅图像里能够同时体现高光和阴影部分内容的能力。 用公式表达这种能力就是:

DR = 20log10(i_max / i_min);db

i_max 是sensor的最大不饱和电流—-也可以说是sensor刚刚饱和时候的电流 i_min是sensor的底电流(blacklevel) ;

为什么HDR在成像领域是个大问题?

在自然界的真实情况,有些场景的动态范围要大于100dB。

人眼的动态范围可以达到100dB。

Sensor 的动态范围: 高端的 >78 dB; 消费级的 60 dB 上下;

所以当sensor的动态范围小于图像场景动态范围的时候就会出现HDR问题—-不是暗处看不清,就是亮处看不清,有的甚至两头都看不清。

暗处看不清–前景处的广告牌和树影太暗看不清。

亮处看不清–远处背景的白云变成了一团白色,完全看不清细节。

解决HDR问题的数学分析

根据前边动态范围公式

DR = 20log10(i_max / i_min); //dB

从数学本质上说要提高DR,就是提高i_max,减小 i_min;

  • 对于10bit输出的sensor, i_max =1023,i_min =1, 动态范围DR = 60;

  • 对于12bit输出的sensor, DR = 72;

所以从数学上来看,提高sensor 输出的bit width就可以提高动态范围,从而解决HDR问题。可是现实上却没有这么简单。提高sensor的bit width导致不仅sensor的成本提高,整个图像处理器的带宽都得相应提高,消耗的内存也都相应提高,这样导致整个系统的成本会大幅提高。所以大家想出许多办法,既能解决HDR问题,又可以不增加太多成本。

解决HDR问题的5种方法

从sensor的角度完整的DR 公式:

  • Qsat :Well Capacity idc: 底电流,tint:曝光时间,σ:噪声。

方法1:提高Qsat –Well capacity 。

就是提高感光井的能力,这就涉及到sensor的构造,简单说,sensor的每个像素就像一口井,光子射到井里产生光电转换效应,井的容量如果比较大,容纳的电荷就比较多,这样i_max的值就更大。普通的sensor well只reset一次,但是为了提高动态范围,就产生了多次reset的方法。 通过多次reset,imax增加到i‘max,上图就是current to charge的转换曲线。 但这种方法的缺点是增加FPN,而且sensor的响应变成非线性,后边的处理会增加难度。

方法2:多曝光合成

本质上这种方法就是用短曝光获取高光处的图像,用长曝光获取阴暗处的图像。有的厂家用前后两帧长短曝光图像,或者前后三针长、中、短曝光图像进行融合

If (Intensity > a) intensity = short_exposure_frame; 
If (Intensity < b) intensity = long_exposure_frame; 
If (b<Intensity <a) intensity = long_exposure_frame x p + short_exposure_frame x q;

当该像素值大于一个门限时,这个像素的数值就是来自于短曝光,小于一个数值,该像素值就来自于长曝光,在中间的话,就用长短曝光融合。这是个比较简化的方法,实际上还要考虑噪声等的影响。

 

 

 

Current to charge曲线显示:imax增加a倍。

这种多帧融合的方法需要非常快的readout time,而且即使readout时间再快,多帧图像也会有时间差,所以很难避免在图像融合时产生的鬼影问题。尤其在video HDR的时候,由于运算时间有限,无法进行复杂的去鬼影的运算,会有比较明显的问题。于是就出现了单帧的多曝光技术。

方法3:单帧空间域多曝光。

最开始的方法是在sensor的一些像素上加ND filter,让这些像素获得的光强度变弱,所以当其他正常像素饱和的时候,这些像素仍然没有饱和,不过这样做生产成本比较高,同时给后边的处理增加很多麻烦。所以下面的这种隔行多曝光方法更好些。

 

如上图所示,两行短曝光,再两行长曝光,然后做图像融合,这样可以较好的避免多帧融合的问题,从而有效的在video中实现HDR。同时由于video的分辨率比still要低很多,所以这个方法所产生的分辨率降低也不是问题。这个方法是现在video hdr sensor的主流技术。

方法4:logarithmic sensor

实际是一种数学方法,把图像从线性域压缩到log域,从而压缩了动态范围,在数字通信里也用类似的技术使用不同的函数进行压缩,在isp端用反函数再恢复到线性,再做信号处理。

缺点一方面是信号不是线性的,另一方面会增加FPN,同时由于压缩精度要求对硬件设计要求高。

方法5:局部适应 local adaption

这是种仿人眼的设计,人眼会针对局部的图像特点进行自适应,既能够增加局部的对比度,同时保留大动态范围。这种算法比较复杂,有很多论文单独讨论。目前在sensor 端还没有使用这种技术,在ISP和后处理这种方法已经得到了非常好的应用。

上图就是用方法2 + 方法5处理后的HDR图像。亮处与暗处的细节都得到了很好的展现。

  • 9
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 天空盒子 HDR是Unity中用来表现场景天空效果的插件,支持高动态范围HDR)和多重分辨率。它包含了20个高分辨率天空纹理,包括晴天、雨天、夜空、日落日出等。其中的HDR模式可以帮助我们在场景中添加光晕和泛光效果,同时支持自定义的色调映射和自然照明效果,让整个场景更真实细腻。 此外,天空盒子 HDR还包括了PBR(物理渲染)着色器,可以实现更真实的物体材质效果,比如金属、玻璃、石头等。这个着色器可以创建出真正的反射和折射,让场景中的物体看起来更加真实。 最后,天空盒子 HDR还支持多重分辨率功能,可以处理不同的设备和平台,让它们顺利地运行。 总之,天空盒子 HDR是一个非常实用的Unity插件,可以为我们的实时渲染场景提供更真实、更美观的天空效果,加强场景的真实感、沉浸感和视觉感受。 ### 回答2: 天空盒子HDR Unity是一款面向Unity游戏引擎使用的天空盒子插件。这个插件提供了一个现代化HDR天空渲染系统,使得游戏开发者能够在游戏中加入高品质的天空效果。它适用于实时渲染,能够大大提高游戏画面质量和逼真度。 除了提供高品质的HDR天空效果之外,天空盒子HDR Unity还支持多平台,因此游戏可以在不同类型的设备上正常运行。并且该插件易于集成和使用,开发者可以轻松的集成到他们的项目中,并自定义渲染参数以满足他们的需求。 天空盒子HDR Unity的资源库中包含多个天空材质,开发者可以根据游戏的需求选择不同的天空预设,可以根据不同的时间、天气和季节来设置各种天空效果,使得游戏具有更加真实的环境感。 总之,天空盒子HDR Unity是一款强大的工具,为Unity开发者提供了高品质的天空渲染效果,并支持多平台开发,使得游戏更加逼真带感。它能够显著提高游戏的视觉效果,让游戏玩家享受更加真实的游戏环境。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值