圖像是多媒體中攜帶信息的極其重要的媒體,有人發(fā)表過(guò)統(tǒng)計(jì)資料,認(rèn)為人們獲取的信息的70%來(lái)自視覺系統(tǒng),實(shí)際就是圖像和電視。但是,圖像數(shù)字化之后的數(shù)據(jù)量非常大,在因特網(wǎng)上傳輸時(shí)很費(fèi)時(shí)間,在盤上存儲(chǔ)時(shí)很占“地盤”,因此就必須要對(duì)圖像數(shù)據(jù)進(jìn)行壓縮。壓縮的目的就是要滿足存儲(chǔ)容量和傳輸帶寬的要求,而付出的代價(jià)是大量的計(jì)算。幾十年來(lái),許多科技工作者一直在孜孜不倦地尋找更有效的方法,用比較少的數(shù)據(jù)量表達(dá)原始的圖像。 圖像數(shù)據(jù)壓縮主要根據(jù)下面兩個(gè)基本事實(shí)來(lái)實(shí)現(xiàn)的。一個(gè)是圖像數(shù)據(jù)中有許多重復(fù)的數(shù)據(jù),使用數(shù)學(xué)方法來(lái)表示這些重復(fù)數(shù)據(jù)就可以減少數(shù)據(jù)量;另一個(gè)事實(shí)是人的眼睛對(duì)圖像細(xì)節(jié)和顏色的辨認(rèn)有一個(gè)極限,把超過(guò)極限的部分去掉,這也就達(dá)到壓縮數(shù)據(jù)的目的。利用前一個(gè)事實(shí)的壓縮技術(shù)就是無(wú)損壓縮技術(shù),利用后一個(gè)事實(shí)的壓縮技術(shù)就是有損壓縮技術(shù)。實(shí)際的圖像壓縮是綜合使用各種有損和無(wú)損壓縮技術(shù)來(lái)實(shí)現(xiàn)的。 為了了解人的視覺系統(tǒng)如何認(rèn)識(shí)彩色、計(jì)算機(jī)系統(tǒng)中如何表示彩色圖像從而更有效地減少數(shù)據(jù)量,本章將介紹表示數(shù)字彩色圖像所需要的最基本的常識(shí),以及目前使用得相當(dāng)廣泛的JPEG壓縮標(biāo)準(zhǔn)。
5.1 視角系統(tǒng)對(duì)顏色的感知
顏色是視覺系統(tǒng)對(duì)可見光的感知結(jié)果??梢姽馐遣ㄩL(zhǎng)在380 nm~780 nm之間的電磁波,我們看到的大多數(shù)光不是一種波長(zhǎng)的光,而是由許多不同波長(zhǎng)的光組合成的。研究表明,人的視網(wǎng)膜有對(duì)紅、綠、藍(lán)顏色敏感程度不同的三種錐體細(xì)胞,另外還有一種在光功率極端低的條件下才起作用的桿狀體細(xì)胞,因此顏色只存在于眼睛和大腦。在計(jì)算機(jī)圖像處理中,桿狀細(xì)胞還沒有扮演什么角色。人的視覺系統(tǒng)對(duì)顏色的感知可歸納出如下幾個(gè)特性: 1.眼睛本質(zhì)上是一個(gè)照相機(jī)。人的視網(wǎng)膜(human retina)通過(guò)神經(jīng)元來(lái)感知外部世界的顏色,每個(gè)神經(jīng)元或者是一個(gè)對(duì)顏色敏感的錐體(cone),或者是一個(gè)對(duì)顏色不敏感的桿狀體(rod)。 2.紅、綠和藍(lán)三種錐體細(xì)胞對(duì)不同頻率的光的感知程度不同,對(duì)不同亮度的感知程度也不同,如圖5-01所示。這就意味著,人們可以使用數(shù)字圖像處理技術(shù)來(lái)降低數(shù)據(jù)率而不使人感到圖像質(zhì)量明顯下降。
 圖5-01 視覺系統(tǒng)對(duì)顏色和亮度的響應(yīng)特性[1][3] 3.自然界中的任何一種顏色都可以由R,G,B這3種顏色值之和來(lái)確定,它們構(gòu)成一個(gè)3維的RGB矢量空間。這就是說(shuō),R,G,B的數(shù)值不同混合得到的顏色就不同,也就是光波的波長(zhǎng)不同。圖5-02表示,使用基色波長(zhǎng)為700 nm(紅色)、546.1 nm(綠色)和435.8 nm(藍(lán)色)時(shí),在可見光范圍里,相加混色產(chǎn)生某一波長(zhǎng)的光波所需要的三種基色的數(shù)值。圖中的縱坐標(biāo)表示標(biāo)稱單位光強(qiáng)度,橫坐標(biāo)表示波長(zhǎng),負(fù)值表示某些波長(zhǎng)(即顏色)不能精確地通過(guò)相加混色得到。使用等量的三基色可匹配等能量的白光。
 圖5-02 產(chǎn)生波長(zhǎng)不同的光所需要的三基色值[1]
5.2 圖像的顏色模型
一個(gè)能發(fā)出光波的物體稱為有源物體,它的顏色由該物體發(fā)出的光波決定,使用RGB相加混色模型;一個(gè)不發(fā)光波的物體稱為無(wú)源物體,它的顏色由該物體吸收或者反射哪些光波決定,用CMY相減混色模型。
5.2.1 顯示彩色圖像用RGB相加混色模型
電視機(jī)和計(jì)算機(jī)顯示器使用的陰極射線管(cathode raytube,CRT)是一個(gè)有源物體。CRT使用3個(gè)電子槍分別產(chǎn)生紅(Red)、綠(Green)和藍(lán)(Blue)三種波長(zhǎng)的光,并以各種不同的相對(duì)強(qiáng)度綜合起來(lái)產(chǎn)生顏色,如圖5-03所示。組合這三種光波以產(chǎn)生特定顏色稱為相加混色,稱為RGB相加模型。相加混色是計(jì)算機(jī)應(yīng)用中定義顏色的基本方法。
 圖5-03 彩色顯象管產(chǎn)生顏色的原理
從理論上講,任何一種顏色都可用三種基本顏色按不同的比例混合得到。三種顏色的光強(qiáng)越強(qiáng),到達(dá)我們眼睛的光就越多,它們的比例不同,我們看到的顏色也就不同,沒有光到達(dá)眼睛,就是一片漆黑。當(dāng)三基色按不同強(qiáng)度相加時(shí),總的光強(qiáng)增強(qiáng),并可得到任何一種顏色。某一種顏色和這三種顏色之間的關(guān)系可用下面的式子來(lái)描述: 顏色=R(紅色的百分比)+G(綠色的百分比)+B(藍(lán)色的百分比) 當(dāng)三基色等量相加時(shí),得到白色;等量的紅綠相加而藍(lán)為0值時(shí)得到黃色;等量的紅藍(lán)相加而綠為0時(shí)得到品紅色;等量的綠藍(lán)相加而紅為0時(shí)得到青色。這些三基色相加的結(jié)果如圖5-04所示。
 圖5-04 相加混色
一幅彩色圖像可以看成由許多的點(diǎn)組成的,如圖5-05所示。圖像中的單個(gè)點(diǎn)稱為像素(pixel),每個(gè)像素都有一個(gè)值,稱為像素值,它表示特定顏色的強(qiáng)度。一個(gè)像素值往往用R,G,B三個(gè)分量表示。如果每個(gè)像素的每個(gè)顏色分量用二進(jìn)制的1位來(lái)表示,那末每個(gè)顏色的分量只有“1”和“0”這兩個(gè)值。這也就是說(shuō),每種顏色的強(qiáng)度是100%,或者是0%。在這種情況下,每個(gè)像素所顯示的顏色是8種可能出現(xiàn)的顏色之一,如表5-01所示。
 圖5-05 一幅圖像由許多像素組成
