[轉]-- ISP(圖像信號處理)算法概述、工作原理、架構、處理流程

目錄

ISP的主要內部構成:

ISP內部包含 CPU、SUP IP(各種功能模塊的通稱)、IF 等設備

ISP的控制結構:1、ISP邏輯 2、運行在其上的firmware

ISP上的Firmware包含三部分:

AP對ISP的操控方式:外置:I2C/SPI。 內置:MEM MAP、MEM SHARE

ISP架構方案:

內置、外置

ISP 處理流程:

Bayer、黑電平補償 (black level compensation)、鏡頭矯正(lens shading correction)、壞像素矯正(bad pixel correction)、顏色插值 (demosaic)、Bayer 噪聲去除、 白平衡(AWB) 矯正、 色彩矯正(color correction)、gamma 矯正、色彩空間轉換(RGB 轉換爲 YUV)、在YUV 色彩空間上彩噪去除與邊緣加強、色彩與對比度加強,中間還要進行自動曝光控制等, 然後輸出 YUV(或者RGB) 格式的數據, 再通過 I/O 接口傳輸到 CPU 中處理。

概念

ISP是Image Signal Processor 的簡稱,也就是圖像信號處理器。

DSP是Digital Signal Processor 的縮寫,也就是數字信號處理器。

ISP一般用來處理Image Sensor(圖像傳感器)的輸出數據,如做AEC(自動曝光控制)、AGC(自動增益控制)、AWB(自動白平衡)、色彩校正、Lens Shading、Gamma 校正、祛除壞點、Auto Black Level、Auto White Level等等功能的處理。

而DSP功能就比較多了,它可以做些拍照以及回顯(JPEG的編解碼)、錄像以及回放(Video 的編解碼)、H.264的編解碼、還有很多其他方面的處理,總之是處理數字信號了。ISP是一類特殊的處理圖像信號的DSP。

ISP架構方案:分爲獨立(外置)與集成(內置)兩種形式。

CPU處理器包括:AP、BP、CP。 其中BP:基帶處理器、AP:應用處理器、CP:多媒體加速器。

ISP的主要內部構成

如下圖所示,ISP內部包含 CPU、SUP IP、IF 等設備,事實上,可以認爲 ISP 是一個 SOC(system of chip),可以運行各種算法程序,實時處理圖像信號。

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包括: 1、ISP邏輯 2、運行在其上的firmware
如圖所示,lens 將光信號投射到sensor 的感光區域後,sensor 經過光電轉換,將Bayer 格式的原始圖像送給ISP,ISP 經過算法處理,輸出RGB空間域的圖像給後端的視頻採集單元。在這個過程中,ISP通過運行在其上的firmware(固件)對ISP邏輯,從而對lens 和sensor 進行相應控制,進而完成自動光圈、自動曝光、自動白平衡等功能。其中,firmware的運轉靠視頻採集單元的中斷驅動。PQ Tools 工具通過網口或者串口完成對ISP 的在線圖像質量調節。
ISP 由ISP邏輯及運行在其上的Firmware組成,邏輯單元除了完成一部分算法處理外,還可以統計出當前圖像的實時信息。Firmware 通過獲取ISP 邏輯的圖像統計信息,重新計算,反饋控制lens、sensor 和ISP 邏輯,以達到自動調節圖像質量的目的。

ISP上的Firmware包含三部分
ISP 的Firmware包含三部分,一部分是ISP 控制單元和基礎算法庫,一部分是AE/AWB/AF 算法庫,一部分是sensor 庫。Firmware 設計的基本思想是單獨提供3A算法庫,由ISP控制單元調度基礎算法庫和3A 算法庫,同時sensor 庫分別向ISP 基礎算法庫和3A 算法庫註冊函數回調,以實現差異化的sensor 適配。ISP firmware 架構如圖所示。
不同的sensor 都以回調函數的形式,向ISP 算法庫註冊控制函數。ISP 控制單元調度基礎算法庫和3A 算法庫時,將通過這些回調函數獲取初始化參數,並控制sensor,如調節曝光時間、模擬增益、數字增益,控制lens 步進聚焦或旋轉光圈等。

