基于DCT的圖像編解碼設(shè)計(jì)_第1頁(yè)
基于DCT的圖像編解碼設(shè)計(jì)_第2頁(yè)
基于DCT的圖像編解碼設(shè)計(jì)_第3頁(yè)
基于DCT的圖像編解碼設(shè)計(jì)_第4頁(yè)
基于DCT的圖像編解碼設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩19頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、1. 緒論matlab是由美國(guó)mathworks公司發(fā)布的主要而對(duì)科學(xué)計(jì)算、可視化以及交 互式程序設(shè)計(jì)的高科技計(jì)算環(huán)境。它將數(shù)值分析、矩陣計(jì)算、科學(xué)數(shù)據(jù)可視化以 及非線性動(dòng)態(tài)系統(tǒng)的建模和仿真等諸多強(qiáng)大功能集成在一個(gè)易于使用的視窗環(huán) 境屮,為科學(xué)研究、工程設(shè)計(jì)以及必須進(jìn)行冇效數(shù)值計(jì)算的眾多科學(xué)領(lǐng)域提供了 一種全面的解決方案,并在很大程度上擺脫了傳統(tǒng)非交互式程序設(shè)計(jì)語(yǔ)言(如c、 fortran )的編輯模式,代表了當(dāng)今國(guó)際科學(xué)計(jì)算軟件的先進(jìn)水平。隨著信息技術(shù)的發(fā)展,閣像信息被廣泛應(yīng)用于多媒體通信和計(jì)算機(jī)系統(tǒng)屮, 但是圖像數(shù)據(jù)的一個(gè)妞著特點(diǎn)就是信息量大。具有龐大的數(shù)據(jù)量,如果不經(jīng)過(guò)壓 縮,不僅超出了

2、計(jì)算機(jī)的存儲(chǔ)和處理能力,而且在現(xiàn)冇的通信信道的傳輸速率下, 是無(wú)法完成大量多媒體信息實(shí)時(shí)傳輸?shù)?,因此,為了更冇效的存?chǔ)、處理和傳輸 這些圖像數(shù)據(jù),必須對(duì)其進(jìn)行壓縮,因此有必要對(duì)圖像壓縮編碼進(jìn)行研究。由于 組成圖像的各像素之間,無(wú)論是在水平方向還是在垂直方向上都存在著一定的相 關(guān)性,因此只耍應(yīng)用某種閣像壓縮編碼方法提取或者減少這種相關(guān)性,就可以達(dá) 到壓縮數(shù)據(jù)的目的。數(shù)字圖像包含的冗余信息一般有以下兒種:空問(wèn)元余、時(shí)間冗余、信息;腦 冗余、統(tǒng)計(jì)冗余、結(jié)構(gòu)冗余、視覺(jué)冗余以及知識(shí)冗余等。閣像壓縮算法就是耍在 保證圖像一定的熏建質(zhì)量的同時(shí),盡可能多的去除這些元余信息.以達(dá)到對(duì)圖像 壓縮的目的。隨著科學(xué)技

3、術(shù)的發(fā)展,圖像壓縮編碼技術(shù)越來(lái)越引起人們的關(guān)注。 所謂的閣像壓縮編碼技術(shù)就是對(duì)耍處理的閣像數(shù)據(jù)按一定的規(guī)則進(jìn)行變換和組 合,從而達(dá)到以盡可能少的數(shù)據(jù)流來(lái)表示盡可能多的數(shù)據(jù)信息。本設(shè)計(jì)基于dct 的jpeg、png、bmp等格式圖像編解碼設(shè)計(jì)算法進(jìn)行研究,介紹了編碼屮dct變 換、景化、游程編碼等模塊的原理和數(shù)學(xué)推異以及各模塊的功能分析。最后應(yīng)用 matlab進(jìn)行了實(shí)驗(yàn)仿真并分析結(jié)果得出結(jié)論。dct變換后具有絕對(duì)的去相關(guān)性,并且變換后的矩陣從左上角到心下角頻率 規(guī)律的漸高。冇損壓縮方法利用了人類(lèi)視覺(jué)對(duì)聞像屮的某些頻率成分不敏感的特 性,允許壓縮過(guò)程中損失一定的信息;雖然不能完全恢復(fù)原始數(shù)據(jù),但是