表5-01相加色
RGB |
顏色 |
000 |
黑 |
001 |
藍(lán) |
010 |
綠 |
011 |
青 |
100 |
紅 |
101 |
品紅 |
110 |
黃 |
111 |
白 |
對(duì)于標(biāo)準(zhǔn)的電視圖形陣列(Video graphics array,VGA)適配卡的16種標(biāo)準(zhǔn)顏色,其對(duì)應(yīng)的R,G,B值如表5-02所示。在Microsoft公司的Windows中,用代碼0~15表示。在表中,代碼1~6表示的顏色比較暗,它們是用最大光強(qiáng)值的一半產(chǎn)生的顏色;9~15是用最大光強(qiáng)值產(chǎn)生的。
表5-02 16色VGA調(diào)色板的值
代碼 |
R |
G |
B |
H |
S |
L |
顏色 |
0 |
0 |
0 |
0 |
160 |
0 |
0 |
黑(Black) |
1 |
0 |
0 |
128 |
160 |
240 |
60 |
藍(lán)(Blue) |
2 |
0 |
128 |
0 |
80 |
240 |
60 |
綠(Green) |
3 |
0 |
128 |
128 |
120 |
240 |
60 |
青(Cyan) |
4 |
128 |
0 |
0 |
0 |
240 |
60 |
紅(Red) |
5 |
128 |
0 |
128 |
200 |
240 |
60 |
品紅(Magenta) |
6 |
128 |
128 |
0 |
40 |
240 |
60 |
褐色(Dark yellow) |
7 |
192 |
192 |
192 |
160 |
0 |
180 |
白(Light gray) |
8 |
128 |
128 |
128 |
160 |
0 |
120 |
深灰(Dark Gray) |
9 |
0 |
0 |
255 |
160 |
240 |
120 |
淡藍(lán)(Light blue) |
10 |
0 |
255 |
0 |
80 |
240 |
120 |
淡綠(Light green) |
11 |
0 |
255 |
255 |
120 |
240 |
120 |
淡青(Light cyan) |
12 |
255 |
0 |
0 |
0 |
240 |
120 |
淡紅(Light Red) |
13 |
255 |
0 |
255 |
200 |
240 |
120 |
淡品紅(Light Magenta) |
14 |
255 |
255 |
0 |
40 |
240 |
120 |
黃(yellow) |
15 |
255 |
255 |
255 |
160 |
0 |
240 |
高亮白(Bright white) |
在表5-02中,每種基色的強(qiáng)度是用8位表示的,因此可產(chǎn)生224=16 777 216種顏色。但實(shí)際上要用一千六百多萬(wàn)種顏色的場(chǎng)合是很少的。在多媒體計(jì)算機(jī)中,除用RGB來(lái)表示圖像之外,還用色調(diào)-飽和度-亮度(hue-saturation-lightness,HSL)顏色模型。 在HSL模型中,H定義顏色的波長(zhǎng),稱為色調(diào);S定義顏色的強(qiáng)度(intensity),表示顏色的深淺程度,稱為飽和度;L定義摻入的白光量,稱為亮度。用HSL表示顏色的重要性,是因?yàn)樗容^容易為畫家所理解。若把S和L的值設(shè)置為1,當(dāng)改變H時(shí)就是選擇不同的純顏色;減小飽和度S時(shí),就可體現(xiàn)摻入白光的效果;降低亮度時(shí),顏色就暗,相當(dāng)于摻入黑色。因此在Windows中也用了HSL表示法,16色VGA調(diào)色板的值也表示在表5-02中。
5.2.2 打印彩色圖像用CMY相減混色模型
用彩色墨水或顏料進(jìn)行混合,這樣得到的顏色稱為相減色。在理論上說(shuō),任何一種顏色都可以用三種基本顏料按一定比例混合得到。這三種顏色是青色(Cyan)、品紅(Magenta)和黃色(Yellow),通常寫成CMY,稱為CMY模型。用這種方法產(chǎn)生的顏色之所以稱為相減色,乃是因?yàn)樗鼫p少了為視覺系統(tǒng)識(shí)別顏色所需要的反射光。 在相減混色中,當(dāng)三基色等量相減時(shí)得到黑色;等量黃色(Y)和品紅(M)相減而青色(C)為0時(shí),得到紅色(R);等量青色(C)和品紅(M)相減而黃色(Y)為0時(shí),得到藍(lán)色(B);等量黃色(Y)和青色(C)相減而品紅(M)為0時(shí),得到綠色(G)。這些三基色相減結(jié)果如圖5-06所示。
 圖5-06 相減混色
彩色打印機(jī)采用的就是這種原理,印刷彩色圖片也是采用這種原理。按每個(gè)像素每種顏色用1位表示,相減法產(chǎn)生的8種顏色如表5-03所示。由于彩色墨水和顏料的化學(xué)特性,用等量的三基色得到的黑色不是真正的黑色,因此在印刷術(shù)中常加一種真正的黑色(black ink),所以CMY又寫成CMYK。
表5-03 相減色
青色 |
品紅 |
黃色 |
相減色 |
0 |
0 |
0 |
白 |
0 |
0 |
1 |
黃 |
0 |
1 |
0 |
品紅 |
0 |
1 |
1 |
紅 |
1 |
0 |
0 |
青 |
1 |
0 |
1 |
綠 |
1 |
1 |
0 |
藍(lán) |
1 |
1 |
1 |
黑 |
相加色與相減色之間有一個(gè)直接關(guān)系,如表5-04所示。利用它們之間的關(guān)系,可以把顯示的顏色轉(zhuǎn)換成輸出打印的顏色。相加混色和相減混色之間成對(duì)出現(xiàn)互補(bǔ)色。例如,當(dāng)RGB為1∶1∶1時(shí),在相加混色中產(chǎn)生白色,而CMY為1∶1∶1時(shí),在相減混色中產(chǎn)生黑色。從另一個(gè)角度也可以看它們的互補(bǔ)性。從表5-04中可以看到,在RGB中的顏色為1的地方,在CMY對(duì)應(yīng)的位置上,其顏色值為0。例如RGB為0∶1∶0時(shí),對(duì)應(yīng)CMY為1∶0∶1。
表5-04 相加色與相減色的關(guān)系
相加混色 |
相減混色 |
生成的顏色 |
RGB |
CMY |
|
000 |
111 |
黑 |
001 |
110 |
藍(lán) |
010 |
101 |
綠 |
011 |
100 |
青 |
100 |
011 |
紅 |
101 |
010 |
品紅 |
110 |
001 |
黃 |
111 |
000 |
白 |
RGB彩色空間和CMY彩色空間也可以使用圖5-07所示的立方體來(lái)表示。
 圖5-07 RGB彩色空間和CMY彩色空間的表示法
