Camera HDR Algorithms

HDRI是High-Dynamic Range(HDR)image的缩写,也就是高动态范围图像。它就是为了解决更好的存储高动态范围图像这个问题而发明出来的。简单地说,HDRI是一种亮度范围非常广的图像,它比其它格式的图像有着更大亮度的数据贮存。而且它记录亮度的方式与传统的图片不同,不是用非线性的方式将亮度信息压缩到8bit或16bit的颜色空间内,而是用直接对应的方式记录亮度信息。它可以说记录了图片环境中的照明信息,因此我们可以使用这种图象来“照亮”场景。有很多HDRI文件是以全景图的形式提供的,我们也可以用它做环境背景来产生反射与折射。这里强调一下HDRI与全景图有本质的区别,全景图指的是包含了360度范围场景的普通图象,可以是JPG格式、BMP格式、TGA格式等等,属于Low-Dynamic RangeRadiance Image,它并不带有光照信息。

HDRI文件是一种文件,扩展名是hdr或tif格式,有足够的能力保存光照信息,但不一定是全景图。Dynamic Range(动态范围)是指一个场景的最亮和最暗部分之间的相对比值。一张HDR图片,它记录了远远超出256个级别的实际场景的亮度值,超出的部分在屏幕上是显示不出来的。可以这样想象:在photoshop里打开一张从室内往窗外外拍的图片,窗外的部分处在强烈的阳光下,曝光过度,呈现的是一片白色,没有多少细节。你将毫无办法,调暗只会把白色变成灰色而已,并不会呈现更多的细节。但如果同一场景是由hdr纪录的话,你减低曝光度,原来纯白的部分将会呈现更多的细节。谈论游戏画面时常说的HDR到底是什么呢?HDR,本身是High-Dynamic Range(高动态范围)的缩写,这本来是一个CG概念。

计算机在表示图象的时候是用8bit(256)级或16bit(65536)级来区分图象的亮度的,但这区区几百或几万无法再现真实自然的光照情况。HDR文件是一种特殊图形文件格式,它的每一个像素除了普通的RGB信息,还有该点的实际亮度信息。普通的图形文件每个象素只有0 -255的灰度范围,这实际上是不够的。想象一下太阳的发光强度和一个纯黑的物体之间的灰度范围或者说亮度范围的差别,远远超过了256个级别。因此,一张普通的白天风景图片,看上去白云和太阳可能都呈现是同样的灰度/亮度,都是纯白色,但实际上白云和太阳之间实

HDR实例

际的亮度不可能一样,他们之间的亮度差别是巨大的。因此,普通的图形文件格式是很不精确的,远远没有纪录到现实世界的实际状况。所以,现在我们就要介绍一下高动态范围图像(简称HDRI)。HDR全称是高动态范围。这是一个简单的术语,HDR图片是使用多张不同曝光的图片,然后再用软件将它们组合成一张图片。它的优势是最终你可以得到一张无论在阴影部分还是高光部分都有细节的图片。在正常的摄影当中,或许你只能选择两者之一。

Digital Overlap 与上一期介绍的Dual conversion gain一样,都是目前比较流行的sensor HDR 技术,在监控与车载相机等领域的应用非常广泛。Sony于2012年在监控相机市场首先推出基于DOL(digital overlap) HDR技术的图像传感器,之后OV与Onsemi也都推出了与DOL类似的HDR技术的图像传感器,而且应用领域不局限于监控这种传统HDR imaging的市场,而且扩展到了Automotive camera市场。现在Sony已经推出了第二代支持虚拟通道DOL HDR技术的sensor。

HDR的最佳搭档:OLED电视

HDR技术带来的画质提升是直观可感的,即使是普通观众也能用肉眼辨别,因此2016年众多厂商纷纷在电视产品上搭载HDR技术。但即便如此,却不是所有电视产品都能成为HDR技术的“良配”。毕竟HDR技术的运用不是单一的某个环节,而是关系到画面显示的整个生态系统。

呈现完美的HDR需要两个条件,第一是高对比度,第二是卓越的色彩表现力。而OLED电视与传统的液晶显示技术不同,它摒弃了背光源,实现了每一个像素点的有机自发光,也就意味着每一个像素点都能独立地打开或关闭,本身具有无限对比度、广色域、还有广视角等优势。因此HDR在OLED电视上可以发挥得淋漓尽致。

首先,对于HDR最重要的是对比度。液晶电视能表现的最低亮度为0.1nits,最亮为500到1000nits之间,对比度只有5000比1。如果把亮度提高两倍到10000nits,也只能达到10000比1。而LG OLED能表现的最低亮度为0.0005nits(目前用亮度测量的仪器能检测到的最低亮度),最高为500nits,大约20个档次,对比度为100万比1,再加上最低亮度(0.0005nit)几乎为零。所以相当于拥有接近于无限的对比度。

1.什么是时域多帧HDR技术

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

融合后HDR图像

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

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

2.传统时域多帧HDR技术存在的局限

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

场景内物体增减

近距离物体快速移动形成拖影

Color artefact

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

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

3.什么是DOL HDR

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

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

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

从下图可见,长曝光帧与短曝光帧overlap了一部分,所以这种技术叫digital overlap。

4.DOL长短曝光帧的时间间隔

前边说过,Frame based HDR的长短曝光帧的间隔是一帧的时间,那么DOL HDR的长短曝光帧的时间间隔是多大呢?

