日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

好色之圖 | 揭開圖形信號處理的面紗,看背后的大學(xué)問

 海鯀 2017-01-07

前言:
這篇文章是我從事ISP研究數(shù)年來的一些經(jīng)驗總結(jié),沒有用到深奧的理論知識,有的只是根據(jù)實際狀況來處理的一些常規(guī)方法,以及曾經(jīng)犯過的錯誤總結(jié)。我想把ISP function的原理用簡單淺顯的語言描述出來,希望對初學(xué)者有所幫助。這里的ISP主要是指從CMOS  sensor輸出的bayer pattern,到轉(zhuǎn)換成通用的YUV或者YCbCr格式的過程,通常用于USB攝像頭/監(jiān)控攝像頭/手機(jī)/平板等芯片設(shè)計中。


IC設(shè)計中,受限于處理速度,像素級的ISP算法都相對簡單,只會用到加/減/乘/比較等基本運算,通常不會用到除法、指數(shù)、對數(shù)、平方根、三角函數(shù)等復(fù)雜運算。以1080p 30fps的視頻為例,像素處理速度為1080*1920*30=62M pixel/s,每個pixel都需要非常多的基本運算,用pipeline的方式實現(xiàn)連續(xù)高速計算。像除法,指數(shù)運算或者三角函數(shù),則較多的時鐘周期才能完成一次計算,因此不適用于ISP的像素級處理,在算法設(shè)計中要盡量避免這些復(fù)雜運算。ISP中也有針對整幅圖像處理的運算(非像素級),例如白平衡AWB,自動曝光AE和自動對焦AF,這些算法比較靈活,處理速度要求不高,通常由CPU來處理的,任何復(fù)雜運算都可以用,只要CPU性能足夠。
 

研究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簡單框架

 


ISP各個基本算法是相對獨立的,但是在整體效果呈現(xiàn)上,又是相互關(guān)聯(lián)的。舉例來說,Lens Shading Correction這個算法把要圖像四周的拉亮,這就導(dǎo)致圖像四周的Noise比較大, 而Noise較大的話,edge enhance就要對四周的像素做特殊處理,使得Noise不會被放大,這會導(dǎo)致圖像中心相對清晰,四周相對模糊。經(jīng)常調(diào)校ISP的人,對此可能深有體會。諸多ISP算法模塊,內(nèi)在是有一些確定的邏輯關(guān)系的,上圖中的框架結(jié)構(gòu),有些順序是可以改變,有些則不可以改變, 有些改變會導(dǎo)致算法復(fù)雜度提升。ISP算法中有不少特性是相互對立矛盾的,例如清晰度和噪聲,AWB中的穩(wěn)定度和精確度,AE中的收斂穩(wěn)定性和收斂速度等,這些對立的特性,就像天平的兩端,需要根據(jù)客戶需求或者實際應(yīng)用場景去做平衡。


對ISP的研究學(xué)習(xí)過程,既有符合構(gòu)想預(yù)期的情況,也有充滿意外的時候,同時感嘆一下人眼或者說人腦的高復(fù)雜度和高靈敏度。ISP的各種數(shù)學(xué)運算,最終是要讓CMOS sensor感應(yīng)到的圖像,轉(zhuǎn)化模擬成人眼/人腦感受到的圖像,通過不斷的學(xué)習(xí)和嘗試,讓各種ISP模塊中的數(shù)學(xué)計算,能夠得出期望的圖像效果,或者從圖像效果反推出算法中的原因所在。一個有經(jīng)驗的ISP算法研究工程師,就是建立起數(shù)學(xué)計算和圖像效果之間的映射關(guān)系。


接下來,我將從圖像format開始,然后再從圖像亮度,色彩和細(xì)節(jié)三個方面來一一介紹ISP中各個function。

 

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 框架都類似。


1.1 Bayer Patter

從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


Bayer pattern并不適合圖像的顯示。我們需要首先把它轉(zhuǎn)換成RGB空間,即每個pixel都有完整的R/G/B三個color 分量。如果每個color分量都是8-bit精度,就稱為RGB24,常見的*.bmp彩色圖像就大部分是RGB24。把bayer pattern轉(zhuǎn)換到RGB的過程,我們稱為interpolation,或者demosaic. 

 

Figure 1.1.2 RGB色彩空間

 


1.2 YUV

YUV是一種常見的色彩空間,Y表示亮度,U表示藍(lán)色色調(diào),V表示紅色色調(diào)。它和RGB之間可以相互轉(zhuǎn)換,轉(zhuǎn)換的計算方法在不同的參考書籍中會有差異。我們參考微軟給出的一組計算公式,R/G/B/Y/U/V都用8 bits表示:
Y = ( ( 66*R + 129*G + 25*B + 128) >> 8) + 16
U = ( ( -38*R - 74*G + 112*B + 128) >> 8) + 128
V = ( ( 112*R -  94*G - 18*B + 128) >> 8) + 128

C = Y - 16
D = U - 128
E = V - 128
R = (( 298*C        + 409*E + 128) >> 8)
G = (( 298*C - 100 * D - 208*E + 128) >> 8)
B = (( 298*C + 516 * D        + 128) >> 8)


需要注意的是Y/U/V的取值范圍。Y在16~236,U和V在16~240之間。

 

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
Cr=( 0.500R -0.4187G -0.0813B )+128
Cb=( - 0.1687R -0.3313G +0.500B )+128


此外還有BT.709公式轉(zhuǎn)換系數(shù)有點不一樣。
 

不論是YUV還是YCbCr(BT.601/BT.709),各個分量代表的實際物理意義是近似的,所以在下面的敘述中,除非特殊聲明,一般認(rèn)為二者是等價的,不再區(qū)分。


YUV依照數(shù)據(jù)量的不同,還可以細(xì)分為YUV444,YUV422,YUV420.

 

Figure1.3.1 YUV的三種format


如圖所示,YUV444表示每個pixel 有完整的三個分量;YUV422表示水平相鄰的兩個pixel有各自的Y,共用1個U和1個V;YUV420表示每4個相鄰的pixel,有各自的Y,共用1個U和1個V??梢园l(fā)現(xiàn),從數(shù)據(jù)量來看三者的比例關(guān)系為3:2:1.5,不過人眼對亮度(Y)變化比較敏感,對色彩(U/V)的變化不敏感, 因此視覺上YUV444和YUV420沒有差別。

 

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)象。


1.5 HSI

HSI是根據(jù)人眼視覺模型建立的一種色彩空間。H是hue,即色調(diào)(色相),是一個角度,取值在00~3600之間。S是saturation,即飽和度,取值在0~1之間。I是intensity,即亮度。HSI 和RGB的轉(zhuǎn)換公式如下:

        
HIS轉(zhuǎn)換回RGB的公式如下:

 

Figure 1.5.1


(A)HSI圓錐空間模型。

(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。

 


Figure 1.7.2
 

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。

 

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多