AP對ISP的操控方式

CPU處理器包括:AP、BP、CP。 BP:基帶處理器、AP:應用處理器、CP:多媒體加速器
這裏所說的控制方式是AP 對 ISP 的操控方式 。
I2C/SPI:這一般是外置 ISP 的做法。SPI 一般用於下載固件、I2C 一般用於寄存器控制。在內核的 ISP 驅動中,外置 ISP 一般是實現爲 I2C 設備,然後封裝成 V4L2-SUBDEV。
MEM MAP:這一般是內置 ISP 的做法。將 ISP 內部的寄存器地址空間映射到內核地址空間,
MEM SHARE:這也是內置 ISP 的做法。AP 這邊分配內存,然後將內存地址傳給 ISP,二者實際上共享同一塊內存。因此 AP 對這段共享內存的操作會實時反饋到 ISP 端。

ISP架構方案

上文多次提到外置 ISP 和內置 ISP,這實際上是 ISP的架構方案。

外置 ISP 架構

外置 ISP 架構是指在 AP 外部單獨佈置 ISP 芯片用於圖像信號處理。外置 ISP 的架構圖一般如下所示:

外置 ISP 架構的優點主要有:
能夠提供更優秀的圖像質量:在激烈的市場競爭下,能夠存活到現在的外置 ISP 生產廠商在此領域一般都有很深的造詣,積累了豐富的影像質量調試經驗,能夠提供比內置 ISP 更優秀的性能和效果。因此,選用優質的外置 ISP 能提供專業而且優秀的圖像質量。
能夠支援更豐富的設計規劃:外置 ISP 的選型基本不受 AP 的影響,因此魅族可以從各個優秀 ISP 芯片供應商的衆多產品中甄選最合適的器件,從而設計出更多優秀的產品。
能夠實現產品的差異化:內置 ISP 是封裝在 AP 內部的,是和 AP 緊密的聯繫在一起,如果 AP 相同,那麼 ISP 也就是一樣的。因此基於同樣 AP 生產出來的手機,其 ISP 的性能也是一樣的,可供調教的條件也是固定的,這樣就不利於實現產品的差異化。而如果選擇外置 ISP,那麼同一顆 AP,可以搭配不同型號的 ISP,這樣可以實現產品的差異化,爲給用戶提供更豐富和優質的產品。
外置 ISP 架構的缺點主要有:
成本價格高:外置 ISP 需要單獨購買,其售價往往不菲,而且某些特殊功能還需要額外支付費用。使用外置 ISP,需要進行額外的原理圖設計和 LAYOUT,需要使用額外的元器件。
開發週期長:外置 ISP 驅動的設計需要多費精力和時間。使用外置 ISP 時,AP 供應商提供的 ISP 驅動就無法使用,需要額外設計編寫外置 ISP 驅動。另外,爲了和 AP 進行完美的搭配,將效果最大化,也往往需要付出更多的調試精力。上文也提到,使用外置 ISP,需要進行額外的原理圖設計和 LAYOUT,需要使用額外的元器件,這也是需要花費時間進行處理的。

內置 ISP 架構:

內置 ISP 架構是指在 AP 內部嵌入了 ISP IP,直接使用 AP 內部的 ISP 進行圖像信號處理。 內置 ISP 的架構圖一般如下所示:

