【轉】 ISP-黑電平校訂(BLC)

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

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

緣由
那麼爲何要進行黑電平校訂呢?緣由以下:spa

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


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模塊只作微調便可。blog

因爲硬件設計人員在設計BLC模塊時須要考慮效果和成本,所以目前市場上使用的ISP通常採用的方法是在sensor輸出的圖像上減去一個數值。it

BLC各個通道均須要校訂,目前比較經常使用的方法有:io

中值
全局均值
局部均值
自定義
計算較爲簡單,這裏不附代碼了。class

tuning
因爲電源、PCB等各個緣由,咱們遇到的黑平衡並非那麼理想,以下兩種狀況,固然還有更糟的,這裏不一一列舉。

 

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

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

相關文章
相關標籤/搜索