4、所損 失的部分對(duì)理解原始圖像的影響較小,卻換來(lái)了大得多的壓縮比。因此舍棄高頻 分量保留低頻分景的做法,對(duì)丁閣像壓縮具有絕對(duì)的優(yōu)勢(shì)。只要損失的數(shù)據(jù)不太 影響人眼主觀接收的效果,就可采用。dct變換后的壓縮此本設(shè)計(jì)采用經(jīng)典的游 程編碼實(shí)現(xiàn)。2. 設(shè)計(jì)任務(wù)2. 1任務(wù)描述基于dct的圖像編解碼設(shè)計(jì)(1) 獲取圖像;(2) 釆用dct實(shí)現(xiàn)對(duì)圖像編解碼設(shè)計(jì);(3) 分析編解碼性能 2.2技術(shù)指標(biāo)(1) 可對(duì)jpeg、png、bmp等格式圖像進(jìn)行基于dct的圖像編解碼。(2) 為y便于分析比較,定義一個(gè)量化系數(shù)叩otiety,越大壓縮率越高。(3) 壓縮編碼、量化系數(shù)統(tǒng)一寫(xiě)入存儲(chǔ)文件compressed_

5、data. mat,實(shí)現(xiàn)口i 移植解壓。(4 )觀察壓縮后圖片大小,簡(jiǎn)便起見(jiàn),分析以關(guān)心compressed_data. mat 文件的大小。(5 )實(shí)現(xiàn)dct變換和反變換以及jpeg標(biāo)準(zhǔn)景化矩陣的景化、反景化。(6 )根據(jù)dct量化后矩陣特點(diǎn),木設(shè)計(jì)編碼采用z字型掃描游程編碼、 解碼。(7) dct壓縮前后比較,以及不同量化系數(shù)比較。3. 設(shè)計(jì)原理3. 1原理框圖基于dct的圖像編碼包括三個(gè)階段:dct變換、量化、編碼。根據(jù)dct 量化后矩陣特點(diǎn),本設(shè)計(jì)編碼采用z字型掃描游程編碼、解碼。首先將輸入圖像顏色空間轉(zhuǎn)換后分解為8 x 8大小的數(shù)據(jù)塊,然后用正向 二維dct把每個(gè)塊轉(zhuǎn)變成64個(gè)dct

6、系數(shù)值,其屮1個(gè)數(shù)值是直流(dc)系數(shù), 即8x8空域圖像子塊的平均值,其余的63個(gè)是交流(ac)系數(shù),接下來(lái)對(duì)dct系 數(shù)進(jìn)行暈化,最后將變換得到的暈化的dct系數(shù)進(jìn)行編碼和傳送,這樣就完成 丫圖像的壓縮過(guò)程。碼表原始閣像數(shù)據(jù)> dct變量化 3游程編碼#壓縮閣像數(shù)據(jù)竄:化表圖3- 1編碼過(guò)程基于dct的圖像編碼包括三個(gè)階段:譯碼、反量化、idct變換。在解碼過(guò)程中,形成壓縮肜的圖像格式,先對(duì)己編碼的量了化的dct系數(shù)進(jìn)行解碼,然后求逆量化并把dct系數(shù)轉(zhuǎn)化為8x8樣本像塊(使用二維dct反 變換),最后將操作完成后的塊組合成一個(gè)爭(zhēng)一的圖像。這樣,就完成y圖像的 解壓過(guò)程。壓縮圖像數(shù)據(jù)

7、游程譯碼>碼表反雖化雖化表"| idct資原始圖像數(shù)據(jù)圖3-2解碼過(guò)程3.2程序流程圖基于dct的圖像編解碼沒(méi)計(jì)的matlab實(shí)現(xiàn)的流程圖如圖3_3所示。輸入s化系數(shù)分成8*8像尜塊,dct變換輸入笊化表,對(duì)變換結(jié)果氘化對(duì)辯:化結(jié)果進(jìn)行扣描編碼保存編w結(jié)災(zāi)爪縮圖像打開(kāi)編碼文反坫化反dct變顯示恢復(fù)圖像圖3-3程序流程圖3. 3離散余弦變換dct變換利用傅立葉變換的性質(zhì)。采用閣像邊界裙翻將像變換為偶函數(shù)形 式,然后對(duì)圖像進(jìn)行二維傅立葉變換,變換后僅乜含余弦項(xiàng),所以稱(chēng)之為離散余 弦變換。dct編碼展于正交變換編碼方式,用于去除閣像數(shù)據(jù)的空間冗余。變換編 碼就是將圖像光強(qiáng)矩陣(時(shí)域信

