《基于矢量量化的圖像壓縮系統(tǒng)設(shè)計與實現(xiàn)》9300字(論文)_第1頁
《基于矢量量化的圖像壓縮系統(tǒng)設(shè)計與實現(xiàn)》9300字(論文)_第2頁
《基于矢量量化的圖像壓縮系統(tǒng)設(shè)計與實現(xiàn)》9300字(論文)_第3頁
《基于矢量量化的圖像壓縮系統(tǒng)設(shè)計與實現(xiàn)》9300字(論文)_第4頁
《基于矢量量化的圖像壓縮系統(tǒng)設(shè)計與實現(xiàn)》9300字(論文)_第5頁
已閱讀5頁,還剩21頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第頁1緒論1.1研究目的及意義在當今的信息時代,數(shù)字圖像的應用已經(jīng)非常普遍。盡管技術(shù)的進步極大地提高了處理器的速度和傳輸網(wǎng)絡的性能,人們還是希望更有效地捕獲和存儲信息。在數(shù)字圖像壓縮領(lǐng)域,對更高的壓縮比和更好的壓縮質(zhì)量的要求從未停止過。從傳輸和存儲的角度來看,數(shù)據(jù)壓縮的重要性不言而喻。如果壓縮技術(shù)沒有達到一定的水平,很多相關(guān)的技術(shù)勢必會受到極大的阻礙,如無線傳輸、實時傳輸與接收、海量數(shù)據(jù)庫等。目前常用的圖像壓縮方法有筆畫編碼、字典編碼、霍夫曼編碼、算術(shù)編碼、炮編碼、變換編碼、預測編碼、小波技術(shù)等。近年來,矢量量化理論的提出和發(fā)展,為人們研究圖像壓縮提供了新的啟示。量化作為一種有損數(shù)據(jù)壓縮技術(shù),在圖像壓縮中起著重要作用,它包含有記憶量化和無記憶量化兩種。其中,有記憶量化即標量量化,無記憶量化包含序列量化和矢量量化兩種。雖然標量量化和矢量量化均可通過不同的方式對數(shù)據(jù)進行壓縮,但前者針對一維數(shù)據(jù),而后者則是針對多維數(shù)據(jù),可以說前者是后者的一種特殊情況。與其它兩種量化相比,標量量化較為簡單,每次對數(shù)據(jù)進行量化處理時僅針對一個采樣數(shù)據(jù),且其對所要采樣的數(shù)據(jù)均使用相同特性的量化器進行獨立量化,而其它兩種量化則是以采樣數(shù)據(jù)之間的相關(guān)性為基礎(chǔ)進行量化的。矢量量化指的是利用系統(tǒng)輸出的一組最佳數(shù)據(jù)的索引來代替一組采樣數(shù)據(jù)進行傳輸?shù)倪^程,能夠巧妙地利用采樣數(shù)據(jù)之間所存在的各種關(guān)系最大限度地去除采樣數(shù)據(jù)之間的冗余,從而達到數(shù)據(jù)壓縮的目的。1.2國內(nèi)外發(fā)展現(xiàn)狀在矢量量化的整個過程中,無論是碼字搜索還是碼字索引分配均需要碼書,因此碼書的質(zhì)量高低會對矢量量化最終的質(zhì)量以及有效性產(chǎn)生影響,故碼書設(shè)計是整個矢量量化過程最核心的技術(shù)。20世紀80年代,Linda、Gray等學者給出了經(jīng)典的LBG算法,該算法呈現(xiàn)了構(gòu)造矢量量化器的實現(xiàn)過程。LBG算法的理論較為嚴謹且算法簡單、直觀,已經(jīng)被廣泛應用,是碼書設(shè)計各種算法的研究基礎(chǔ)。但LBG算法存在三個問題,一是每一次迭代過程中利用最近鄰條件求取每一個訓練矢量的最近鄰碼字時需要較高的計算量,同時還需要充足的存儲空間保存結(jié)果;二是一旦所選擇的初始碼書存在一定的偏差,極有可能對碼書收斂的快慢以及碼書的性能造成影響;三是碼書自適應能力不強。針對第一個問題,通常情況下采取快速搜索的方法,但這有可能導致碼書質(zhì)量下降,故在接下來的研究中,學者們對上述問題進行分析,并提出了一系列的改進算法。1.3本課題主要工作本文章首先介紹了研究的背景和意義,了解國內(nèi)外研究現(xiàn)狀的分析,然后系統(tǒng)使用的相關(guān)技術(shù)和開發(fā)工具環(huán)境闡述,其次是系統(tǒng)的分析,包括功能需求、系統(tǒng)和系統(tǒng)開發(fā)環(huán)境的可行性進行了分析,在分析的基礎(chǔ)上進行了系統(tǒng)設(shè)計,包括體系結(jié)構(gòu)設(shè)計、功能設(shè)計、過程設(shè)計等,通過設(shè)計編碼來實現(xiàn)系統(tǒng)的各個功能,本系統(tǒng)采用MATLAB語言開發(fā),研究矢量量化圖像壓縮方法,構(gòu)建了一個基于矢量量化的圖像壓縮系統(tǒng)。最后,對系統(tǒng)功能進行整合和測試。2相關(guān)技術(shù)簡介2.1MATLAB簡介MATLAB是由美國mathwork公司發(fā)布的,主要是從事數(shù)學商業(yè)計算的軟件,它包含了matrix&laboratory兩個詞的組合,英文翻譯過來為矩陣工廠。它既是一種開發(fā)語言也是一種開發(fā)環(huán)境。主要作用即為科學計算和可視化。它把把很多的功能集成在一個好用的視窗環(huán)境中,包含了矩陣的計算、數(shù)值的分析、數(shù)據(jù)的可視化,還包括了非線性動態(tài)系統(tǒng)建模、系統(tǒng)仿真等等。它提供了科學的解決方案可以用于科學研究或者是工程設(shè)計等項目。比傳統(tǒng)的非交互式語言(c或者Fortran等)更加易用,是目前非常流行的有關(guān)數(shù)學計算方面的開發(fā)環(huán)境。1.matlab的界面左上角,home標簽下,找到layout進行設(shè)置/復位,可以設(shè)置各板塊的顯示與隱藏。其中有幾個部分,請務必要顯示