5.3 彩色空間的線性變換標(biāo)準(zhǔn)
為了使用人的視角特性以降低數(shù)據(jù)量,通常把RGB空間表示的彩色圖像變換到其他彩色空間。目前采用的彩色空間變換有三種:YIQ, YUV和YCrCb。每一種彩色空間都產(chǎn)生一種亮度分量信號(hào)和兩種色度分量信號(hào),而每一種變換使用的參數(shù)都是為了適應(yīng)某種類型的顯示設(shè)備。其中,YIQ適用于NTSC彩色電視制式,YUV適用于PAL和SECAM彩色電視制式,而YCrCb適用于計(jì)算機(jī)用的顯示器。
5.3.1 YUV與YIQ模型
在彩色電視制式中,使用YUV和YIQ模型來(lái)表示彩色圖像。在PAL彩色電視制式中使用YUV模型,其中的YUV不是那幾個(gè)英文單詞的組合詞,而是符號(hào),Y表示亮度,UV用來(lái)表示色差,U、V是構(gòu)成彩色的兩個(gè)分量;在NTSC彩色電視制式中使用YIQ模型,其中的Y表示亮度,I、Q是兩個(gè)彩色分量。 YUV表示法的重要性是它的亮度信號(hào)(Y)和色度信號(hào)(U、V)是相互獨(dú)立的,也就是Y信號(hào)分量構(gòu)成的黑白灰度圖與用U、V信號(hào)構(gòu)成的另外兩幅單色圖是相互獨(dú)立的。由于Y、U、V是獨(dú)立的,所以可以對(duì)這些單色圖分別進(jìn)行編碼。此外,黑白電視能接收彩色電視信號(hào)也就是利用了YUV分量之間的獨(dú)立性。 YUV表示法的另一個(gè)優(yōu)點(diǎn)是可以利用人眼的特性來(lái)降低數(shù)字彩色圖像所需要的存儲(chǔ)容量。人眼對(duì)彩色細(xì)節(jié)的分辨能力遠(yuǎn)比對(duì)亮度細(xì)節(jié)的分辨能力低。若把人眼剛能分辨出的黑白相間的條紋換成不同顏色的彩色條紋,那末眼睛就不再能分辨出條紋來(lái)。由于這個(gè)原因,就可以把彩色分量的分辨率降低而不明顯影響圖像的質(zhì)量,因而就可以把幾個(gè)相鄰像素不同的彩色值當(dāng)作相同的彩色值來(lái)處理,從而減少所需的存儲(chǔ)容量。 例如,要存儲(chǔ)RGB 8∶8∶8的彩色圖像,即R、G和B分量都用8位二進(jìn)制數(shù)表示,圖像的大小為640×480像素,那末所需要的存儲(chǔ)容量為921 600字節(jié)。如果用YUV來(lái)表示同一幅彩色圖像,Y分量仍然為640×480,并且Y分量仍然用8位表示,而對(duì)每四個(gè)相鄰像素(2×2)的U、V值分別用相同的一個(gè)值表示,那末存儲(chǔ)同樣的一幅圖像所需的存儲(chǔ)空間就減少到460 800字節(jié)。這實(shí)際上也是圖像壓縮技術(shù)的一種方法。 無(wú)論是用YIQ、YUV和YCrCb還是用HSL模型來(lái)表示彩色圖像,由于現(xiàn)在所有的顯示器都采用RGB值來(lái)驅(qū)動(dòng),這就要求在顯示每個(gè)像素之前,須要把彩色分量值轉(zhuǎn)換成RGB值。這種轉(zhuǎn)換需要花費(fèi)大量的計(jì)算時(shí)間。這是一個(gè)要在軟硬件設(shè)計(jì)中需要綜合考慮的因素。
5.3.2 YUV與RGB彩色空間變換
在考慮人的視覺系統(tǒng)和陰極射線管(CRT)的非線性特性之后,RGB和YUV的對(duì)應(yīng)關(guān)系可以近似地用下面的方程式表示: Y = 0.299R + 0.587G + 0.114B U = - 0.147R- 0.289G + 0.436B V = 0.615R - 0.515G - 0.100B 或者寫成矩陣的形式, 
5.3.3 YIQ與RGB彩色空間變換
RGB和YIQ的對(duì)應(yīng)關(guān)系用下面的方程式表示: Y = 0.299R + 0.587G + 0.114B I = 0.596R - 0.275G - 0.321B Q = 0.212R - 0.523G + 0.311B 或者寫成矩陣的形式, 
5.3.4 YCrCb與RGB彩色空間變換
數(shù)字域中的彩色空間變換與模擬域的彩色空間變換不同。它們的分量使用Y、Cr和Cb來(lái)表示,與RGB空間的轉(zhuǎn)換關(guān)系如下: Y=0.299R+0.578G+0.114B Cr=(0.500R-0.4187G-0.0813B)+128 Cb=(-0.1687R-0.3313G+0.500B)+128 或者寫成矩陣的形式,  RGB與YCrCb之間的變換關(guān)系可寫成如下的形式: 
5.4 圖像的三個(gè)基本屬性
描述一幅圖像需要使用圖像的屬性。圖像的屬性包含分辨率、像素深度、真/偽彩色、圖像的表示法和種類等。本節(jié)介紹前面三個(gè)特性。
5.4.1 分辨率
我們經(jīng)常遇到的分辨率有兩種:顯示分辨率和圖像分辨率。 1. 顯示分辨率 顯示分辨率是指顯示屏上能夠顯示出的像素?cái)?shù)目。例如,顯示分辨率為640×480表示顯示屏分成480行,每行顯示640個(gè)像素,整個(gè)顯示屏就含有307200個(gè)顯像點(diǎn)。屏幕能夠顯示的像素越多,說(shuō)明顯示設(shè)備的分辨率越高,顯示的圖像質(zhì)量也就越高。除像手提式那樣的計(jì)算機(jī)用液晶顯示LCD(liquid crystal display)外,一般都采用CRT顯示,它類似于彩色電視機(jī)中的CRT。顯示屏上的每個(gè)彩色像點(diǎn)由代表R,G,B三種模擬信號(hào)的相對(duì)強(qiáng)度決定,這些彩色像點(diǎn)就構(gòu)成一幅彩色圖像。 計(jì)算機(jī)用的CRT和家用電視機(jī)用的CRT之間的主要差別是顯像管玻璃面上的孔眼掩模和所涂的熒光物不同??籽壑g的距離稱為點(diǎn)距(dot pitch)。因此常用點(diǎn)距來(lái)衡量一個(gè)顯示屏的分辨率。電視機(jī)用的CRT的平均分辨率為0.76 mm,而標(biāo)準(zhǔn)SVGA顯示器的分辨率為0.28 mm。孔眼越小,分辨率就越高,這就需要更小更精細(xì)的熒光點(diǎn)。這也就是為什么同樣尺寸的計(jì)算機(jī)顯示器比電視機(jī)的價(jià)格貴得多的原因。 早期用的計(jì)算機(jī)顯示器的分辨率是0.41 mm,隨著技術(shù)的進(jìn)步,分辨率由0.41→0.38→0.35→0.31→0.28一直到0.26 mm以下。顯示器的價(jià)格主要集中體現(xiàn)在分辨率上,因此在購(gòu)買顯示器時(shí)應(yīng)在價(jià)格和性能上綜合考慮。 2. 圖像分辨率 圖像分辨率是指組成一幅圖像的像素密度的度量方法。對(duì)同樣大小的一幅圖,如果組成該圖的圖像像素?cái)?shù)目越多,則說(shuō)明圖像的分辨率越高,看起來(lái)就越逼真。相反,圖像顯得越粗糙。 在用掃描儀掃描彩色圖像時(shí),通常要指定圖像的分辨率,用每英寸多少點(diǎn)(dots per inch,DIP)表示。如果用300 DIP來(lái)掃描一幅8″×10″的彩色圖像,就得到一幅2400×3000個(gè)像素的圖像。分辨率越高,像素就越多。 圖像分辨率與顯示分辨率是兩個(gè)不同的概念。圖像分辨率是確定組成一幅圖像的像素?cái)?shù)目,而顯示分辨率是確定顯示圖像的區(qū)域大小。如果顯示屏的分辨率為640×480,那末一幅320×240的圖像只占顯示屏的1/4;相反,2400×3000的圖像在這個(gè)顯示屏上就不能顯示一個(gè)完整的畫面。 這里順便說(shuō)一下,在顯示一幅圖像時(shí),有可能會(huì)出現(xiàn)圖像的寬高比(aspect radio)與顯示屏上顯示出的圖像的寬高比不一致這種現(xiàn)象。這是由于顯示設(shè)備中定義的寬高比與圖像的寬高比不一致造成的。例如一幅200×200像素的方形圖,有可能在顯示設(shè)備上顯示的圖不再是方形圖,而變成了矩形圖。這種現(xiàn)象在20世紀(jì)80年代的顯示設(shè)備上經(jīng)常遇到。
5.4.2 像素深度
像素深度是指存儲(chǔ)每個(gè)像素所用的位數(shù),它也是用來(lái)度量圖像的分辨率。像素深度決定彩色圖像的每個(gè)像素可能有的顏色數(shù),或者確定灰度圖像的每個(gè)像素可能有的灰度級(jí)數(shù)。例如,一幅彩色圖像的每個(gè)像素用R,G,B三個(gè)分量表示,若每個(gè)分量用8位,那末一個(gè)像素共用24位表示,就說(shuō)像素的深度為24,每個(gè)像素可以是224=16 777 216種顏色中的一種。在這個(gè)意義上,往往把像素深度說(shuō)成是圖像深度。表示一個(gè)像素的位數(shù)越多,它能表達(dá)的顏色數(shù)目就越多,而它的深度就越深。 雖然像素深度或圖像深度可以很深,但各種VGA的顏色深度卻受到限制。例如,標(biāo)準(zhǔn)VGA支持4位16種顏色的彩色圖像,多媒體應(yīng)用中推薦至少用8位256種顏色。由于設(shè)備的限制,加上人眼分辨率的限制,一般情況下,不一定要追求特別深的像素深度。此外,像素深度越深,所占用的存儲(chǔ)空間越大。相反,如果像素深度太淺,那也影響圖像的質(zhì)量,圖像看起來(lái)讓人覺得很粗糙和很不自然。 在用二進(jìn)制數(shù)表示彩色圖像的像素時(shí),除R,G,B分量用固定位數(shù)表示外,往往還增加1位或幾位作為屬性(Attribute)位。例如,RGB 5∶5∶5表示一個(gè)像素時(shí),用2個(gè)字節(jié)共16位表示,其中R,G,B各占5位,剩下一位作為屬性位。在這種情況下,像素深度為16位,而圖像深度為15位。 屬性位用來(lái)指定該像素應(yīng)具有的性質(zhì)。例如在CD-I系統(tǒng)中,用RGB 5∶5∶5表示的像素共16位,其最高位(b15)用作屬性位,并把它稱為透明(Transparency)位,記為T。T的含義可以這樣來(lái)理解:假如顯示屏上已經(jīng)有一幅圖存在,當(dāng)這幅圖或者這幅圖的一部分要重疊在上面時(shí),T位就用來(lái)控制原圖是否能看得見。例如定義T=1,原圖完全看不見;T=0,原圖能完全看見。 在用32位表示一個(gè)像素時(shí),若R,G,B分別用8位表示,剩下的8位常稱為α通道(alpha channel)位,或稱為復(fù)蓋(overlay)位、中斷位、屬性位。它的用法可用一個(gè)預(yù)乘α通道(premultiplied alpha)的例子說(shuō)明。假如一個(gè)像素(A,R,G,B)的四個(gè)分量都用規(guī)一化的數(shù)值表示,(A,R,G,B)為(1,1,0,0)時(shí)顯示紅色。當(dāng)像素為(0.5,1,0,0)時(shí),預(yù)乘的結(jié)果就變成(0.5,0.5,0,0),這表示原來(lái)該像素顯示的紅色的強(qiáng)度為1,而現(xiàn)在顯示的紅色的強(qiáng)度降了一半。 用這種辦法定義一個(gè)像素的屬性在實(shí)際中很有用。例如在一幅彩色圖像上疊加文字說(shuō)明,而又不想讓文字把圖復(fù)蓋掉,就可以用這種辦法來(lái)定義像素,而該像素顯示的顏色又有人把它稱為混合色(key color)。在圖像產(chǎn)品生產(chǎn)中,也往往把數(shù)字電視圖像和計(jì)算機(jī)生產(chǎn)的圖像混合在一起,這種技術(shù)稱為視圖混合(video keying)技術(shù),它也采用α通道。
5.4.3 真彩色、偽彩色與直接色
搞清真彩色、偽彩色與直接色的含義,對(duì)于編寫圖像顯示程序、理解圖像文件的存儲(chǔ)格式有直接的指導(dǎo)意義,也不會(huì)對(duì)出現(xiàn)諸如這樣的現(xiàn)象感到困惑:本來(lái)是用真彩色表示的圖像,但在VGA顯示器上顯示的圖像顏色卻不是原來(lái)圖像的顏色。 1. 真彩色(true color) 真彩色是指在組成一幅彩色圖像的每個(gè)像素值中,有R,G,B三個(gè)基色分量,每個(gè)基色分量直接決定顯示設(shè)備的基色強(qiáng)度,這樣產(chǎn)生的彩色稱為真彩色。例如用RGB 5∶5∶5表示的彩色圖像,R,G,B各用5位,用R,G,B分量大小的值直接確定三個(gè)基色的強(qiáng)度,這樣得到的彩色是真實(shí)的原圖彩色。 如果用RGB 8:8:8方式表示一幅彩色圖像,就是R,G,B都用8位來(lái)表示,每個(gè)基色分量占一個(gè)字節(jié),共3個(gè)字節(jié),每個(gè)像素的顏色就是由這3個(gè)字節(jié)中的數(shù)值直接決定,如圖5-08(a)所示,可生成的顏色數(shù)就是224=16 777 216種。用3個(gè)字節(jié)表示的真彩色圖像所需要的存儲(chǔ)空間很大,而人的眼睛是很難分辨出這么多種顏色的,因此在許多場(chǎng)合往往用RGB 5:5:5來(lái)表示,每個(gè)彩色分量占5個(gè)位,再加1位顯示屬性控制位共2個(gè)字節(jié),生成的真顏色數(shù)目為215 = 32K。 在許多場(chǎng)合,真彩色圖通常是指RGB 8:8:8,即圖像的顏色數(shù)等于224,也常稱為全彩色(full color)圖像。但在顯示器上顯示的顏色就不一定是真彩色,要得到真彩色圖像需要有真彩色顯示適配器,目前在PC上用的VGA適配器是很難得到真彩色圖像的。
 圖5-08 真彩色和偽彩色圖像之間的差別
