資源描述:
《jpeg圖像壓縮算法及其實(shí)現(xiàn)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、一、JEPG壓縮算法(標(biāo)準(zhǔn))??????????(一)JPEG壓縮標(biāo)準(zhǔn)??????JPEG(JointPhotographicExpertsGroup)是一個(gè)由ISO/IECJTC1/SC2/WG8和CCITTVIII/NIC于1986年底聯(lián)合組成的一個(gè)專家組,負(fù)責(zé)制定靜態(tài)的數(shù)字圖像數(shù)據(jù)壓縮編碼標(biāo)準(zhǔn)。迄今為止,該組織已經(jīng)指定了3個(gè)靜止圖像編碼標(biāo)準(zhǔn),分別為JPEG、JPEG-LS和JPEG2000。這個(gè)專家組于1991年前后指定完畢第一個(gè)靜止圖像壓縮標(biāo)準(zhǔn)JPEG標(biāo)準(zhǔn),并且成為國(guó)際上通用的標(biāo)準(zhǔn)。JPEG標(biāo)準(zhǔn)是一個(gè)適用范圍很廣的靜態(tài)圖像數(shù)據(jù)壓縮標(biāo)準(zhǔn),既可用
2、于灰度圖像又可用于彩色圖像。??????JPEG專家組開(kāi)發(fā)了兩種基本的靜止圖像壓縮算法,一種是采用以離散余弦變換(DiscreteCosineTransform,DCT)為基礎(chǔ)的有損壓縮算法,另一種是采用以預(yù)測(cè)技術(shù)為基礎(chǔ)的無(wú)損壓縮算法。使用無(wú)損壓縮算法時(shí),其壓縮比比較低,但可保證圖像不失真。使用有損壓縮算法時(shí),其算法實(shí)現(xiàn)較為復(fù)雜,但其壓縮比大,按25:1壓縮后還原得到的圖像與原始圖像相比較,非圖像專家難于找出它們之間的區(qū)別,因此得到了廣泛的應(yīng)用。??????JPEG有4種工作模式,分別為順序編碼,漸近編碼,無(wú)失真編碼和分層編碼,他們有各自的應(yīng)用場(chǎng)合,
3、其中基于順序編碼工作模式的JPEG壓縮系統(tǒng)也稱為基本系統(tǒng),該系統(tǒng)采用單遍掃描完成一個(gè)圖像分量的編碼,掃描次序從左到右、從上到下,基本系統(tǒng)要求圖像像素的各個(gè)色彩分量都是8bit,并可通過(guò)量化線性地改變DCT系統(tǒng)的量化結(jié)果來(lái)調(diào)整圖像質(zhì)量和壓縮比。下面介紹圖像壓縮采用基于DCT的順序模式有損壓縮算法,該算法下的JPEG壓縮為基本系統(tǒng)。??????(二)JPEG壓縮基本系統(tǒng)編碼器??????JPEG壓縮是有損壓縮,它利用了人的視覺(jué)系統(tǒng)的特性,將量化和無(wú)損壓縮編碼相結(jié)合來(lái)去掉視覺(jué)的冗余信息和數(shù)據(jù)本身的冗余信息。基于基本系統(tǒng)的JPEG壓縮編碼器框圖如圖1所示,該
4、編碼器是對(duì)單個(gè)圖像分量的處理,對(duì)于多個(gè)分量的圖像,則首先應(yīng)將圖像多分量按照一定順序和比例組成若干個(gè)最小壓縮單元(MCU),然后同樣按該編碼器對(duì)每個(gè)MCU各個(gè)分量進(jìn)行獨(dú)立編碼處理,最終圖像壓縮數(shù)據(jù)將由多個(gè)MCU壓縮數(shù)據(jù)組成。圖1JPEG壓縮編碼器結(jié)構(gòu)框圖??????JPEG壓縮主要步驟如下:??????(1)圖像壓縮預(yù)處理;??????(2)正向離散余弦變換(FDCT);??????(3)DCT系數(shù)量化;??????(4)編碼。??????(三)圖像壓縮預(yù)處理??????圖像壓縮前進(jìn)行預(yù)處理,主要包括對(duì)原圖像顏色空間轉(zhuǎn)換、大小的調(diào)整和采樣、整理MCU單
5、元。JPEG壓縮的對(duì)象是基于YUV顏色空間,對(duì)于其他顏色空間的圖像數(shù)據(jù)要先應(yīng)用相應(yīng)的轉(zhuǎn)換公式轉(zhuǎn)換到Y(jié)UV顏色空間。??????由于后續(xù)圖像分塊及整理MCU單元的需要,對(duì)于原圖像寬度和長(zhǎng)度應(yīng)當(dāng)擴(kuò)展為8的整數(shù)倍,針對(duì)YUV411、YUV420等需要降采樣處理的圖像則要求擴(kuò)展為16的整數(shù)倍,JPEG標(biāo)準(zhǔn)建議通過(guò)復(fù)制每有一個(gè)分量最右邊的列和最下面的行來(lái)進(jìn)行擴(kuò)展。通過(guò)對(duì)原圖像的降采樣,將可以減少部分圖像數(shù)據(jù),增加壓縮比,由于人眼對(duì)亮度信號(hào)Y比較敏感,而對(duì)色差信號(hào)UV不敏感,因此可以對(duì)原圖像色度信號(hào)進(jìn)行降采樣處理,而人眼卻基本感覺(jué)不到圖像的變化,JPEG壓縮常用
6、可處理降采樣處理格式為YUV422、YUV411和YUV420,本文采用YUV411格式,該格式為每個(gè)像素都提取Y分量,而UV分量在水平方向上每4個(gè)像素采樣一次。JPEG壓縮的最小單元為MCU,對(duì)于未降采樣的圖像數(shù)據(jù)(非交織數(shù)據(jù)),一個(gè)MCU就是一個(gè)數(shù)據(jù)單元,而對(duì)于降采樣的圖像數(shù)據(jù)(交織數(shù)據(jù)),一個(gè)MCU就是一系列在該掃描中由分量的采樣因子定義的數(shù)據(jù)單元。本文采用YUV411格式,則一個(gè)MCU將由Y分量水平4個(gè)8×8圖像塊、水平一個(gè)U分量和一個(gè)V分量8×8圖像塊組成?;鞠到y(tǒng)將按照從上到下、從左到右的順序?qū)⒃瓐D像整理為若干個(gè)MCU,后續(xù)JPEG壓縮就
7、是對(duì)每個(gè)MCU中各分量的圖像塊分別進(jìn)行壓縮,所有MCU的排列順序就是最終圖像壓縮數(shù)據(jù)的排列順序。??????(四)正向離散余弦變換(FDCT)??????對(duì)每個(gè)8×8圖像塊進(jìn)行FDCT之前,采樣值應(yīng)該先進(jìn)行幅度值的位移,使之成為一個(gè)有符號(hào)的數(shù),方法是將采樣值減去,其中P為采樣的精度,本文P取8位,幅度位移為128,即將每個(gè)采樣點(diǎn)像素值減去128后再進(jìn)行FDCT,F(xiàn)DCT的數(shù)學(xué)表達(dá)式為:????????????8×8圖像塊經(jīng)過(guò)FDCT變換后得到8×8的頻率系數(shù)數(shù)組,該數(shù)組位置系數(shù)稱為直流系數(shù)(DC),其他63個(gè)系數(shù)稱為交流系數(shù)(AC)。直接應(yīng)用公式(3
8、-1)進(jìn)行計(jì)算其計(jì)算量較大,許多文獻(xiàn)提出了該公式的優(yōu)化計(jì)算方法,以提高運(yùn)算效率,比較常見(jiàn)的是將該公式分解為兩