①CurrentFolder:中文一般翻譯成工作路徑,一般設(shè)置成一個自己建立的、有讀寫權(quán)限的文件夾,例如我的文檔下建立一個matlab文件夾

②CommandWindow:字面意思是命令窗口,用來運行代碼,所有的代碼都是在這里輸入

③Workspace:字面意思是工作空間,其實就是暫存所有運行結(jié)果的地方,“暫”的具體含義是:關(guān)閉matlab后丟失

2.函數(shù)

matlab之所以強大,就是因為提供大量的函數(shù),你也可以建立自定義函數(shù),方法是:Home->New->function。自定義函數(shù)一般保存在工作路徑下。函數(shù)文件的特征是:擴展名m,內(nèi)容的第一行以function開頭,后續(xù)內(nèi)容是“輸出變量=函數(shù)名(輸入變量)”。且函數(shù)名和文件名相同。

每個函數(shù)在CommandWindow中運行,用來完成特定的計算任務,運行方式是輸入“輸出變量=函數(shù)名(輸入變量)”,然后按回車。例如有個系統(tǒng)自帶的函數(shù)是用來求絕對值的,函數(shù)名abs,所以在CommandWindow里輸入“a=abs(-1)”,就會顯示運算結(jié)果為“a=1”。且運算結(jié)果會在Workspace里出現(xiàn)一個變量a,雙擊后可看到a的值是1。

3腳本

可以理解為特殊的函數(shù),這種函數(shù)內(nèi)容的開頭沒有function那行,因此沒有輸入、輸出變量,也沒有函數(shù)名。文件擴展名和函數(shù)一樣是m,也需要在CommandWindow里運行。腳本都是用戶建立的,方法是:Home->NewScript。一般保存在工作路徑下。腳本的功能就是完成用戶需要的、復雜的計算任務,通常腳本里會調(diào)用很多函數(shù)。

4GUI

一般翻譯為界面,就是人機交互界面的意思。寫腳本處理問題的方法有點麻煩,讓人看起來更像是碼農(nóng),所以現(xiàn)在很多問題可以通過界面點點鼠標解決。這時候就需要打開界面,打開方法是:在APPS標簽里可以找到所有已安裝的GUI工具,單擊即可。注意右邊有個小三角可以點開。和函數(shù)一樣,用戶也可以自己建立自定義GUI,這部分較為復雜,對新手而言有點遙遠。

toolbox

一般翻譯成工具箱,matlab將功能相近或者應用上自成體系的一組函數(shù)和GUI打包成一個toolbox。正版的matlab在購買時,幾乎每一個toolbox都是要單獨收費的,所以toolbox也可以理解為matlab產(chǎn)品的模塊,一個工具箱就是一個產(chǎn)品/商品。