2. 偽彩色(pseudo color) 偽彩色圖像的含義是,每個(gè)像素的顏色不是由每個(gè)基色分量的數(shù)值直接決定,而是把像素值當(dāng)作彩色查找表(color look-up table,CLUT)的表項(xiàng)入口地址,去查找一個(gè)顯示圖像時(shí)使用的R,G,B強(qiáng)度值,用查找出的R,G,B強(qiáng)度值產(chǎn)生的彩色稱為偽彩色。 彩色查找表CLUT是一個(gè)事先做好的表,表項(xiàng)入口地址也稱為索引號(hào)。例如16種顏色的查找表,0號(hào)索引對(duì)應(yīng)黑色,... ,15號(hào)索引對(duì)應(yīng)白色。彩色圖像本身的像素?cái)?shù)值和彩色查找表的索引號(hào)有一個(gè)變換關(guān)系,這個(gè)關(guān)系可以使用Windows 95/98定義的變換關(guān)系,也可以使用你自己定義的變換關(guān)系。使用查找得到的數(shù)值顯示的彩色是真的,但不是圖像本身真正的顏色,它沒有完全反映原圖的彩色。如圖5-08(b)所示。 3. 直接色(direct color) 每個(gè)像素值分成R,G,B分量,每個(gè)分量作為單獨(dú)的索引值對(duì)它做變換。也就是通過(guò)相應(yīng)的彩色變換表找出基色強(qiáng)度,用變換后得到的R,G,B強(qiáng)度值產(chǎn)生的彩色稱為直接色。它的特點(diǎn)是對(duì)每個(gè)基色進(jìn)行變換。 用這種系統(tǒng)產(chǎn)生顏色與真彩色系統(tǒng)相比,相同之處是都采用R,G,B分量決定基色強(qiáng)度,不同之處是前者的基色強(qiáng)度直接用R,G,B決定,而后者的基色強(qiáng)度由R,G,B經(jīng)變換后決定。因而這兩種系統(tǒng)產(chǎn)生的顏色就有差別。試驗(yàn)結(jié)果表明,使用直接色在顯示器上顯示的彩色圖像看起來(lái)真實(shí)、很自然。 這種系統(tǒng)與偽彩色系統(tǒng)相比,相同之處是都采用查找表,不同之處是前者對(duì)R,G,B分量分別進(jìn)行變換,后者是把整個(gè)像素當(dāng)作查找表的索引值進(jìn)行彩色變換。
5.5 圖像的種類
5.5.1 矢量圖與點(diǎn)位圖
在計(jì)算機(jī)中,表達(dá)圖像和計(jì)算機(jī)生成的圖形圖像有兩種常用的方法:一種叫做是矢量圖(vector based imgc5)法,另一種叫點(diǎn)位圖(bit mapped imgc5)法。雖然這兩種生成圖的方法不同,但在顯示器上顯示的結(jié)果幾乎沒有什么差別。 矢量圖是用一系列計(jì)算機(jī)指令來(lái)表示一幅圖,如畫點(diǎn)、畫線、畫曲線、畫圓、畫矩形等。這種方法實(shí)際上是數(shù)學(xué)方法來(lái)描述一幅圖,然后變成許多的數(shù)學(xué)表達(dá)式,再編程,用語(yǔ)言來(lái)表達(dá)。在計(jì)算顯示圖時(shí),也往往能看到畫圖的過(guò)程。繪制和顯示這種圖的軟件通常稱為繪圖程序(draw programs)。 矢量圖有許多優(yōu)點(diǎn)。例如,當(dāng)需要管理每一小塊圖像時(shí),矢量圖法非常有效;目標(biāo)圖像的移動(dòng)、縮小放大、旋轉(zhuǎn)、拷貝、屬性的改變(如線條變寬變細(xì)、顏色的改變)也很容易做到;相同的或類似的圖可以把它們當(dāng)作圖的構(gòu)造塊,并把它們存到圖庫(kù)中,這樣不僅可以加速畫的生成,而且可以減小矢量圖文件的大小。 然而,當(dāng)圖變得很復(fù)雜時(shí),計(jì)算機(jī)就要花費(fèi)很長(zhǎng)的時(shí)間去執(zhí)行繪圖指令。此外,對(duì)于一幅復(fù)雜的彩色照片(例如一幅真實(shí)世界的彩照),恐怕就很難用數(shù)學(xué)來(lái)描述,因而就不用矢量法表示,而是采用點(diǎn)位圖法表示。 點(diǎn)位圖法與矢量圖法很不相同。其實(shí),點(diǎn)位圖已經(jīng)在前面幾節(jié)作了詳細(xì)介紹,它是把一幅彩色圖分成許多的像素,每個(gè)像素用若干個(gè)二進(jìn)制位來(lái)指定該像素的顏色、亮度和屬性。因此一幅圖由許多描述每個(gè)像素的數(shù)據(jù)組成,這些數(shù)據(jù)通常稱為圖像數(shù)據(jù),而這些數(shù)據(jù)作為一個(gè)文件來(lái)存儲(chǔ),這種文件又稱為圖像文件。如要畫點(diǎn)位圖,或者編輯點(diǎn)位圖,則用類似于繪制矢量圖的軟件工具,這種軟件稱為畫圖程序(paint programs)。 點(diǎn)位圖的獲取通常用掃描儀,以及攝像機(jī)、錄相機(jī)、激光視盤與視頻信號(hào)數(shù)字化卡一類設(shè)備,通過(guò)這些設(shè)備把模擬的圖像信號(hào)變成數(shù)字圖像數(shù)據(jù)。 點(diǎn)位圖文件占據(jù)的存儲(chǔ)器空間比較大。影響點(diǎn)位圖文件大小的因素主要有兩個(gè):即前面介紹的圖像分辨率和像素深度。分辨率越高,就是組成一幅圖的像素越多,則圖像文件越大;像素深度越深,就是表達(dá)單個(gè)像素的顏色和亮度的位數(shù)越多,圖像文件就越大。而矢量圖文件的大小則主要取決圖的復(fù)雜程度。 矢量圖與點(diǎn)位圖相比,顯示點(diǎn)位圖文件比顯示矢量圖文件要快;矢量圖側(cè)重于“繪制”、去創(chuàng)造,而點(diǎn)位圖偏重于“獲取”、去“復(fù)制”;矢量圖和點(diǎn)位圖之間可以用軟件進(jìn)行轉(zhuǎn)換,由矢量圖轉(zhuǎn)換成點(diǎn)位圖采用光柵化(rasterizing)技術(shù),這種轉(zhuǎn)換也相對(duì)容易;由點(diǎn)位圖轉(zhuǎn)換成矢量圖用跟蹤(tracing)技術(shù),這種技術(shù)在理論上說(shuō)是容易,但在實(shí)際中很難實(shí)現(xiàn),對(duì)復(fù)雜的彩色圖像尤其如此。
5.5.2 灰度圖與彩色圖
灰度圖(gray-scale imgc5)按照灰度等級(jí)的數(shù)目來(lái)劃分。只有黑白兩中顏色的圖像稱為單色圖像(monochrome imgc5),如圖5-09所示的標(biāo)準(zhǔn)圖像。圖中的每個(gè)像素的像素值用1位存儲(chǔ),它的值只有“0”或者“1”,一幅640×480的單色圖像需要占據(jù)37.5 KB的存儲(chǔ)空間。 圖5-10是一幅標(biāo)準(zhǔn)灰度圖像。如果每個(gè)像素的像素值用一個(gè)字節(jié)表示,灰度值級(jí)數(shù)就等于256級(jí),每個(gè)像素可以是0~255之間的任何一個(gè)值,一幅640×480的灰度圖像就需要占據(jù)300 KB的存儲(chǔ)空間。
 圖5-09 標(biāo)準(zhǔn)單色圖 圖5-10 標(biāo)準(zhǔn)灰度圖
