无上限HDR余数相机:与死白过曝说再见!
扫描二维码
随时随地手机看文章
「过曝」是画面中同时出现高亮度和低亮度的部份时,高亮度的部份淹没了感光元件,形成一片死白的现象。如果想像成感光元件是一个桶子,进来的光是水的话,那每个桶子的存水量是有上限的,一旦超过这个上限,桶子就只能是「满的」,而不知道实际上是落了多少水进来。解决这个问题最简单的方法,就是传统的 HDR -- 一次拍三张不同曝光的照片,让亮部和暗部的信息都能纪录在一张照片里。
然而,拍三张照片就意味著有可能在连拍的过程中被摄物有所偏移,而且也不能保证三张照片就能涵盖画面所有亮部和暗部(用术语说,就是动态范围不一定够大),而这个由 MIT 所开发的「Modulo」余数相机技术,就是只要拍一张照片就能取得 HDR 信息的神奇办法。
余数相机的祕诀,在于「水桶」(感光元件)只要满了就倒掉,重新累积,最后不管累积到多少,就都直接输出出去,再从最后的结果去重新建构原图。我们想像有一组线型的感光器,进光量长这样:
1,2,3,4,5,6,7,8,9,8,7,6,5,4,3,2,1
中间最亮,两边最暗。如果是传统感光器能纪录的最大进光量为 5 的话,那记下来的文件会长这样:
1,2,3,4,5,5,5,5,5,5,5,5,5,4,3,2,1
中间超过记录上限的部份,就全部只剩下饱和的「5」,而失去了任何有意义的数据。然而,如果是每次满了就倒掉,只留最下最后剩余的值的话,记下来的信息就会变成:
1,2,3,4,5,1,2,3,4,3,2,1,5,4,3,2,1
这也就是 Modulo 相机的文件。因为在自然界中,大部份的色阶都是平滑过度的,像 5 接着 1 这种极度的数字变化发生的可能性微乎其微,所以 Modulo 的演算法就会断定 5->1 的过程中,一定是进了一阶,1 实际上应该是 6 才对。同理,1->5 这样的变化也是不自然的,显然在这里是降了一阶才对。从这样的知识,就可以还原出原本纪录的信息。
使用这样的技术,需要特别支持能在满的时候清空重来的感光器,所以 Modulo 团队就借了隔壁实验室一个名为 DFPA(Digital Focal-Plane Array)的感光器来用。我们顺便翻了一下 DFPA 的信息,发现... DFPA 不仅有清空的功能,而且还会记录清空了几次 @@。这意思也就是说,Modulo 需要靠演算法来还原的信息,DFPA 本身就记录着。以上面的例子来说,DFPA 记下的会像这样:
1(0),(0)2,3(0),4(0),5(0),1(1),2(1),3(1),4(1),3(1),2(1),1(1),5(0),4(0),3(0),2(0),1(0)
括号中的数字表示满了几次。这功能可是比 Modulo 还强啊!也就是说如果 DFPA 的技术能商用的话,其输出本身就足以建构 HDR 文件,而且只要能一直纪录水桶被清掉几次,曝光还没有上限呢。当然,DFPA 要应用化还有一段不小的距离要走(现有的分辨率仅有 256 x 256,但它未来的发展性极高...),反而是 Modulo 的方式应该现有的技术就能办到(就是要在感光元件上加一个感光元件的电容满了就自动归零的机制)。
就不知道哪间相机厂要第一个下来实作看看一张照片搞定的 UHDR 啰,这种方法不仅仅具备无上限的特色,其一次快门就可以完成的 HDR 效果,还可能直接应用在录影之中,让一些像是无人机 / 自动驾驶车场景辨识的场合下,不会因为明亮变换太大而失去了感知能力,对于摄影师而言,无论是 Modulo 或者是 DFPA 都可说是再度大幅度降低了摄影的门槛,可以轻松拍出富含大量细节的影像呢!