simulink

一般用matlab解決問題的過程是:用戶自定義腳本,在CommandWindow里運行腳本。而腳本的運行邏輯是順序執(zhí)行,和一般的編程一樣。simulink則提供另一種思路,圖形化編程,有點像labview,這種方法很適合于物理模型的仿真,因此有時用“matlab編程”和“simulink仿真”強調(diào)。使用方法是在home標簽下點擊simulink。

4獲得幫助

常用的獲得幫助有四種方法

①home標簽里,有個Help標志,點開后可以獲得各工具箱/產(chǎn)品的完整幫助文檔。新版本中默認使用在線,改用本地幫助的辦法是在home標簽里,Preferences下的matlab/Help里選擇installedlocally

②官網(wǎng)上找到支持,然后可以獲得教程。這種方法獲得的幫助文檔和第一種方法一樣。

③在CommandWindow里輸入doc+函數(shù)名來獲得幫助。比如輸入"docfft"可以獲得離散傅里葉變換函數(shù)fft的幫助和范例。這種方法獲得的文檔是前兩種方法文檔中的部分。當然,前提是你要知道函數(shù)名,才能找到幫助。這種方法適合于獲得系統(tǒng)自帶函數(shù)的使用說明。

④使用GUI時,通常界面的角落里有Help,點開可以獲得幫助。這種方法獲得的文檔是第一和第二種方法文檔中的部分。這種方法適合于獲得系統(tǒng)自帶GUI的使用說明。

這幾種方法中,最常用的是第三種,只要知道自己需要的函數(shù)名,就可以用這種方式獲得說明和范例。而實際使用中,一般常用的系統(tǒng)自帶函數(shù),也并不是非常多,大概幾十個?真正需要牢記使用方法的可能就幾個,通常都是知道函數(shù)名,要用的時候doc一下。2.2圖像壓縮技術(shù)數(shù)字圖像壓縮是將原始圖像信息存儲在一個相對較小的空間內(nèi),分為有損壓縮和無損壓縮。數(shù)字圖像壓縮的方法是通過一定的算法消除圖像信息的冗余,使用戶能夠更有效地存儲和傳輸大量的數(shù)字圖像。2.2.1圖像壓縮理論基礎(chǔ)數(shù)字圖像壓縮的理論基礎(chǔ)是信息論。在信息論中,數(shù)據(jù)壓縮就是盡可能多地去除信息中的冗余,保留不確定信息。所謂的冗余作為識別信息被刪除。在數(shù)字圖像中,必須存在數(shù)據(jù)冗余。同時,在數(shù)字圖像中,每個部分、每個部分與整體之間總是存在著一種相關(guān)性。因此,當我們?nèi)コ龜?shù)字圖像內(nèi)部的數(shù)據(jù)冗余時,圖像的質(zhì)量(即有效信息)不應受到盡可能大的損害。因此,有必要對數(shù)字圖像中的數(shù)據(jù)冗余進行研究。2.2.2圖像壓縮類型在數(shù)字圖像壓縮方法中,將數(shù)字圖像的壓縮過程稱為圖像編碼,將壓縮數(shù)據(jù)的解壓過程稱為圖像解碼。根據(jù)解碼后的圖像與原始圖像是否完全一致,數(shù)字圖像壓縮方法可分為無損壓縮編碼方法和有損壓縮編碼方法。無損壓縮編碼是指對壓縮后的圖像進行解碼,其數(shù)據(jù)與壓縮前的圖像是完全相同的編碼方法。在壓縮期間,數(shù)據(jù)被當作完全無用的數(shù)據(jù)丟棄。無損壓縮編碼通常用于需要數(shù)據(jù)存儲或傳輸?shù)囊恢滦院头€(wěn)定性的情況。目前常用的無損壓縮編碼方法可以達到1倍的壓縮比,具體的壓縮比與圖像的內(nèi)容有關(guān)。這也證明了在實際應用中,未經(jīng)處理的數(shù)字圖像具有相當大的數(shù)據(jù)冗余。常用的無損壓縮代碼如下:筆畫編碼,熵編碼,字典編碼,算術(shù)編碼。無損壓縮編碼在壓縮過程中可以保持圖像的質(zhì)量,但與有損壓縮編碼相比,無損壓縮編碼的壓縮比過低。有損壓縮編碼是指對數(shù)據(jù)和原始圖像采用不同的解碼和編碼方法。在無損壓縮編碼不影響人們對原始圖像理解的前提下,大量的原始圖像冗余信息被丟棄。盡管有損壓縮會損害圖像質(zhì)量,但從更高的壓縮比來看,有損壓縮編碼仍具有廣泛的應用前景。常見的有損壓縮代碼如下:色度采樣法,變換編碼,矢量量化編碼。2.3矢量量化矢量量化的定義,其實質(zhì)是一個映射,即將k維的矢量空間Rk映射到其中的一個含有有限個矢量的集合C的過程,且集合C是矢量空間Rk的一個子集,可表示為:上式中,C表示碼書,y,表示C中的碼字,N表示C的尺寸大小,k表示R'中訓練矢量的維度。對于R'中任意訓練矢量,均滿足映射,并滿足:式中,碼字表示訓練矢量x與碼書中碼字y,之間產(chǎn)生的失真。也就是說,Rk中任意的訓練矢量x,都能在碼書C中搜尋到與其失真最小的碼字。對于任意的矢量空間,經(jīng)過矢量量化器Q量化后均可被劃分為N個相互無任何重疊的子空間,R,表示k維矢量空間中所有映射為碼字y;的訓練矢量的集合,即N個子空間滿足下列條件:矢量量化器的編碼和解碼兩個過程如下圖2.1所示:矢量量化器的編碼過程指的是在給出一定失真條件和一定尺寸碼書的情況下,從中搜尋出距離與輸入矢量量化器的訓練矢量最近的碼字,即二者之間失真最小的碼字。在信道整個傳輸?shù)倪^程中,并不傳輸真正的碼字而是傳輸與其相對應的索引值。而矢量量化器的解碼過程指的是在接收端和輸入端存儲相同碼書的前提下,將接收到的索引值與碼書中的碼字相匹配,并將匹配后的碼字看作輸入端輸入的訓練矢量重構(gòu)后的矢量。

