「過曝」是畫面中同時出現高亮度和低亮度的部份時,高亮度的部份淹沒了感光元件,形成一片死白的現象。如果想像成感光元件是一個桶子,進來的光是水的話,那每個桶子的存水量是有上限的,一旦超過這個上限,桶子就只能是「滿的」,而不知道實際上是落了多少水進來。解決這個問題最簡單的方法,就是傳統的 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 都可說是再度大幅度降低了攝影的門檻,可以輕鬆拍出富含大量細節的影像呢!