彩色圖像(color imgc5)可按照顏色的數(shù)目來(lái)劃分,例如256色圖像和真彩色(224=16 777 216種顏色)等。圖5-11是一幅用256色標(biāo)準(zhǔn)圖像轉(zhuǎn)換成的256級(jí)灰度圖像,彩色圖像的每個(gè)像素的R、G和B值用一個(gè)字節(jié)來(lái)表示,一幅640×480的8位彩色圖像需要307.2 KB的存儲(chǔ)空間;圖5-12是一幅真彩色圖像轉(zhuǎn)換成的256級(jí)灰度圖像,每個(gè)像素的R,G,B分量分別用一個(gè)字節(jié)表示,一幅640×480的真彩色圖像需要921.6 KB的存儲(chǔ)空間。 許多24位彩色圖像是用32位存儲(chǔ)的,這個(gè)附加的8位叫做alpha通道,它的值叫做alpha值,它用來(lái)表示該像素如何產(chǎn)生特技效果。 使用真彩色表示的圖像需要很大的存儲(chǔ)空間,在網(wǎng)絡(luò)傳輸也很費(fèi)時(shí)間。由于人的視角系統(tǒng)的顏色分辨率不高,因此在沒有必要使用真彩色的情況下就盡可能不用。
 圖5-11 256色標(biāo)準(zhǔn)圖像轉(zhuǎn)換成的灰度圖
 圖5-12 24位標(biāo)準(zhǔn)圖像轉(zhuǎn)換成的灰度圖