內置 ISP 架構的優點主要有:
能降低成本價格:內置 ISP 內嵌在 AP 內部,因此無需像外置 ISP 一樣需要額外購買,且不佔 PCB 空間,無需單獨爲其設計外圍電路,這樣就能節省 BOM,降低成本。鑑於大多數用戶在選購手機時會將價格因素放在重要的位置,因此降低成本能有效的降低終端成品價格,有利於佔領市場。
能提高產品的上市速度:內置 ISP 和 AP 緊密結合,無需進行原理圖設計和 LAYOUT 設計,因此可以減小開發週期,加快產品上市的速度。
能降低開發難度:如果使用內置 ISP,那麼 AP 供應商能在前期提供相關資料,驅動開發人員可以有充足的時間熟悉相關資料,而且不會存在軟件版本適配問題,也不存在平臺架構兼容性問題。但是,如果使用外置 ISP,那麼 ISP 供應商往往都不能提供針對某個平臺的代碼/資料,而且一般都存在軟件版本兼容問題,這就需要驅動開發人員付出額的經歷和時間。
使用內置 ISP 當然也有相應的不足之處,具體見上文的分析,這裏就不贅述了。
事實上,鑑於 ISP 的重要性,爲了推廣其 AP,提高其 AP 競爭力,現在 AP 內置的 ISP 也越來越強大,其性能足以滿足手機市場的需求。再加上其一系列優點,現在使用內置 ISP 方案的手機越來越多。

ISP 處理流程


圖像產生過程:景物通過 Lens 生成的光學圖像投射到 sensor 表面上, 經過光電轉換爲模擬電信號, 消噪聲後經過 A/D 轉換後變爲數字圖像信號, 再送到數字信號處理芯片( DSP) 中加工處理。
所以,從 sensor 端過來的圖像是 Bayer 圖像,經過黑電平補償 (black level compensation)、鏡頭矯正(lens shading correction)、壞像素矯正(bad pixel correction)、顏色插值 (demosaic)、Bayer 噪聲去除、 白平衡(awb) 矯正、 色彩矯正(color correction)、gamma 矯正、色彩空間轉換(RGB 轉換爲 YUV)、在YUV 色彩空間上彩噪去除與邊緣加強、色彩與對比度加強,中間還要進行自動曝光控制等, 然後輸出 YUV(或者RGB) 格式的數據, 再通過 I/O 接口傳輸到 CPU 中處理。

1.Bayer(拜耳濾波器得到彩色)

圖像在將實際的景物轉換爲圖像數據時, 通常是將傳感器分別接收紅、 綠、 藍三個分量的信息, 然後將紅、 綠、 藍三個分量的信息合成彩色圖像。 該方案需要三塊濾鏡, 這樣價格昂貴,且不好製造, 因爲三塊濾鏡都必須保證每一個像素點都對齊。
通過在黑白 cmos 圖像傳感器的基礎上, 增加彩色濾波結構和彩色信息處理模塊就可以獲得圖像的彩色信息, 再對該彩色信息進行處理, 就可以獲得色彩逼真的彩色圖像。通常把彩色圖像傳感器表面覆蓋的濾波稱爲彩色濾波陣列(Color Filter Arrays,CFA)。
目前最常用的濾鏡陣列是棋盤格式的, 已經有很多種類的, 其中絕大多數的攝像產品採用的是原色貝爾模板彩色濾波陣列(Bayer Pattern CFA)。R、G、B 分別表示透紅色、透綠色和透藍色的濾鏡陣列單元。由於人的視覺對綠色最爲敏感,所以在 Bayer CFA 中G分量是 R和B 的二倍,在每個像素點上只能獲取一種色彩分量的信息,然後根據該色彩分量的信息通過插值算法得到全色彩圖像。

2.BLC(Black level Correction)(黑電平補償)

a.暗電流

物理器件不可能是理想的, 由於雜質、 受熱等其他原因的影響, 即使沒有光照射到象素,象素單元也會產生電荷, 這些電荷產生了暗電流。 而且, 暗電流與光照產生的電荷很難進行區分。

b.Black Level

Black Level 是用來定義圖像數據爲0時對應的信號電平。由於暗電流的影響, 傳感器出來的實際原始數據並不是我們需要的黑平衡(數據不爲0)。所以,爲減少暗電流對圖像信號的影響,可以採用的有效的方法是從已獲得的圖像信號中減去參考暗電流信號。一般情況下, 在傳感器中,實際像素要比有效像素多, 如下圖所示, 像素區頭幾行作爲不感光區( 實際上,這部分區域也做了RGB 的 color filter),用於自動黑電平校正,其平均值作爲校正值, 然後在下面區域的像素都減去此矯正值,那麼就可以將黑電平矯正過來了。
做了black level 矯正與沒做black level 矯正的對比,沒做black level矯正的圖片會比較亮,影響圖像的對比度。

3.LSC(Lens Shading Correction)(鏡頭矯正)

由於鏡頭本身的物理性質, 造成圖像四周亮度相對中心亮度逐漸降低,以及,由於圖像光照在透過鏡頭照射到 pixel 上時,邊角處的焦點夾角大於中心焦點夾角,造成邊角失光。表現在圖像上的效果就是亮度從圖像中心到四周逐漸衰減, 且離圖像中心越遠亮度越暗。 爲了補償四周的亮度, 需要進行 Lens Shading 的矯正。
Lens Shading 的矯正的方法是根據一定的算法計算每個像素對應的亮度矯正值,從而補償周邊衰減的亮度。
矯正方法有二次項矯正、 四次項矯正。

4.BPC(Bad Pixel Correction)(壞點矯正)

a.壞點

壞點爲全黑環境下輸出圖像中的白點,高亮環境下輸出圖像中的黑點。

b.壞點修復方法

一般情況下, RGB 信號應與景物亮度呈線性響應關係, 但由於 Senor 部分 pixel 不良導致輸出的信號不正常, 出現白點或黑點。

壞點修復方法通常有兩種:
一種是自動檢測壞點並自動修復, 另一種是建立壞點像素鏈表進行固定位置的壞像素點修復, 這種方式是 OTP 的方式。

5.Demosaic顏色插值 (抵馬賽克)

當光線通過 Bayer型 CFA(Color Filter Arrays) 陣列之後, 單色光線打在傳感器上,每個像素都爲單色光,從而理想的Bayer 圖是一個較爲昏暗的馬賽克圖。
首先需要說明的就是demosaiced並不是和字面的意思一樣是爲了去除電影中的一些打馬賽克的圖像,而是數字圖像處理中用來從不完整的color samples插值生成完整的color samples的方法(因爲bayer pattern看起來像一個個馬賽克,因此稱爲去馬賽克)。在sensor端通常需要使用CFA濾鏡來得到Bayer pattern,而在後面的處理中需要把bayer pattern變成完整的RGB444(真彩色)圖像。在ISP中需要有這麼一個模塊來做。

在傳統的ISP中有很多算法可以來做這個插值,包括最近鄰域法,bilinear 插值,cubic 插值等。

6.Bayer Denoise(去噪聲)

使用 cmos sensor獲取圖像,光照程度和傳感器問題是生成圖像中大量噪聲的主要因素。同時, 當信號經過ADC 時, 又會引入其他一些噪聲。 這些噪聲會使圖像整體變得模糊, 而且丟失很多細節, 所以需要對圖像進行去噪處理空間去噪傳統的方法有均值濾波、 高斯濾波等。

但是, 一般的高斯濾波在進行採樣時主要考慮了像素間的空間距離關係, 並沒有考慮像素值之間的相似程度, 因此這樣得到的模糊結果通常是整張圖片一團模糊。 所以, 一般採用非線性去噪算法, 例如雙邊濾波器, 在採樣時不僅考慮像素在空間距離上的關係, 同時加入了像素間的相似程度考慮, 因而可以保持原始圖像的大體分塊, 進而保持邊緣。

7.AWB(Automatic White Balance)(自動白平衡)

白平衡的基本原理是在任意環境下, 把白色物體還原成白色物體, 也就是通過找到圖像中的白塊, 然後調整R/G/B 的比例, 如下關係:

R=RRGainR’= R * R_Gain

G=GGGainG’ = G * G_Gain

B=BBGainB’ = B * B_Gain

R=G=BR’ = G’= B’

AWB 算法通常包括的步驟如下:
(1)色溫統計: 根據圖像統計出色溫;

(2)計算通道增益: 計算出R 和B 通道的增益;

(3)進行偏色的矯正: 根據給出的增益, 算出偏色圖像的矯正。

8.Color Correction(顏色矯正)

由於人類眼睛可見光的頻譜響應度和半導體傳感器頻譜響應度之間存在差別,還有透鏡等的影響, 得到的RGB 值顏色會存在偏差, 因此必須對顏色進行校正, 通常的做法是通過一個3x3 的顏色變化矩陣來進行顏色矯正。

9.Gamma Correction(伽馬矯正)

人眼對外界光源的感光值與輸入光強不是呈線性關係的, 而是呈指數型關係的。 在低照度下,人眼更容易分辨出亮度的變化, 隨着照度的增加,人眼不易分辨出亮度的變化。而攝像機感光與輸入光強呈線性關係, 爲方便人眼辨識圖像, 需要將攝像機採集的圖像進行gamma 矯正。
Gamma 矯正是對輸入圖像灰度值進行的非線性操作, 使輸出圖像灰度值與輸入圖像灰度值呈指數關係:
out = Vin ^ gamma

這個指數就是 gamma, 橫座標是輸入灰度值, 縱座標是輸出灰度值, 藍色曲線是 gamma 值小於 1 時的輸入輸出關係, 紅色曲線是 gamma 值大於 1 時的輸入輸出關係。 可以觀察到, 當 gamma 值小於 1 時(藍色曲線), 圖像的整體亮度值得到提升, 同時低灰度處的對比度得到增加, 更利於分辯低灰度值時的圖像細節。

10.色彩空間轉換

YUV 是一種基本色彩空間, 人眼對亮度改變的敏感性遠比對色彩變化大很多, 因此, 對於人眼而言, 亮度分量Y 要比色度分量U、V 重要得多。 所以, 可以適當地拋棄部分U、V分量, 達到壓縮數據的目的。
YCbCr 其實是YUV 經過縮放和偏移的改動版,Y 表示亮度,Cr、Cb 表示色彩的色差,RGB信號亮度值之間的差異,分別是紅色和藍色的分量。 在YUV 家族中,YCbCr 是在計算機系統中應用最多的成員, 其應用領域很廣泛,JPEG、MPEG 均採用此格式。 一般人們所講的YUV 大多是指YCbCr。YCbCr有許多取樣格式,如 4∶4∶4,4∶2∶2, 4∶1∶1和 4∶2∶0。
Cb:反映的是RGB輸入信號藍色部分與RGB信號亮度值之間的差異。
Cr:反映了RGB輸入信號紅色部分與RGB信號亮度值之間的差異。
在以下兩個公式中RGB和YCbCr各分量的值的範圍均爲0-255。
RGB轉換爲Ycbcr公式:
Y=0.257R+0.564G+0.098B+16Y = 0.257*R+0.564*G+0.098*B+16
Cb=0.148R0.291G+0.439B+128Cb = -0.148*R-0.291*G+0.439*B+128
Cr=0.439R0.368G0.071B+128Cr = 0.439*R-0.368*G-0.071*B+128
YCbCr轉換爲RGB公式:
R=1.164(Y16)+1.596(Cr128)R = 1.164*(Y-16)+1.596*(Cr-128)
G=1.164(Y16)0.392(Cb128)0.813(Cr128)G = 1.164*(Y-16)-0.392*(Cb-128)-0.813*(Cr-128)
B=1.164(Y16)+2.017(Cb128)B =1.164*(Y-16)+2.017*(Cb-128)
色彩空間轉換這個模塊, 是將RGB 轉換爲 YUV444, 然後在YUV 色彩空間上進行後續的彩色噪聲去除、 邊緣增強等, 也爲後續輸出轉換爲jpeg 圖片提供方便。

11.Color Denoise

爲了抑制圖像的彩色噪聲, 一般採用低通濾波器進行處理。 例如使用M×N的高斯低通濾波器在色度通道上進行處理。

參考:
高通camera結構(攝像頭基礎介紹)
ISP算法概述
ISP概述、工作原理及架構
ISP DSP的區別
數字圖像處理 顏色空間RGB、HSI、CMYK、YUV的相互轉換
ISP基本框架及算法介紹
ISP(圖像信號處理)之——圖像處理概述
相機系統綜述 —— ISP

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章