標籤:

再次科普討論:HDR高動態範圍背後的技術

再次科普討論:HDR高動態範圍背後的技術

來自專欄 玩機小胖的玩具世界

首先,什麼是動態範圍,其實這是一個應用面很廣的定義,但每個應用面又有明顯的不同,小胖聊的自然是圖像技術里的動態範圍。按照定義即:滿阱最大不飽和容量/零輸入響應,有動態範圍DR公式:

F為光電二極體,也即像素滿阱最大不飽和值,D為零輸入,也就是全黑照片的亮度平均值,σ為標準差,可按2為底取對數,即為EV。但動態範圍按工程學來說也能用電流來表達(嚴格的測量就輸入和輸出信號的電流或電壓比):

也即i_max最大不飽和電流與i_min底電流之差,按dB分貝取值,為什麼有不同?是因為動態範圍在不同應用面的測試方法其實不同,像顯示器上是比例值,比如800:1等等,但它的測試方法是直接取白電平和黑電平做比值,這對於成像系統來說並不實用。感測器動態範圍測試一般是先把圖像低通濾波,最低亮度求平均、平滑高亮單點後,再計算雜訊基底,測量結果會更穩定。

目前來看高端感測器動態範圍可超80dB,但自然界中很多場景動態範圍甚至超過了100dB,比如逆光、比如顏色反差極大的物體、比如不同膚色的人,事實上如果把多色彩通道考慮進來,目前成像技術只能實現可見色域的一小部分而已,所以無論從亮度還是色彩,都是HDR的存在價值。

按感測器定義來看不難發現,我們提高滿阱容量F,或最大不飽和電流i_max就能解決這個問題了啊。最直接就是提高感測器的輸出帶寬,比如從目前已有的14bit增加到16bit,就能從84.2dB增加到96.3dB啦,但感測器加速在目前卻是一個難度很大的問題,製程、功耗、成本都會變得很不可控,所以HDR高動態範圍不能單純、急躁地堆高速,還得走一些「曲線救國」的方案。

首先是多幀合成,這個其實就包含小胖之前聊過的部分了,具體來說就是以多次,但速度不同的快門來捕捉暗部、亮部以及均值曝光,再機內熔圖(索尼叫Digital Overlap,DOL),但這個方案很考究演算法,還要考慮雜訊影響。同時對感測器的讀出速度要求很高,不過畢竟不是單張照片,時間差始終存在,所以這個方法不適用於對於視頻HDR。

不同曝光進行融合的概念可使用在在單幀HDR上,主要方案有三種,第一是每兩行像素為一組,以短曝光、長曝光、短曝光、長曝光……為節奏排序,最終合成的照片只有總行數高度的一半,換言之就是空間解析度減半,因為視頻解析度並不算高,4K也不過829萬,所以這個設計是視頻HDR目前的主要思路(索尼叫Binned Multiplexed Exposure,BME)。

但畢竟用50%的解析度換HDR並不適用於所有圖形主題,所以有了第二種方案,單個像素也有不同曝光值,再通過解馬賽克演算法融合(也即索尼Spatially Multiplexed Exposure,SME),廠商數據稱此模式的空間解析度折損只有20%(也可通過電子快門的控制實現第一種方案)。

上述兩種演算法的問題在於像素亮度與物體亮度不能一一對應,需要更大量的計算,所以就有了第三種單幀HDR技術,2X2,也就是4個像素共用一個色彩濾鏡,非HDR模式下4個像素合併為單個輸出,可降噪、增加動態範圍。而在HDR模式下時,4個像素中對角線方向的兩兩一組,分別由電子快門控制為長曝光與短曝光,再進行計算合併。這個技術在索尼叫Quad Bayer Coding,QBC,沒錯,當前正紅火的華為P20 Pro感測器就是基於此技術。

除此之外,從感測器本身的設計來看也有一些辦法可依據,比如加大阱容,從而讓i_max變大,原本只需reset一次,現在也換成reset多次,實現更高的i_max值。但這時候會增加固定模式雜訊,響應變成非線性,後端處理會比較麻煩。

事實上感測器HDR只是提供了一個可用值,能把多少可用值轉換為可視值就得依賴顯示器了。舉個簡單的例子,sRGB色域沒有黑電平的概念,無法實現真正的輸出值0,但這對於HDR顯示來說事關重大,最高不飽和亮度固定的情況下,0.1和0.01cd/m^2的輸出差別反應到動態範圍就是10倍的差距,所以在低動態範圍(LDR)顯示器上,就出現一層層黑圈瑕疵,並非純粹的黑,這就需要HDR顯示器才能解決。

但感測器提供的原始HDR信息即便是目前的HDR顯示器也不能直接使用,需要進行色調映射,把高對比度高色域的圖像,根據場景光強轉換成適合顯示的像素值。具體過程:首先要根據當前的場景推算出場景的平均亮度,再根據這個平均亮度選取一個合適的亮度域,再將整個場景映射到這個亮度域,從而得到正確的結果。接下來是公式時間。

根據場景推算平均亮度,Lw(x,y)是像素點x,y的亮度,N是像素數,δ代表純黑像素,有公式如下:

而映射亮度域則需要引進一個α值,控制亮度傾向,比如相對適中的0.18,越小就越偏暗,越大就越偏亮,所以該亮度域的公式為:

將其再次映射到計算機實用的0,1區間就是:

Ld(x,y)就是映射後的x,y像素亮度值,Lwhite是控制亮度峰值的限制,超過它的值均為純白。其實這個演算法在色調映射里很基礎,作為HDR演算法的一部分,可變式也不算少。今天的文章也希望能權當拋磚引玉,歡迎業內大神補充指導。


推薦閱讀:

為機器人加入藝術家行列而歡呼
東坡屋後蛐蛐:你筆下的藝術家們都在哪裡?
時間之間
馮巍 | 遠塵心不勞,畫中見澄思
乾貨!最全色彩搭配方式,調色困難戶們看這裡!

TAG:相機 | 藝術 | HDR |