簡述安霸pipeline及其關鍵引數--raw域模組

我可是來學習的發表於2021-12-05

何為pipeline

   sensor輸出是一種叫Bayer 格式的RAW資料影像。ISP 對RAW資料影像的處理流程就是我們說的ISP PipeLine。通過PipeLine的處理,我們可以從一副RAW圖得到RGB格式影像,再到YUV格式的影像,也就是我們在螢幕上所看到的影像。

   下面,將結合下圖為大家介紹一下安霸ISP PipeLine的詳細情況。

   

 

 

   

輸入:安霸ISP PipeLine的輸入是一個有效位為16位的RAW圖(12位的資料左移4位),raw圖有不同的Baye 格式,常用的Bayer格式有RGGB,、GRBG、GBRG等多種。

   

  sensor的每一個畫素點上都有一個rgb三原色的濾鏡。紅色的濾鏡透過紅色的波長,綠色的濾鏡透過綠色的波長,藍色的濾鏡透過藍色的波長。人眼對綠色比較敏感,所以一般bayer格式的圖片綠色格式的畫素是是r和g畫素的和。那麼根據Sensor的濾鏡排列,則會生成不同格式的RAW圖。

 

  Raw域的處理主要是static_black_level(BLC), li_auto_bad_pixel_correction(DPC),contrast_enhance,li_cfa_noise_filter等模組。

  RGB域的處理主要是demosaic,tone_curve(類似於gamma曲線)

  YUV域的處理主要是rgb_to_yuv_matrix,chroma_scale,ASF,MCTF,SharpenB

 

RAW域處理模組的詳細介紹:

 

static_black_level(BLC)這個模組稱為黑電平矯正,安霸ISP PipeLine對RAW圖處理的第一個模組。黑電平是指影像資料為0時(沒有光訊號到達sensor)對應的訊號電平,但是黑電平常常不為0,原因為如下:

  一是由於sensor本身會存在暗電流,導致在沒有光照進來的條件下pixel也有電壓輸出。還有一個原因是因為sensor進行模數轉換時精度不夠,以8bit為例,每個pixel有效範圍是0-255,sensor可能無法將接近於0的資訊轉化出來,由於人眼特性(對暗處細節比較敏感,)所以sensor廠商一般在轉換時會加一個固定的偏移量使畫素輸出在5(非固定值)—255之間,然後傳輸在ISP端再做一個減法,將5(非固定值)變為0。所以可以從已獲得的影像訊號中減去一定的電平訊號,使暗處得到黑平衡。

 

  安霸的黑電平矯正引數如下:

   

 

 

 

  對bayer格式得四個通道分別減去一定得電平訊號。這個引數得具體數值是由標定得到的。標定的一些流程如下:

  1. 將光圈、曝光時間設定為最小,最好是再將鏡頭用遮光片捂住,保證沒有光線進入sensor。在這種環境下從0db開始到60db每隔6db拍取一張raw圖,用來做BLC標定材料。
  2. 開啟安霸工具IQ Lab匯入上訴raw圖,匯入時需要填寫raw的Baye 格式,解析度,BLC等。剛開始標定時可以都寫0。
  3. 匯入圖片後,點選file info,點選Ref並記錄下黑電平數值。

 

 

 li_auto_bad_pixel_correction(DPC)壞點矯正,安霸的ISP PipeLine將此模組放在BLC之後。Sensor上畫素點的陣列工藝可能會存在缺陷,或光訊號進行轉化的過程中出現錯誤,會造成影像上有些畫素的資訊有誤,導致影像中的畫素值不準確,這些有缺陷的畫素即為影像壞點(Bad pixel)。

  壞點的分類有以下幾種:

  靜態壞點:

  亮點:一般來說畫素點的亮度值是正比於入射光的,而亮點的亮度值明顯大於入射光乘以相應比例,並且隨著曝光時間的增加,該點的亮度會顯著增加;

  暗點:無論在什麼入射光下,該點的值接近於0;

  動態壞點:在一定畫素範圍內,該點表現正常,而超過這一範圍,該點表現的比周圍畫素要亮。與sensor 溫度、增益有關,sensor 溫度升高或者gain 值增          大時,動態壞點會變的更加明顯。

 

  安霸的靜態壞點的矯正主要依賴於工具的標定,用生成的Bad Pixel Bitmap(靜態壞點表)去處理靜態壞點。

  

  安霸的動態壞點矯正引數如下:

   

  其中hot_pixel_detection_strength代表亮點壞點的檢測閾值,值越大則越容易被判斷為亮點壞點。dark_pixel_detection_strength則是暗點壞點的檢測閾值。值越大則越容易被判斷為暗點壞點。

  Correction_method則是壞點的矯正強度,取值範圍為0-1。值越大矯正力度越強。如果要對亮點壞點和暗點壞點進行不同的矯正力度,就要通過enable引數調節,其取值範圍為0-4。1st的矯正力度較小,2nd的矯正力度更大。

  

  注意事項:對於壞點的矯正雖然能降低影像上的噪點,但是不能使用太強的矯正強度。否則會抹去過多的資訊,使得影像細節損失。

 

 

contrast_enhance:安霸ISP PipeLine中的重要模組,其中完成了動態範圍壓縮,細節增強。

 

   

 

 

 

  首先Guided Filter 將影像分為Detail層和Base層,涉及的引數如下,越大就會有越多的訊號進行細節增強處理。

  

 

 

   radius、epsilon這兩個引數的越大,coring_gain_*對畫面的細節增強越明顯。

 

   

  Fir_enable 是一個低通濾波的開關,關閉後會有更多的高頻資訊。

 

   

 

  通過luma_avg將畫面分為64個亮度不同的區域,Coring_table陣列內的成員是這64個區域的細節增益。值越大則細節越強。

 

   

  Coring_gain_*_strength這組引數是以亮度為橫座標的細節增強曲線,其中coring_gain_low,coring_gain_high這兩個數值會將橫座標分為低亮區、中亮區、高亮區。對不同亮度區域可使用不同的增益強度。Coring_gain*_strength。

  最後coring_gain_*_strength 乘上Coring_table則是對影像detail層的細節增強增益。

 

   

  Boost_table是一個64元素的陣列,第一個元素對應luma=0,最後一個元素對應luma最大值。增強這個引數的數值,可增強影像的動態範圍。

 

  CFA Noise Filter:是作用與raw域的降噪模組,採用中心畫素與周圍畫素做加權平均的思路進行降噪。Filter將影像分為平坦區域(使用Regular濾波)和細節部分(使用Fine濾波)進行各自的降噪設定。

 

   

  Noise_level_blue/green/red作為R/G/B三個通道的Regular降噪濾波門限,低於這組引數的值會被判定為平坦區,採用Regular濾波。該門限的值越高,則濾波強度越強。

   

  Noise_level_blue/green/red乘以strength_fine_blue/green/red作為R/G/B三個通道的Fine濾波的門限。低於這組引數的值會被判定為細節區,使用Fine濾波,高於這個門限的不做處理。

   

  Extern_fine_blue/green/red是Fine濾波的濾波半徑。Extern_Regular_blue/green/red是Regular濾波的濾波半徑。

 

  Noise_level越強,降噪越強。並可根據R/G/B區分通道,單獨處理。Extern越強,加權平均的radius越大,則降噪能力越強。一般不建議在raw域上使用很強的降噪強度,這樣會抹去很多細節,後面難以復原。

 

 

 

相關文章