圖像 ISP 處理流程以及新人學習圖像的注意點

1 什麼是 ISP ?

        ISP 全稱 Image Signal Processing,即圖像信號處理。

        景物通過光學圖像投射到 sensor 表面後,光電轉換爲模擬電信號,消除噪聲後經過 A/D 轉換後變爲數字圖像信號。由於原始的圖像是 Bayer 圖像,因此需要通過一定的技術轉換成一張色彩正常的 RGB 通道的圖像。這個過程涉及到以下的基本流程:

1.1 BLC 模塊

        BLC (Black Level Correction)模塊爲了校正黑電平(圖像數據爲0時的信號電平)。因爲 A/D 芯片無法輸出電壓值極小的信號,以及 sensor 電路本身存在暗電流(沒有光照條件下依然有一定的輸出電壓)。  

1.2 Demosaic 插值模塊

        該模塊實現 Bayer 數據轉換成 RGB 數據的功能,通過顏色插值後使得每個像素都具有三個通道數據。

1.3 White Balance 模塊

        Bayer 經過插值後的 RGB 數據顯示通常偏向綠色。Bayer 數據中,綠色像素佔總像素的一半(因爲人的眼睛對於綠色更加敏感,這也是 Bayer 格式設計的初衷),需要對偏色進行修正。白平衡操作可以在顏色插值後進行,也可以在黑電平操作後進行。

1.4 CCM 模塊

        CCM (Color Correction Matrix) 模塊通過矩陣運算,調節圖像的飽和度,顏色校正等功能。

1.5 Gamma 模塊

        模塊主要用於調節圖像的對比度和亮度,通過 Gamma 曲線進行映射,獲得新的像素值。

1.6 CSC 模塊

        該模塊通過矩陣運算併疊加偏移量,實現 RGB 向 YUV 數據的轉換。爲什麼要轉換呢?因爲 YUV 數據分離了圖片不同的信息,且由於採樣方式不一樣,壓縮了數據,便於存儲。

1.7 Sharpen 模塊

        銳化模塊提高圖像的清晰度,但是作用太強會放大噪聲,同時會造成白邊和鋸齒等現象。

1.8 DN 模塊

        降噪模塊用於降低圖像的躁點。

2 新人學習 ISP 流程的注意點

  • 需要一定的編程基礎,至少懂得一門語言。在這個基礎上需要熟練掌握一門腳本和編程語言。推薦 Matlab 進行仿真工作,用 C 語言或者 C++ 進行工程工作。
  • 對自身工作具有一定的興趣
  • 在初次編程過程中可能會遇到的問題:
  1. 如何讀取數據
  2. 圖像數據的類型
  3. 圖像數據的結構
  4. 如何進行矩陣運算
  5. 計算過程中溢出的數據如何截斷
  6. 各個圖像的算法原理是什麼,如何改進,不同算法之間的區別是什麼
  7. 圖像如何顯示
  8. 尤其掌握 C 語言的基本語法(主要掌握指針使用和內存分配問題)等等。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章