3系統(tǒng)分析所謂系統(tǒng)分析,就是要求人員通過與客戶的溝通,獲取信息,然后通過信息需求的方式向用戶和開發(fā)人員展示。在軟件功能發(fā)展的歷史,很長一段時間,特別是在一開始,需求分析的重要性沒有被人認出,比如IBM英國電信公司在美國開發(fā)的一套信息管理系統(tǒng),需求不明確的條件下開始發(fā)展,最初的時期是一年,需求不清楚導致月經(jīng)推遲了半年多,造成巨大的損失。這也是我們很多軟件公司的情況,他們在開發(fā)的時候直接復制同類型的項目來進行變更,甚至沒有與客戶進行清晰的溝通,導致系統(tǒng)接受、重新變更,造成了巨大的人力和物力的浪費。導致所有這些后果的原因是需求不及時,不明確,不全面。3.1系統(tǒng)功能需求系統(tǒng)主要是通過研究分析矢量量化壓縮算法,使用此算法進行圖像的壓縮。3.2可行性分析系統(tǒng)的目的是對圖像進行壓縮。在確定了目標后,我們從以下四方面對能否實現(xiàn)本系統(tǒng)目標進行可行性分析。3.2.1技術(shù)可行性基于矢量量化的圖像壓縮系統(tǒng)主要采用MATLAB技術(shù),通過使用矢量量化理論來進行圖像的壓縮。可以看出,該系統(tǒng)技術(shù)是沒有問題的。3.2.2操作可行性基于矢量量化的圖像壓縮系統(tǒng)的界面簡單易于操作,用戶只要平時使用過電腦都能進行訪問操作。此系統(tǒng)的開發(fā)采用MATLAB語言開發(fā),這些開發(fā)環(huán)境使系統(tǒng)更加完善。本系統(tǒng)具有易操作、易管理、交互性好的特點,在操作上是非常簡單的。因此本系統(tǒng)可以進行開發(fā)。3.2.3經(jīng)濟可行性由于本系統(tǒng)是面向用戶提供圖像壓縮,而且是針對調(diào)用相關(guān)庫來實現(xiàn),在系統(tǒng)開發(fā)上并不是很大,整個系統(tǒng)是不是非常大,耗用的時間也不太長,所以開發(fā)成本不會太高。在整個發(fā)展過程是由自己獨立完成,只需一臺電腦和多種上面提到的軟件,就可以實現(xiàn)所有的發(fā)展的任務?;谑噶苛炕膱D像壓縮系統(tǒng)所要求的硬件和軟件環(huán)境,市場上都很容易購買,程序開發(fā)主要是管理系統(tǒng)的開發(fā)和維護。所以程序在開發(fā)人力、財力上要求不高,而且此系統(tǒng)不是很復雜,開發(fā)周期短,在經(jīng)濟方面具有較高的可行性。綜上所述,基于矢量量化的圖像壓縮系統(tǒng)在技術(shù)、經(jīng)濟、操作和都具有很高的可行性,開發(fā)此程序是可行的。3.3開發(fā)環(huán)境分析(1)開發(fā)硬件平臺:CPU:酷睿I7及以上內(nèi)存:4G以上硬盤:320G以上顯卡:獨立顯卡(2)開發(fā)軟件平臺:操作系統(tǒng):Windows7開發(fā)語言:MATLAB3.4系統(tǒng)性能分析一個系統(tǒng)的性能的好壞,直接決定了用戶的體驗度。而性能的好壞又取決于系統(tǒng)的架構(gòu)的好與壞。一個優(yōu)秀的系統(tǒng)架構(gòu)一般包含以下幾個方面:1模塊化設(shè)計明確。一個大的系統(tǒng),分為很多小的模塊,每個模塊的劃分清晰明確,每個模塊的功能明確,且模塊之間可以靈活的調(diào)用,實現(xiàn)低耦合高內(nèi)聚。2模塊的劃分,分為很多種類,要保證通用模塊實現(xiàn)靈活的調(diào)用,特殊模塊,可以隨時根據(jù)系統(tǒng)功能等的變更及時進行更改。讓系統(tǒng)的靈活性更高。3穩(wěn)定、安全、高效的數(shù)據(jù)建模。數(shù)據(jù)是整個系統(tǒng)的倉庫,只有一個穩(wěn)定、安全、高效的倉庫,才能為系統(tǒng)提供好的數(shù)據(jù)存取和變更。4整體結(jié)構(gòu)穩(wěn)定而又靈活。系統(tǒng)的整體架構(gòu)在初期部署的時候,一定要有高度,不但結(jié)構(gòu)清晰,運行穩(wěn)定,當運行出現(xiàn)問題的時候,能夠提供快速的解決方案。

