ISP(Image Signal Processor),即圖像處理,主要作用是對(duì)前端圖像傳感器輸出的信號(hào)做后期處理,主要功能有線性糾正、噪聲去除、壞點(diǎn)去除、內(nèi)插、白平衡、自動(dòng)曝光控制等,依賴于ISP才能在不同的光學(xué)條件下都能較好的還原現(xiàn)場(chǎng)細(xì)節(jié),ISP技術(shù)在很大程度上決定了攝像機(jī)的成像質(zhì)量。它可以分為獨(dú)立與集成兩種形式。
ISP 的Firmware 包含三部分,一部分是ISP 控制單元和基礎(chǔ)算法庫,一部分是AE/AWB/AF 算法庫,一部分是sensor 庫。Firmware 設(shè)計(jì)的基本思想是單獨(dú)提供3A 算法庫,由ISP 控制單元調(diào)度基礎(chǔ)算法庫和3A 算法庫,同時(shí)sensor 庫分別向ISP 基礎(chǔ)算法庫和3A 算法庫注冊(cè)函數(shù)回調(diào),以實(shí)現(xiàn)差異化的sensor 適配。ISP firmware 架構(gòu)如下圖所示。
不同的sensor 都以回調(diào)函數(shù)的形式,向ISP 算法庫注冊(cè)控制函數(shù)。ISP 控制單元調(diào)度基礎(chǔ)算法庫和3A 算法庫時(shí),將通過這些回調(diào)函數(shù)獲取初始化參數(shù),并控制sensor,如調(diào)節(jié)曝光時(shí)間、模擬增益、數(shù)字增益,控制lens 步進(jìn)聚焦或旋轉(zhuǎn)光圈等。
1. TestPattern-測(cè)試圖像
Test Pattern主要用來做測(cè)試用。不需要先在片上ROM存儲(chǔ)圖片數(shù)據(jù),直接使用生成的測(cè)試圖像,用生成的測(cè)試圖像進(jìn)行后續(xù)模塊的測(cè)試驗(yàn)證。以下是常用的兩種測(cè)試圖像。
2. BLC(BlackLevel Correction)-黑電平校正
Black Level 是用來定義圖像數(shù)據(jù)為 0 時(shí)對(duì)應(yīng)的信號(hào)電平。由于暗電流的影響, 傳感器出來的實(shí)際原始數(shù)據(jù)并不是我們需要的黑平衡( 數(shù)據(jù)不為0) 。所以,為減少暗電流對(duì)圖像信號(hào)的影響,可以采用的有效的方法是從已獲得的圖像信號(hào)中減去參考暗電流信號(hào),或者更確切是:模擬信號(hào)很微弱的時(shí)候,有可能不能被A/D轉(zhuǎn)換出來,導(dǎo)致光線很暗的時(shí)候,圖像暗區(qū)細(xì)節(jié)丟失。因此,sensor一般會(huì)在A/D轉(zhuǎn)換之前,給模擬信號(hào)一個(gè)偏移量,以確保輸出的圖像保留足夠多的細(xì)節(jié)。而黑電平校正主要是通過標(biāo)定的方式確定這個(gè)偏移量。使得后續(xù)ISP模塊的處理在保持線性一致性的基礎(chǔ)上進(jìn)行。 一般情況下, 在傳感器中,實(shí)際像素要比有效像素多, 像素區(qū)頭幾行作為不感光區(qū)( 實(shí)際上, 這部分區(qū)域也做了 RGB 的 color filter) , 用于自動(dòng)黑電平校正, 其平均值作為校正值, 然后在下面區(qū)域的像素都減去此矯正值, 那么就可以將黑電平矯正過來了。如下圖所示,左邊是做黑電平校正之前的圖像,右邊是做了黑電平校正之后的圖像。 黑電平校正是在一倍系統(tǒng)增益的情況下標(biāo)定計(jì)算而來,有些sensor在高倍增益和低倍增益時(shí),OB相差會(huì)比較大。這個(gè)時(shí)候就需要獲取不同增益環(huán)境下的遮黑RAW數(shù)據(jù),分析R/Gr/Gb/B四個(gè)通道下的mean值。分析出來的均值即為各個(gè)通道的OB值。如果需要微調(diào),即可在標(biāo)定的OB上進(jìn)行。例如:低照度下偏藍(lán),即可根據(jù)所在的ISO范圍將B通道的幅度增加,減輕偏藍(lán)現(xiàn)象。
3.LSC(Lens Shade Correction)-鏡頭陰影校正
由于相機(jī)在成像距離較遠(yuǎn)時(shí),隨著視場(chǎng)角慢慢增大,能夠通過照相機(jī)鏡頭的斜光束將慢慢減少,從而使得獲得的圖像中間比較亮,邊緣比較暗,這個(gè)現(xiàn)象就是光學(xué)系統(tǒng)中的漸暈。由于漸暈現(xiàn)象帶來的圖像亮度不均會(huì)影響后續(xù)處理的準(zhǔn)確性。因此從圖像傳感器輸出的數(shù)字信號(hào)必須先經(jīng)過鏡頭矯正功能塊來消除漸暈給圖像帶來的影響。同時(shí)由于對(duì)于不同波長(zhǎng)的光線透鏡的折射率并不相同,因此在圖像邊緣的地方,其R、G、B的值也會(huì)出現(xiàn)偏差,導(dǎo)致CA(chroma aberration)的出現(xiàn),因此在矯正漸暈的同時(shí)也要考慮各個(gè)顏色通道的差異性。 常用的鏡頭矯正的具體實(shí)現(xiàn)方法是,首先確定圖像中間亮度比較均勻的區(qū)域,該區(qū)域的像素不需要做矯正;以這個(gè)區(qū)域?yàn)?a target="_blank">中心,計(jì)算出各點(diǎn)由于衰減帶來的圖像變暗的速度,這樣就可以計(jì)算出相應(yīng)R、G、B通道的補(bǔ)償因子(即增益)。下圖左邊圖像是未做鏡頭陰影校正的,右邊圖像是做了鏡頭陰影校正的。 出于節(jié)約成本的考慮以及尺寸方面的原因,手機(jī)相機(jī)鏡頭向小型化和低成本方向發(fā)展。由于攝像頭尺寸小,制造材料品質(zhì)低,拍攝的圖像在靠近邊緣處會(huì)出現(xiàn)亮度衰減的現(xiàn)象。因此要對(duì) Bayer raw 圖像進(jìn)行鏡頭衰減校正,以降低計(jì)算負(fù)荷。使用 LUT 分段線性近似法代替模擬曲線和多項(xiàng)式運(yùn)算。每種顏色都有自己的 LUT,因此亮度衰減和色偏問題可同時(shí)得到解決。 針對(duì)不同增益下的LSC校正強(qiáng)度也會(huì)有所不一樣。低照度下相對(duì)會(huì)比正常光照情況下校正強(qiáng)度要小一些。因此,ISP會(huì)預(yù)留接口以便對(duì)不同增益下的LSC強(qiáng)度進(jìn)行調(diào)整。抑或者預(yù)留接口控制圖像不同區(qū)域的LSC校正強(qiáng)度。例如:從中心區(qū)域開始往圖像四周校正強(qiáng)度逐級(jí)減弱。
LSC校準(zhǔn)原理
LSC校準(zhǔn)前后結(jié)果對(duì)比
4.DPC(Bad Point Correction)-壞點(diǎn)校正
所謂壞點(diǎn),是指像素陣列中與周圍像素點(diǎn)的變化表現(xiàn)出明顯不同的像素,因?yàn)閳D像傳感器是成千上萬的元件工作在一起,因此出現(xiàn)壞點(diǎn)的概率很大。一般來講,壞點(diǎn)分為三類:第一類是死點(diǎn),即一直表現(xiàn)為最暗值的點(diǎn);第二類是亮點(diǎn),即一直表現(xiàn)為最亮值的點(diǎn):第三類是漂移點(diǎn),就是變化規(guī)律與周圍像素明顯不同的像素點(diǎn)。由于圖像傳感器中CFA的應(yīng)用,每個(gè)像素只能得到一種顏色信息,缺失的兩種顏色信息需要從周圍像素中得到。如果圖像中存在壞點(diǎn)的話,那么壞點(diǎn)會(huì)隨著顏色插補(bǔ)的過程往外擴(kuò)散,直到影響整幅圖像。因此必須在顏色插補(bǔ)之前進(jìn)行壞點(diǎn)的消除。 鹽椒噪聲是一種在圖像中產(chǎn)生黑點(diǎn)或白點(diǎn)的脈沖噪聲,這類噪聲往往和圖像信號(hào)內(nèi)容不相關(guān),與鄰域周邊像素灰度值差別明顯。中值濾波能夠較好的濾除鹽椒噪聲(沖激噪聲)。對(duì)于Sensor壞點(diǎn)來說,在一定程度上也可以看做是鹽椒噪聲,因此,壞點(diǎn)校正也可以使用中值濾波進(jìn)行濾除。算法基本原理 :
壞點(diǎn)消除示意圖 以圖中P4點(diǎn)為例,壞點(diǎn)消除基本過程為:首先計(jì)算該像素點(diǎn)與周圍像素點(diǎn)像素值的差:
設(shè)定一個(gè)閾值,作為判斷的標(biāo)準(zhǔn)。判斷各個(gè)方向上的差值跟閾值的關(guān)系,如果都大于閾值的話,就表明該點(diǎn)像素值與周圍像素點(diǎn)的差別較大,就可以確定該像素點(diǎn)為壞點(diǎn),否則該像素就為正常的像素點(diǎn),可以進(jìn)行下一個(gè)像素點(diǎn)的處理。 若判斷出某點(diǎn)為壞點(diǎn),接下來進(jìn)行對(duì)其的校正,過程如下:計(jì)算該點(diǎn)各個(gè)方向上的導(dǎo)數(shù):
確定出該值最小的方向,表明該像素點(diǎn)需要在該方向上進(jìn)行補(bǔ)償,則按照下面的公式對(duì)該像素進(jìn)行補(bǔ)償,即若假設(shè)有 ((DV<=DH) && (DV
5.GB(Green Balance)-綠平衡
由于感光器件制造工藝和電路問題,Gr,Gb數(shù)值存在差異,將出現(xiàn)格子迷宮現(xiàn)象可使用均值算法處理Gr,Gb通道存在的差異,同時(shí)保留高頻信息。另外一個(gè)說法是:Sensor芯片的Gr,Gb通道獲取的能量或者是輸出的數(shù)據(jù)不一致,造成這種情況的原因之一是Gr,GB通道的半導(dǎo)體制造工藝方面存在差異,另一方面是Microlens的存在,特別是sensor邊緣區(qū)域,GB,Gr因?yàn)橛薪嵌炔町悾瑢?dǎo)致接收到的光能不一致。如果兩者差異比較大,就會(huì)出現(xiàn)類似迷宮格子情況。主要是考慮G周圍的G的方法進(jìn)行平均化
Optical cross-talk示意圖
算法基本原理:
A 5x5 local window from Bayer GRBG pattern, (a) The central pixel G7 is Gr; (b) the central pixel G7 is Gb
基于插值的方法
該算法中,選取Gr或Gb為參考顏色通道,修改另一個(gè)G通道分量,使得Gr/Gb兩通道的數(shù)值基本一致。 假設(shè)Gb作為參考通道a圖中的位于位置7的Gr像素值應(yīng)該按照如下公式修改:
如果選擇Gr為參考通道,則只需要按照同樣的方法修改Gb的像素值即可
基于平均值的方法
該算法中Gr,Gb兩個(gè)通道中的像素值都需要修改。 圖a中,對(duì)于位于7位置的Gr,需要按照如下公式修:
圖b中,對(duì)于位于7位置的Gb,需要按照如下公式修改:
6.Denoise-去除噪聲
使用 cmos sensor 獲取圖像,光照程度和傳感器問題是生成圖像中大量噪聲的主要因素。同時(shí), 當(dāng)信號(hào)經(jīng)過 ADC 時(shí), 又會(huì)引入其他一些噪聲。這些噪聲會(huì)使圖像整體變得模糊, 而且丟失很多細(xì)節(jié), 所以需要對(duì)圖像進(jìn)行去噪處理空間去噪傳統(tǒng)的方法有均值濾波、 高斯濾波等。 但是, 一般的高斯濾波在進(jìn)行采樣時(shí)主要考慮了像素間的空間距離關(guān)系, 并沒有考慮像素值之間的相似程度, 因此這樣得到的模糊結(jié)果通常是整張圖片一團(tuán)模糊。所以, 一般采用非線性去噪算法, 例如雙邊濾波器, 在采樣時(shí)不僅考慮像素在空間距離上的關(guān)系, 同時(shí)加入了像素間的相似程度考慮, 因而可以保持原始圖像的大體分塊, 進(jìn)而保持邊緣。
7.Demosaic-顏色插值
光線中主要包含三種顏色信息,即R、G、B。但是由于像素只能感應(yīng)光的亮度,不能感應(yīng)光的顏色,同時(shí)為了減小硬件和資源的消耗,必須要使用一個(gè)濾光層,使得每個(gè)像素點(diǎn)只能感應(yīng)到一種顏色的光。目前主要應(yīng)用的濾光層是bayer GRBG格式。如下圖所示:
這樣,經(jīng)過濾色板的作用之后,每個(gè)像素點(diǎn)只能感應(yīng)到一種顏色。必須要找到一種方法來復(fù)原該像素點(diǎn)其它兩個(gè)通道的信息,尋找該點(diǎn)另外兩個(gè)通道的值的過程就是顏色插補(bǔ)的過程。由于圖像是連續(xù)變化的,因此一個(gè)像素點(diǎn)的R、G、B的值應(yīng)該是與周圍的像素點(diǎn)相聯(lián)系的,因此可以利用其周圍像素點(diǎn)的值來獲得該點(diǎn)其它兩個(gè)通道的值。目前最常用的插補(bǔ)算法是利用該像素點(diǎn)周圍像素的平均值來計(jì)算該點(diǎn)的插補(bǔ)值。如下圖所示,左側(cè)是RAW域原始圖像,右側(cè)是經(jīng)過插值之后的圖像。
8.AWB(Automatic White Balance)-自動(dòng)白平衡
人類視覺系統(tǒng)具有顏色恒常性的特點(diǎn),因此人類對(duì)事物的觀察可以不受到光源顏色的影響。但是圖像傳感器本身并不具有這種顏色恒常性的特點(diǎn),因此,其在不同光線下拍攝到的圖像,會(huì)受到光源顏色的影響而發(fā)生變化。例如在晴朗的天空下拍攝到的圖像可能偏藍(lán),而在燭光下拍攝到的物體顏色會(huì)偏紅。因此,為了消除光源顏色對(duì)于圖像傳感器成像的影響,自動(dòng)白平衡功能就是模擬了人類視覺系統(tǒng)的顏色恒常性特點(diǎn)來消除光源顏色對(duì)圖像的影響的。
9.CCM(Color Correction Matrix)-顏色校正
顏色校正主要為了校正在濾光板處各顏色塊之間的顏色滲透帶來的顏色誤差。一般顏色校正的過程是首先利用該圖像傳感器拍攝到的圖像與標(biāo)準(zhǔn)圖像相比較,以此來計(jì)算得到一個(gè)校正矩陣。該矩陣就是該圖像傳感器的顏色校正矩陣。在該圖像傳感器應(yīng)用的過程中,及可以利用該矩陣對(duì)該圖像傳感器所拍攝的所有圖像來進(jìn)行校正,以獲得最接近于物體真實(shí)顏色的圖像。 一般情況下,對(duì)顏色進(jìn)行校正的過程,都會(huì)伴隨有對(duì)顏色飽和度的調(diào)整。顏色的飽和度是指色彩的純度,某色彩的純度越高,則其表現(xiàn)的就越鮮明;純度越低,表現(xiàn)的則比較黯淡。RGB三原色的飽和度越高,則可顯示的色彩范圍就越廣泛。 一般在不同增益環(huán)境下CCM的飽和度會(huì)有所不同。例如,低照度小我們可以適當(dāng)調(diào)低CCM飽和度以減輕低照度下色噪。因此,一般ISP會(huì)留出接口以便對(duì)不同增益下CCM飽和度調(diào)整,對(duì)一倍增益校正出的CCM參數(shù)進(jìn)行插值計(jì)算,計(jì)算得到不同增益下較為合適的CCM參數(shù)。
10.RGB Gamma-Gamma校正
伽馬校正的最初起源是CRT屏幕的非線性,研究CRT電子槍的物理表明,電子槍的輸入電壓和輸出光之間滿足5.2冪函數(shù)關(guān)系,即熒光屏上顯示的亮度正比于輸入電壓的5/2次方,這個(gè)指數(shù)被稱為伽馬。這種關(guān)系源于陰極、光柵和電子束之間的靜電相互作用。由于對(duì)于輸入信號(hào)的發(fā)光灰度,不是線性函數(shù),而是指數(shù)函數(shù),因此必需校正。 但是實(shí)際情況是,即便CRT顯示是線性的,伽馬校正依然是必須的,是因?yàn)槿祟愐曈X系統(tǒng)對(duì)于亮度的響應(yīng)大致是成對(duì)數(shù)關(guān)系的,而不是線性的。人類視覺對(duì)低亮度變化的感覺比高亮度變化的感覺來的敏銳,當(dāng)光強(qiáng)度小于1lux時(shí),常人的視覺敏銳度會(huì)提高100倍t2118]。伽馬校正就是為了校正這種亮度的非線性關(guān)系引入的一種傳輸函數(shù)。校正過程就是對(duì)圖像的伽瑪曲線進(jìn)行編輯,檢出圖像信號(hào)中的深色部分和淺色部分,并使兩者比例增大,從而提高圖像對(duì)比度效果,以對(duì)圖像進(jìn)行非線性色調(diào)編輯。由于視覺環(huán)境和顯示設(shè)備特性的差異,伽馬一般取2.2~2.5之間的值。當(dāng)用于校正的伽馬值大于1時(shí),圖像較亮的部分被壓縮,較暗的部分被擴(kuò)展;而伽馬值小于1時(shí),情況則剛好相反。 現(xiàn)在常用的伽馬校正是利用查表法來實(shí)現(xiàn)的,即首先根據(jù)一個(gè)伽馬值,將不同亮度范圍的理想輸出值在查找表中設(shè)定好,在處理圖像的時(shí)候,只需要根據(jù)輸入的亮度,既可以得到其理想的輸出值。在進(jìn)行伽馬校正的同時(shí),可以一定范圍的抑制圖像較暗部分的噪聲值,并提高圖像的對(duì)比度。還可以實(shí)現(xiàn)圖像現(xiàn)顯示精度的調(diào)整,比如從l0bit精度至8bit精度的調(diào)整。上圖分別是未做Gamma校正的,下圖是做了Gamma校正的。
11.RGBToYUV
YUV 是一種基本色彩空間, 人眼對(duì)亮度改變的敏感性遠(yuǎn)比對(duì)色彩變化大很多, 因此, 對(duì)于人眼而言, 亮度分量 Y 要比色度分量 U、 V 重要得多。另外,YUV色彩空間分為YUV444,YUV422,YUV420等格式,這些格式有些比原始RGB圖像格式所需內(nèi)存要小很多,這樣亮度分量和色度分量分別存儲(chǔ)之后,給視頻編碼壓縮圖像帶來一定好處。
12.WDR(Wide Dynamic Range)-寬動(dòng)態(tài)
動(dòng)態(tài)范圍(Dynamic Range)是指攝像機(jī)支持的最大輸出信號(hào)和最小輸出信號(hào)的比值,或者說圖像最亮部分與最暗部分的灰度比值。普通攝像機(jī)的動(dòng)態(tài)范圍一般在1:1000(60db)左右,而寬動(dòng)態(tài)(Wide Dynamic Range,WDR)攝像機(jī)的動(dòng)態(tài)范圍能達(dá)到15600(65-75db)。 寬動(dòng)態(tài)技術(shù)主要用來解決攝像機(jī)在寬動(dòng)態(tài)場(chǎng)景中采集的圖像出現(xiàn)亮區(qū)域過曝而暗區(qū)域曝光不夠的現(xiàn)象。簡(jiǎn)而言之,寬動(dòng)態(tài)技術(shù)可以使場(chǎng)景中特別亮的區(qū)域和特別暗的區(qū)域在最終成像中同時(shí)看清楚。
13.3DNR
3dnr 是結(jié)合空域?yàn)V波和時(shí)域?yàn)V波的一種降噪算法。大概思路是檢測(cè)視頻的運(yùn)動(dòng)水平,更具運(yùn)動(dòng)水平的大小對(duì)圖像像素進(jìn)行空域?yàn)V波和時(shí)域?yàn)V波的加權(quán),之后輸出濾波之后的圖像。
14.Sharp-銳化
CMOS輸入的圖像將引入各種噪聲,有隨機(jī)噪聲、量化噪聲、固定模式噪聲等。ISP降噪處理過程中,勢(shì)必將在降噪的同時(shí),把一些圖像細(xì)節(jié)給消除了,導(dǎo)致圖像不夠清晰。為了消除降噪過程中對(duì)圖像細(xì)節(jié)的損失,需要對(duì)圖像進(jìn)行銳化處理,還原圖像的相關(guān)細(xì)節(jié)。如下圖所示,左圖是未銳化的原始圖像,右圖是經(jīng)過銳化之后的圖像。 為了避免把Noise enhance出來,sharp在實(shí)現(xiàn)中還需要判斷當(dāng)前像素處于光滑區(qū)域還是物體邊緣。當(dāng)處于光滑區(qū)域的時(shí)候,則不要做sharp運(yùn)算,或者做的幅度很小;只有在較明顯的邊緣上才做處理,這樣避免不了邊緣上的noise的影響,所以在銳利度s設(shè)定較大的時(shí)候,可以發(fā)現(xiàn)邊緣上會(huì)有Noise閃動(dòng)跳躍的情況。為了緩解這種Noise的跳躍,通常會(huì)對(duì)f(d, g, s)做最大值和最小值限制保護(hù),并且沿著edge 方向做低通濾波來緩解Noise。 sharp大致流程為先判斷平坦區(qū)域還是邊緣,對(duì)平坦區(qū)域可以不做或者少做sharp(甚至做smooth處理),對(duì)邊緣要判斷幅度大小,邊緣方向,選則相對(duì)應(yīng)的高通濾波器處理,最后對(duì)enhance的幅度做一定程度的保護(hù)處理。
邊緣增強(qiáng)模塊對(duì)圖像的亮度分量(Y數(shù)據(jù))進(jìn)行操作來增強(qiáng)圖像質(zhì)量。首先按固定系數(shù)2D線性濾波器濾波計(jì)算邊緣銳度sharpness(h,v)。sharp_shrink之后還可以結(jié)合查找表改變其銳化強(qiáng)度,然后再進(jìn)行shoot的限制操作。
clip與shrink函數(shù)表達(dá)式如下:
兩者函數(shù)圖像如下圖所示: shrink函數(shù)把高頻銳化結(jié)果靠近0的部分都強(qiáng)制設(shè)為0,即比較平滑的部分不做銳化處理;遠(yuǎn)離0的部分適當(dāng)減小其銳化強(qiáng)度。當(dāng)高頻銳化結(jié)果x比th比較大或比較小,如果x比th較大,那么適當(dāng)在x的基礎(chǔ)上減小一點(diǎn),減低白邊的銳化強(qiáng)度;如果x比-th較小,那么在x的基礎(chǔ)上適當(dāng)增加一點(diǎn),降低黑邊的銳化強(qiáng)度 。
銳化前表現(xiàn)
銳化后表現(xiàn)
15.AF(Automatic Focus)-自動(dòng)對(duì)焦
自動(dòng)對(duì)焦模塊理論基礎(chǔ)及其硬件實(shí)現(xiàn)淺析(一) 自動(dòng)對(duì)焦模塊理論基礎(chǔ)及其硬件實(shí)現(xiàn)淺析(二) 自動(dòng)對(duì)焦模塊理論基礎(chǔ)及其硬件實(shí)現(xiàn)淺析(三) 自動(dòng)對(duì)焦模塊理論基礎(chǔ)及其硬件實(shí)現(xiàn)淺析(四)
16.AE(Automatic Exposure)-自動(dòng)曝光
不同場(chǎng)景下,光照的強(qiáng)度有著很大的差別。人眼有著自適應(yīng)的能力因此可以很快的調(diào)整,使自己可以感應(yīng)到合適的亮度。而圖像傳感器卻不具有這種自適應(yīng)能力,因此必須使用自動(dòng)曝光功能來確保拍攝的照片獲得準(zhǔn)確的曝光從而具有合適的亮度。 AE 模塊實(shí)現(xiàn)的功能是:根據(jù)自動(dòng)測(cè)光系統(tǒng)獲得當(dāng)前圖像的曝光量,再自動(dòng)配置鏡頭光圈、sensor快門及增益來獲得最佳的圖像質(zhì)量。自動(dòng)曝光的算法主要分光圈優(yōu)先、快門優(yōu)先、增益優(yōu)先。光圈優(yōu)先時(shí)算法會(huì)優(yōu)先調(diào)整光圈到合適的位置,再分配曝光時(shí)間和增益,只適合p-iris 鏡頭,這樣能均衡噪聲和景深。快門優(yōu)先時(shí)算法會(huì)優(yōu)先分配曝光時(shí)間,再分配sensor增益和ISP 增益,這樣拍攝的圖像噪聲會(huì)比較小。增益優(yōu)先則是優(yōu)先分配sensor增益和ISP 增益,再分配曝光時(shí)間,適合拍攝運(yùn)動(dòng)物體的場(chǎng)景。 自動(dòng)曝光的實(shí)現(xiàn)一般包括三個(gè)步驟:光強(qiáng)測(cè)量、場(chǎng)景分析和曝光補(bǔ)償。光強(qiáng)測(cè)量的過程是利用圖像的曝光信息來獲得當(dāng)前光照信息的過程。按照統(tǒng)計(jì)方式的不同,分為全局統(tǒng)計(jì),中央權(quán)重統(tǒng)計(jì)或者加權(quán)平均統(tǒng)計(jì)方式等。全局統(tǒng)計(jì)方式是指將圖像全部像素都統(tǒng)計(jì)進(jìn)來,中央權(quán)重統(tǒng)計(jì)是指只統(tǒng)計(jì)圖像中間部分,這主要是因?yàn)橥ǔG闆r下圖像的主體部分都位于圖像的中間部分;加權(quán)平均的統(tǒng)計(jì)方式是指將圖像分為不同的部分,每一部分賦予不同的權(quán)重,比如中間部分賦予最大權(quán)重,相應(yīng)的邊緣部分則賦予較小的權(quán)重,這樣統(tǒng)計(jì)得到的結(jié)果會(huì)更加準(zhǔn)確。場(chǎng)景分析是指為了獲得當(dāng)前光照的特殊情況而進(jìn)行的處理,比如有沒有背光照射或者正面強(qiáng)光等場(chǎng)景下。對(duì)這些信息的分析,可以提升圖像傳感器的易用性,并且能大幅度提高圖像的質(zhì)量,這是自動(dòng)曝光中最為關(guān)鍵的技術(shù)。目前常用的場(chǎng)景分析的技術(shù)主要有模糊邏輯和人工神經(jīng)網(wǎng)絡(luò)算法。這些算法比起固定分區(qū)測(cè)光算法具有更高的可靠性,主要是因?yàn)樵谀:?guī)則制定或者神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程中已經(jīng)考慮了各種不同光照條件。在完成了光強(qiáng)測(cè)量和場(chǎng)景分析之后,就要控制相應(yīng)的參數(shù)使得曝光調(diào)節(jié)生效。主要是通過設(shè)定曝光時(shí)間和曝光增益來實(shí)現(xiàn)的。通過光強(qiáng)測(cè)量時(shí)得到的當(dāng)前圖像的照度和增益值與目標(biāo)亮度值的比較來獲得應(yīng)該設(shè)置的曝光時(shí)間和增益調(diào)整量。在實(shí)際情況下,相機(jī)通常還會(huì)采用鏡頭的光圈/快門系統(tǒng)來增加感光的范圍。 在進(jìn)行曝光和增益調(diào)整的過程中,一般都是變步長(zhǎng)來調(diào)整的,這樣可以提高調(diào)整的速度和精度。一般來講,增益和曝光的步長(zhǎng)設(shè)定如下圖所示:
從上圖中可以看出,在當(dāng)前曝光量與目標(biāo)量差別在range0以內(nèi)的時(shí)候,說明當(dāng)前曝光已經(jīng)滿足要求,不需要進(jìn)行調(diào)整;差別在rangel的范圍內(nèi)時(shí),則說明當(dāng)前曝光與要求的光照有差別,但差別不大,只需要用較小的步長(zhǎng)來進(jìn)行調(diào)節(jié)即可;當(dāng)差別在range2的時(shí)候,則表明差別較大,需要用較大步長(zhǎng)來進(jìn)行調(diào)節(jié)。在實(shí)現(xiàn)過程中還需要注意算法的收斂性。 實(shí)際應(yīng)用中,AE曝光時(shí)間和增益的調(diào)整大致如下圖所示:
弱曝、過曝、曝光合適實(shí)際效果圖:
曝光合適 由于在對(duì)視頻流做處理時(shí),有些操作往往不是立即生效的。例如在自動(dòng)曝光的處中,需要計(jì)算全局的亮度平均值。由于這個(gè)過程涉及到一幀中的所有像素點(diǎn),所以在一幀圖像輸出完成之后才能得到亮度平均值。那么自動(dòng)曝光所得到當(dāng)前幀的計(jì)算結(jié)果,只能去調(diào)節(jié)下一幀的亮度,而無法影響當(dāng)前幀。這個(gè)現(xiàn)象很普遍,只要程序存在全局的參數(shù),就不可能在當(dāng)前幀中得到計(jì)算結(jié)果。所以需要將第N幀數(shù)據(jù)計(jì)算出的參數(shù)或是結(jié)果,傳遞給第N+1幀,在第N+1幀中直接使用這個(gè)參數(shù)進(jìn)行其他的計(jì)算,或者直接輸出調(diào)整后的結(jié)果,我們將這種方法叫做幀迭代方法。雖然這個(gè)參數(shù)并不是根據(jù)地N+I幀數(shù)據(jù)計(jì)算出來的,但是由于相鄰幀之間有很大的連續(xù)性,所以可以認(rèn)為它們計(jì)算出來的全局變量是相同的,這樣就可以實(shí)現(xiàn)正確并且實(shí)時(shí)的處理了。這種方法同樣適用于AWB、3DNR、HDR模塊。 因此,當(dāng)前幀顯示的直方圖以及亮度信息均是統(tǒng)計(jì)于前一幀的直方圖和亮度信息,當(dāng)前幀根據(jù)這些統(tǒng)計(jì)信息再進(jìn)行AE策略的調(diào)整。 當(dāng)曝光誤差超過容許值需要調(diào)整時(shí),算法需要計(jì)算兩個(gè)值,即
當(dāng)前幀的曝光量,由sensor 曝光時(shí)間、sensor 增益、ISP 增益組成。需要注意的是,sensor 的曝光時(shí)間和增益通常是非連續(xù)的,很可能與AE算法輸出的目標(biāo)參數(shù)并不相同,所以當(dāng)前曝光參數(shù)的準(zhǔn)確值需要通過sensor 驅(qū)動(dòng)從sensor 寄存器中直接讀取,而不能使用AE算法緩存的目標(biāo)值。
增益系數(shù),g=target/measured, 其中target 為理想畫面亮度, measured 為當(dāng)前畫面亮度的實(shí)測(cè)值。由于sensor 的本質(zhì)是一個(gè)線性元件,若暫不考慮像素飽和等非線性因素,只要在當(dāng)前曝光總量的基礎(chǔ)上乘以系數(shù)g,就可以使畫面目標(biāo)亮度達(dá)到理想值。因此AE 算法的核心任務(wù)就是計(jì)算正確的g參數(shù),這個(gè)參數(shù)能夠使畫面得到正確的曝光。
當(dāng)計(jì)算出正確的亮度參數(shù)后,一般并不會(huì)讓其立刻在下一幀圖像就生效。這是因?yàn)槿绻鲆孀兓^大,圖像就會(huì)產(chǎn)生閃爍,主觀感受不好。通常人們更喜歡畫面平滑過渡,因此每幀圖像的增益變化不宜過大。實(shí)現(xiàn)平滑的方法就是給新的參數(shù)人為施加一個(gè)阻尼,使其緩慢地向新參數(shù)過渡。用數(shù)學(xué)公式描述就是 g(n)= (1-s) * g(n-1) +s * g_target 不妨取 s=0.2,此時(shí)每個(gè)g參數(shù)包含80%的舊參數(shù)和20%的目標(biāo)參數(shù),經(jīng)過若干幀后舊參數(shù)自然衰減,新參數(shù)收斂到目標(biāo)參數(shù),即 g(n)=g_target 從數(shù)學(xué)上看 (1-0.2)^10=0.1, (1-0.2)^30=0.001, 說明10幀之后(約0.3秒)舊參數(shù)的比重下降到10%,30幀之后(約1秒)舊參數(shù)的比重可忽略。對(duì)于典型的安防應(yīng)用場(chǎng)景,一般建議經(jīng)過8~16幀圖像過渡到理想亮度。而對(duì)于運(yùn)動(dòng)和車載型應(yīng)用,由于場(chǎng)景動(dòng)態(tài)變化大且快,一般建議經(jīng)過3~4幀圖像過渡到理想亮度。具體計(jì)算:假設(shè)g(0) = 20; g_garget=45,則由阻尼公式可知: n=1時(shí),g(1) = 0.820+0.245; n = 2時(shí),g(2)=0.8g(1)+0.245= n=3時(shí),g(3)=0.8g(2)+0.245 = n = 4時(shí),g(4) = 0.8g(3)+0.245 =
參數(shù)分解當(dāng)根據(jù)路徑規(guī)劃策略計(jì)算出下一幀的g參數(shù)后,需要遵循一定的策略和約束把g參數(shù)進(jìn)一步映射為sensor 曝光時(shí)間、sensor 增益、ISP 增益等設(shè)備控制參數(shù)。如前所述,曝光時(shí)間可以提高圖像信噪比,所以在約束邊界內(nèi)應(yīng)盡可能先將曝光時(shí)間用滿,然后依照sensor 的硬件約束分配sensor 增益,最后將剩余的增益全部分配給ISP 數(shù)字增益。參數(shù)同步前面分解出來的控制參數(shù)必須同步生效才能使畫面獲得預(yù)期的曝光。如果某一項(xiàng)參數(shù)未能與其他幾項(xiàng)同步生效,則畫面會(huì)因?yàn)槎虝哼^亮、過暗等原因出現(xiàn)閃爍,這是需要避免的。 另一方面,所有參數(shù)都需要在一個(gè)特定的時(shí)間窗口內(nèi)生效,即前一幀圖像已經(jīng)結(jié)束,新一幀圖像尚未開始的這段時(shí)間,也就是sensor的垂直消隱(vertical blanking)窗口,這個(gè)窗口時(shí)間很短,典型值在3~5毫秒左右,更短的可以到1ms,如下圖所示。
目前主流的sensor都是使用I2C總線進(jìn)行寄存器讀寫,而I2C總線的最大時(shí)鐘頻率是400kHz,讀寫一個(gè)16bit寄存器差不多每次需要0.1ms,而完成一幀圖像的相關(guān)配置常常需要10~20次以上讀寫,所以在垂直消隱區(qū)完成sensor 寄存器配置時(shí)間壓力是很大的。而且這還是單純的配置參數(shù),并不考慮3A算法本身所需的計(jì)算時(shí)間。實(shí)際上,在常見的軟件硬件架構(gòu)中,就是把全部消隱時(shí)間都分配給3A算法往往都是不夠用的。 如果配置sensor 增益時(shí)錯(cuò)過了這個(gè)窗口,新一幀圖像已經(jīng)開始,則畫面的亮度就會(huì)在一幀中間發(fā)生變化,上半部分使用舊的參數(shù),下半部分使用新的參數(shù),這種情況也是閃爍的一種,是需要避免的。 現(xiàn)在的sensor 為了方便使用,緩解配置參數(shù)時(shí)間窗口過短的壓力,往往都支持一組影子(shadow)寄存器,需要同步生效的參數(shù)(曝光時(shí)間和增益)可以在任何時(shí)間點(diǎn)寫入shadow寄存器,當(dāng)sensor開始捕捉新的一幀圖像之前,會(huì)自動(dòng)把shadow 寄存器的內(nèi)容同步到實(shí)際生效的寄存器,這樣就把幾個(gè)毫秒的時(shí)間窗口擴(kuò)展成一幀時(shí)間,極大地緩解了用戶壓力。
需要注意的是,雖然這個(gè)方案為軟件爭(zhēng)取到了一幀的緩沖時(shí)間,但同時(shí)也意味著系統(tǒng)的響應(yīng)延遲(latency)增加了一幀,即根據(jù)第N幀統(tǒng)計(jì)數(shù)據(jù)生成的新控制參數(shù)只能在第N+2幀才開始生效,因?yàn)檐浖枰谠贜+1幀時(shí)間內(nèi)完成算法的計(jì)算工作。同理,根據(jù)第N+2幀統(tǒng)計(jì)生成的新控制參數(shù)需要在第N+4幀才開始生效,以此類推。因此,如果環(huán)境光照條件在第N+1幀發(fā)生劇變,算法會(huì)在第N+2幀結(jié)束時(shí)檢測(cè)到畫面異常,在第N+3幀中計(jì)算出新的參數(shù),在第N+4幀中實(shí)際進(jìn)行補(bǔ)償。 事實(shí)上,如果CPU的任務(wù)比較繁忙,或者每幀的時(shí)間很短,則一幀的時(shí)間可能還不一定夠3A算法完成所有計(jì)算,此時(shí)則需要考慮繼續(xù)增加一幀的緩沖時(shí)間。在跑3a算法時(shí),曝光的改變策略
調(diào)試攝像頭曝光很多時(shí)候都是以行算的,也就是常說的曝光行。當(dāng)然算曝光時(shí)間是曝光行*每行的時(shí)間
一般曝光時(shí)間不超過vts,vts就是一幀花的總時(shí)間(包含每幀的無效信號(hào))。因此,我們?cè)谟?jì)算當(dāng)前幀最大曝光時(shí)間的時(shí)候,一般會(huì)根據(jù)VTS計(jì)算得出
除了曝光能增加亮度之外,gain也能增加亮度,gian也分為模擬gain和數(shù)字gain以及ISPgain
曝光時(shí)間引入的噪聲最小,數(shù)字增益引入的噪聲最大 根據(jù)上面所說,假如在比較暗的情況下,為了減少噪聲,勢(shì)必先增加曝光時(shí)間。因?yàn)樵黾悠毓鈺r(shí)間引入的噪聲最小,可以會(huì)略不計(jì)。但是當(dāng)曝光時(shí)間超過當(dāng)前vts時(shí)候,曝光時(shí)間超過一幀的時(shí)間,這樣會(huì)引起幀率降低,那么這個(gè)時(shí)候可以增加gain值,模擬gain和數(shù)字gain都是有最大限制的,所有的增加gain值都是優(yōu)先使用模擬gain,當(dāng)模擬gain增加到最大之后,才考慮使用數(shù)字gain。
關(guān)于3a中的ae,實(shí)際都有策略做曝光分解,在幀率與噪聲中調(diào)和,在實(shí)際應(yīng)用中,如果策略分解到曝光時(shí)間大于當(dāng)前vts,那么正常需要先增加當(dāng)前vts(每幀時(shí)間增加,也意味著幀率減小),然后加大曝光時(shí)間。 以上可以回答為什么亮的地方幀率會(huì)比暗的幀率高。
審核編輯:gt
-
圖像傳感器
+關(guān)注
關(guān)注
68文章
1959瀏覽量
130406 -
ISP
+關(guān)注
關(guān)注
6文章
490瀏覽量
52795
原文標(biāo)題:ISP基本框架及算法
文章出處:【微信號(hào):vision263com,微信公眾號(hào):新機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
一種基于路測(cè)數(shù)據(jù)的傳播模型校正方法
請(qǐng)問adxrs646溫度校正的多點(diǎn)校正方法是什么?
GNSS 多星定位原理及校正方式對(duì)比
基于微機(jī)處理的熱電偶動(dòng)態(tài)誤差校正方法的研究
傳感器非線性的硬件校正方法
一種新的傾斜印刷體字符的校正方法
基于圖像分析的偏色檢測(cè)及顏色校正方法
CCD圖像采集過程中如何進(jìn)行實(shí)時(shí)誤差校正兩種方法詳細(xì)說明

圖像信號(hào)處理ISP有哪些產(chǎn)品趨勢(shì)?

評(píng)論