Just a Computer Graphics Studio & My Life

伽瑪 (Gamma)

這個字伽瑪 (Gamma)實在令人頭痛!只是一個「γ」字,卻隱含了相當龐大的理論,尤其是影像相關的工作者,對伽瑪 (Gamma)實在不能不瞭解!你現在使用Windows,Gamma值為2.2;你若改用Macintosh,Gamma值則為1.8,但你知道為什麼要這麼選擇嗎?

其實我也不曉得為什麼,找遍google關於Gamma的文章,許多不是交代不清,就是模稜兩可,還是要我親自去閱讀外國人所做的研究,才能真正客觀地解釋伽瑪 (Gamma)

為什麼要有伽瑪 (Gamma)?

它被用來調整亮度,可是色彩學中Contrast對比Brightness明度Luminance照度都可用來調整亮度,為何還要多出Gamma來混淆視聽?原因是大部分的設備如顯示器、印刷品等,甚至人的眼睛對光的反應並非以線性來分佈,換句話說,把光作input,而如上述的設備來output,是以nonlinear來mapping

特別研究人類視覺可發現,人眼有兩個特性:

  • 人眼對灰度變化的感覺比對色調變化的感覺來得敏銳
  • 人眼對於黑暗中的細節比對明亮中的細節還要更敏感(人眼的感光曲線其實是對數曲線,稱為Weber-Fechner定律

註:Weber – Fechner定律敘述主觀感覺與刺激強度的對數成正比關係,意即當人體感官所接收到的感覺以算術級數增加時,外界刺激強度需要以更大的幾何級數增加,人們才能感覺其差異。該定律能以下式表示:S=K×log(I/I0),S為感覺大小,I/I0為物理強度變化比值,K為一比例數。

對於第二人眼特性,除了底片(negtive film, why?)恰好跟其相反之外,其餘設備大致和人眼類似:對於黑暗中的細節比對明亮中的細節還要更敏感。我們可以舉例子說明:

  • Gamma γ is a power function: f(x) = x^γ where x is an input value, γ is the exponent or gamma, and xγ is the output value.
  • The output value increases in a non-linear fashion as the input value increases.   This characteristic curve is typical of a logarithmic scale.   Gamma 1.0 results in no scaling.

這裡的Gamma很簡單地定義為一個函式:f(x) = x^γ ,可是怎麼計算為上圖表格?首先必須將0-255轉為0-1,然後丟進去函式運算後,出來的值0-1再轉為0-255,聰明吧!

當我們用電壓voltage來獲得亮度brightness,相同的概念成立。我們想要調用哪個規模(scale)來當作線性?亮度(brightness)、光度(luminosity)、電壓(voltage)或顏色編碼的值(color encoded values)?在上右圖表中,如果我們將流明的亮度(brightness with lumens)取代Y軸,圖表就是Gamma 1.0

有研究者得到得結論:現代電腦使用log base 2來紀錄資訊,光的特性也是基於log base 2,然而兩者並沒有關聯性,why?如果要說有關連性,那只有在中間調(neutral tones)較為符合。

此研究者做了實驗,根據Ansel Adams理論Zone System,將階調(曝光)分為11個區,以下上圖為linear分佈,可以看到從最黑開始Zone 0之值為0、最亮結束Zone X之值為255,中間調Zone V之值為128,50% gray tone (18% reflectance),每個Zone相差約25-26,確實屬於linear。而實際上使用相機曝光所得的結果呢?

以上下圖是使用Nikon D1X手動模式來曝光,相隔Zone都差1個stop,實際上測得的值無法以式子描述,如上。可以得到全白255卻得不到全黑0是為什麼?數位攝影師都曉得,很容易曝光過度而無法留住亮部細節,相對而言若曝光不足,卻較容易回復暗部細節。下圖表是上圖兩個階調的關係圖:

標準的攝影用灰卡18%反射率、中間灰50%,如果使用此卡來決定曝光,那麼你會得到正確的曝光,那麼這些數字有何關聯(18%反射率、中間灰50%)?答案跟光本身的Gamma有關係,那麼光的強度曝光值就是以2為power、以2為logarithm或類似其它相關如gamma 2。

我們將11個階調(曝光)對應到255 Adobe RGB的色調,我們可以得到下表:

Exposure可視為相機的曝光補償,Zone是Ansel Adams所提出的分區曝光系統的區,RGB Tone是灰階時的值,Tonal%是簡單的線性(0-255)百分比範圍、Illumination%是像曝光的對數級數。中間調50%對應亮度17.7%,已經相當接近了。這裡的Illumination是光從物體(或灰卡)的反射量。

有個缺陷需要些解釋,在Zone 0仍然有亮度3.1%,,為什麼會這樣?答案是數學上會多做13個stop來得到0.05%的亮度。那樣整個動態範圍就會變成24 stops,然而理論上的Zone System只有11個stops。數學家就會告訴你,再怎麼暗總是會有亮度,而且你不可能達到值為0的黑。工程師就會說,這樣已經足夠去做一些有用的事。

暗部會有tone compression,但這是因為光的特性,它跟是否數位化為數字無關,它跟任何單一設備的最大值或最小值無關,它跟任何單一設備的gamma無關,包括你的眼球。

底片(negtive film)的行為跟數位感應器正片(slide film)不一樣,只是因為它紀錄反向的階調(tone),把黑紀錄成白white(透明transparent),把白紀錄成黑black(不透明opaque)。這也就是我上面講說除了底片之外其它設備都遵循:對於黑暗中的細節比對明亮中的細節還要更敏感

底片所紀錄的階調在洗相片時將會再次反向,基本的範式(?)(fundamental paradigms)是反轉的。因此底片要避免曝光不足而失去暗部細節,而正片或數位相片要避免曝光過度而失去亮部細節。儘管如此,中間調是為最佳曝光

光是能量的組成,燭光(candelas)、流明(lumens)、電壓(voltage)或光子計量(photon counts)都可以用來紀錄光的強度,光強(light intensity)是對數尺度,這是photography 101(?),有關的因子是光的距離(lighting distance)、光圈設定(aperture settings)和曝光值(exposure values)。曝光值簡單地正規化強度到以10為底的線性尺度,因此我們有f/stops的級數、快門速度(shutter speeds)、感光度設定(ISO settings)來匹配我們的曝光設定。

由數位感應器所捕捉的值只是簡單的數字,最小值和最大值是電路設計所得到的函式值,而且這僅決定感應器的動態範圍(dynamic range)。這些值被規模化(scaled)和數字化(digitized),但是位元數和曝光範圍沒有直接的關聯,因為raw值代表光強,它反應的是對數尺度,但是類似資料的範圍將是一樣的,無論它是8-bits、12-bits或16-bits,它們只是碰巧都是以2為底來編碼,位元深度(bit depth)確實會影響資料的粒度(granularity),或是在範圍內獨特的階調數

對於輸出裝置,理論上若應用電壓,顯示電路的亮度是以2為底的對數函式,也就是說單位亮度的改變需要雙倍的電壓,就像攝影曝光會是gamma 2。

實際上,早期的顯示器gamma值接近2.5,換句話說,設備不會精準地遵從物理性質。

校正的應用可以是在輸入(capture)、輸出(display)或兩者之中,,當然它從未被應用兩次,在早些年在演播室攝像機和設備的廣播視頻決定應用在輸入,而不是在每個消費者的電視機上。這個方法很快遷移到數位處理的RGB值,這是RGB gamma correction的基本依據。

同樣的效果應用到多數電器設備,事實上,即使人們的視覺不會依循在完美對數尺度的亮度,人類視覺系統低亮度層級的反應不是高亮度層級的反應的縮小版。

今日,多數消費者高端輸出設備、顯示器、投影機甚至電視機都有複雜的校正控制,但是gamma correction已經在ICC RGB標準化,所以它被整合到任何數位工作流程。

任何gamma correction將會壓縮或擴展一些階調,早期Mac選擇gamma 1.8,因為它想保留更多暗部的細節(知道囉?),PC選擇gamma 2.2,因為它想保留更多亮部的細節(是這樣!),當然關係是gamma 2.0而非gamma 1.0,這些考慮對於低解析度8-bit影像相當重要,若有適當的顏色管理,兩者列印和顯示是相同的!

因畏光的能量是對數基礎,所以無論曝光過度或曝光不足,甚至中間調值都是非線性的趨勢,軟體工具提供優異的特徵來tone correction,這可讓我們增加曝光幅度,特別是raw格式檔,基於簡單的事實:光是非線性

參考:

廣告

Comments on: "伽瑪 (Gamma)" (4)

  1. […] Gamma 校正 :色管的重要程序之一,這篇寫的詳細(有些我還是不太瞭解就是了…),作者有另外介紹Gamma是什麼(Link here) […]

    喜歡

  2. 好複雜的學問><
    謝謝版大願意花那麼多時間研究
    很多東西看不懂但還是很受用了^^

    喜歡

  3. […] 當初聽到伽瑪(Gamma),第一個念頭是gamma一定是高科技時代的技術,沒想到看了前輩寫的文章後,才知道gamma是舊時代的產物。話說由於早期CRT螢幕輸入單位電壓並不會產生等量的亮度(所以是非線性),為了正確地顯示畫面顏色亮度,刻意制定一個曲線關係(x軸為輸入與y軸為輸出),讓最終輸出的影像為線性顏色亮度的影像。即使現代能夠製造出線性反應的液晶螢幕,這種現象仍然深深地影響影像處理,不管是後製、合成、調色或是3D算圖渲染都離不開gamma這個技術。可以參考我先前整理的伽瑪 (Gamma)。 […]

    喜歡

發表留言

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s

標籤雲

%d 位部落客按了讚: