前言: 研究ISP算法是一件充滿樂趣的事情,原因在于ISP算法沒有標(biāo)準(zhǔn)答案,任何ISP算法都沒有一個標(biāo)準(zhǔn)協(xié)議,每個人都可以自由發(fā)揮自己的想象力,目的只有一個,讓人眼看得舒服,大家看著好,才是真的好。每個人的想象力各不相同,算法復(fù)雜度也是無窮盡,評價ISP算法的優(yōu)劣,主要就是一個性價比:在一定復(fù)雜度要求的條件下,達(dá)到最好的圖像質(zhì)量。在學(xué)習(xí)ISP相關(guān)的paper的時候,要關(guān)注的重點是算法的原理,或者說出發(fā)點,而不是計算公式,因為公式中通常都是復(fù)雜運算,難以實際用起來,在理解了原理之后,可以找近似的替代算法來達(dá)到相近的效果。 從視覺感受來分,我把ISP大致分成亮度,色彩和細(xì)節(jié)三個部分。亮度是指對圖像整體的亮度調(diào)整,涉及到的算法有自動曝光Auto Exposure,黑電平校正Black Level Correction,鏡頭陰影校正Lens Shading Correction,Gamma,High Dynamic Ranger等。涉及到色彩的有白平衡Auto White Balance,色彩校正Color Correction Matrix,飽和度Saturation,色相Hue等。細(xì)節(jié)的算法主要的去噪Denoise,插值interpolation,縮放zoom,邊緣增強(qiáng)edge enhance等。還有一些其他相對特殊的算法,例如自動對焦Auto Focus,防閃爍anti-flick等。一個簡化的ISP算法框架如下圖。
Figure 0.1 ISP簡單框架
1.圖像數(shù)據(jù)格式 圖像format有:Bayer pattern, RGB, YUV, YCbCr, JPEG, HSI, HSV, Lab, CMY等。各種Format有其各自的特性,適用于不同的場合。有些format之間可以相互轉(zhuǎn)換,圖像質(zhì)量沒有任何變化,有一些轉(zhuǎn)換則會損失一些圖像質(zhì)量。ISP各種算法,在不同圖像format中處理的復(fù)雜度有較大的差別,效果也會有所不同,大部分ISP算法都有適合自己的format,所以各家的ISP 框架都類似。 從CMOS image sensor輸出的圖像通常是bayer pattern,也常被稱為raw data。Bayer pattern每個pixel只有一個color分量,如figure 1.1。每個方格表示一個pixel,Green分量占了1/2的pixel,red和blue各占1/4的pixel。數(shù)據(jù)從圖像的左上角開始,按照從左往右,從上往下的方向,逐個pixel傳輸。每個pixel通常是8-bit~12-bit的精度。
Figure1.1.1 bayer pattern
Figure 1.1.2 RGB色彩空間
YUV是一種常見的色彩空間,Y表示亮度,U表示藍(lán)色色調(diào),V表示紅色色調(diào)。它和RGB之間可以相互轉(zhuǎn)換,轉(zhuǎn)換的計算方法在不同的參考書籍中會有差異。我們參考微軟給出的一組計算公式,R/G/B/Y/U/V都用8 bits表示:
1.3 YCbCr YCbCr和YUV非常相似,兩個Y的意義相同,Cb和U的意義相同,Cr和V的意義相同,二者只是在轉(zhuǎn)換公式的系數(shù)略有差異,這很容易導(dǎo)致混淆。ITU-R BT.601給出計算公式如下: Y=0.299R +0.587G +0.114B 不論是YUV還是YCbCr(BT.601/BT.709),各個分量代表的實際物理意義是近似的,所以在下面的敘述中,除非特殊聲明,一般認(rèn)為二者是等價的,不再區(qū)分。
Figure1.3.1 YUV的三種format
1.4 JPEG JPEG是最常用的圖像壓縮標(biāo)準(zhǔn)。圖像首先需要轉(zhuǎn)換成YCbCr format。JPEG壓縮是對8x8方塊中的數(shù)據(jù)進(jìn)行。其過程包括DCT,Quantification和Huffman encode。 其中最核心的是量化表,量化系數(shù)Qp越小,圖像質(zhì)量越好,但是圖像size也越大,反之Qp越大,size越小,質(zhì)量越差,會出現(xiàn)馬賽克,重影等現(xiàn)象。 HSI是根據(jù)人眼視覺模型建立的一種色彩空間。H是hue,即色調(diào)(色相),是一個角度,取值在00~3600之間。S是saturation,即飽和度,取值在0~1之間。I是intensity,即亮度。HSI 和RGB的轉(zhuǎn)換公式如下:
Figure 1.5.1 (B)線條示意圖:圓錐上亮度、色度和飽和度的關(guān)系。 (C)縱軸表示亮度:亮度值是沿著圓錐的軸線度量的,沿著圓錐軸線上的點表示完全不飽和的顏色,按照不同的灰度等級,最亮點為純白色、最暗點為純黑色。 (D)圓錐縱切面:描述了同一色調(diào)的不同亮度和飽和度關(guān)系。 (E)圓錐橫切面:色調(diào)H為繞著圓錐截面度量的色環(huán),圓周上的顏色為完全飽和的純色,色飽和度為穿過中心的半徑橫軸。
這里I也表示為亮度,和Y的概念相同,但是出發(fā)點是不一樣的。這里I僅僅是RGB三個分量的平均值,定義這個模型的美國色彩學(xué)家孟塞爾(H.A.Munseu)顯然在這里偷了個懶,YCbCR定義的Y是根據(jù)人眼對RGB三種顏色的敏感度差異,分別對RGB選取了不同的權(quán)重系數(shù): Y=0.299R +0.587G +0.114B 作為一個有經(jīng)驗的ISP算法工程師,是不會用這個I來做任何運算的。HSI模型的優(yōu)點在于定義了Hue和Saturation這兩個概念。在這個模型中,隨著Hue的角度變化,色彩呈現(xiàn)出超出人腦既有感受經(jīng)驗的光怪陸離的變化,讓人耳目一新,類似電影特效一般,在實際中一點用也沒有。Saturation表示圖像色彩的鮮艷程度,雖然計算公式有點粗糙,但概念比較清晰也比較實用。還記得我們之前說過像素級的ISP算法不能有復(fù)雜的運算,這里有除法,三角函數(shù),開根號等,所以在ISP算法框架中是不會有HSI 模型的,不過其Hue和Saturation概念是很有意義的,我們可以在YUV空間來模擬這兩種效果。
1.6 CMY 彩色印刷或彩色打印的紙張是不能發(fā)射光線的,因而印刷機(jī)或彩色打印機(jī)就只能使用一些能夠吸收特定的光波而反射其它光波的油墨或顏料。油墨或顏料的三基色是青(Cyan)、品紅(Magenta)和黃(Yellow),簡稱為CMY。
這里值得注意的是C/M/Y分別是R/G/B的補(bǔ)色。所謂補(bǔ)色就是下圖中任意一條直徑兩端的兩種顏色,互為補(bǔ)色。
Figure1.6.1 1.7 CIE色度模型 國際照明委員會(CIE,Commission Internationale de L'Eclairage / International Commission on Illumination)的色度模型是最早使用的模型之一。它是三維模型,其中,x和y兩維定義顏色,第3維定義亮度。CIE 在1976 年規(guī)定了兩種顏色空間。一種是用于自照明的顏色空間,叫做CIE LUV。
Figure 1.7.1 CIE 1976 Lu’v’色度圖 另一種用于非自照明的顏色空間,叫做CIE 1976 L*a*b*,或者叫CIE LAB。CIE LAB 系統(tǒng)使用的坐標(biāo)叫做對色坐標(biāo)(opponent color coordinate)。CIELAB 使用b*, a *和 L*坐標(biāo)軸定義CIE 顏色空間。其中,L*值代表光亮度,其值從0(黑色)~100(白色)。b*和a*代表色度坐標(biāo),其中a* 代表紅-綠軸,b* 代表黃-藍(lán)軸,它們的值從0到10。
a*= b* = 0表示無色,因此L* 就代表從黑到白的比例系數(shù)。使用對色坐標(biāo)(opponet color coordinate)的想法來自這樣的概念:顏色不能同時是紅和綠,或者同時是黃和藍(lán),但顏色可以被認(rèn)為是紅和黃、紅和藍(lán)、綠和黃以及綠和藍(lán)的組合。 CIE XYZ 是國際照明委員會在1931 年開發(fā)并在1964年 修訂的CIE 顏色系統(tǒng)(CIE Color System),該系統(tǒng)是其他顏色系統(tǒng)的基礎(chǔ)。它使用相應(yīng)于紅、綠和藍(lán)三種顏色作為三種基色,而所有其他顏色都從這三種顏色中導(dǎo)出。通過相加混色或者相減混色,任何色調(diào)都可以使用不同量的基色產(chǎn)生。CIE 1931 色度圖(CIE 1931 Chromaticity Diagram),如Figure 1.1.8.3所示,圖(b)是它的輪廓圖。圖(a)中的A點在色度圖上的坐標(biāo)是x =0.4832,y =0.3045,它的顏色與紅蘋果的顏色相匹配。
Figure 1.7.3 這幾種模型在ISP計算中沒有用到,不過在測試或者調(diào)校圖像質(zhì)量的時候會用作參考。 1.8 小結(jié) 以上介紹了幾種色彩模型,在ISP中用到的只有Bayer pattern,RGB,和YUV/YCbCr。下一章將開始介紹亮度相關(guān)的function。
|
|