8、號(hào))變換到系數(shù)空間(頻域信號(hào))上進(jìn)行處理的方 法。在空間上具有強(qiáng)相關(guān)的信號(hào),反映在頻域上是在某些特定的區(qū)域內(nèi)能量常常 被集屮在一起,或者是系數(shù)矩陣的分布具有某些規(guī)律。我們可以利用這些規(guī)律在 頻域上減少量化比特?cái)?shù),達(dá)到壓縮的目的。圖像經(jīng)dct變換以后,dct系數(shù)之 間的相關(guān)性就會(huì)變小。而且大部分能量集中在少數(shù)的系數(shù)上,因此,dct變換 在閣像壓縮屮非常有用,是有損閣像壓縮國(guó)際標(biāo)準(zhǔn)jpeg的核心。從原理上講可以對(duì)整1幅圖像進(jìn)行dct變換,但由于圖像各部位上細(xì)節(jié)的豐 富程度不同,這種整體處理的方式效果不好。為此,發(fā)送者首先將輸入圖像分解 為8*8或16*16訣,然后再對(duì)每個(gè)閣像塊進(jìn)行二維dct變換,

9、接著再對(duì)dct系 數(shù)進(jìn)行量化、編碼和傳輸;接收者通過(guò)對(duì)量化的dct系數(shù)進(jìn)行解碼,并對(duì)每個(gè)圖 像塊進(jìn)行的二維dct反變換。最后將操作完成后所有的塊拼接起來(lái)構(gòu)成一幅單 一的閣像。對(duì)于一般的閣像而言,大多數(shù)dct系數(shù)值都接近于0,所以去掉這些 系數(shù)不會(huì)對(duì)重建圖像的質(zhì)量產(chǎn)生較大影響。因此,利用dct進(jìn)行圖像壓縮確實(shí) 可以節(jié)約大量的存儲(chǔ)空間。在實(shí)驗(yàn)中,先將輸入的原始圖像分為8*8的小塊, 然后再對(duì)每個(gè)塊進(jìn)行二維dct變換。二維離散余弦變換可以寫(xiě)成矩陣式(f(u, v) = (a) (f(x, y)(a)(f (x, y) = (a)' (f(u, v)(a)式中,(f(x, y)是空問(wèn)域數(shù)據(jù)陣列

10、,(f(u, v)是變換系數(shù)陣列,(a)是 系數(shù)陣列,變換矩陣(a)是(a)的轉(zhuǎn)置。設(shè)計(jì)中2維dct變換函數(shù)代碼如下: functionxpq=dct2_function(xmn, m)t二dctmtx(m); %產(chǎn)生二維dct變換矩陣 xpq=t*xmn氺t ;設(shè)計(jì)中2維idct變換函數(shù)代碼如下:function xmn_resume=ldc t l function(xpq resume, m)t=dctmtx (m) ; %生成變換矩陣xmn_resume=t *xpq_resume*t; %用變化矩陳的乘法代替效率極低的 for求和循環(huán)3.4量化在dct處理中得到的64個(gè)數(shù)據(jù)中,低頻分

11、量氈含了圖像亮度等主要信息。 在從空間域到頻域的變換屮,圖像屮的緩慢變化比快速變化更易引起人眼的注意, 所以在重建閣像時(shí),低頻分量的重耍性高丁高頻分量。因而在編碼時(shí)可以忽略高 頻分量,即減小非"0"系數(shù)的1幅度以及增加"0"值系數(shù)的數(shù)目,從而達(dá)到壓 縮的目的,這也是量化的根據(jù)和目的,也是圖像質(zhì)量下降的最主要原因。在jpeg標(biāo)準(zhǔn)屮,用具冇64個(gè)獨(dú)立元素的量化表來(lái)規(guī)定dct域屮相應(yīng)的64 個(gè)系數(shù)的量化精度,使得對(duì)某個(gè)系數(shù)的具體量化階取決于人眼對(duì)該頻率分量的視 覺(jué)敏感程度。理論上,對(duì)不同的空間分辨率、數(shù)據(jù)精度等情況,應(yīng)該有不同的 量化衰。不過(guò),一般采用下閣所示

12、的量化表,可取得較好的視覺(jué)效果。量化化 就是用dct變換后的系數(shù)除以量化表中和對(duì)應(yīng)的量化階后四舍五入取整。由于 量化表中左上角的值較小,而a下角的值較大,因而起到了保持低頻分量、抑 制高頻分量的作用。為了便于分析比較,定義一個(gè)量化系數(shù)duotiety,量化系數(shù)越大,壓縮率越 高。量化系數(shù)quotiety在程序屮是將jpeg標(biāo)準(zhǔn)量化矩陣*quotiety作為真正的 量化矩陣。quotiety取值為大于1的任意實(shí)數(shù)。本設(shè)計(jì)屮利用函數(shù) integral function. m 和 deintegral function 實(shí)現(xiàn)量化和反量化o1611101624405161121214192658605

13、514131624405769561417222951878062182237566810910377243555648110411392496478871031211201017292959811210010399圖3-4灰皮值量化表量化會(huì)產(chǎn)生誤差,上表足綜合大量的圖像測(cè)試的實(shí)驗(yàn)結(jié)果,對(duì)于大部分圖像 都有很好的結(jié)果勻。表屮可以看出,高頻部分對(duì)應(yīng)的量化值大,h的就是將高 頻部分編程接近于0,以便以后處理。jpeg可以在壓縮比和圖像質(zhì)量問(wèn)作取舍。 方法就是改變量化系數(shù)。如果量化值放大,則有覓多的系數(shù)值為0,提高了壓縮 比。3.5 z形掃描游程編碼dct系數(shù)量化后,構(gòu)成一個(gè)稀疏矩陣,用zczigz

14、ag)形掃描將其變成一維 數(shù)列,將有利于游程編碼。z形掃描的順序如圖3-4。0-口1?614-1527-28/t/xx戸r42/xx43z慮xxxxxx5310xxxxxx542(/1 ,xxxx戸kxxxx戸35-36'48-495 7-58?62-63圖3_5 z形掃描順序圖游程編碼是一種統(tǒng)計(jì)編碼,該編碼屬于無(wú)損壓縮編碼,是柵格數(shù)據(jù)壓縮的重 要編碼方法。游程編碼的基本原理是:用一個(gè)符號(hào)值或串代替具有和同值的連 續(xù)符號(hào),使符號(hào)長(zhǎng)度少于原始數(shù)據(jù)的長(zhǎng)度。只在各行或者各列數(shù)據(jù)的代碼發(fā)生變 化時(shí),一次記錄該代碼及和同代碼重復(fù)的個(gè)數(shù),從而實(shí)現(xiàn)數(shù)據(jù)的壓縮。游程編碼 運(yùn)算簡(jiǎn)單,適用于機(jī)器存儲(chǔ)容量小

15、,數(shù)據(jù)需大量壓縮,而乂要避免復(fù)雜的編碼和 解碼運(yùn)算,增加處理和操作時(shí)間的情況。本沒(méi)計(jì)屮利用兩個(gè)函數(shù)run length coding function. m 和 run length decoding function. m 分另lj實(shí) 現(xiàn)z字形游程的編碼解碼。由于dct變換后a*下角頻率高,左上角頻率分量低。而人眼對(duì)高頻成分識(shí)別 小,對(duì)低頻成分識(shí)別大。量化后0主要集中在右下方,于是z字形掃描對(duì)于游 程編碼才有利。主要思路是將原矩陣的每個(gè)元素變化為用w個(gè)元素a, b表示, a表示在這個(gè)元素之前0的個(gè)數(shù),b表示這個(gè)元素是什么。當(dāng)發(fā)現(xiàn)之后的多有 元素都是0的時(shí)候用0,0作為結(jié)束標(biāo)志。這樣,只要矩陣

16、屮0的個(gè)數(shù)超過(guò) 一半,編碼后數(shù)據(jù)量就比原來(lái)小。由于在8*8屮連續(xù)出現(xiàn)不為0的相同元素的兒率極小,因此運(yùn)用游程編碼 的思想時(shí)只考慮出現(xiàn)的0的個(gè)數(shù)。4. 運(yùn)行結(jié)果及分析4. 1不同量化系數(shù)圖像編解碼效果比較量化系數(shù)quotiety:程序屮是將jpeg標(biāo)準(zhǔn)量化矩陣* quotiety作為真正 的量化矩陳。quotiety取值為大于1的任意實(shí)數(shù)。下面以jpg格式圖像為標(biāo)準(zhǔn),取不同的量化系數(shù)quotiety進(jìn)行比較,原始 圖像大小為84. 8kb:原始圖像圖4-1原始圖像恢fi的閣像恢復(fù)的圖像恢復(fù)的圖像恢復(fù)的圖像ffl 4-5 quotiety=10時(shí)恢復(fù)圖像 此時(shí)ffi縮編碼文件為compressed

17、 data大小為5. 85kb。結(jié)論:量化系數(shù)quotiety越大,壓縮率越高,閣像恢復(fù)的效果也越差。量化會(huì) 產(chǎn)生誤差,如果量化值放大,則有更多的灰度值變?yōu)?,能夠提高壓縮比。4.2不同文件類(lèi)型圖像編解碼比較量化系數(shù)quotiety都取5時(shí),對(duì)不同文件類(lèi)型的test閣進(jìn)行編解碼原始圖像圖4-6原始圖像為jpg的test圖編碼的解碼恢復(fù)圖像:恢復(fù)的閣像閣4-7 jpg格式的恢復(fù)閣像為bmp的test圖編碼的解碼恢復(fù)圖像:恢復(fù)的圖像圖4-8 bmp格式的恢復(fù)圖像為png的test圖編碼的解碼恢復(fù)圖像:恢復(fù)的閣像圖4-9png格式的恢復(fù)圖像觀察三個(gè)恢復(fù)圖像,在原始圖像相同的情況下,三種文件格式下編解

18、碼解碼 效果無(wú)太大差異。當(dāng)量化系數(shù)quotiety取其他值時(shí),三種文件格式編碼解碼 效果也和同。由此可知,該系統(tǒng)可以用于jpg、bmp. png等文件的壓縮編碼 和解碼,且編碼解碼效果相同。5. 總結(jié)本次信息處理系統(tǒng)綜合訓(xùn)練讓我更熟悉地掌握matlab的功能,靈活運(yùn)用 matlab,加強(qiáng)對(duì)matlab軟件閣像處理的能力,掌握閣像的離散余弦變換對(duì)閣像 進(jìn)行壓縮,以及游程編碼等概念。在熟悉掌握matlab程序和操作的同時(shí)培養(yǎng)了 我的獨(dú)立思考能力,鉆研精神,解決問(wèn)題能力和動(dòng)手能力。姐然在此之前通過(guò)基礎(chǔ)強(qiáng)化訓(xùn)練、運(yùn)用w matlab軟件并完成簡(jiǎn)單閣像操作, 但知道的只是最基本的的應(yīng)用,對(duì)于matlab

19、在圖像處理上的應(yīng)用,我完全沒(méi)有 理解。本次課程設(shè)計(jì)屮通過(guò)查閱資料,閱讀程序并讀寫(xiě)程序?qū)atlab圖像應(yīng)用 有了更深的了解。我同時(shí)也認(rèn)識(shí)到了 matlab功能并不只是閣形的繪制及波形的 處理,有著很多方面的運(yùn)用,如繪制函數(shù),處理音頻、圖像數(shù)據(jù),創(chuàng)建用戶(hù)界面 等功能,實(shí)為一個(gè)功能強(qiáng)大的軟件。在課設(shè)過(guò)程屮每每編寫(xiě)程序及操作時(shí)出現(xiàn)問(wèn) 題,我都會(huì)通過(guò)查閱資料,仔細(xì)檢查解決問(wèn)題,經(jīng)過(guò)一次次的修改完善,冰出 現(xiàn)最終的最優(yōu)結(jié)果。在這個(gè)過(guò)程中,面對(duì)問(wèn)題不放棄不急躁,一次次改進(jìn),靜 下心來(lái)慢慢解決,并細(xì)致完善細(xì)節(jié),從而能培養(yǎng)一種良好的學(xué)習(xí)心態(tài)和習(xí)慣。數(shù)據(jù)壓縮技術(shù)的優(yōu)劣主耍是由壓縮所能達(dá)到的壓縮倍數(shù)、從壓縮后的數(shù)

20、據(jù)所 能恢復(fù)的圖像的質(zhì)量和算法的復(fù)雜度、解碼的速度等方面來(lái)衡量的。基于dct的 混合編碼技術(shù)對(duì)于圖像的壓縮倍數(shù)可以達(dá)到兒十倍甚至上百倍,而且重建的圖 像又具有較高的質(zhì)暈,因此得到廣泛的應(yīng)用。用matlab來(lái)實(shí)現(xiàn)離散余弦變換 的圖像壓縮,具有方法簡(jiǎn)單、速度快、誤差小的優(yōu)點(diǎn),免去了大量的矩陣計(jì)算, 大大提高了圖像壓縮的效率和精度。6 .參考文獻(xiàn)1 張秋臣.淺談matlab分析及ug的運(yùn)動(dòng)仿真期刊論文-錦繡,2013. 04.2 祝本明,劉桂華.一種改進(jìn)的游程編碼算法期刊論文-兩南科技大學(xué)學(xué)報(bào), 2007. 03.3 http:/w 啊.docin. com/p-39240958 1. html.4

21、 http :/www. html.5 楊杰,黃朝兵.數(shù)字圖像處理及matlab實(shí)現(xiàn).北京:電子工業(yè)出版社,201 1. 01;附錄:main menu.mk=menuf請(qǐng)選擇需要的功能?圖像壓縮7圖像解壓'); switch kcase 1dct_compress;main_menu;case 2idct_decompress;main一menu;enddct一 compress.m%主耍思想:%-+讀取罔像文件%-+分塊dct變換%-jpeg錦標(biāo)準(zhǔn)朵化表朵化%-z字形游程編碼%-存儲(chǔ)壓縮的文件clearall; clc;globalquotiety;filename, pathna

22、me, filterlndex =uigetf ile ( 1 * .bmp; jpg;*.png 1 , 1 請(qǐng)選擇 要壓縮的源圖像i);string=sprintf('%s%s',pathname z filename);quotiety=inputdlg ('系數(shù)越大壓縮率越高','輸入您需要的壓縮系數(shù):',1, ' 1' );h=waitbar(o, 正在壓縮,請(qǐng)稍候);quotiety=str2num(cell2mat(quotiety);i=imread(string);i=rgb2gray(i);xmn=double

23、(i);figure;imshow(i);titlep原始圖像);m,n=size(xmn);waitbar(1/4,h);xpq=blkproc(xmn, 8 8 , ' dct2_function ' z 8) ; %特一小塊dct 變換waitbar(2/4,h);xpq_estimate=blkproc (xpq, 8 8 , 1 integral_function 1 ) ;%:r:化表量化waitbar(3/4,h); waitbar(3/4,h); for indexl=l:1:m/8for index2 = l: 1:n/8%對(duì)銀一小塊游程編碼,結(jié)果存在cell

24、數(shù)纟ii.xpq_coded里xpq_codedindexl,index2=int8(run_length_coding_function(xpq_estimate (8*(indexl-1)+1:8*indexl,8*(index2-1)+1:8*index2); endendwaitbar(4/4,h);close(h);uisave ( 1 xpq_coded' , 1 quotiety1 , 1 compressed一data 1); %存儲(chǔ)編碼后的信息、量 化系數(shù)figure;imshow(xpq_estimate);title ( 1 jh:縮圖像1 );dct2_func

25、tion.mfunction xpq=dct2_function(xmn,m) t=dctmtx(m); %產(chǎn)生二維dct變換矩陣 xpq=t*xmn*r;integral_function.mfunction xpq_estimate=integral_function(xpq)integral_table=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

26、,92;49,64,78,87,103,121,120,101;72,92,95,98,112,100,103,99; %量化矩陣global quotiety;xpq_estimate=int8(xpq ./(integral_table*quotiety); %此處的量化系數(shù)表示除以的 jpeg 標(biāo)準(zhǔn)景化矩陣的倍數(shù)runlength_codingfuoctioo.m%由于dct變換后右卜'角頻率高,左上角頻率分景低。而人眼對(duì)高頻成分識(shí)別小,對(duì)低頻成 分識(shí)別大%量化后0主要巢中在右下方,于是z字形掃描對(duì)于游程編碼才冇利%主要思想:原矩陣的毎個(gè)元素變化為用兩個(gè)元素【a,b】表示,a表示

27、在這個(gè)元素之前0 的個(gè)數(shù),匕表示這個(gè)元素是什么。當(dāng)發(fā)現(xiàn)之后的多有元素都是0的時(shí)候川【0, 0】作為結(jié) 束標(biāo)志。function xpq_coded=runength_coding_function(xpq_estimate)table=lzl;l/2;2/l;3,l;2,2;l/3;l,4;2/3;3,2;4,1;5,1;4,2;3,3;2,4;1,5;1,6;2,5;3z4;4/3;5/2;6/l;7/l;6/2;5/3;4,4;3,5;2,6;1,7;1,8;2,7;3,6;4,5;5,4;6,3;7,2;8、1;8,2;7,3;6,4;5,5;4,6;3,7;2,8;3,8;4,7;5,

28、6;6,5;7,4;8,3;8,4;7,5;6,6;5,7;4,8;5,8;6,7;7,6;8,5;8/6;7,7;6,8;7,8;8,7;8,8;%64*2 的炳陳,表明 z 字形ili縮的行龍路徑xpq_coded=; %存儲(chǔ)編碼后的結(jié)果count=0;compress_index=l;for index=l:l:64 %掃描if xpq_estimate(table(jndex,l),table(index,2)=0 %如果遇到 / 0,那么下一個(gè)數(shù)字到來(lái)之前 的0的個(gè)數(shù)就加1count=count+l;else %如果遇到的不是0,那么xpq_coded=(,)的第一個(gè)元素存儲(chǔ)之前0的

29、個(gè)數(shù),笫二個(gè) 元素存儲(chǔ)此時(shí)遇到的這個(gè)元素xpq_coded(compress_index,l)=count;xpq_coded(compressjndex,2)=xpq_estimate(table(index,l),table(index,2); count=0; %過(guò)去這個(gè)元素之p 0的個(gè)數(shù)就要筮新計(jì) compressndex=compressndex+l;endif count=0xpq_coded(compressjndex,l)=0;xpq_coded(compressndex,2)=0;endendidct decompress.m%主要思想:%跟壓縮過(guò)稱(chēng)恰好相反%讀取壓縮文件%z

30、字形游程解碼%jpeg標(biāo)準(zhǔn)量化表反量化 %分塊dct變換 %存儲(chǔ)解灰p的文件 clear all;clc; globalquotiety; uiload;h=waitbar(o, 1正在解壓,請(qǐng)稍候');xpq_decoded=xpq_coded;clear xpq_coded;m,n=size(xpq_decoded); waitbar(l/4,h);%游程解碼得到xpq_deestimatefor indexl=l:l:m for index2=l:l:nxpq_deestimate(8*(indexl-l)+l:8*indexl,8*(index2-l)+l:8*index2)=

31、run_length_decoding _function(xpq_decoded index 1 jndex2 );endendwaitbar(2/4,h);%反量化得到幅頻值xpq_resume=blkproc(xpq_deestimate,8 svdeintegralfunction1);waitbar(3/4,h);%dct逆變換得到xmnxmn_resume=blkproc(xpq_resume,8 8,idct2_function',8);xmn_resume=uint8(xmn_resume);waitbar(4/4,h);close(h);figure;imshow(x

32、mn_resume);title(恢復(fù)的圖像);idct2 function.mfunctionxmn_resume=idct2_function(xpq_resume,m)t=dctmtx(m); %生成變換矩陣xmn_resume=r*xpq_resume*t; %川變化妍陳的乘'法代替效率極低的for求和循環(huán)deintegral_function.mfunctionxpq_resume=deintegral_function(xpq_deestimate)integral_table=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,6

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論