Sensor ISP 影象訊號處理系統
ISP(Image Signal Processor),即影象處理,主要作用是對前端影象感測器輸出的訊號做後期處理,主要功能有線性糾正、噪聲去除、壞點去除、內插、白平衡、自動曝光控制等,依賴於ISP才能在不同的光學條件下都能較好的還原現場細節,ISP技術在很大程度上決定了攝像機的成像質量。它分為獨立與整合兩種形式。
一般情況下,配備獨立ISP的手機,在影象處理方面有更大的優勢,且隨著手機攝像頭畫素的提高,高速連拍,全高清甚至4K錄制的加入,手機對ISP的處理效能要求越來越高。
不少主打拍攝功能的廠商都在手機當中加入了獨立ISP,例如魅族MX3就採用了富士通四通道ISP,官方宣稱其傳輸速度提升兩
下圖是影象訊號處理主要流程:
(1)黑電平校正(暗電流校正)
暗電流指感測器在沒有入射光的情況下,存在一定的訊號輸出,這是由於半導體的熱運動造成的,它的大小和感測器結構及溫度有關,大概每升高9 ℃,其暗電流會增加1 倍。由於每個畫素存在不平衡性,因此畫素間暗電流也會不一致,造成電流噪聲。一般
(2)顏色插補
原始畫素只包含一種顏色的資訊(R 或G 或B),要重建色彩畫面,就必須從相鄰的畫素中得到失去的資訊。紅色及藍色插補一般遵循最近原則,進行平均處理,作為本畫素的色彩值,由插值原理知,相鄰畫素間存在依賴關係,結果造成畫面銳度降低。
(3)顏色校正
由於人類眼睛可見光的頻譜響應度和半導體感測器頻譜響應度之間存在差別,還有透鏡等的影響,插補後得到的RGB 值顏色會存在偏差,因此必須對顏色進行校正,一般通過顏色校正矩陣來實現。具體的彩色矯正引數,可以通過試驗或從感測器供應商中獲
(4)Gamma 校正
Gamma 校正主要依據色度學原理進行調整,色彩在不同顯示裝置中頻譜響應度不一樣,造成顏色失真。失真成冪指數關係,因此調節相對簡單,分別對R、G、B 調節即可。
(5)RGB2YUV 轉換
Y =16 +(0. 257 × R +0. 504 × G +0. 098 × B)
Cb =128 +(-0. 148 × R-0. 291 × G +0. 439 × B)
Cr =128 +(0. 439 × R-0. 368 × G-0. 071 × B)
(6)自動白平衡處理
如果使用過沒有白平衡的數碼相機,會發現熒光燈的光人眼看起來是白色的,但用數碼相機拍攝出來卻有點偏綠。同樣,如果在白熾燈下,拍出影象的色彩就會明顯偏紅。人類的眼睛之所以把它們都看成白色,是因為人眼進行了修正。由於影象感測器本身沒有這種功能,因此有必要對它輸出的訊號進行一定的修正,這種修正叫作白平衡。
白平衡控制通過影象色彩調整(一般調節R、B 增益實現),使在各種光線條件下拍攝出的照片色彩和人眼所看到的景物色彩完全相同。從理論上我們知道,隨著色溫的升高,要對色溫進行較正,否則,物體在這樣的光線條件下所表現出來的顏色就會偏離其正常的顏色,因此需要降低 sensor對紅色的增益,增加sersor對藍光的增益。同時在調整引數時一定程度上要考慮到整體亮度的要保持大致的不變,即以YUV來衡量時,Y值要 基本保持不變,理論上認為可以參考RGB->YUV變換公式中,RGB三分量對Y值的貢獻,從而確定RGAIN和BGAIN的變化的比例關係。但實 際情況比這還要複雜一些,要考慮到不同sensor對R,B的感光的交叉影響和非線性,所以最佳值可能和理論值會有一些偏差。
白平衡的實現一般有手動和自動兩種模式,當然對於攝像機主要以自動白平衡為主。自動白平衡一般基於“ Grey World” 假設,調節R、B 的增益,在選定參考白平衡區域內達到R、G、B 相等。自動白平衡是基於假設場景的色彩的平均值落在一個特定的範圍內,如果測量得到結果偏離該範圍,則調整對應引數,校正直到其均值落入指定範圍。該處理過程可能基於YUV空間,也可能基於RGB空間來進行。對於Sensor來說,通常的處理方式是通過校正R/B增益,使得UV值落在一個指定的範圍 內。從而實現自動白平衡。這種假設在很多場合可以達到很好的效果,但由於無法得到場景光源的所有資訊,因此自動白平衡效果有時並不讓人滿意,此時可以讓使用者自己定義一個點火區域作為參考點,也有用白平衡感測器來實現的。
白平衡對色彩效果影響很大,一個好的演算法能夠使色彩效果更逼真,也可以利用白平衡達到藝術效果。
(7)自動曝光、AE 評估
自動曝光,簡單地說就是自動控制曝光時間,達到曝光恰到好處的效果。曝光過度,影象感測器就會產生溢位,造成對比度下降,動態靈敏度降低。曝光不夠,同樣會造成對比度下降,動態靈敏度降低,信噪比下降,畫面效果不好。因此在不同的場景必須對曝光時間進行控制。
自動曝光主要是對某可選區域內畫面亮度分量(y 訊號)進行評估,若y 偏小,增大曝光量,反之減少。
感光寬容度
從最明亮到最黑暗,假設人眼能夠看到一定的範圍,那麼膠片(或CCD等電子感光器件)所能表現的遠比人眼看到的範圍小的多,而這個有限的範圍就是感光寬容度。
人眼的感光寬容度比膠片要高很多,而膠片的感光寬容度要比數碼相機的ccd高出很多!瞭解這個概念之後,我們就不難了解,為什麼在逆光的條件 下,人眼能看清背光的建築物以及耀眼的天空雲彩。而一旦拍攝出來,要麼就是雲彩顏色絢爛而建築物變成了黑糊糊的剪影,要麼就是建築物色彩細節清楚而原本美 麗的雲彩卻成了白色的一片再看人眼的結構,有瞳孔可以控制通光量,有杆狀感光細胞和椎狀感光細胞以適應不同的光強,可見即使人眼有著很高的感光寬容度,依然有亮度調節系統,以適應光強變化。
那麼對於camera sensor來說,正確的曝光就更為重要了!
自動曝光和18%灰
對於sensor來說,又是如何來判斷曝光是否正確呢?很標準的做法就是在YUV空間計算當前影象的Y值的均值。調節各種曝光參數設定(自動或手動),使得該均值落在一個目標值附近的時候,就認為得到了正確的曝光。
那麼如何確定這個Y的均值,以及如何調整引數使得sensor能夠將當前影象的亮度調整到這個範圍呢?
這就涉及到一個概念 18%灰,一般認為室內室外的景物,在通常的情況下,其平均的反光係數大約為18%,而色彩均值,如前所述,可以認為是一種中灰的色調。這樣,可以通過對 反光率為18%的灰板拍攝,調整曝光引數,使其顏色接近為中等亮度的灰色(Y值為128)。然後,對於通常的景物,就能自動的得到正確的曝光了。
當然這種自動判斷曝光引數的AE功能不是萬能的,對於反光率偏離通常均值的場景,比如雪景,夜景等,用這種方法就無法得到正確的曝光量了。所以在sensor的軟體處理模組中,通常還會提供曝光級別的設定功能,強制改變自動曝光的判斷標準。比如改變預期的亮度均值等。
曝光級別設定
在多數數碼相機和拍照手機上都可以看到曝光級別設定的功能,如前所述,這種設定實際上是在自動曝光的基礎上給使用者提供一定的曝光控制能力,強制改變camera sensor的曝光判斷標準,獲得使用者想要的效果。
通常的做法就是改變Y值均值的預期值,使得sensor在自動曝光時以新的Y預期值為目標,自動調整Exptime 和 AG。
曝光引數的調整
曝光強度的調整,可以通過改變曝光時間,也可以通過改變亮度增益AG來實現。
曝光時間受到楨頻的限制,比如攝像時要求15幀每秒的話,這時候曝光時間最長就不能超過1/15s,可能還有別的條件限制,實際的曝光時間還要短,在光線弱的情況下,單獨調整曝光時間就無法滿足幀頻的需要了。
這時候還可以調整增益AG,來控制曝光的增益,降低曝光時間。但是,這樣做的缺點是以犧牲影象質量為代價的,AG的增強,伴隨的必然是信噪比的降低,影象噪聲的增強。
所以,以影象質量為優先考慮的時候,曝光引數的調節通常是優先考慮調節曝光時間,其次在考慮曝光增益。當然曝光時間也不能過長以免由於抖動造成影象的模糊,而在拍攝運動場景時,對曝光時間的要求就更高了。
(8)其他知識
抗噪處理
AG 的增大,不可避免的帶來噪點的增多,此外,如果光線較暗,曝光時間過長,也會增加噪點的數目(從數碼相機上看,主要是因為長時間曝光,感光元件溫度升高, 電流噪聲造成感光元件噪點的增多),而感光元件本身的缺陷也是噪點甚至壞點的來源之一。因此,通常sensor整合或後端的ISP都帶有降噪功能的相關設 置。
A、啟動時機
根據噪點形成的原因,主要是AG或Exptime超過一定值後需要啟動降噪功能,因此通常需要確定這兩個引數的闕值,過小和過大都不好。
從下面的降噪處理的辦法將會看到,降噪勢附帶的帶來影象質量的下降,所以過早啟動降噪功能,在不必要的情況下做降噪處理不但增加處理器或ISP的負擔,還有可能適得其反。而過遲啟動降噪功能,則在原本需要它的時候,起不到相應的作用。
B、判定原則和處理方式
那麼如何判定一個點是否是噪點呢?我們從人是如何識別噪點的開始討論,對於人眼來說,判定一個點是噪點,無外乎就是這一點的亮度或顏色與邊上大 部分的點差異過大。從噪點產生的機制來說,顏色的異常應該是總是伴隨著亮度的異常,而且對亮度異常的處理工作量比顏色異常要小,所以通常sensor ISP的判定原則是一個點的亮度與周圍點的亮度的差值大於一個闕值的時候,就認為該點是一個噪點。
處理的方式,通常是對周圍的點取均值來替代原先的值,這種做法並不增加資訊量,類似於一個模糊演算法。
對於高階的數碼相機,擁有較強的影象處理晶片,在判定和處理方面是否有更復雜的演算法,估計也是有可能的。比如亮度和顏色綜合作為標準來判定噪 點,採用運算量更大的插值演算法做補償,對於sensor固有的壞點,噪點,採用遮蔽的方式拋棄其資料(Nikon就是這麼做的,其它廠商應該也如此)等 等。
C、效果
對於手機sensor來說,這種降噪處理的作用有多大,筆者個人認為應該很有限,畢竟相對數碼相機,手機sensor的鏡頭太小,通光量小,所 以其基準AG勢必就比相機的增益要大(比如相當於普通家用數碼相機ISO800的水平),這樣才能獲得同樣的亮度,所以電流噪聲帶來的影響也就要大得多。 這樣一來,即使最佳情況,噪點也會很多,資料本身的波動就很大,這也就造成我們在手機照片上勢必會看到的密密麻麻的花點,如果全部做平均,降低了噪點的同 時,影象也會變得模糊,所以手機噪點的判斷闕值會設得比較高,以免涉及面過大,模糊了整體影象。這樣一來一是資料本身就差,二是降噪的標準也降低了,造成 總體效果不佳。
數碼變焦
數碼變焦可以有兩種形式:
其一,是通過插值演算法,對影象進行插值運算,將影象的尺寸擴大到所需的規格,這種演算法就其效果而言,並不理想,尤其是當使用在手機上的時候,手 機上的攝像頭本身得到的資料就有較大的噪聲,再插值的話,得到的影象幾乎沒法使用。實際上,即使是數碼相機的數碼變焦功能也沒有太大的實用價值。如果插值 演算法沒有硬體支援,則需要在應用層實現。
其二,其實是一種偽數碼變焦的形式,當攝像頭不處在最大解析度格式的情況下,比如130萬畫素的sensor使用640*480的規格拍照時, 仍舊設定sersor工作在1280*960的解析度下,而後通過採集中央部分的影象來獲取640*480的照片,使得在手機上看來所拍物體尺寸被放大了
一倍。也有很多手機採用的是這種數碼變焦方式,這種辦法幾乎不需要額外的演算法支援,對影象質量也沒有影響,缺點是隻有小尺寸情況下可以採用。此外在DV方 式下也可以實現所謂的數碼變焦放大拍攝功能。(這應該是一個賣點,對Dv來說,這種數碼變焦還是有實際意義的)。要採用這種變焦模式,驅動需要支援windowing功能,獲取所需部分的sensor影象資料。
頻閃抑制功能
A、何謂頻閃
日常使用的普通光源如白熾燈、日光燈、石英燈等都是直接用220/50Hz交流電工作,每秒鐘內正負半周各變化50次,因而導致燈光在1秒鐘內發生100(50×2)次的閃爍,再加上市電電壓的不穩定,燈光忽明忽暗,這樣就產生了所謂的“頻閃”。
因為人眼對光強變化有一定的遲滯和適應性,所以通常看不出光源的亮度變化。但是依然還是會增加眼睛的疲勞程度。所以市場上才會有所謂的無頻閃燈銷售。
B、對頻閃的抑制
對於camera sensor來說,沒有人眼的遲滯和適應過程,所以對光源亮度的變化是比較敏感的。如果不加抑制,在預覽和DV模式下,可能會有明顯的影象的明亮變化閃爍的現象發生。
如何解決呢?考慮到頻閃的週期性,在一個週期內,光源亮度的累積值,應該是大體一致的,所以,如果控制曝光的時間是頻閃週期的整倍數,那麼每一幀影象的亮度就大體是一致的了,這樣就可以有效地抑制頻閃對影象亮度的影響。
所以,在自動曝光的模式下,sensor會根據頻閃的頻率,調整曝光時間為其週期的整倍數。 因為各地的交流電的頻率不同,所以有50Hz/60Hz之分。
在具體設定相關Sensor暫存器的時候,要根據電流頻率和sensor的時鐘頻率,解析度等,計算出頻閃週期對應的時鐘週期數等。