如果先输出长曝光的话

如果先输出短曝光的话

T= long exposure 的时间

所以当然是先输出长曝光,这样T(时间间隔)会更小。。

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

以两曝光DOL 为例

Exposure ratio = Long exposure time/ short exposure time

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

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

按照一般HDR sensor 单曝光为12bit来算的话,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就越大。

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

6.DOL的局限

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

HDR Transition Artefacts

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

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

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

Flicker

交流电供电光源造成的flickering,如下图:

为了避免banding,就得让最小曝光时间是半周期的整数倍。

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

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

sensor的长曝光帧能catch到led 的light pulse,但是短曝光帧就没catch到,这样也会造成flickering甚至信号灯图像的丢失。

这种flicker或者信号灯信息丢失的问题在车载成像系统上是致命的,所以车载HDR现在更倾向采用spatial based HDR技术,比如Sony采用的sub pixel技术或者OV 采用的split pixel技术。

原文地址:https://www.cnblogs.com/wujianming-110117/p/12607951.html

时间: 2024-07-31 21:36:58

Camera HDR Algorithms的相关文章

Unity中HDR外发光的使用

1.使用标准材质,设置好Emission外发光 2.Camera下打开HDR,加上Bloom特效 最终效果 如果只勾选HDR,只会有高光感,不会有外发光 注意,正向光照下打开HDR不可用抗锯齿,否则切为延迟光照

paper 72 :高动态范围(HDR)图像 HDR (High Dynamic Range)

In standard rendering, the red, green and blue values for a pixel are each represented by a fraction in the range 0..1, where 0 represents zero intensity and 1 represents the maximum intensity for the display device. While this is straightforward to

HDR10 vs Dolby Vision: Here’s what you need to know about the HDR form

HDR10 vs Dolby Vision: Here's what you need to know about the HDR format war By Nick Pino November 29, 2016 Television It's the battle of the ultra-premium TV tech As tech-lovers, we can all appreciate the benefits that a new format brings. The trans

CCT之CAMERA TUNNING调试学习总结

ob 静态电流 shading 阴影, 3a GAMMA:拍灰阶卡, ccm isp 是image signal processing,用于图像处理,比如gamma调整,dynamic range correction,smmoth,sharpness,format convert,resize,edge enhancement ,color correction等操作都是这里完成的.3aa 是ae/af/awb algorithms. 3aa 的硬件模块分析输出3a的统计信息.3aa软件是分析

Unity Camera属性

Camera属性 1.Clear Flags 清除标记:决定屏幕的那部分将被清除.当使用多个相机来描绘不同的游戏景象时,利用它是非常方便的. 2.Background 背景:在镜头中的所有元素描绘完成且没有天空盒的情况下,将选中的颜色应用到剩余的屏幕. 3.Culling Mask 取消遮罩:包含或忽略相机渲染对象层.在检视视图中为对象指派层. 4.Projection 投射:切换摄像机的模拟透视功能. (1) Perspective 透视:相机将用完全透视的方式来渲染对象. (2) Ortho

Android Camera开发之基础知识篇

概述 Android框架支持设备的相机拍照和录像功能,你的应用可以直接调用系统的Camera应用来拍照或者录像(比如微信拍照),当然也可以利用Android系统提供的API开发一个Camera应用来实现相机拍照和录像功能(比如市面上流行的360相机).此篇文章主要记录相机开发有关的基础知识,以及带着自己的理解翻译Camera官方文档,如有翻译不恰当支出,还请指出改正.当然我会开一个有关相机开发的一个系列,该系列主要内容包括如下: 相机基本预览拍照功能. 实现相机的Flash,Hdr,滤镜,前后摄

你都认识下面这些参数么?【Camera】

在调试的时候利用下面这个函数将 Camera AP 部分所设置的参数全部 dump 出来了,真是多啊! 这里仅限于 MTK 平台,MTK 自己在相机这块添加了许多功能,所以看起来就有一大堆的参数. 调用此 dumpParameters() 函数可以打印出所有相机的参数出来.    public static void dumpParameters (Parameters parameters) {        String flattened = parameters. flatten(); 

【Unity】2.8 相机(Camera)

分类:Unity.C#.VS2015 创建日期:2016-03-31 一.简介 Unity的相机用来向玩家呈现游戏世界.你在场景中始终至少有一个相机,但也可以有多个.多个相机可以带给您双人分屏效果或创建高级的自定义效果.您可以让相机动起来,或者用物理(组件)控制它们.您能想到的任何东西,几乎都可以通过相机变成可能,为了配合您的游戏风格,还可以使用典型或独特的相机. 相机 (Camera)是为玩家捕捉并展示世界的一种设备.通过自定义和操作相机,可以使您的游戏演示真正与众不同.您可以在一个场景中使用

Android视频录制从不入门到入门系列教程(四)————Camera Parameter

Camera提供了一个叫做setParameters的方法帮助开发者设置相机的相关参数. 通过Camera的getParameters方法可以获取到当前为相机设置的相关参数. 下面简单介绍下,视频录制会用到的几个参数的用法. 一.设置PreviewSize,即视频预览大小,也即输出到SurfaceView的视频图片的分辨率大小. 需要注意的是,PreviewSize只有那么有限的几种,各个手机的值也不近相同,不是随便传进去个Size都行的.当然你非得随便搞个Size传进去,编译时不会出现任何问题