gamma校正_什么是Gamma校正?
導(dǎo)讀:常常在視頻處理中聽到Gamma曲線這個詞,今天就隨著這篇短文了解一下Gamma曲線的來歷。
一、光電轉(zhuǎn)換與電光轉(zhuǎn)換
? ? 將自然界中真實場景轉(zhuǎn)換為屏幕上顯示出來的圖像,往往需要經(jīng)過兩個主要步驟:第一個是通過攝影設(shè)備,將外界光信息轉(zhuǎn)換為圖像信息存儲起來,本質(zhì)上是存儲為數(shù)字信號;第二個是通過顯示設(shè)備,將圖像信息轉(zhuǎn)換為屏幕輸出的光信息。圖1展示了從拍攝到顯示的信號鏈。在整個過程中,信息流要經(jīng)過兩個重要的非線性映射,才能形成我們在顯示設(shè)備上看到的圖像。其中,攝像機的非線性映射通常稱為光電轉(zhuǎn)換函數(shù)(OETF),而顯示端的顯示器的非線性映射通常稱為電光轉(zhuǎn)換函數(shù)(EOTF)。通常,OETF和EOTF并不是互逆關(guān)系。顯示端的EOTF往往還包括代表創(chuàng)作者渲染意圖的光光轉(zhuǎn)換函數(shù)(OOTF),其對觀看者在預(yù)設(shè)環(huán)境下通過顯示器觀看帶來的心理視覺影響進(jìn)行了修正。
圖1視頻制作與顯示流程
二、人類視覺與Gamma校正
必須要強調(diào)的是,視覺是人類的主觀感受,因此,人眼看到的、感受到的和自然界中的實際場景存在誤差。一個直觀的例子是人眼所感受到的均勻變化亮度,在實際自然界中卻非均勻變化。這種視覺特性,就是Gamma校正產(chǎn)生的原因,即通過人為的非線性映射,使人類感受到自然界的“真實”景象。
在詳細(xì)介紹Gamma校正之前,需要先簡單了解一個概念:韋伯定律。
韋伯定律是用來描述外界刺激變化與人類感知到變化之間的關(guān)系,公式如下:
其中?Φ表示此時的差別閾值,是指人類能夠感覺到外界刺激出現(xiàn)改變所需的最小改變量。Φ表示原刺激量,K為常數(shù)。簡而言之,韋伯定律告訴我們,差別閾值與原刺激量成正比關(guān)系。也就是說,外界刺激本身越大,差別閾值就越大。我們能夠從中發(fā)現(xiàn),人類對于外界刺激的感知并非線性的,原刺激越大時,由于比例關(guān)系,差別閾值就越大。即當(dāng)外界刺激強度越大時,想讓人類能夠感知到變化所需的變化增量就必須越大。
舉一個現(xiàn)實的例子:在黑暗的房間中,點燃一根蠟燭,將讓人感知到巨大的亮度改變。而如果房間中有99根蠟燭,再點燃一根蠟燭人類可能根本感覺不到差別。所以,如果想要讓人類感知到同樣程度的亮度改變,所需的蠟燭數(shù)量可能是成百上千根才行。
經(jīng)過科學(xué)家一系列實驗的測定發(fā)現(xiàn)人類能夠感知到的連續(xù)亮度譜如圖2所示:
圖2 人眼感受到的亮度
將最左邊純黑編號為“0.0”,最右端純白編號為“1.0”,中間定義為中灰“0.5”。這就形成了人眼的亮度譜。但是,上圖中的亮度在自然界中并不是同樣成比例的,例如圖中的中灰,對應(yīng)自然界中的亮度是純白的20%。
將人眼亮度譜與自然界中實際亮度進(jìn)行建模,就可以得到下面的圖像:
圖3 自然界與人眼感知的亮度對應(yīng)
圖3中縱軸是人眼感受的均勻灰階,橫軸是自然界中線性增長的亮度。根據(jù)韋伯定律,在低亮度區(qū)域,人眼的敏感性較高,因此自然界中很小的亮度范圍,都能夠被人眼察覺;在高亮度范圍,人眼的敏感度較低,因此自然界中大范圍的亮度變化,在人眼感知上卻并不大。可以使用冪函數(shù)來擬合這種非線性的映射,用公式表示如下:
其中X是使用0-1之間的實數(shù)表示的輸入亮度,Y是使用0-1之間實數(shù)表示的輸出亮度,γ為認(rèn)為設(shè)定的參數(shù),不同的γ選擇會產(chǎn)生不同的效果。這種通過調(diào)整γ的取值,來調(diào)整輸入輸出亮度之間映射關(guān)系的方式,我們稱之為gamma校正。
? ? ? ? ?圖4:不同γ取值下,冪函數(shù)的圖像
根據(jù)γ取值的不同,通過上圖,我們能夠發(fā)現(xiàn)gamma校正的不同效果:
1.????當(dāng)γ<1時,曲線上凸,輸出值大于輸入值。
2.????當(dāng)γ=1時,曲線為一條直線,輸入與輸出相等,不進(jìn)行校正
3.????當(dāng)γ>1時,曲線下凸,輸出值小于輸入值
三、Gamma校正與圖像顯示
在圖像獲取,存儲與顯示發(fā)展過程中,前面提到的光電轉(zhuǎn)換函數(shù)與電光轉(zhuǎn)換函數(shù)也經(jīng)歷了多次進(jìn)化。在整個發(fā)展過程中,最具有指導(dǎo)意義的就是Gamma校正,這是一種在傳統(tǒng)的SDR顯示設(shè)備上被廣泛使用的轉(zhuǎn)換函數(shù)。
在傳統(tǒng)的圖像獲取與顯示過程中,將自然界中的真實場景轉(zhuǎn)換為屏幕上顯示出來的圖像,往往需要經(jīng)過兩個主要的步驟:第一個是通過攝影設(shè)備,將外界的光信息轉(zhuǎn)換為三維數(shù)組存儲起來,也就是存儲為圖像信息,這一過程如前所述,需要通過光電轉(zhuǎn)換函數(shù)進(jìn)行非線性映射;第二個是通過顯示設(shè)備,將圖像信息轉(zhuǎn)換為屏幕輸出的光信息,同樣,這一過程需要電光轉(zhuǎn)換函數(shù)的參與。在這兩個階段中,光電轉(zhuǎn)換函數(shù)與電光轉(zhuǎn)換函數(shù)實際上都是冪函數(shù),也就是都進(jìn)行Gamma校正。
首先,因為圖像每個像素的取值在0-255之間,因此先進(jìn)行歸一化,將0-255這256個數(shù)線性映射到0-1之間。
接著,在圖像獲取階段,攝像機中會使用一種encodinggamma函數(shù)進(jìn)行g(shù)amma校正,這里的gamma值小于1。自然界中的亮度,首先在攝像機中進(jìn)行歸一化,映射到0-1之間,接著,將這個經(jīng)過歸一化的值輸入encoding gamma函數(shù)中。最后將encoding gamma函數(shù)的輸出值與0-255的像素值歸一化結(jié)果進(jìn)行比較,就能得到這個像素點的像素值。
顯示階段的gamma校正通常使用一種display gamma函數(shù)來完成,這里的gamma值大于1。顯示設(shè)備讀取像素值后,進(jìn)行歸一化,然后將歸一化結(jié)果輸入display gamma函數(shù)中。將輸出的值對應(yīng)的自然光線進(jìn)行輸出,就是顯示階段做的工作。
理論上來說,上述兩個階段的gamma值乘積應(yīng)該為1。因為兩個gamma校正實際上做的是恰好相反的操作,一個是將自然光線存儲為數(shù)字信息,另一個是將數(shù)字信息轉(zhuǎn)換為光線。而為了使自然中的光線與顯示設(shè)備產(chǎn)生的光線一致,顯然這里的gamma值的乘積需要為1。但是,在實際操作中,這兩個gamma值的乘積并不為1,原因有以下兩點:1)對于傳統(tǒng)顯示設(shè)備來說,屏幕能夠顯示的亮度范圍與顏色范圍與實際情況相差好幾個數(shù)量級;2)在真實的場景中,原始的場景填充了觀察者的所有視野,而顯示設(shè)備的亮度往往只局限在一個被周圍環(huán)境包圍的屏幕上。這兩個差別使得感知對比度相較于原始場景明顯下降了。因此,在電影院這種漆黑的環(huán)境中,這個乘積為1.5,在明亮的室內(nèi)這個值為1.125。
由于人類感知的“中灰”,在實際的自然光線中對應(yīng)于白光的20%的亮度。因此,如果完全按照自然光線的數(shù)值進(jìn)行灰度處理,純黑到中灰這一段在人類感知中占到一半的灰度,將只能由20%的灰階進(jìn)行表示,而剩下的一半會有80%的灰階進(jìn)行表示,這顯然是不合理的。Gamma校正就可以解決這個問題。在實際操作中,中灰對應(yīng)的自然光線,顯然會被映射為0.5的取值,也就對應(yīng)128這一灰階。這樣的結(jié)果就是高亮度與低亮度部分分別占有一半的灰階,這就會使得顯示的圖像的直觀感受更接近于現(xiàn)實。
?因此,gamma校正實際上是用來解決顯示設(shè)備亮度灰階不足的問題的,在實際生活中起到了廣泛而巨大的作用。
總結(jié)
以上是生活随笔為你收集整理的gamma校正_什么是Gamma校正?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python中frame用法_pytho
- 下一篇: numberformatexceptio