攝像頭ISP系統原理(上)
ISP(Image Signal Processor),即圖像信號處理器,用於處理圖像信號傳感器輸出的圖像信號。它在相機系統中占有核心主導的地位,是構成相機的重要設備。
主要內部構成
如下圖所示,ISP 內部包含 CPU、SUP IP、IF 等設備,事實上,可以認為 ISP 是一個 SOC,可以運行各種算法程序,實時處理圖像信號。
ISP 架構
- CPU
CPU 即中央處理器,可以運行 AF、LSC 等各種圖像處理算法,控制外圍設備。現代的 ISP 內部的 CPU 一般都是 ARM Cortex-A 系列的,例如 Cortex-A5、Cortex-A7。
- SUB IP
SUB IP 是各種功能模塊的通稱,對圖像進行各自專業的處理。常見的 SUB IP 如 DIS、CSC、VRA 等。
- 圖像傳輸接口
圖像傳輸接口主要分兩種,並口 ITU 和串口 CSI。CSI 是 MIPI CSI 的簡稱,鑒於 MIPI CSI 的諸多優點,在手機相機領域,已經廣泛使用 MIPI-CSI 接口傳輸圖像數據和各種自定義數據。外置 ISP 一般包含 MIPI-CSIS 和 MIPI-CSIM 兩個接口。內置 ISP 一般只需要 MIPI-CSIS 接口。
- 通用外圍設備
通用外圍設備指 I2C、SPI、PWM、UART、WATCHDOG 等。ISP 中包含 I2C 控制器,用於讀取 OTP 信息,控制 VCM 等。對於外置 ISP,ISP 本身還是 I2C 從設備。AP 可以通過 I2C 控制 ISP 的工作模式,獲取其工作狀態等。
主要功能特性
ISP 作為圖像處理的核心器件,擁有十分重要的功能,下圖展示了 ISP 處理圖像數據的基本流程。
ISP 處理流程
下面針對 ISP 的主要功能特性進行下介紹。
l Denoise-----去除噪聲
使用 cmos sensor 獲取圖像,光照程度和傳感器問題是生成圖像中大量噪聲的主要因素。同時,當信號經過 ADC 時,又會引入其他一些噪聲。這些噪聲會使圖像整體變得模糊,而且丟失很多細節,所以需要對圖像進行去噪處理空間去噪傳統的方法有均值濾波、 高斯濾波等。
但是,一般的高斯濾波在進行采樣時主要考慮了像素間的空間距離關系,並沒有考慮像素值之間的相似程度,因此這樣得到的模糊結果通常是整張圖片一團模糊。所以,一般采用非線性去噪算法,例如雙邊濾波器,在采樣時不僅考慮像素在空間距離上的關系,同時加入了像素間的相似程度考慮,因而可以保持原始圖像的大體分塊,進而保持邊緣。
- Demosaic------顏色插值
DEMOSAIC 是 ISP 的主要功能之一。SENSOR 的像素點上覆蓋着 CFA,光線通過 CFA 后照射到像素上。CFA 由 R、G、B 三種顏色的遮光罩組成,每種遮光罩只允許一種顏色通過,因此每個像素輸出的信號只包含 R、G、B 三者中的一種顏色信息。SENSOR 輸出的這種數據就是 BAYER 數據,即通常所說的 RAW 數據。顯而易見,RAW 數據所反映的顏色信息不是真實的顏色信息。DEMOSAIC 就是通過插值算法將每個像素所代表的真實顏色計算出來。
光線中主要包含三種顏色信息,即R、G、B。但是由於像素只能感應光的亮度,不能感應光的顏色,同時為了減小硬件和資源的消耗,必須要使用一個濾光層,使得每個像素點只能感應到一種顏色的光。目前主要應用的濾光層是bayer GRBG格式。如下圖所示:
這樣,經過濾色板的作用之后,每個像素點只能感應到一種顏色。必須要找到一種方法來復原該像素點其它兩個通道的信息,尋找該點另外兩個通道的值的過程就是顏色插補的過程。由於圖像是連續變化的,因此一個像素點的R、G、B的值應該是與周圍的像素點相聯系的,因此可以利用其周圍像素點的值來獲得該點其它兩個通道的值。目前最常用的插補算法是利用該像素點周圍像素的平均值來計算該點的插補值。如下圖所示,左側是RAW域原始圖像,右側是經過插值之后的圖像。
l CCM(Color Correction Matrix)------顏色校正
顏色校正主要為了校正在濾光板處各顏色塊之間的顏色滲透帶來的顏色誤差。一般顏色校正的過程是首先利用該圖像傳感器拍攝到的圖像與標准圖像相比較,以此來計算得到一個校正矩陣。該矩陣就是該圖像傳感器的顏色校正矩陣。在該圖像傳感器應用的過程中,可以利用該矩陣對該圖像傳感器所拍攝的所有圖像來進行校正,以獲得最接近於物體真實顏色的圖像。
一般情況下,對顏色進行校正的過程,都會伴隨有對顏色飽和度的調整。顏色的飽和度是指色彩的純度,某色彩的純度越高,則其表現的就越鮮明;純度越低,表現的則比較黯淡。RGB三原色的飽和度越高,則可顯示的色彩范圍就越廣泛。
1)色彩校正原理
人眼對色彩的識別,是基於人眼對光譜存在三種不同的感應單元,不同的感應單元對不同波段的光有不同的響應曲線的原理,通過大腦的合成得到色彩的感知。 一般來說,我們可以通俗的用 RGB三基色的概念來理解顏色的分解和合成。理論上,如果人眼和 sensor 對光譜的色光的響應,在光譜上的體現如下的話,基本上對三色光的響應,相互之間不會發生影響,沒有所謂的交叉效應。理想R/G/B光譜響應如下:
而實際人眼對R/G/B的光譜響應如下,RGB的響應並不是完全獨立的。
某款相機的sensor光譜響應曲線如下:
從上圖可以看出,sensor的R/G/B響應曲線和人眼的R/G/B響應曲線是不一致的。而且圖像數據經過ISP的AWB處理之后肯定會存在色偏,因此需要RGB域進行色彩矩陣校正。
2)色彩校正策略
我們已看到 sensor 對光譜的響應,在 RGB各分量上與人眼對光譜的響應通常是有偏差的,當然就需要對其進行校正。不光是在交叉效應上,同樣對色彩各分量的響應強度也需要校正。通常的做法是通過一個色彩校正矩陣對顏色進行一次校正。校正矩陣如下:
該色彩校正的運算通常由 ISP 完成,軟件通過修改相關寄存器得到正確的校正結果。另外隨着色溫的升高,要對色溫進行較正,否則,物體在這樣的光線條件下所表現出來的顏色就會偏離其正常的顏色,因此需要降低 sensor 對紅色的增益,增加 sersor 對藍光的增益。因此,建議做CCM矩陣時選取不同的色溫生成不同的CCM矩陣,然后根據實際色溫值插值得到當前色溫的CCM矩陣。