5.6 伽馬(g )校正
5.6.1 γ的概念
如果電子攝像機(jī)的輸出電壓與場(chǎng)景中光的強(qiáng)度成正比,如果CRT發(fā)射的光的強(qiáng)度與輸入電壓成正比,…,凡是生成和顯示圖像的所有部件都是線性的話,那么圖像處理就會(huì)變得比較容易,圖像程序員也就不會(huì)那么辛苦了!然而,現(xiàn)實(shí)世界并不是那樣,目前幾乎所有的CRT顯示設(shè)備、攝影膠片和許多電子照相機(jī)的光電轉(zhuǎn)換特性都是非線性的。幸好這些非線性部件都有一個(gè)能夠反映各自特性的冪函數(shù),它的一般形式是: y=xn => 輸出=(輸入)γ 式中的γ(gamma)是冪函數(shù)的指數(shù),它用來(lái)衡量非線性部件的轉(zhuǎn)換特性。這種特性稱為冪-律(power-law)轉(zhuǎn)換特性。按照慣例,“輸入”和“輸出”都縮放到0~1之間。其中,0表示黑電平,1表示顏色分量的最高電平。對(duì)于特定的部件,人們可以度量它的輸入與輸出之間的函數(shù)關(guān)系,從而找出γ值。 實(shí)際的圖像系統(tǒng)是由多個(gè)部件組成的,這些部件中可能會(huì)有幾個(gè)非線性部件。如果所有部件都有冪函數(shù)的轉(zhuǎn)換特性,那么整個(gè)系統(tǒng)的傳遞函數(shù)就是一個(gè)冪函數(shù),它的指數(shù)γ等于所有單個(gè)部件的γ的乘積。如果圖像系統(tǒng)的整個(gè)g =1,輸出與輸入就成線性關(guān)系。這就意味在重現(xiàn)圖像中任何兩個(gè)圖像區(qū)域的強(qiáng)度之比率與原始場(chǎng)景的兩個(gè)區(qū)域的強(qiáng)度之比率相同,這似乎是圖像系統(tǒng)所追求的目標(biāo):真實(shí)地再現(xiàn)原始場(chǎng)景。但實(shí)際情況卻不完全是這樣。 當(dāng)這種再生圖像在“明亮環(huán)境”下,也就是在其他白色物體的亮度與圖像中白色部分的亮度幾乎相同的環(huán)境下觀看時(shí),γ=1的系統(tǒng)的確可使圖像看起來(lái)像“原始場(chǎng)景”一樣。但是某些圖像有時(shí)在“黑暗環(huán)境”下觀看所獲得的效果會(huì)更好,放映電影和投影幻燈片就屬于這種情況。在這種情況下,γ值不是等于1而通常認(rèn)為γ≈ 1.5,人的視角系統(tǒng)所看到的場(chǎng)景就好像是“原始場(chǎng)景”。根據(jù)這種觀點(diǎn),投影幻燈片的γ值就設(shè)計(jì)為1.5左右,而不是1。 還有一種環(huán)境稱為中間環(huán)境的“暗淡環(huán)境”,這種環(huán)境就像房間中的其他東西能夠看到,但比圖像中白色部分的亮度更暗。看電視的環(huán)境和計(jì)算機(jī)房的環(huán)境就屬于這種情況。在這種情況下,通常認(rèn)為再現(xiàn)圖像需要γ? 1.25才能看起來(lái)像“原始場(chǎng)景”。
5.6.2 γ校正
所有CRT顯示設(shè)備都有冪-律轉(zhuǎn)換特性,如果生產(chǎn)廠家不加說(shuō)明,那么它的γ值大約等于2.5。用戶對(duì)發(fā)光的磷光材料的特性可能無(wú)能為力去改變,因而也很難改變它的γ值。為使整個(gè)系統(tǒng)的γ值接近于使用所要求的γ值,起碼就要有一個(gè)能夠提供γ校正的非線性部件,用來(lái)補(bǔ)償CRT的非線性特性。 在所有廣播電視系統(tǒng)中,γ校正是在攝象機(jī)中完成的。最初的NTSC電視標(biāo)準(zhǔn)需要攝象機(jī)具有γ=1/2.2=0.45的冪函數(shù),現(xiàn)在采納γ=0.5的冪函數(shù)。PAL和SECAM電視標(biāo)準(zhǔn)指定攝象機(jī)需要具有γ=1/2.8=0.36的冪函數(shù),但這個(gè)數(shù)值已顯得太小,因此實(shí)際的攝象機(jī)很可能會(huì)設(shè)置成γ=0.45或者0.5。使用這種攝象機(jī)得到的圖像就預(yù)先做了校正,在γ=2.5的CRT屏幕上顯示圖像時(shí),屏幕圖像相對(duì)于原始場(chǎng)景的γ大約等于1.25。這個(gè)值適合“暗淡環(huán)境”下觀看。 過(guò)去的時(shí)代是“模擬時(shí)代”,而今已進(jìn)入“數(shù)字時(shí)代”,進(jìn)入計(jì)算機(jī)的電視圖像依然帶有γ=0.5的校正,這一點(diǎn)可不要忘記。雖然帶有γ值的電視在數(shù)字時(shí)代工作得很好,尤其是在特定環(huán)境下創(chuàng)建的圖像在相同環(huán)境下工作,可是在其他環(huán)境下工作時(shí),往往會(huì)使顯示的圖像讓人看起來(lái)顯得太亮或者太暗,因此在可能條件下就要做γ校正。 在什么地方做γ校正是人們所關(guān)心的問(wèn)題。從獲取圖像、存儲(chǔ)成圖像文件、讀出圖像文件直到在某種類型的顯示屏幕上顯示圖像,這些個(gè)環(huán)節(jié)中至少有5個(gè)地方可有非線性轉(zhuǎn)換函數(shù)存在并可引入γ值。例如, ●camera_gamma:攝象機(jī)中圖像傳感器的γ(通常γ=0.4或者0.5) ●encoding_gamma:編碼器編碼圖像文件時(shí)引入γ ●decoding_gamma :譯碼器讀圖像文件時(shí)引入γ ●LUT_gamma:圖像幀緩存查找表中引入γ ●CRT_gamma:CRT的γ(通常γ=2.5) 在數(shù)字圖像顯示系統(tǒng)中,由于要顯示的圖像不一定就是攝像機(jī)來(lái)的圖像,假設(shè)這種圖像的γ值等于1,如果encoding_gamma=0.5,CRT_gamma=2.5和decoding_gamma,LUT_gamma都為1.0時(shí),整個(gè)系統(tǒng)的γ就近似等于1.25。 根據(jù)上面的分析,為了在不同環(huán)境下觀看到“原始場(chǎng)景”可在適當(dāng)?shù)牡胤郊尤?i>γ校正。
5.7 JPEG壓縮編碼
5.7.1 JPEG算法概要
JPEG(Joint Photographic Experts Group) 是一個(gè)由 ISO和IEC兩個(gè)組織機(jī)構(gòu)聯(lián)合組成的一個(gè)專家組,負(fù)責(zé)制定靜態(tài)的數(shù)字圖像數(shù)據(jù)壓縮編碼標(biāo)準(zhǔn),這個(gè)專家組開發(fā)的算法稱為JPEG算法,并且成為國(guó)際上通用的標(biāo)準(zhǔn),因此又稱為JPEG標(biāo)準(zhǔn)。JPEG是一個(gè)適用范圍很廣的靜態(tài)圖像數(shù)據(jù)壓縮標(biāo)準(zhǔn),既可用于灰度圖像又可用于彩色圖像。 JPEG專家組開發(fā)了兩種基本的壓縮算法,一種是采用以離散余弦變換(Discrete Cosine Transform,DCT)為基礎(chǔ)的有損壓縮算法,另一種是采用以預(yù)測(cè)技術(shù)為基礎(chǔ)的無(wú)損壓縮算法。使用有損壓縮算法時(shí),在壓縮比為25:1的情況下,壓縮后還原得到的圖像與原始圖像相比較,非圖像專家難于找出它們之間的區(qū)別,因此得到了廣泛的應(yīng)用。例如,在V-CD和DVD-Video電視圖像壓縮技術(shù)中,就使用JPEG的有損壓縮算法來(lái)取消空間方向上的冗余數(shù)據(jù)。為了在保證圖像質(zhì)量的前提下進(jìn)一步提高壓縮比,近年來(lái)JPEG專家組正在制定JPEG 2000(簡(jiǎn)稱JP 2000)標(biāo)準(zhǔn),這個(gè)標(biāo)準(zhǔn)中將采用小波變換(wavelet)算法。 JPEG壓縮是有損壓縮,它利用了人的視角系統(tǒng)的特性,使用量化和無(wú)損壓縮編碼相結(jié)合來(lái)去掉視角的冗余信息和數(shù)據(jù)本身的冗余信息。JPEG算法框圖如圖5-13所示,壓縮編碼大致分成三個(gè)步驟: 1.使用正向離散余弦變換(forward discrete cosinetransform,F(xiàn)DCT)把空間域表示的圖變換成頻率域表示的圖。 2.使用加權(quán)函數(shù)對(duì)DCT系數(shù)進(jìn)行量化,這個(gè)加權(quán)函數(shù)對(duì)于人的視覺系統(tǒng)是最佳的。 3.使用霍夫曼可變字長(zhǎng)編碼器對(duì)量化系數(shù)進(jìn)行編碼。 譯碼或者叫做解壓縮的過(guò)程與壓縮編碼過(guò)程正好相反。 JPEG算法與彩色空間無(wú)關(guān),因此“RGB到Y(jié)UV變換”和“YUV到RGB變換”不包含在JPEG算法中。JPEG算法處理的彩色圖像是單獨(dú)的彩色分量圖像,因此它可以壓縮來(lái)自不同彩色空間的數(shù)據(jù),如RGB, YCbCr和CMYK。
 圖5-13 JPEG壓縮編碼-解壓縮算法框圖
