ISP基本框架及算法介紹
ISP 的Firmware 包含三部分,一部分是ISP 控制單元和基礎(chǔ)算法庫,一部分是AE/AWB/AF 算法庫,一部分是sensor 庫。Firmware 設(shè)計的基本思想是單獨提供3A 算法庫,由ISP 控制單元調(diào)度基礎(chǔ)算法庫和3A 算法庫,同時sensor 庫分別向ISP 基礎(chǔ)算法庫和3A 算法庫注冊函數(shù)回調(diào),以實現(xiàn)差異化的sensor 適配。ISP firmware 架構(gòu)如下圖所示。不同的sensor 都以回調(diào)函數(shù)的形式,向ISP 算法庫注冊控制函數(shù)。ISP 控制單元調(diào)度基礎(chǔ)算法庫和3A 算法庫時,將通過這些回調(diào)函數(shù)獲取初始化參數(shù),并控制sensor,如調(diào)節(jié)曝光時間、模擬增益、數(shù)字增益,控制lens 步進聚焦或旋轉(zhuǎn)光圈等。
1. TestPattern------測試圖像? ? Test Pattern主要用來做測試用。不需要先在片上ROM存儲圖片數(shù)據(jù),直接使用生成的測試圖像,用生成的測試圖像進行后續(xù)模塊的測試驗證。以下是常用的兩種測試圖像。
2. BLC(BlackLevel Correction)------黑電平校正
? ? ? ?Black Level 是用來定義圖像數(shù)據(jù)為 0 時對應(yīng)的信號電平。由于暗電流的影響, 傳感器出來的實際原始數(shù)據(jù)并不是我們需要的黑平衡( 數(shù)據(jù)不為0) 。所以,為減少暗電流對圖像信號的影響,可以采用的有效的方法是從已獲得的圖像信號中減去參考暗電流信號,或者更確切是:模擬信號很微弱的時候,有可能不能被A/D轉(zhuǎn)換出來,導(dǎo)致光線很暗的時候,圖像暗區(qū)細節(jié)丟失。因此,sensor一般會在A/D轉(zhuǎn)換之前,給模擬信號一個偏移量,以確保輸出的圖像保留足夠多的細節(jié)。而黑電平校正主要是通過標定的方式確定這個偏移量。使得后續(xù)ISP模塊的處理在保持線性一致性的基礎(chǔ)上進行。
? ? ? ? 一般情況下, 在傳感器中,實際像素要比有效像素多, 像素區(qū)頭幾行作為不感光區(qū)( 實際上, 這部分區(qū)域也做了 RGB 的 color filter) , 用于自動黑電平校正, 其平均值作為校正值, 然后在下面區(qū)域的像素都減去此矯正值, 那么就可以將黑電平矯正過來了。如下圖所示,左邊是做黑電平校正之前的圖像,右邊是做了黑電平校正之后的圖像。
? ? ? ? 黑電平校正是在一倍系統(tǒng)增益的情況下標定計算而來,有些sensor在高倍增益和低倍增益時,OB相差會比較大。這個時候就需要獲取不同增益環(huán)境下的遮黑RAW數(shù)據(jù),分析R/Gr/Gb/B四個通道下的mean值。分析出來的均值即為各個通道的OB值。如果需要微調(diào),即可在標定的OB上進行。例如:低照度下偏藍,即可根據(jù)所在的ISO范圍將B通道的幅度增加,減輕偏藍現(xiàn)象。
? ? ?BLC原理及具體算法可以參考:ISP——BLC(Black Level Correction)
3.LSC(Lens Shade Correction)------鏡頭陰影校正? ? ?由于相機在成像距離較遠時,隨著視場角慢慢增大,能夠通過照相機鏡頭的斜光束將慢慢減少,從而使得獲得的圖像中間比較亮,邊緣比較暗,這個現(xiàn)象就是光學(xué)系統(tǒng)中的漸暈。由于漸暈現(xiàn)象帶來的圖像亮度不均會影響后續(xù)處理的準確性。因此從圖像傳感器輸出的數(shù)字信號必須先經(jīng)過鏡頭矯正功能塊來消除漸暈給圖像帶來的影響。同時由于對于不同波長的光線透鏡的折射率并不相同,因此在圖像邊緣的地方,其R、G、B的值也會出現(xiàn)偏差,導(dǎo)致CA(chroma aberration)的出現(xiàn),因此在矯正漸暈的同時也要考慮各個顏色通道的差異性。
? ? 常用的鏡頭矯正的具體實現(xiàn)方法是,首先確定圖像中間亮度比較均勻的區(qū)域,該區(qū)域的像素不需要做矯正;以這個區(qū)域為中心,計算出各點由于衰減帶來的圖像變暗的速度,這樣就可以計算出相應(yīng)R、G、B通道的補償因子(即增益)。下圖左邊圖像是未做鏡頭陰影校正的,右邊圖像是做了鏡頭陰影校正的。
? ? 出于節(jié)約成本的考慮以及尺寸方面的原因,手機相機鏡頭向小型化和低成本方向發(fā)展。由于攝像頭尺寸小,制造材料品質(zhì)低,拍攝的圖像在靠近邊緣處會出現(xiàn)亮度衰減的現(xiàn)象。因此要對 Bayer raw 圖像進行鏡頭衰減校正,以降低計算負荷。使用 LUT 分段線性近似法代替模擬曲線和多項式運算。每種顏色都有自己的 LUT,因此亮度衰減和色偏問題可同時得到解決。
? ?針對不同增益下的LSC校正強度也會有所不一樣。低照度下相對會比正常光照情況下校正強度要小一些。因此,ISP會預(yù)留接口以便對不同增益下的LSC強度進行調(diào)整。抑或者預(yù)留接口控制圖像不同區(qū)域的LSC校正強度。例如:從中心區(qū)域開始往圖像四周校正強度逐級減弱。
? ? ?具體算法原理可以參考:ISP之LSC? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? LSC校準原理? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? LSC校準前后結(jié)果對比
4.DPC(Bad Point Correction)------壞點校正? ? ?所謂壞點,是指像素陣列中與周圍像素點的變化表現(xiàn)出明顯不同的像素,因為圖像傳感器是成千上萬的元件工作在一起,因此出現(xiàn)壞點的概率很大。一般來講,壞點分為三類:第一類是死點,即一直表現(xiàn)為最暗值的點;第二類是亮點,即一直表現(xiàn)為最亮值的點:第三類是漂移點,就是變化規(guī)律與周圍像素明顯不同的像素點。由于圖像傳感器中CFA的應(yīng)用,每個像素只能得到一種顏色信息,缺失的兩種顏色信息需要從周圍像素中得到。如果圖像中存在壞點的話,那么壞點會隨著顏色插補的過程往外擴散,直到影響整幅圖像。因此必須在顏色插補之前進行壞點的消除。
? ? 鹽椒噪聲是一種在圖像中產(chǎn)生黑點或白點的脈沖噪聲,這類噪聲往往和圖像信號內(nèi)容不相關(guān),與鄰域周邊像素灰度值差別明顯。中值濾波能夠較好的濾除鹽椒噪聲(沖激噪聲)。對于Sensor壞點來說,在一定程度上也可以看做是鹽椒噪聲,因此,壞點校正也可以使用中值濾波進行濾除。
? ?算法基本原理:
? ? ? 以圖1.10中P4點為例,壞點消除基本過程為:首先計算該像素點與周圍像素點像素值的差:? ? ? 設(shè)定一個閾值,作為判斷的標準。判斷各個方向上的差值跟閾值的關(guān)系,如果都大于閾值的話,就表明該點像素值與周圍像素點的差別較大,就可以確定該像素點為壞點,否則該像素就為正常的像素點,可以進行下一個像素點的處理。
? ? ? 若判斷出某點為壞點,接下來進行對其的校正,過程如下:計算該點各個方向上的導(dǎo)數(shù):? ? ?確定出該值最小的方向,表明該像素點需要在該方向上進行補償,則按照下面的公式對該像素進行補償,即若假設(shè)有
((DV<=DH)