blc(black level correction),即黑電平校正。
首先我們先介紹一下黑電平(black level),黑電平即是當影象資料為0時對應的訊號電平,不同位深資料的黑電平也不同。目前手機上主流的是raw10資料,即資料範圍為0到1023,對應的ob值(optical black)一般為64.當raw圖資料為12bit時,對應的ob值為256.
理論上的camera sensor輸出電平值和環境的亮度成正比,環境亮度越大sensor輸出電壓越高,電流越大。但是實際上因為sensor電路本身會存在暗電流,導致沒有光線輸入的時候也有一定的輸出電壓,所以需要把這部分的輸出減掉,使sensor的輸出電壓與輸入的亮度成正比。
目前主流的sensor會有幾行完全遮黑的dark row用來計算處理暗電流,如下圖。sensor輸出的是已經減過black level的資料。
既然sensor已經減去了black level,那手機isp流程減去的是什麼呢?其實是sensor統一做出來的offset,主要的作用是保留sensor輸出的負訊號,sensor是不能輸出負訊號的,如下是有offset的資料分布和沒有offset的資料分布:
可以看出如果sensor不做這個offset的話,暗處的負訊號放不出來,影響了pixel資訊的分布,從而導致影象(主要是雜訊)的效果不好。
理論上這個offset值應該不會改變,但實際上因為dark row和正常**的pixel的暗電流稍微有些差別,在低倍gain的情況下不明顯,高倍gain下差距就會進一步拉開,一般高倍gain的ob值會更高,ob值如果暗處過高會導致暗處偏紅等效果問題,一般手機專案對晶元的ob值都會有個範圍的要求。
黑電平校正一般處於isp pipepline很靠前的位置,**如下:
def
ob_correction
(data,black_level,bit_depth)
: data = np.float32(data)
data[::
2,::
2]=(data[::
2,::
2]- black_level[0]
)/(2
**bit_depth - black_level[0]
) data[1:
:2,:
:2]=
(data[1:
:2,:
:2]- black_level[1]
)/(2
**bit_depth - black_level[1]
) data[::
2,1:
:2]=
(data[::
2,1:
:2]- black_level[2]
)/(2
** bit_depth - black_level[2]
) data[1:
:2,1
::2]
=(data[1:
:2,1
::2]
- black_level[3]
)/(2
** bit_depth - black_level[3]
) data = data *
2** bit_depth
data = np.clip(data,0,
2**bit_depth)
return data
水系影像分析 遙感衛星影像解譯流程及方法 地質
為了準確進行遙感地質解譯,解譯者首先應具備一定的地質 遙感知識 其次應對解譯區的地質基礎 構造格架 災害地質 地形地貌和水文情況等要有粗略的了解.常用的解譯分析方法有 一 直判法 根據不同性質地質體在遙感影象上顯示出的影像特徵 規律所建立的遙感地質解譯標誌或影像單元,並在遙感影象上直接解譯提取出構造...
手機modem訊號流程
打 發射訊號的流程 聲音經過mic,放大後經過基帶晶元的adc變成數字音訊訊號轉換為基帶i,q訊號,再通過transceiver,上變換為高頻訊號,通過訊號切換開關進入功率放大後經過聲表面濾波器後由天線發射出去到基站。打 接收訊號的流程 基站的高頻訊號通過天線接收後經過天線開關卻換後由高頻小訊號放大...
工業相機軟體開發 影像資料獲取流程
整理乙份原始影像資料從感測器獲取模擬訊號到影像後處理的過程 考慮到成本因素,相機多採用單通道ccd cmos獲取原始影像,後續通過色彩差值恢復為彩色影象,梳理記錄一下程式設計中整體資料從產生到後處理流程以及諸多需注意的步驟 1.相機部分 通過硬體指令設定好相機的相關引數之後,開啟相機,相機從ccd ...