ISP-黑電平校正(BLC)

轉:https://blog.csdn.net/xiaoyouck/article/details/72824534

概述

介紹

黑電平(Black Level Correction)也就是黑色的最低點,以8bit數據來說,指在經過一定校準的顯示裝置上,沒有一行光亮輸出的視頻信號電平。定義圖像數據爲0時對應的信號電平。

原因

那麼爲什麼要進行黑電平校正呢?原因如下:

  1. CMOS傳感器採集的信息經過一系列轉換生成原始RAW格式數據。以8bit數據爲例,單個pixel的有效值是0~255,但是實際AD芯片(模數轉換芯片)的精度可能無法將電壓值很小的一部分轉換出來,因此,sensor廠家一般會在AD的輸入之前加上一個固定的偏移量,使輸出的pixel value在5(非固定)~255之間,目的是爲了讓暗部的細節完全保留,當然同時也會損失一些亮部細節,由於對於圖像來說,我們的關注度更傾向於暗部區域,ISP後面會有很多增益模塊(LSC、AWB、Gamma等),因此亮區的一點點損失是可以接受的。
  2. sensor的電路本身會存在暗電流,導致在沒有光線照射的時候,像素單位也有一定的輸出電壓,暗電流這個東西跟曝光時間和gain都有關係,不同的位置也是不一樣的。因此在gain增大的時候,電路的增益增大,暗電流也會增強,因此很多ISP會選擇在不同gain下減去不同的bl的值。

Optical Black

每個sensor都有OB區域,CCD sensor初期成像效果較差,它會把top OB 和 side OB暴露給isp使用,這樣isp可以自己估算不同區域不同的black level值,再分別處理。然而ob並不能真實的反映黑電平的值,因此目前很少有ISP或sensor去使用ob區域進行計算。

校正

現在的主流cmos sensor都是自己把black level已經處理完了。在isp部分減掉的其實不是black level,而是sensor統一做出來的pedestal。sensor端不會將bl減完,因爲sensor輸出不能爲負數,若將bl減完,就等於小於0的部分直接就丟掉了,這樣做會改變noise的分佈。

算法

一般BLC模塊會放在ISP比較靠前的位置,因爲我們希望圖像在進入其他模塊之前能夠還原最爲真實的圖像。有些sensor會在sensor內部集成BLC的模塊,那麼此時ISP裏的BLC模塊只做微調即可。

由於硬件設計人員在設計BLC模塊時需要考慮效果和成本,因此目前市場上使用的ISP一般採用的方法是在sensor輸出的圖像上減去一個數值。

BLC各個通道均需要校正,目前比較常用的方法有:

  • 中值
  • 全局均值
  • 局部均值
  • 自定義

計算較爲簡單,這裏不附代碼了。

tuning

由於電源、PCB等各個原因,我們遇到的黑平衡並不是那麼理想,如下兩種情況,當然還有更糟的,這裏不一一列舉。 
這裏寫圖片描述 
這裏寫圖片描述

校正前需要根據圖像的具體情況進行分析,若圖像平面趨於平整,則推薦使用全幀均值;若圖像出現一些峯值,有明顯突出山峯等,推薦使用中值的方法;若出現某個角的值比較高,可能由於電源或者其他的原因引起的,則推薦使用局部計算的方法;此外,還有自定義、最大值等方法,需要根據不同圖像的情況去選擇方法,終其目的都是一樣的。

以單通道爲例,以下是黑電平校正的示意圖: 
黑電平校正

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