解壓縮原理
『壹』 什麼是解壓縮
一、什麼是文件壓縮、解壓縮
當 我 們 從 Internet 下 載 文 件 時 , 許 多 文 件 通 常 都 是 所 謂 的 壓 縮 文 件 , 那 到 底 什 么 是 壓 縮 文 件 呢 ? 最 直 接 的 講 法 是 , 一 個 較 大 的 文 件 經 壓 縮 後 , 產 生 了 另 一 個 較 小 容 量 的 文 件 。 而 這 個 較 小 容 量 的 文 件 , 我 們 就 叫 它 是 這 些 較 大 容 量 的 ( 可 能 一 個 或 一 個 以 上 的 文 件 ) 的 壓 縮 文 件 。
要 使 用 這 些 經 過 壓 縮 的 文 件 , 您 就 必 須 將 這 些 經 過 壓 縮 處 理 的 文 件 還 原 成 可 以 處 理 或 執 行 的 文 件 格 式 。
目 前 互 聯 網 絡 上 大 家 常 用 的 FTP文 件 服 務 器 上 的 文 件 大 多 屬 於 壓 縮 文 件 , 文 件 下 載 後 必 須 先 解 壓 縮 才 能 夠 使 用 ; 另 外 在 使 用 電 子 郵 件 附 加 文 件 功 能 的 時 候 , 最 好 也 能 事 先 對 附 加 文 件 進 行 壓 縮 處 理 。 這 樣 做 的 結 果 , 除 了 減 輕 網 絡 的 負 荷 , 更 能 省 時 省 錢 , 利 人 又 利 己 , 何 樂 而 不 為 呢 ?
二、壓 縮 文 件 的 類 型
目 前 網 絡 上 有 兩 種 常 見 的 壓 縮 格 式 : 一 種 是 Zip, 另 一 種 是 EXE。 其 中 Zip的 壓 縮 文 件 可 以 通 過 WinZip這 套 解 壓 縮 工 具 進 行 解 壓 縮 ,而 EXE則 是 屬 於 自 解 壓 文 件 ,只 要 用 鼠 標 雙 擊 這 類 下 載 後 的 文 件 圖 標 (若 您 的 Windows98屬 於 web風 格 , 則 只 需 按 一 下 ), 便 可 以 自 動 解 壓 縮 。 因 為 EXE 文 件 內 含 解 壓 縮 程 序 ,因 此 會 比 Zip 略 大 一 些 。 若 想 充 分 考 慮 到 文 件 容 量 的 大 小 , 其 實 Zip是 一 個 較 佳 的 選 擇 。
三、用 WinZip解 壓 縮
在 這 里 , 我 們 以 njcom210.zip為 例 , 說 明 如 何 利 用 WinZip進 行 文 件 解 壓 縮 。
在 資 源 管 理 器 中 雙 擊 *.zip 文 件 ,就 會 自 動 打 開 WinZip 程 序 , 顯 示 出 此 壓 縮 文 件 內 含 的 文 件 內 容 。
①決 定 解 壓 縮 後 文 件 的 儲 存 路 徑
②選 此 項 表 示 解 壓 所 有 的 文 件
③此 處 也 可 以 用 鼠 標 點 選,直 接 選 擇 解 壓 縮 文 件 的 儲 存 位 置
四、制 作 一 個 壓 縮 文 件
首 先 請 利 用 資 源 管 理 器 選 中 要 壓 縮 的 文 件 或 文 件 夾,然 後 單 擊 鼠 標 右 鍵,選 擇「Add to WEB zip」。系 統 就 會 在 同 一 個 文 件 夾 中 自 動 產 生 該 文 件 或 文 件 夾 的 壓 縮 文 件 。
五、把 多 個 文 件 夾 壓 縮 成 一 個 文 件
打 開 資 源 管 理 器 , 選 中 要 壓 縮 的 文 件 夾 , 然 後 單 擊 鼠 標 右 鍵, 選 擇 「Add to Zip」:
①輸 入 壓 縮 文 件 名 及 所 在 文 件 夾
②包 括 子 文 件 夾 返 回 主 列 表
③記 錄 路 徑 關 系
④點 這 里
六、制 作 自 解 壓 文 件
WinZip可 以 將 壓 縮 文 件 制 作 成 一 個 執 行 文 件 。 當 別 人 取 得 這 類 文 件 , 自 己 並 不 需 要 擁 有 解 壓 縮 的 程 序 , 只 需 要 直 接 執 行 這 個 執 行 文 件 便 可 解 壓 。
要 建 立 一 個 自 解 壓 文 件 , 選 中 文 件 後 點 擊 鼠 標 右 鍵 ,執 行:「Create Self Extractor(.EXE) 」指 令 即 可 。
『貳』 壓縮和解壓縮的原理是什麼
目前壓縮技術可分為通用無損數據壓縮與有損壓縮兩大類,但不管是採用何種技術模型,其本質內容都是一樣的,即都是通過某種特殊的編碼方式將數據信息中存在的重復度、冗餘度有效地降低,從而達到數據壓縮的目的。比如:「中國」是「中華人民共和國」的簡稱,但前者的字數是2,後者則是7,但我們都不會對它們倆所要表達的意思產生誤解,這是因為前者保留了信息中最「關鍵點」。同時,作為有思維能力的人類,我們可以根據前後詞彙關系和知識積累,就可推斷出其原來的全部信息。壓縮技術也一樣,在不影響文件的基本使用的前提下,只保留原數據中一些「關鍵點」,去掉了數據中的重復的、冗餘的信息,從而達到壓縮的目的。這就是文件壓縮技術所要遵循的最基本原理。
『叄』 解壓是為了干什麼
要理解解壓首先的先知的壓縮 壓縮:是把原文件按照一定的編碼方式進行重組,優點很多,比如,防止文件被破壞,和方便傳輸,還可以設置密碼,起著保護隱私的作用。 解壓:是壓縮的逆運算。 有些人經常會使用壓縮工具,他們大多都會這樣認為,壓縮就是把原有文件變小,方便存儲。 這也是一個優點,但,比如圖片或者一些軟體生成的文件,經過壓縮後的文件和源文件相差無幾。 像,視頻、音頻這一類文件壓縮後才可以釋放很大的空間。但是,最好是不要壓縮,因為,解壓的是後,不是百分之百的還原,所以質量得不到保證,而且還會解壓錯誤,或者,損壞文件。
希望採納
『肆』 zip 的壓縮原理與實現
文件壓縮原理
我們使用計算機所做的事情大多都是對文件進行處理。每個文件都會佔用一定的磁碟空間,我們希望一些文件,尤其是暫時不用但又比較重要不能刪除的文件(如備份文件,有點像雞肋呀),盡可能少的佔用磁碟空間。但是,許多文件的存儲格式是比較鬆散的,這樣就浪費了一些寶貴的計算機存儲資源。這時,我們可以藉助壓縮工具解決這個問題,通過對原來的文件進行壓縮處理,使之用更少的磁碟空間保存起來,當需要使用時再進行解壓縮操作,這樣就大大節省了磁碟空間。當你要拷貝許多小文件時,通過壓縮處理可以提高執行效率。如果小文件很多,操作系統要執行頻繁的文件定位操作,需要花費很多的時間。如果先把這些小文件壓縮,變成一個壓縮文件後,再拷貝時就很方便了。由於計算機處理的信息是以二進制數的形式表示的,因此壓縮軟體就是把二進制信息中相同的字元串以特殊字元標記來達到壓縮的目的。為了有助於理解文件壓縮,請您在腦海里想像一幅藍天白雲的圖片。對於成千上萬單調重復的藍色像點而言,與其一個一個定義「藍、藍、藍……」長長的一串顏色,還不如告訴電腦:「從這個位置開始存儲1117個藍色像點」來得簡潔,而且還能大大節約存儲空間。這是一個非常簡單的圖像壓縮的例子。其實,所有的計算機文件歸根結底都是以「1」和「0」的形式存儲的,和藍色像點一樣,只要通過合理的數學計算公式,文件的體積都能夠被大大壓縮以達到「數據無損稠密」的效果。總的來說,壓縮可以分為有損和無損壓縮兩種。如果丟失個別的數據不會造成太大的影響,這時忽略它們是個好主意,這就是有損壓縮。有損壓縮廣泛應用於動畫、聲音和圖像文件中,典型的代表就是影碟文件格式mpeg、音樂文件格式mp3和圖像文件格式jpg。但是更多情況下壓縮數據必須准確無誤,人們便設計出了無損壓縮格式,比如常見的zip、rar等。壓縮軟體(compression software)自然就是利用壓縮原理壓縮數據的工具,壓縮後所生成的文件稱為壓縮包(archive),體積只有原來的幾分之一甚至更小。當然,壓縮包已經是另一種文件格式了,如果你想使用其中的數據,首先得用壓縮軟體把數據還原,這個過程稱作解壓縮。常見的壓縮軟體有winzip、winrar等
『伍』 壓縮和解壓有什麼區別
壓縮是將一個或者多個文件集合成一個壓縮包 將原有文件所佔空間(也就是文件大小)縮小 並且較多的文件壓縮成包之後 文件的傳輸率也變高 對於EXE文件 也可以比較有效的防止病毒感染 壓縮率越高 壓縮包越小 解壓是將壓縮包中的文件釋放回原來的狀態 其實說白了就是加減的關系 常見的壓縮格式有ZIP RAR 7Z (其中ZIP壓縮率最低 多數是原文件大小) 壓縮與解壓都是通過壓縮軟體操作 順便一提 不是壓縮率越高越好 有些文件強制壓縮之後 可能會在壓縮過程中造成文件損壞 再解壓就會出現錯誤中斷 如果你需要的壓縮的文件不大 推薦還是用ZIP比較保險
『陸』 壓縮文件的運行原理
有損壓縮和無損壓縮。 如果您從互聯網上下載了許多程序和文件,可能會遇到很多ZIP文件。這種壓縮機制是一種很方便的發明,尤其是對網路用戶,因為它可以減小文件中的比特和位元組總數,猜桐使文件能夠通過較慢的互聯網連接實現更快傳輸,此外還可以減少文件的磁碟佔用空間。在下載了文件後,計算機可使用WinZip或Stuffit這樣的程序來展開文件,將其復原到原始大小。如果一切正常,展開的文件與壓縮前的原桐檔始文件將完全相同。
乍一聽好像很神秘:您是怎樣減少比特和位元組的數量並將它們原封不動地還原回去的呢?等一切水落石出之後,您會發現這個過程背後的基本理念其實非常簡單明了。在本文中,我們將討論這種通過簡單壓縮來明顯減小文件的方法。
大多數計算機文件類型都包含相當多的冗餘內容——它們會反復列出一些相同的信息。文件壓縮程序就是要消除這種冗餘現象。與反復列出某一塊信息不同,文件壓縮程序只列出該信息一次,然後當它在原始程序中出現時再重新引用它。
以我們熟悉的信息類型——單詞——為例子。
肯尼迪(John F. Kennedy)在1961年的就職演說中曾說過下面這段著名的話:
Ask not what your country can do for you——ask what you can do for your country.(不要問國家能為你做些什麼,而應該問自己能為國家做些什麼。)
這段話有17個單詞,包含61個字母、16個空格、1個破折號和1個句點。如果每個字母、空格或標點都佔用1個內存單元,那麼文件的總大小為79個單元。為了減小文件的大小,我們需要找出冗餘的部分。
我們立刻發現:
如果忽略大小寫字母間的區別,這個句子幾乎有一半是冗餘的。九個單詞(ask、not、what、your、country、can、do、for、you)幾乎提供了組成整句話所需的所有東西。為了構造出另一半句子,我們只需要拿出前半段句子中的單詞,然後加上空格和標點就行了。
大多數壓縮程序使用基於自適應字典的LZ演算法來縮小文件。「LZ」指的是此演算法的發明者Lempel和Ziv,「字典」指的是對數據塊進行歸類的方法。
排列字典的機制有很多種,它也可以像編號列表那樣簡單。在我們檢查肯尼迪這句著名講話時,可以挑出重復的單詞,並將它們放到編號索引中。然後,我們直接寫入編號而不是寫入整個單詞。
因此,如果我們的字典是:
ask
what
your
country
can
do
for
you
我們的句子現在就應該是這樣的:
1 not 2 3 4 5 6 7 8-- 1 2 8 5 6 7 3 4
如果您了解這種機制,那麼只需使用該字典和編號模式即可輕松重新構造出原始句子。這就是在展開某個下載文件時,計算機中的解壓縮程序所做的工作。你可能還遇到過能夠自行解壓縮的壓縮文件。若要創建這種文件,編程人員需要在被壓縮的文件中設置一個簡單的解壓縮程序。在下載完畢後,它可以自動重新構造出原始文件。
但是使用這種機制究竟能夠節省多少空間呢?「1 not 2 3 4 5 6 7 8——1 2 8 5 6 7 3 4」當然短於「Ask not what your country can do for you-- ask what you can do for your country.」,但應注意的是,我們需要隨文件一起保存這個字典。
在實際壓縮方案中,計算出各種文件需求是一個相當復雜的過程。讓我們回過頭考慮一下上面的例子。每個字元和空格都佔用1個內存單元,整個原句要佔用79個單元。壓縮後的句子(包括空格)佔用了37個單元,而字典(單詞和編號)也佔用了37個單元。也就是說,文件的大小為74個單元,因此我們並沒有把文件大小減少很多。
但這只是一個句子的情況!可以想像的是,如果用該壓縮程序處理完肯尼迪講話的其餘部分,我們會發現這些單詞以及其他單詞重復了更多次。而且,正如下一節所言,為了得到盡可能高的組織效率,可以對字典進行重寫。
在上一個的例子中,我們挑出了所有重復的單詞並將它們放在一個字典中。對於我們來說,這是最顯而易見的字典編寫方法。但是壓縮程序卻不這樣認為:它對單詞沒有概念——它只會尋找各個模式。為了盡可能減小文件的大小,它會仔細挑選出最優模式。
如果從這穗輪坦個角度處理該句子,我們最終會得到一個完全不同的字典。
如果壓縮程序掃描肯尼迪的這句話,它遇到的第一個冗餘部分只有幾個字母長。在ask not what your中,出現了一個重復的模式,即字母t後面跟一個空格——在not和what中。如果壓縮程序將此模式寫入字典,則每次出現「t」後面跟一個空格的情況時,它會寫入一個「1」。但是在這個短句中,此模式的出現次數不夠多,不足以將其保留為字典中的一個條目,因此程序最終會覆蓋它。
程序接下來注意到的內容是ou,在your和country中都出現了它。如果這是一篇較長的文檔,將此模式寫入字典會節省大量空間——在英語中ou是一個十分常見的字母組合。但是在壓縮程序看完整個句子後,它立即發現了一個更好的字典條目選擇:不僅ou發生了重復,而且your和country整個單詞都發生了重復,並且它們實際上是作為一個短語your country一起發生重復的。在本例中,程序會用your country條目覆蓋掉字典中的ou條目。
短語can do for也發生了重復,一次後面跟著your,另一次跟著you,因此我們又發現can do for you也是一種重復模式。這樣,我們可以用一個數字來代替15個字元(包含空格),而your country只允許我們用一個數字代替13個字元(包含空格),所以程序會用r country條目覆蓋your country條目,然後再寫入一個單獨的can do for you條目。程序通過這種方式繼續工作,挑出所有重復的信息,然後計算應該將哪一種模式寫入字典。基於自適應字典的LZ演算法中的「自適應」部分指的就是這種重寫字典的能力。程序執行此工作的過程實際上非常復雜。
無論使用什麼方法,這種深入搜索機制都能比僅僅挑出單詞這種方法更有效率地對文件進行壓縮。如果使用我們上面提取出的模式,然後用「__」代替空格,最終將得到下面這個更大的字典:
ask__
what__­
you
r__country
__can__do__for__you
而句子則較短:
「1not__2345__--__12354」
句子現在佔用18個內存單元,字典佔用41個單元。所以,我們將文件總大小從79個單元壓縮到了59個單元!這僅僅是壓縮句子的一種方法,而且不一定是最高效的方法。(您能找到更好的方法嗎?)
文件壓縮率取決於多種因素,包括文件類型、文件大小和壓縮方案。
在世界上的大多數語言中,某些字母和單詞經常以相同的模式一起出現。正是由於這種高冗餘性,而導致文本文件的壓縮率會很高。通常大小合適的文本文件的壓縮率可以達到50%或更高。大多數編程語言的冗餘度也很高,因為它們的命令相對較少,並且命令經常採用一種設定的模式。對於包含大量不重復信息的文件(例如圖像或MP3文件),則不能使用這種機制來獲得很高的壓縮率,因為它們不包含重復多次的模式。
如果文件有大量重復模式,那麼壓縮率通常會隨著文件大小的增加而增加。從我們的例子中就可以看出這一點——如果我們摘錄的肯尼迪講話再長一些,您會發現又多次出現了我們字典中的模式,因此能夠通過每個字典條目節省更多的文件空間。此外,對於更大的文件,還可能出現具有更大普遍性的模式,從而能夠創建出效率更高的字典。
此外,文件壓縮效率還取決於壓縮程序使用的具體演算法。有些程序能夠在某些類型的文件中更好地尋找到模式,因此能更有效地壓縮這些類型的文件。其他一些壓縮程序在字典中又使用了字典,這使它們在壓縮大文件時表現很好,但是在壓縮較小的文件時效率不高。盡管這一類的所有壓縮程序都基於同一個基本理念,但是它們的執行方式卻各不相同。程序開發人員始終在嘗試建立更好的壓縮機制。 我們在上文中討論的壓縮類型稱為無損壓縮,因為您重新創建的文件與原始文件完全相同。所有無損壓縮都基於這樣一種理念:將文件變為「較小」的形式以利於傳輸或存儲,並在另一方收到它後復原以便重新使用它。
有損壓縮則與此大不相同。這些程序直接去除「不必要」的信息,對文件進行剪裁以使它變得更小。這種類型的壓縮大量應用於減小點陣圖圖像的文件大小,因為點陣圖圖像的體積通常非常龐大。為了了解有損壓縮的工作原理,讓我們看看你的計算機如何對一張掃描的照片進行壓縮。
對於此類文件,無損壓縮程序的壓縮率通常不高。盡管圖片的大部分看起來都是相同的——例如,整個天空都是藍色的——但是大部分像素之間都存在微小的差異。為了使圖片變得更小同時不降低其解析度,您必須更改某些像素的顏色值。如果圖片中包含大量的藍色天空,程序會挑選一種能夠用於所有像素的藍色。然後,程序重寫該文件,所有天空像素的值都使用此信息。如果壓縮方案選擇得當,您不會注意到任何變化,但是文件大小會顯著減小。
當然,對於有損壓縮,在文件壓縮後您無法將其復原成原始文件的樣子。您必須接受壓縮程序對原始文件的重新解釋。因此,如果需要完全重現原來的內容(例如軟體應用程序、資料庫和總統就職演說),則不應該使用這種壓縮形式。
『柒』 解壓文件的目的是什麼為什麼要解壓
解壓文件的目的是將一個通過軟體壓縮的文檔、文件等各種東西恢復到壓縮之前的樣子。未解壓的壓縮包無法使用其中的數據。解壓完成以後就會在壓縮文件所在目錄出現一個新的文件,這個文件就是解壓出來的文件,但其也有可能不是一個文件,是由多個文件組成的東西。
(7)解壓縮原理擴展閱讀:
對於有損壓縮,在文件壓縮後無法將其解壓復原成原始文件的樣子。必須接受壓縮程序對原始文件的重新解釋。因此,如果需要完全重現原來的內容,例如軟體應用程序、資料庫,則不應該使用這種壓縮形式。
一般壓縮軟體的解壓縮速度為30M/S左右。與計算機配置有關,一般認為與內存、CPU、硬碟關系較大,在一般實際情況下,解壓速度速度主要受到硬碟影響。