資源描述:
《淺談jpeg圖像壓縮演算法》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。
1、淺談JPEG圖像壓縮算法余科亮本文僅討論靜止圖像的壓縮基本算法,圖像壓縮的a的在于以較少的數(shù)據(jù)來(lái)表示圖像以節(jié)約存儲(chǔ)費(fèi)用,或者傳輸吋間和費(fèi)用。JPEG壓縮算法可以用失真的壓縮方式來(lái)處理圖像,但失真的程度卻是肉眼所無(wú)法辯認(rèn)的。這也就是為什么JPEG會(huì)有如此滿意的壓縮比例的原因。下面主要討論,JPEG基本壓縮法。-.JPEG壓縮過(guò)程JPEG的壓縮過(guò)顯-JPEG壓縮分四個(gè)步驟實(shí)現(xiàn):1?顏色模式轉(zhuǎn)換及采樣;2.DCT變換;3?量化;4.編碼。-.1.顏色模式轉(zhuǎn)換及采樣RGB色彩系統(tǒng)是我們最常用的表示顏色的方式。JPEG采用的是YCb
2、Cr色彩系統(tǒng)。想耍用JPEG基木壓縮法處理全彩色圖像,得先把RGB顏色模式圖像數(shù)據(jù),轉(zhuǎn)換為YCbCr顏色模式的數(shù)據(jù)。Y代表亮度,Cb和Cr則代表色度、飽和度。通過(guò)下列計(jì)算公式可完成數(shù)據(jù)轉(zhuǎn)換。Y二0.2990R+0.5870G+0.1140BCb=-0.1687R-0.3313G+0.5000B+128Cr=0.5000R-0.4187G-0.0813B+128人類的眼睛對(duì)低頻的數(shù)據(jù)比對(duì)高頻的數(shù)據(jù)具有更高的敏感度,事實(shí)上,人類的眼睛對(duì)亮度的改變也比對(duì)色彩的改變要墩感得多,也就是說(shuō)Y成份的數(shù)據(jù)是比較重要的。既然Cb成份和Ci?
3、成份的數(shù)據(jù)比較相對(duì)不重耍,就可以只取部分?jǐn)?shù)據(jù)來(lái)處理。以增加壓縮的比例。JPEG通常有兩種采樣方式:YUV411和YUV422,它們所代表的意義是Y、Cb和Cr三個(gè)成份的資料取樣比例。2.DCT變換DCT變換的全稱是離散余弦變換(DiscreteCosineTransform),是指將一組光強(qiáng)數(shù)據(jù)轉(zhuǎn)換成頻率數(shù)據(jù),以便得知強(qiáng)度變化的情形。若對(duì)高頻的數(shù)據(jù)做些修飾,再轉(zhuǎn)回原來(lái)形式的數(shù)據(jù)吋,顯然與原始數(shù)據(jù)有些差異,但是人類的眼睛卻是不容易辨認(rèn)出來(lái)。壓縮時(shí),將原始圖像數(shù)據(jù)分成8*8數(shù)據(jù)單元矩陣,例如亮度值的第一個(gè)矩陣內(nèi)容如下:%%%%
4、%%雖5%%如妝%%%%如&^57%%%%晁6%叭2%%“TJJPEG將整個(gè)亮度矩陣與色度Cb矩陣,飽和度Cr矩陣,視為一個(gè)基本單元稱作MCU。每個(gè)MCU所包含的矩陣數(shù)量不得超過(guò)10個(gè)。例如,行和列采樣的比例皆為4:2:2,貝I」每個(gè)MCU將包含四個(gè)亮度矩陣,一個(gè)色度矩陣及一個(gè)飽和度矩陣。當(dāng)圖像數(shù)據(jù)分成一個(gè)8絹矩陣后,還必須將每個(gè)數(shù)值減去128,然后一一代入DCT變換公式中,即可達(dá)到DCT變換的目的。圖像數(shù)據(jù)值必須減去128,是因?yàn)镈CT轉(zhuǎn)換公式所接受的數(shù)字范圍是在?128到+127Z間。DCT變換公式:F(u,v>i/4
5、c(u)c(v)功(5止警%X沖10Jox,y代表圖像數(shù)據(jù)矩陣內(nèi)某個(gè)數(shù)值的坐標(biāo)位置「(x,y)代表圖像數(shù)據(jù)矩陣內(nèi)的數(shù)個(gè)數(shù)值u,v代表DCT變換后矩陣內(nèi)某個(gè)數(shù)值的坐標(biāo)位置F(u,v)代表DCT變換后矩陣內(nèi)的某個(gè)數(shù)值u=0且v=0c(u)c(v)=l/1.414u>0或v>0c(u)c(v)=l經(jīng)過(guò)DCT變換后的矩陣數(shù)據(jù)口然數(shù)為頻率系數(shù),這些系數(shù)以F(0,0)的值最大,稱為DC,其余的63個(gè)頻率系數(shù)則多半是一些接近于0的正負(fù)浮點(diǎn)數(shù),一概稱Z為ACo3、量化圖像數(shù)據(jù)轉(zhuǎn)換為頻率系數(shù)后,還得接受一項(xiàng)量化程序,才能進(jìn)入編碼階段。量化階
6、段需要兩個(gè)8絹矩陣數(shù)據(jù),一個(gè)是專門處理亮度的頻率系數(shù),另一個(gè)則是針對(duì)色度的頻率系數(shù),將頻率系數(shù)除以量化矩陣的值,取得與商數(shù)最近的整數(shù),即完成量化。當(dāng)頻率系數(shù)經(jīng)過(guò)量化后,將頻率系數(shù)rti浮點(diǎn)數(shù)轉(zhuǎn)變?yōu)檎麛?shù),這才便于執(zhí)行最后的編碼。不過(guò),經(jīng)過(guò)量化階段后,所有數(shù)據(jù)只保留整數(shù)近似值,也就再度損失了一些數(shù)據(jù)內(nèi)容,JPEG提供的量化表如下:15&272卩目6556791(933031O9oo1J2nV565811111941077002058111124121137254211J239448492uIn4-7-亮度量化矩陣數(shù)據(jù)99999
7、9^999999999■?99999999999999999999999999999999769099994699P9少少4669999922599少9少PO1669999124&78479999—12499色度哉化矩陣數(shù)據(jù)4、編碼Huffman編碼無(wú)專利權(quán)問(wèn)題,成為JPEG最常用的編碼方式,Huffman編碼通常是以完整的MCU來(lái)進(jìn)行的。編碼時(shí),每個(gè)矩陣數(shù)據(jù)的DC值與63個(gè)AC值,將分別使用不同的HulTman編碼表,而亮度與色度也需要不同的Huffman編碼表,所以一共需耍四個(gè)編碼表,才能順利地完成JPEG編碼工作。D
8、C編碼DC是彩采用差值脈沖編碼調(diào)制的差值編碼法,也就是在同一個(gè)圖像分量中取得每個(gè)DC值與前一個(gè)DC值的茅值來(lái)編碼。DC采用差值脈沖編碼的主要原因是rtr丁在連續(xù)色調(diào)的圖像中,其差值多半比原值小,對(duì)差值進(jìn)行編碼所需的位數(shù),會(huì)比對(duì)原值進(jìn)行編碼所需的位數(shù)少許多。例如弟值為5,它的二進(jìn)制表示值為101,如果差值