1. 程式人生 > >簡圖記錄-GAMMA技術基礎

簡圖記錄-GAMMA技術基礎

簡圖記錄總結

一、概念

      GAMMA概念:CRT顯示器螢幕上產生亮度輸出和輸入電壓訊號不成正比存在失真,gamma最初就是用於描述顯示器件亮度響應特性引數,調整gamma曲線就是針對輸出輸入曲線的調整。後來衍生到 在拍攝端、顯示端對亮度或者歸一化三基色進行非線性轉化的過程。

      顯示裝置的GAMMA值:CRT顯示曲線歸一化處理後,亮度輸出和電壓輸入接近y=x^2.2的曲線,這裡我們稱gamma=2.2,一般CRT裝置gamma值都在2.2~2.5左右。對於LCD裝置本身是沒有類似的特性,但實際一般也會人為的校正到gamma為2.2左右(原因源於人眼的gamma特性)。

    

       人眼的gamma特性:人眼實際對亮度的感知也是非線性的,一般呈現指數關係。在低照度下,人眼更容易分辨出亮度變化,隨著亮度的增加,反而不容易感知亮度變化,人眼感知亮度 和 實際光照強度輸入 約呈現月y=x^0.4的曲線。(人眼在不同亮度環境下曲線都回有所變化,因此 對於電影/電視/電腦 不同環境,編碼/解碼 配合的gamma值都是有差異的)

      檔案採集儲存的gamma特性:基於人眼低亮度感知變化更敏感這一特性,在採集或儲存階段,為了更有效的儲存資訊,都回對資料進行非線性轉化如儲存值與輸入亮度y=x^0.5,使用8bit非線性儲存的內容還原後能接近11bit線性儲存感官效果。

二、典型顯示通路

      理解了基本的gamma概念後,我們不難看出gamma是一個端到端的通路特性。一個典型的顯示通路如下:(1)內容製作採集裝置,使用y=x^(1/2.2)曲線進行採集,然後將R'G'B'資料再CSC轉化為YUV資料,便於編碼/傳輸,節省檔案大小和傳輸頻寬。(2)顯示傳輸裝置,如視訊盒子/電視端SOC處理部分,將YUV進過CSC轉化為R'B'G',進行gamma曲線微調達到產品預期的色溫白平衡等顯示風格。(3)屏端顯示裝置,將R'B'G'按如曲線y=x^2.2進行顯示。

三、GAMMA常見實現方案

      如當通路中為RGB10bit資料,那麼GAMMA邏輯處理模組要做的就是通過查表將0~1023的分量輸入對映到0~1023的輸出,調整GAMMA曲線就是調整這張1024個數據的資料表,RGB可單獨使用不同的資料查詢表也可使用一張資料表節省空間。(實際的場景中,不同的源採集的曲線不同,輸出使用的表也不同,應此一個顯示系統往往存在各種gamma曲線在不同場景使用)

四、重點事項

      關於屏端Gamma校正:屏作為顯示端,其GAMMA曲線非常重要,直接影響 亮度/對比度/噪聲/顏色,調節好屏端gamma是一切調節影象效果的基礎,一般情況下調整gamma的過程 為依次輸入0~1024的灰階,確認灰階飽和丟失現象,通過調整gamma曲線最終達到gamma=2.2的要求。

      關於不同gamma值的影響:最理想的狀態時顯示系統所有的內容都使用一個gamma值採集製作,顯示端俺統一的gamma顯示,但實際無法保證,如本地碼流/網路碼流/圖片/HDMI源 由於環境擦汗以,gamma編碼值夜不同,解決方案是在不同的場景使用不同的gamma係數。但實際過程往往無法做到完全匹配,如在播放視訊過程調出選單,GPU繪製的選單往往是完全線性的RGB,應此在2.2gamma顯示過程會有輕微偏色。

      關於線性與非線性演算法處理gamma影響:從整個視訊通路來看,過程圖象都是處理非線性資料。如果某個演算法必須要線上性領域處理(如需要做周邊資料參考,而且必須要是線性參考系),那麼在做資料處理前必須要有degamma的過程,將資料變為線性資料,然後處理完成後再重新進行gamma還原。