5.7.2 JPEG算法的主要計(jì)算步驟
JPEG壓縮編碼算法的主要計(jì)算步驟如下: ●正向離散余弦變換(FDCT)。 ●量化(quantization)。 ●Z字形編碼(zigzag scan)。 ●使用差分脈沖編碼調(diào)制(differential pulse codemodulation,DPCM)對(duì)直流系數(shù)(DC)進(jìn)行編碼。 ●使用行程長(zhǎng)度編碼(run-length encoding,RLE)對(duì)交流系數(shù)(AC)進(jìn)行編碼。 ●熵編碼(entropy coding)。 1. 正向離散余弦變換 下面對(duì)正向離散余弦變換(FDCT)變換作幾點(diǎn)說(shuō)明。 (1) 對(duì)每個(gè)單獨(dú)的彩色圖像分量,把整個(gè)分量圖像分成8×8的圖像塊,如圖5-14所示,并作為兩維離散余弦變換DCT的輸入。通過(guò)DCT變換,把能量集中在少數(shù)幾個(gè)系數(shù)上。
 圖5-14 離散余弦變換
(2) DCT變換使用下式計(jì)算, ...... (5-1) 它的逆變換使用下式計(jì)算, ...... (5-2) 上面兩式中, C(u), C(v) = 1/ , 當(dāng)u,v = 0; C(u), C(v) = 1, 其他。 f(i, j)經(jīng)DCT變換之后,F(0,0)是直流系數(shù),其他為交流系數(shù)。 (3) 在計(jì)算兩維的DCT變換時(shí),可使用下面的計(jì)算式把兩維的DCT變換變成一維的DCT變換, ............ (5-3)
.............(5-4)
 圖5-15 兩維DCT變換方法
實(shí)際的計(jì)算方法可參看[6] 2. 量化 量化是對(duì)經(jīng)過(guò)FDCT變換后的頻率系數(shù)進(jìn)行量化。量化的目的是減小非“0”系數(shù)的幅度以及增加“0”值系數(shù)的數(shù)目。量化是圖像質(zhì)量下降的最主要原因。 對(duì)于有損壓縮算法,JPEG算法使用如圖5-16所示的均勻量化器進(jìn)行量化,量化步距是按照系數(shù)所在的位置和每種顏色分量的色調(diào)值來(lái)確定。因?yàn)槿搜蹖?duì)亮度信號(hào)比對(duì)色差信號(hào)更敏感,因此使用了兩種量化表:如表5-05所示的亮度量化值和表5-06所示的色差量化值。此外,由于人眼對(duì)低頻分量的圖像比對(duì)高頻分量的圖像更敏感,因此圖中的左上角的量化步距要比右下角的量化步距小。表5-05和表5-06中的數(shù)值對(duì)CCIR 601標(biāo)準(zhǔn)電視圖像已經(jīng)是最佳的。如果不使用這兩種表,你也可以把自己的量化表替換它們。
 圖5-16 均勻量化器
表5-05 亮度量化值表
17 |
18 |
24 |
47 |
99 |
99 |
99 |
99 |
18 |
21 |
26 |
66 |
99 |
99 |
99 |
99 |
24 |
26 |
56 |
99 |
99 |
99 |
99 |
99 |
47 |
66 |
99 |
99 |
99 |
99 |
99 |
99 |
99 |
99 |
99 |
99 |
99 |
99 |
99 |
99 |
99 |
99 |
99 |
99 |
99 |
99 |
99 |
99 |
99 |
99 |
99 |
99 |
99 |
99 |
99 |
99 |
99 |
99 |
99 |
99 |
99 |
99 |
99 |
99 | |
表5-06 色度量化值
16 |
11 |
10 |
16 |
24 |
40 |
51 |
61 |
12 |
12 |
14 |
19 |
26 |
58 |
60 |
55 |
14 |
13 |
16 |
24 |
40 |
57 |
69 |
56 |
14 |
17 |
22 |
29 |
51 |
87 |
80 |
62 |
18 |
22 |
37 |
56 |
68 |
104 |
103 |
77 |
24 |
35 |
55 |
64 |
81 |
104 |
113 |
92 |
49 |
64 |
78 |
87 |
103 |
121 |
120 |
101 |
72 |
92 |
95 |
98 |
112 |
100 |
103 |
99 | |
3. Z字形編排 量化后的系數(shù)要重新編排,目的是為了增加連續(xù)的“0”系數(shù)的個(gè)數(shù),就是“0”的游程長(zhǎng)度,方法是按照Z(yǔ)字形的式樣編排,如圖5-17所示。這樣就把一個(gè)8 ′ 8的矩陣變成一個(gè)1 ′ 64的矢量,頻率較低的系數(shù)放在矢量的頂部。
 圖5-17 量化DCT系數(shù)的編排