4系統(tǒng)設(shè)計與實現(xiàn)4.1設(shè)計目標及原則系統(tǒng)的設(shè)計是系統(tǒng)開發(fā)的關(guān)鍵節(jié)點,系統(tǒng)設(shè)計是系統(tǒng)的上層架構(gòu),設(shè)計的好壞決定了系統(tǒng)后期是否能開發(fā)完成,及系統(tǒng)完成后的性能優(yōu)劣。只有設(shè)計達到這一目標的系統(tǒng)才能有更好的擴展空間來適應系統(tǒng)未來的發(fā)展。在整個系統(tǒng)的設(shè)計中,系統(tǒng)必須滿足以下要求:(1)數(shù)據(jù)安全性系統(tǒng)的開發(fā)涉及到很多數(shù)據(jù),包括用戶數(shù)據(jù)或者是系統(tǒng)數(shù)據(jù)等,無論需要什么樣的數(shù)據(jù)來保證數(shù)據(jù)的安全性,在系統(tǒng)設(shè)計中都必須采取安全防范措施來解決潛在的安全問題。(2)易用性系統(tǒng)最終會交付給客戶,用戶通過其權(quán)限進行系統(tǒng)的使用,能不能用,以及是否好用,都決定了客戶對系統(tǒng)甚至是開發(fā)公司的印象。好用的系統(tǒng)能夠大大提高操作員的工作效率,從而提升用戶的好感度和忠誠度。(3)柔軟性柔軟性包含范圍較廣,主要是能夠處理各種突發(fā)的情況,也就是我們所說的應急能力。由于任何人都無法保證系統(tǒng)的絕對安全,當系統(tǒng)出現(xiàn)錯誤時,能夠及時的進行補救。(4)擴展性隨著基于矢量量化的圖像壓縮系統(tǒng)需求的不斷變化,系統(tǒng)必然會涉及業(yè)務的更新和擴展,這就要求在設(shè)計之初就考慮一個良好的可擴展性方案。4.2系統(tǒng)流程設(shè)計基于矢量量化的圖像壓縮系統(tǒng)開發(fā)時,首先進行需求分析,進而對系統(tǒng)進行總體的設(shè)計規(guī)劃,設(shè)計系統(tǒng)功能模塊等,本系統(tǒng)的開發(fā)流程如圖4.2所示圖4.2系統(tǒng)開發(fā)流程圖4.4系統(tǒng)實現(xiàn)4.4.1系統(tǒng)實現(xiàn)步驟LBG算法的主要思想為首先通過一定的方法從訓練矢量中獲取初始碼書,然后以獲取的初始碼書為準對訓練矢量進行聚類操作,同時根據(jù)選定的目標函數(shù)對聚類的結(jié)果進行判定,通過判定的結(jié)果決定LBG算法迭代的次數(shù),從而獲取較優(yōu)的碼書。設(shè)訓練矢量集其中訓練矢量的維數(shù)為k,碼書的大小為N,那么LBG算法的步驟如下:步驟1:初始化操作。利用某種算法對給定的訓練矢量集進行處理,獲取初始碼書,設(shè)迭代次數(shù)n的初始值為0,固定失真閾值為總的平均失真為。步驟2:最佳劃分。首先將每一次迭代獲取的碼書Yn中的每一個碼字均看作質(zhì)心,接著將訓練矢量集X中的每一個訓練矢量均按照上述所提的最佳劃分原則進行胞腔的劃分,從而獲得N個胞腔,即且要滿足步驟3:總的平均失真的計算。如果兩個相鄰的總的平均失真的相對誤差滿足下列不等式或者當該算法的迭代次數(shù)恰好和所設(shè)定的值相等時,終止該算法,否則轉(zhuǎn)到步驟4。根據(jù)公式(2.20)可獲得N個新的質(zhì)心,這些新的質(zhì)心組成新的碼書,然后將n設(shè)置為n+1,接著轉(zhuǎn)入步驟2。LBG算法的流程圖如下所示:圖4.3LBG流程圖4.4.2系統(tǒng)運行效果運行系統(tǒng),可以在選擇圖片進行壓縮。效果如圖4.4所示。圖4.4系統(tǒng)壓縮效果圖4.4.3系統(tǒng)核心代碼核心代碼見附錄。5軟件測試與分析系統(tǒng)開發(fā)的最后一個步驟就是系統(tǒng)測試,系統(tǒng)測試也是整個系統(tǒng)十分重要的一個環(huán)節(jié),測試的好壞關(guān)系到產(chǎn)品的發(fā)展??蛻魧浖馁|(zhì)量、性能和可靠性等需求就要通過測試來實現(xiàn)。測試過程要必須遵循嚴謹性、完善性、規(guī)范性的原則,測試的主要目的就是看看在系統(tǒng)運行中,是否會出現(xiàn)bug,然后對出現(xiàn)的bug進行調(diào)試,直到程序完美運行。但是軟件的測試只能盡可能的減少bug,理論上來說是無法達到消除bug。但是bug越少,系統(tǒng)出錯的幾率就越低,用戶使用起來也更方便、更安全。系統(tǒng)測試包括很多種,一般來說有功能測試,安全測試,可用性測試,性能測試和兼容性測試等。5.1測試環(huán)境與測試條件處理器:因特爾酷睿處理器I5內(nèi)存:4GB硬盤:80G以上操作系統(tǒng):Win7-10或windowsXP5.2功能測試功能測試包括很多種,通常有五個方面,分別為:安全性、依從性、適用性、準確性以及可操作性行。本系統(tǒng)功能測試如表5-1所示:表5-1系統(tǒng)功能測試5.3性能測試性能測試主要是通過模擬系統(tǒng)的運行環(huán)境來測試系統(tǒng)的性能是否滿足客戶的需求。性能測試的重要技術(shù)指標是:系統(tǒng)運行速度、系統(tǒng)響應時間。1)系統(tǒng)運行速度:系統(tǒng)運行在不同的計算機上,沒有任何的暫停或延遲。2)系統(tǒng)響應時間:系統(tǒng)響應時間主要包括三個方面:一是系統(tǒng)最小響應時間;系統(tǒng)的平均響應時間;三是系統(tǒng)最大響應時間這三個參數(shù)。經(jīng)過測試,在正常情況下,響應時間的三個數(shù)值分別為:0.2/0.5/0.8s,速度非???,用戶滿意。5.4系統(tǒng)運行情況綜上所述,系統(tǒng)已經(jīng)通過了功能測試和性能測試。在規(guī)定的時間內(nèi),系統(tǒng)完成了系統(tǒng)分析時確定的系統(tǒng)開發(fā)目標,達到了設(shè)計要求,達到了良好的壓縮效果。投入使用以后,也能夠為用戶節(jié)省大量的人力、物力和財力資源,大大提高科學管理水平。結(jié)論本系統(tǒng)通過對MATLAB和矢量量化理論等技術(shù)的簡介,從硬件和軟件兩反面說明了基于矢量量化的圖像壓縮系統(tǒng)的可行性,本文結(jié)論及研究成果如下:實現(xiàn)了基于MATLAB的基于矢量量化的圖像壓縮系統(tǒng),通過本次系統(tǒng)的研究與實現(xiàn),我感觸到學習一門新技術(shù),最重要的是實踐,只有多動手才能盡快掌握它,一個系統(tǒng)的開發(fā),經(jīng)驗是最重要的,經(jīng)驗不足,就難免會有許多考慮不周之處。由于在此之前對于MATLAB及矢量量化理論等知識沒有深入了解,所以從一開始就碰到許多困難,例如一開始的算法的無法調(diào)用,圖像無法顯示、無法實現(xiàn)參數(shù)的傳遞等等,不過通過在網(wǎng)上尋找有關(guān)資料以及同學的幫助下最后都得到了解決,在此過程中,我不僅學到了很多知識,也提高了自己解決問題的能力,尤其是學會如何從大量的信息中篩選出所需有用的信息,同時我更加深刻的體會到了,雖然書本上的大部分知識都是有價值,正確的,但實際上每個人編程的思路和對數(shù)據(jù)處理的方法、思想都是不同的,這就要求我們一定要通過實踐才能找到解決問題的方案。在此次畢業(yè)設(shè)計活動中,我不斷的提高了自己,也得到了寶貴的經(jīng)驗,我相信這些對我以后的發(fā)展都會有很大幫助。通過這次系統(tǒng)的開發(fā),我參考了很多相關(guān)系統(tǒng)的例子,取長補短,吸取了其他系統(tǒng)的長處,逐步對該系統(tǒng)進行了完善,但是該系統(tǒng)還是有很多的不足之處,有待以后進一步學習。參考文獻[1]滕佳東.圖像基于矢量量化的圖像壓縮系統(tǒng)[M].東北財經(jīng)大學出版社.2018.2.[2]B.B.Mandelbrot.Thefractalgeometryofnature[M].Freeman,NewYork,2013.[3]李后強,汪富泉.矢量量化理論及其發(fā)展歷程[J].自然辯證法研究,2012(11):20-23.[4]徐冰.國外星上數(shù)據(jù)壓縮算法發(fā)展研究[J].國際太空,2014(1).[5]法爾科內(nèi)(英).矢量量化幾何--數(shù)學基礎(chǔ)及其應用(第2版)[M].人民郵電出版社,2017.[6]FernándezE,JelinekHF.Useoffractaltheoryinneuroscience:methods,advantages,andpotentialproblems.[J].Methods,2001,24(4):309-321.[7]JacobsEW,FisherY,BossRD.Imagecompression:Astudyoftheiteratedtransformmethod[J].SignalProcessing,1992,29(3):251-263.[8]彭立國.圖像無損壓縮傳輸技術(shù)研究[J].科技致富向?qū)?2015(18):316-316.[9]JacobsEW,FisherY,BossRD.Imagecompression:Astudyoftheiteratedtransformmethod[J].SignalProcessing,1992,29(3):251-263.[10]陳颙,陳凌.矢量量化幾何學[M].地震出版社,1998.[11]BastaniV,HelfroushMS,KasiriK.Imagecompressionbasedonspatialredundancyremovalandimageinpainting[J].FrontiersofInformationTechnology&ElectronicEngineering,2010,11(2):92-100.[12]JacquinAE.Imagecodingbasedonafractaltheoryofiteratedcontractiveimagetransformations[J].IEEETransactionsonImageProcessing,1992,1(1):18.[13]王曙光.矢量量化圖像壓縮編碼的原理與發(fā)展趨勢[J].福建電腦,2014(9):9-10.[14]Ching-ChungYin;Tzu-KueiWen.ESPIsolutionfordefectdetectionincrystallinephotovoltaiccells[J].SeventhInternationalSymposiumonPrecisionEngineeringMeasurementsandInstrumentation.Yunnan,China,7-11Aug.2011.[15]SchajerG.S.Quan,C.PhaseretrievalinESPIfromadensephasefringepattern:ProceedingsofSPIE-TheInternationalSocietyforOpticalEngineering,Brussels,APR13-16,2010.[16]王志芳.基于傅立葉變換的電子散斑干涉信息提取方法研究及應用[D].天津大學,2014.[17]齊浩.電子散斑干涉測量技術(shù)在微結(jié)構(gòu)測試中的應用研究[D].天津大學,2017.[18]LoweD.Distinctiveimagefeaturesfromscale-invariantkeypoints[J].InternationalJournalofComputerVision,2004,60(2):91-110.[19]賈洪哲.降維算法的改進與應用[D].北京:北京師范大學,2014.[20]董洛丞,陳張平.基于改進的卷積神經(jīng)網(wǎng)絡的人臉識別算法[J].杭州電子科技大學學報(自然科學版),2018,38(05):59-63+101.

