台灣電影人Yolfilm邀请我回答的。正好我因为一直深感数码相机记录范围不足伤神,而潜心研究(自重,玩笑)HDR处理,可以稍微扯一点,就写了点。搜索引擎进来的人,请先看看文章发表日期,判断下是否是你需要的资料后再往下阅读。
HDR其实发明很早了,数码相机还没普及时就在弄了,不过到现在还没全面达到轻松易用的程度。HDR视频的提出到现在也有十多年了,2000年就有好几篇消费级别的HDR视频的学术论文了。如姜弘宇所说,原生HDR影响的显示非常受限于硬件环境,包括显示技术和带宽问题。所以现在阶段HDR主要目标都是在解决HDR在LDR设备上的显示问题:把大动态范围(由现场光比决定)的光信息,「压缩」到8位JPG内。
其实相机很早就有机内HDR功能了,比如索尼的“DRO”、佳能的“高光色调优先”,尼康的“动态D-Lighting”等,它们是通过调整Gamma曲线的状态,来改变画面的影调。这种改变往往体现在高光部分或者阴影部分的对比度增加,但不会提升相机的成像总体宽容度。又因为是一种单张HDR类型的处理,只能对付非常有限的光比,另外效果也真的是不明显(可能是怕容易hardcore过度,像instagram的一键亮度修正就很容易harcore)。而如果用raw拍摄,基本上可以无视那个功能。这个功能基本上就是针对JPG出片用的,而且会降低画质(至少佳能的会),专业人士根本不用。
2年前,Soviet Montage公布了一段用2台5D2拍摄的HDR影片。号称是首部真正的HDR,出来时还是相当振奋人心的,「Finally someone did it!!!」,该公司说是致力于低成本的HDR解决方案。他们的这套解决方案是出售的,以收集资金研究更好的解决方案,不过2年过去了……没消息……就出了2个iOS上的拍照app……也许这个项目就这么坑了……
2台一起拍,最主要的解决点是如何用让不同位置的相机没有视图差。 Soviet Montage的解决方案是用了个分光镜,把影像分成2个分别进入两个相机。这个方法在2001年和2007年的学术论文中有提到过。
Soviet Montage 的演示片段中,风景的效果已经相当迷人了,不过拍人时依然囧了,这也是很多全局HDR的问题:皮肤的细节容易被过分强调显得不自然。对于环境人像HDR,目前的主流做法是手工蒙板式地去掉脸部的HDR……说白了就是没辙……
最近的民用新产品中HDR的功能似乎越来越得到重视,canon的5D3自带HDR(照片)拍摄模式、sony更是开发出了HDR movie功能,不过sony这个还没实装,目前的计划也只能看到8-13MP级别的手机相机上应用。
专业产品上,目前越来越多的录像机都能记录很大的动态范围了。RED和Arri这2个公司也开发了针对HDR的感光芯片。RED公司有个HDRx技术。同时拍两种曝光度的视频:A track为正常曝光,X track为「高光保护」,就是过爆的,可以自己设定过爆值。ISO和光圈不变,改变的是曝光时间。官方说,两个track是没有时间断层的,但是没讲原理……不知道是有两层感光芯片还是也用了分光镜。数据以自家的R3D类型文件存储。 后期还是得经过细心处理后才能得到HDR效果。最新的EPIC-X录像机的动态范围为13.5EV,同时拥有最高18EV程度的HDRx设置,能直接拍12-16位的raw视频。pro套装价格是……6.5w美元。
但是,和目前主流相机的RAW一样,这个只是记录了一个大的动态范围的数据而已,没有得到HDR,要在目前的屏幕上得到HDR,得经过渲染。我们拿到片源后还是得手工渲染。
做过HDR摄影的人应该知道,目前主流的HDR算法处理中,没有完美的万能配置,连个auto都没有。根据不同场景,为了完美的效果,我们都得手工调整十几个参数才行。而新出的5D3自带的HDR是很傻瓜的,效果看上去挺足够的(虽然肯定没有手工的完美)。可惜佳能没有透露算法细节……另外人皮肤的问题还是有点……
如果处理器的计算能力没问题,我想5D3这个HDR应该是可以应用到视频拍摄的。
前面说,目前的HDR都是把n个EV的动态范围通过处理压缩到8位JPG能显示的数据。这其实是个曲线救国的解决方案。直接开发出能显示出更多颜色屏幕显示/处理技术才是直奔主题的。也有人认为这才是短期的可行方案。不够要等到视频标准升级到HDR级别,估计确实需要几十年,带宽、接口、文件格式、编码、存储、生产线等都得跟上不是一朝一夕的。
老实说我觉得目前HDR的发展一直进展不是很快,不管是民用级别还是商用级别。下面我再稍微补充写一下HDR视频的实现难点。
首先,我们为什么需要HDR技术?要在电脑上显示图像,至少有2步:
- 图像信息的获取,就是拍照,记录光
- 把信息显示在屏幕上
如果相机可以捕捉到所有色彩,如果显示器也能显示所有色彩,那我们的HDR的实现要容易得多,根据人眼的gamma值,修正下色阶就行了。(人眼对光的感应和相机不同,人眼对强光不敏感 )。
但是现实是残酷的。我们目前的技术上有着太多的数据不对称(我自己想的说法……可能不太对):
- 真实光→感光芯片记录的光
这个有点类似色域的问题……相机宽容度再大……也无法记录现实中∞的颜色/光啊。 - 感光芯片记录的光→相片文件记录的光
目前主流单反的raw记录能力是12位……JPG是则8位…… - 相片文件记录的光 →显示器显示的光
数码照片分享在网上给别人看,终究还是在别人家的显示器上显示……网上的JPG是8位的……就算你手工传给朋友一个巨大的HDR文件…你大部分朋友用的VGA接口+一般的显示器……就算目前专业级别的显示器已经可以做到12位的色彩对照表,16位内部信号处理了…要显示大光比时还是不太够…总之,目前的显示技术完全不够显示HDR,也就是我前面说的,我们只是记录了一个HDR文件,但是并没有得到HDR的结果。所以科学家们不得不开发出了tone mapping这个算法来委屈性地解决显示HDR图像的问题,也就现在的HDR后期处理的核心。
tone mapping的算法一直在缓慢的进步着,每个HDR软件的算法都不同,不过至今大部分HDR软件没有auto或者有auto也效果不理想,几乎所有都得摄影师手工调到最完美才行
于是这样最终下来,我们丢失了太多太多数据,不只是亮度数据,色彩数据也在丢失,这里先不说色彩了。每一个环节都有技术障碍,有各自的瓶颈。要还原人眼观察的世界,困难重重。只说HDR的显示的话,个人觉得显示技术的问题是目前最明显的瓶颈吧。毕竟相机宽容度已经大大超过显示器显示范围了。HDR文件太大无法方便的网上交换照片也没有浏览器支持又是另外一个问题了。
我还想说下宽容度的问题:
老的观念里数码相机宽容度比胶片弱,其实现在数码相机的宽容固定已经很牛逼了。4年前的索尼A900,JPG直出的最佳動態範圍: 索尼A900: 9.4EV (ISO 200) ;RAW檔可調的最佳動態範圍 (RAW headroom): 12.6EV (ISO 200)。Arri摄像机的更是能达到14.1EV!要知道人眼的宽容度大概也就是15ev。而胶片中宽容度最大的负片大约是10EV,反转片只有6-7EV。
看似胶片完全不行啊,但实际出片依然是胶片效果好。why?因为胶片有着类似人眼的感光效果,是天然HDR出片。而Sensor由于其线性感应,使用了大量的levels(Bits)来纪录高光区段的细节层次。对暗部能记录到的信息很少,和人眼相反。所以很多时候我们差不多是浪费了一个相机的将近一半的宽容度,不然在大多数光比下我们完全可以单张HDR。现在普遍的3张HDR是一种不得已的做法(1是记录范围不够2是画质问题)。如果未来感应芯片普遍实现了真16位raw数据(目前大多数还是12位记录,16位的话能记录的信息量就再乘16倍,应该相当够用了),那单张HDR的应用能一下子广泛很多。一旦单张HDR成为主流,那HDR视频也不远了。
如果HDR时代来临,我们的硬盘、网络流量、cpu时钟也会一下子吃紧很多。16bit图像的文件尺寸比8bit的能大好多倍,打开速度不是一个级别,处理速度更加不是一个级别,内存占用也飞涨。做视频的话……呵呵
上面基本都是在说硬件层次的,其实软件(也就是tone mapping的算法)层次也有一些障碍。最原始的tone Mapping很简单,设置一个动态范围窗口,按照最大值、最小值对图像进行裁剪。最近的算法模拟人眼及视神经感知场景的机制,争取在保持真实的颜色与对比度前提下显示全部的动态范围。由于算法复杂,参数非常多,摄影师得耐心调试才能得到一个完美的图像。现场光线环境稍微有点变化,也会极大的影响得到的结果,好像说的不是很清楚,就是说,目前主流的tone mapping 算法下的profile的通用性不好,稍微镜头一转可能就需要重新调整。
另外计算量也不小,目前主流台式机是没法难承担实时HDR视频的计算量的。
哦还有就是皮肤的问题了,前面说过了不说了。
越写越乱,算了就到这里吧orz