0 |
1 |
5 |
6 |
14 |
15 |
27 |
28 |
2 |
4 |
7 |
13 |
16 |
26 |
29 |
42 |
3 |
8 |
12 |
17 |
25 |
30 |
41 |
43 |
9 |
11 |
18 |
24 |
31 |
40 |
44 |
53 |
10 |
19 |
23 |
32 |
39 |
45 |
52 |
54 |
20 |
22 |
33 |
38 |
46 |
51 |
55 |
60 |
21 |
34 |
37 |
47 |
50 |
56 |
59 |
61 |
35 |
36 |
48 |
49 |
57 |
58 |
62 |
63 |
圖5-18 量化DCT系數(shù)的序號(hào)
4. 直流系數(shù)的編碼 8×8圖像塊經(jīng)過(guò)DCT變換之后得到的DC直流系數(shù)有兩個(gè)特點(diǎn),一是系數(shù)的數(shù)值比較大,二是相鄰8×8圖像塊的DC系數(shù)值變化不大。根據(jù)這個(gè)特點(diǎn),JPEG算法使用了差分脈沖調(diào)制編碼(DPCM)技術(shù),對(duì)相鄰圖像塊之間量化DC系數(shù)的差值(Delta)進(jìn)行編碼, Delta=DC(0, 0)k-DC(0, 0)k-1........ (5-5) 5. 交流系數(shù)的編碼 量化AC系數(shù)的特點(diǎn)是1× 64矢量中包含有許多“0”系數(shù),并且許多“0”是連續(xù)的,因此使用非常簡(jiǎn)單和直觀的游程長(zhǎng)度編碼(RLE)對(duì)它們進(jìn)行編碼。 JPEG使用了1個(gè)字節(jié)的高4位來(lái)表示連續(xù)“0”的個(gè)數(shù),而使用它的低4位來(lái)表示編碼下一個(gè)非“0”系數(shù)所需要的位數(shù),跟在它后面的是量化AC系數(shù)的數(shù)值。 6. 熵編碼 使用熵編碼還可以對(duì)DPCM編碼后的直流DC系數(shù)和RLE編碼后的交流AC系數(shù)作進(jìn)一步的壓縮。 在JPEG有損壓縮算法中,使用霍夫曼編碼器來(lái)減少熵。使用霍夫曼編碼器的理由是可以使用很簡(jiǎn)單的查表(lookup table)方法進(jìn)行編碼。壓縮數(shù)據(jù)符號(hào)時(shí),霍夫曼編碼器對(duì)出現(xiàn)頻度比較高的符號(hào)分配比較短的代碼,而對(duì)出現(xiàn)頻度較低的符號(hào)分配比較長(zhǎng)的代碼。這種可變長(zhǎng)度的霍夫曼碼表可以事先進(jìn)行定義。 [例5.1] 表5-07所示的是DC碼表符號(hào)舉例。如果DC的值(Value)為4,符號(hào)SSS用于表達(dá)實(shí)際值所需要的位數(shù),實(shí)際位數(shù)就等于3。
表5-07 DC碼表符號(hào)舉例
Value |
SSS |
0 |
0 |
-1, 1 |
1 |
-3,-2, 2,3 |
2 |
-7..-4, 4..7 |
3 |
7. 組成位數(shù)據(jù)流 JPEG編碼的最后一個(gè)步驟是把各種標(biāo)記代碼和編碼后的圖像數(shù)據(jù)組成一幀一幀的數(shù)據(jù),這樣做的目的是為了便于傳輸、存儲(chǔ)和譯碼器進(jìn)行譯碼,這樣的組織的數(shù)據(jù)通常稱為JPEG位數(shù)據(jù)流(JPEG bitstream)。
5.7.3 應(yīng)用JPEG算法舉例
有關(guān)JPEG算法更詳細(xì)的信息和數(shù)據(jù),請(qǐng)參看JPEG標(biāo)準(zhǔn)ISO/IEC 10918。下面是使用JPEG算法對(duì)一個(gè)8×8圖像塊計(jì)算得到的結(jié)果。在這個(gè)例子中,計(jì)算正向離散余弦變換(FDCT)之前對(duì)源圖像中的每個(gè)樣本數(shù)據(jù)減去了128,在逆向離散余弦變換之后對(duì)重構(gòu)圖像中的每個(gè)樣本數(shù)據(jù)加了128。
139 |
144 |
149 |
153 |
155 |
155 |
155 |
155 |
144 |
151 |
153 |
156 |
159 |
156 |
156 |
156 |
150 |
155 |
160 |
163 |
158 |
156 |
156 |
156 |
159 |
161 |
162 |
160 |
160 |
159 |
159 |
159 |
159 |
160 |
161 |
162 |
162 |
155 |
155 |
155 |
161 |
161 |
161 |
161 |
160 |
157 |
157 |
157 |
162 |
162 |
161 |
163 |
162 |
157 |
157 |
157 |
162 |
162 |
161 |
161 |
163 |
158 |
158 |
158 |
源圖像樣本 |
144 |
146 |
149 |
152 |
154 |
156 |
156 |
156 |
148 |
150 |
152 |
154 |
156 |
156 |
156 |
156 |
155 |
156 |
157 |
158 |
158 |
157 |
156 |
155 |
160 |
161 |
161 |
162 |
161 |
159 |
157 |
155 |
163 |
163 |
164 |
163 |
162 |
160 |
158 |
156 |
163 |
164 |
164 |
164 |
162 |
160 |
158 |
157 |
160 |
161 |
162 |
162 |
162 |
161 |
159 |
158 |
158 |
159 |
161 |
161 |
162 |
161 |
159 |
158 |
重構(gòu)圖像樣本 |
235.6 |
-1.0 |
-12.1 |
-5.20 |
2.1 |
-1.7 |
-2.7 |
1.3 |
-22.6 |
-18.5 |
-6.2 |
-6.2 |
-2.9 |
-0.1 |
0.4 |
-1.2 |
-10.9 |
-9.3 |
-1.6 |
1.5 |
0.2 |
0.9 |
-0.6 |
-0.1 |
-7.1 |
-1.9 |
0.2 |
1.5 |
0.9 |
-0.1 |
0.0 |
0.3 |
-0.6 |
-0.8 |
1.5 |
1.6 |
-0.1 |
-0.7 |
0.6 |
1.3 |
1.8 |
-0.2 |
-1.6 |
-0.3 |
-0.8 |
1.5 |
1.0 |
-1.0 |
-1.3 |
-0.4 |
-0.3 |
-1.5 |
-0.5 |
1.7 |
1.1 |
-0.8 |
-6.2 |
1.6 |
-3.8 |
-1.8 |
1.9 |
1.2 |
-0.6 |
-0.4 |
FDCT系數(shù) |
240 |
0 |
-10 |
0 |
0 |
0 |
0 |
0 |
-24 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
-14 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
逆量化后的系數(shù) |
16 |
11 |
10 |
16 |
24 |
40 |
51 |
61 |
12 |
12 |
14 |
19 |
26 |
58 |
60 |
55 |
14 |
13 |
16 |
24 |
40 |
57 |
69 |
56 |
14 |
17 |
22 |
29 |
51 |
87 |
80 |
62 |
18 |
22 |
37 |
56 |
68 |
109 |
103 |
77 |
24 |
35 |
55 |
64 |
81 |
104 |
113 |
92 |
49 |
64 |
78 |
87 |
103 |
121 |
120 |
101 |
72 |
92 |
95 |
98 |
112 |
100 |
103 |
99 |
量化表 |
16 |
11 |
10 |
16 |
24 |
40 |
51 |
61 |
12 |
12 |
14 |
19 |
26 |
58 |
60 |
55 |
14 |
13 |
16 |
24 |
40 |
57 |
69 |
56 |
14 |
17 |
22 |
29 |
51 |
87 |
80 |
62 |
18 |
22 |
37 |
56 |
68 |
109 |
103 |
77 |
24 |
35 |
55 |
64 |
81 |
104 |
113 |
92 |
49 |
64 |
78 |
87 |
103 |
121 |
120 |
101 |
72 |
92 |
95 |
98 |
112 |
100 |
103 |
99 |
量化表 |
15 |
0 |
-1 |
0 |
0 |
0 |
0 |
0 |
-2 |
-1 |
0 |
0 |
0 |
0 |
0 |
0 |
-1 |
-1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
規(guī)格化量化系數(shù) |
15 |
0 |
-1 |
0 |
0 |
0 |
0 |
0 |
-2 |
-1 |
0 |
0 |
0 |
0 |
0 |
0 |
-1 |
-1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
規(guī)格化量化系數(shù) |
圖5-19 JPEG壓縮編碼舉例
練習(xí)與思考題
- 什么叫做真彩色和偽彩色?
- PAL制彩色電視使用什么顏色模型?NTSC制彩色電視使用什么顏色模型?計(jì)算機(jī)圖像顯示使用什么顏色模型?
- 用YUV或YIQ模型來(lái)表示彩色圖像的優(yōu)點(diǎn)是什么?為什么黑白電視機(jī)可看彩色電視圖像?
- 彩色顯象管使用紅、綠、藍(lán)這三種磷光材料發(fā)光合成彩色,這就需要把用YUV、YIQ或者YCrCb表示的圖像信號(hào)轉(zhuǎn)換成用RGB表示的圖像信號(hào)。分別寫出NTSC彩色電視、PAL彩色電視和計(jì)算機(jī)圖像顯示與RGB的彩色空間轉(zhuǎn)換關(guān)系式。
- 分別用3,3和2位表示的一幅圖像,問(wèn)該幅圖像的顏色數(shù)目最多是多少?
- 如果有一幅256色的圖像,問(wèn)該圖的顏色深度是多少?
- 按照J(rèn)PEG標(biāo)準(zhǔn)的要求,一幅彩色圖像經(jīng)過(guò)JPEG壓縮后還原得到的圖像與原始圖像相比較,非圖像專家難于找出它們之間的區(qū)別,問(wèn)此時(shí)的最大壓縮比是多少?
- JPEG壓縮編碼算法的主要計(jì)算步驟是:①DCT變換,②量化,③Z字形編碼,④使用DPCM對(duì)直流系數(shù)(DC)進(jìn)行編碼,⑤使用RLE對(duì)交流系數(shù)(AC)進(jìn)行編碼,⑥熵編碼。假設(shè)計(jì)算機(jī)的精度足夠高,問(wèn)在上述計(jì)算方法中,哪些計(jì)算對(duì)圖像的質(zhì)量是有損的?哪些計(jì)算對(duì)圖像的質(zhì)量是無(wú)損的?
- 什么叫做γ校正?在計(jì)算機(jī)中找一幅彩色圖像,使用Office 97中的Microsoft Photo Editor或者其他圖像處理軟件顯示該圖像,然后使用γ校正功能修改γ值,觀察圖像有什么變化。
參考文獻(xiàn)和站點(diǎn)
- Natravali,A.N.and Haskell,B.G.. Digital Pictures-Representation and Compression. Plenum Press,New York and London,1988.
- ISO/IEC JTC 1. DIS 10918-1,Digital Compression and Coding of Continuous-Tone still imgc5 Part 1,Requirements and Guidelines. July 1992
- Dr. Ze-Nian Li,http://fas./cs/undergrad/CourseMaterials/CMPT365/index.html,(瀏覽日期:1999年1月)
- γ校正:http://www./~poynton/colour_and_gamma/GammaFAQ.html,(瀏覽日期:1999年2月)
- Wallace,G.,The JPEG still Picture Compression Standard. Communications of the ACM,Vol.34,No.4,Apr.1991
- C. Loeffler, A. Ligtenberg and G. Moschytz. Practical Fast 1-D DCT Algorithms with 11 Multiplications. Proc. Int'l. Conf. on Acoustics, Speech, and Signal Processing, 1989 (ICASSP’ 89), pp988-991
|