附錄系統(tǒng)主要代碼:function[Codebook,ClosestMatch_Index,row,col]=LBG(Image)[row_src,col_src]=size(Image);Pixels=2;row_pad=ceil(row_src/Pixels)*Pixels;col_pad=ceil(col_src/Pixels)*Pixels;tmp_img=zeros(row_pad,col_pad,'uint8');tmp_img(1:row_src,1:col_src)=Image;Image=tmp_img;[row,col]=size(Image);%NumberofpixelsTotalPixels=row*col;%8*8PixelspersetSetPixels=Pixels*Pixels;%NumberofSetNum_Set=TotalPixels/SetPixels;%CodeBookSizeCodebook_Size=256;%ArrayofSetsTotal_Sets=zeros(Num_Set,SetPixels);value_index=1;set_index=1;tic;%AllocatingSetsValuefori=1:Pixels:row%outerforj=1:Pixels:colfora=i:1:i+Pixels-1%Subsetforb=j:1:j+Pixels-1Total_Sets(set_index,value_index)=Image(a,b);value_index=value_index+1;endendvalue_index=1;set_index=set_index+1;endendRandomNums=randi(Num_Set,1,Codebook_Size);Codebook=zeros(Codebook_Size,SetPixels);%InitialCodebookfori=1:1:Codebook_Sizeforj=1:1:SetPixelsCodebook(i,j)=Total_Sets(RandomNums(1,i),j);endend%Part2Processesy=1;dist=1;dist_prev=1;error=1;iterations=0;%TrainingSamplesT_Size=Num_Set;Training=zeros(T_Size,SetPixels);Training=Total_Sets;whileerror>0.0005dist_prev=dist;%TrainingvsCodeBookValuediff=zeros(T_Size,Codebook_Size);fori=1:1:T_Sizefora=1:1:Codebook_Sizeforb=1:1:SetPixelsValuediff(i,a)=Valuediff(i,a)+((Training(i,b)-Codebook(a,b))^2);%SumofDistancefor64codebookendendendClosestDistV=zeros(T_Size,1);%ClosestValueforeachTrainingSetsfori=1:1:T_SizeClosestDistV(i,1)=min(Valuediff(i,:));end%GettingTheCodebook_IndexoftheclosestMatch(checked)ClosestMatch_Index=zeros(T_Size,1);fori=1:1:T_Sizeforj=1:1:Codebook_Sizeif(Valuediff(i,j)==ClosestDistV(i,1))ClosestMatch_Index(i,1)=ClosestMatch_Index(i,1)+1;break;elseClosestMatch_Index(i,1)=ClosestMatch_Index(i,1)+1;endendend%LengthForAveraging(checked)ClosestMatch_Length=zeros(Codebook_Size,1);Counter=0;fori=1:1:Codebook_SizeCounter=Counter+1;forj=1:1:T_SizeifCounter==ClosestMatch_Index(j,1)ClosestMatch_Length(i,1)=ClosestMatch_Length(i,1)+1;endendend%GeneratingNewCodeBookCodebookNew_Sum=zeros(Codebook_Size,SetPixels);fori=1:1:Codebook_Sizefora=1:1:T_SizeifClosestMatch_Index(a,1)==iforj=1:1:SetPixelsCodebookNew_Sum(i,j)=CodebookNew_Sum(i,j)+Training(a,j);endendendendCodebookNew=zeros(Codebook_Size,SetPixels);fori=1:1:Codebook_Sizeforj=1:1:SetPixelsifClosestMatch_Length(i,1)==0CodebookNew(i,j)=Codebook(i,j);elseCodebookNew(i,j)=CodebookNew_Sum(i,j)/ClosestMatch_Length(i,1);endendend%CorrectCodebook=CodebookNew;%Part4CalculatingDistortiondist=sum(sum(Valuediff))/(Codebook_Size*SetPixels);error=abs(dist_prev-dist);error=error/dist_prev;iterations=iterations+1;disp(['error=',num2str(error),'iterations=

溫馨提示

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

最新文檔

評論

0/150

提交評論