當前位置:首頁 » 文件管理 » 壓縮原理

壓縮原理

發布時間: 2022-01-16 17:05:58

壓縮的壓縮原理

利用演算法將文件有損或無損地處理,以達到保留最多文件信息,而令文件體積變小。壓縮文件的基本原理是查找文件內的重復位元組,並建立一個相同位元組的"詞典"文件,並用一個代碼表示,比如在文件里有幾處有一個相同的詞"中華人民共和國"用一個代碼表示並寫入"詞典"文件,這樣就可以達到縮小文件的目的軟體。由於計算機處理的信息是以二進制數的形式表示的,因此壓縮軟體就是把二進制信息中相同的字元串以特殊字元標記來達到壓縮的目的。為了有助於理解文件壓縮,請您在腦海里想像一幅藍天白雲的圖片。對於成千上萬單調重復的藍色像點而言,與其一個一個定義「藍、藍、藍……」長長的一串顏色,還不如告訴電腦:「從這個位置開始存儲1117個藍色像點」來得簡潔,而且還能大大節約存儲空間。這是一個非常簡單的圖像壓縮的例子。其實,所有的計算機文件歸根結底都是以「1」和「0」的形式存儲的,和藍色像點一樣,只要通過合理的數學計算公式,文件的體積都能夠被大大壓縮以達到「數據無損稠密」的效果。總的來說,壓縮可以分為有損和無損壓縮兩種。如果丟失個別的數據不會造成太大的影響,這時忽略它們是個好主意,這就是有損壓縮。有損壓縮廣泛應用於動畫、聲音和圖像文件中,典型的代表就是影碟文件格式mpeg、音樂文件格式mp3和圖像文件格式jpg。但是更多情況下壓縮數據必須准確無誤,人們便設計出了無損壓縮格式,比如常見的zip、rar等。壓縮軟體(compression software)自然就是利用壓縮原理壓縮數據的工具,壓縮後所生成的文件稱為壓縮包(archive),體積只有原來的幾分之一甚至更小。當然,壓縮包已經是另一種文件格式了,如果你想使用其中的數據,首先得用壓縮軟體把數據還原,這個過程稱作解壓縮。常見的壓縮軟體有winzip、winrar等。

② 壓縮演算法原理

哈夫曼
哈夫曼編碼是無損壓縮當中最好的方法。它使用預先二進制描述來替換每個符號,長度由特殊符號出現的頻率決定。常見的符號需要很少的位來表示,而不常見的符號需要很多為來表示。

哈夫曼演算法在改變任何符號二進制編碼引起少量密集表現方面是最佳的。然而,它並不處理符號的順序和重復或序號的序列。

2.1 原理
我不打算探究哈夫曼編碼的所有實際的細節,但基本的原理是為每個符號找到新的二進製表示,從而通常符號使用很少的位,不常見的符號使用較多的位。

簡短的說,這個問題的解決方案是為了查找每個符號的通用程度,我們建立一個未壓縮數據的柱狀圖;通過遞歸拆分這個柱狀圖為兩部分來創建一個二叉樹,每個遞歸的一半應該和另一半具有同樣的權(權是 ∑ N K =1 符號數 k , N 是分之中符號的數量,符號數 k 是符號 k出現的次數 )

這棵樹有兩個目的:

1. 編碼器使用這棵樹來找到每個符號最優的表示方法

2. 解碼器使用這棵樹唯一的標識在壓縮流中每個編碼的開始和結束,其通過在讀壓縮數據位的時候自頂向底的遍歷樹,選擇基於數據流中的每個獨立位的分支,一旦一個到達葉子節點,解碼器知道一個完整的編碼已經讀出來了。

壓縮後的數據流是 24 位(三個位元組),原來是 80 位( 10 個位元組)。當然,我應該存儲哈夫曼樹,這樣解碼器就能夠解碼出對應的壓縮流了,這就使得該例子中的真正數據流比輸入的流數據量大。這是相對較短的數據上的副作用。對於大數據量來說,上面的哈夫曼樹就不佔太多比例了。

解碼的時候,從上到下遍歷樹,為壓縮的流選擇從左 / 右分支,每次碰到一個葉子節點的時候,就可以將對應的位元組寫到解壓輸出流中,然後再從根開始遍歷。

2.2 實現
哈夫曼編碼器可以在基本壓縮庫中找到,其是非常直接的實現。

這個實現的基本缺陷是:

1. 慢位流實現

2. 相當慢的解碼(比編碼慢)

3. 最大的樹深度是 32 (編碼器在任何超過 32 位大小的時候退出)。如果我不是搞錯的話,這是不可能的,除非輸出的數據大於 2 32位元組。

另一方面,這個實現有幾個優點:

1. 哈夫曼樹以一個緊密的形式每個符號要求 12 位(對於 8 位的符號)的方式存儲,這意味著最大的頭為 384 。

2. 編碼相當容易理解

哈夫曼編碼在數據有噪音的情況(不是有規律的,例如 RLE )下非常好,這中情況下大多數基於字典方式的編碼器都有問題。

文件夾的壓縮原理是什麼

什麼是壓縮文件?
簡單的說,就是經過壓縮軟體壓縮的文件叫壓縮文件,壓縮的原理是把文件的二進制代碼壓縮,把相鄰的0,1代碼減少,比如有000000,可以把它變成6個0 的寫法60,來減少該文件的空間。
■怎麼壓縮文件?
首先要安裝壓縮軟體,現在比較流行的是WinRAR「一種高效快速的文件壓縮軟體(中文版)」。
其次是建立一個壓縮包:選擇你要製作成壓縮包的文件或文件夾,當然你也可也多選,方法同資源管理器,也就是按住Ctrl或Shift再選擇文件(文件夾)。 選取完畢之後,就可以單擊工具欄上的「壓縮」按鈕,在這里你可以選擇壓縮格式:RAR和ZIP。 如果你想得到較大的壓縮率,建議選擇RAR格式。
各個選項選擇好以後,單擊確定按鈕就開始製作壓縮包了,非常方便。
有時候大家會遇到這個問題,就是你在一個論壇里要上傳一些文件壓縮包,壓縮包大小有3M,但是論壇限制會員上傳大小隻有2M,怎麼辦呢?
其實辦法很簡單,就是在你壓縮這個文件時,分成幾個帶分卷壓縮包,分卷包大小設置為2M即可,比如:原來文件名為123.rar(3M),壓縮成分卷包後為123.part1.rar(2M)與123.part2.rar(1M)兩個文件,這樣你就可以上傳了。
具體方法如下:
1、在要壓縮的文件上點右鍵
2、添加到壓縮文件....
3、選常規
4、壓縮方式選最好
5、批定壓縮分卷大小(按位元組計算),1M = 1024K,1K = 1024位元組,填寫數字即可
當你下載了帶有分卷的壓縮包後,如何解壓文件呢?
具體方法如下:
1、把所有的壓縮分卷全部下載完整
2、所有分卷必須在同一個文件夾內
3、然後雙擊解壓第一個分卷,即可
註:分卷解壓的文件必須是連續的,若分卷未下載完整,則解壓時自然會提示需要下一壓縮分卷

④ 壓縮軟體的原理是什麼

計算機處理的信息是以二進制數的形式表示的,因此壓縮軟體就是把二進制信息中相同的字元串以特殊字元標記來達到壓縮的目的。為了有助於理解文件壓縮,請您在腦海里想像一幅藍天白雲的圖片。對於成千上萬單調重復的藍色像點而言,與其一個一個定義「藍、藍、藍……」長長的一串顏色,還不如告訴電腦:「從這個位置開始存儲1117個藍色像點」來得簡潔,而且還能大大節約存儲空間。這是一個非常簡單的圖像壓縮的例子。其實,所有的計算機文件歸根結底都是以「1」和「0」的形式存儲的,和藍色像點一樣,只要通過合理的數學計算公式,文件的體積都能夠被大大壓縮以達到「數據無損稠密」的效果。總的來說,壓縮可以分為有損和無損壓縮兩種。如果丟失個別的數據不會造成太大的影響,這時忽略它們是個好主意,這就是有損壓縮。有損壓縮廣泛應用於動畫、聲音和圖像文件中,典型的代表就是影碟文件格式MPEG、音樂文件格式MP3和圖像文件格式JPG。

壓縮原理
很多人都驚異於壓縮技術的神奇,一個文件被壓縮成一半大小,何以能無損還原呢?

早期使用的壓縮技術都基於統計模型,到20世紀80年代初基於字典壓縮的新技術才慢慢推廣開來。

數據壓縮包含了非常多的軟體和硬體技術,這些技術各不相同,但是大多數壓縮軟體都是基於LZ77、LZ88演算法並加以修正而成,而LZ77是字典壓縮的起源。大家都知道一個文本文件是由一些單片語成,而且必定有重復現象發生,例如我們這里經常出現的「壓縮軟體」一詞,壓縮的原理就是在文件的頭部做一個類似字典的東西,把「壓縮軟體」這個詞放在「字典」中,並為這個詞指定一個占較少位元組數的編碼,而文章中的「壓縮軟體」 一詞均用此編碼代替,以達到壓縮的目的。當然壓縮軟體在實際運作中並非如此簡單,還要使用一些看了就頭痛的演算方法,在此就不一一細述。也許有人會問,文本文件可用字典技術,那其它文件怎麼辦呢。這就無須操心了,因為對於壓縮軟體來說,一個文件中的「數據壓縮」一詞和「@#¥%^」 是一樣的,關鍵在於冗餘碼(重復部分)的多少。

壓縮常識
按壓縮方式分:有所謂的「透明壓縮」和「打包壓縮」。

「透明壓縮」一般針對.exe和.com文件,直接壓縮。成功的話,文件體積變小,功能不變,運行速度還可能更快。但是,這種壓縮方法的對象面很窄。如果壓縮失敗,還會造成文件不可用。所以,這一類程序總是強烈要求用戶在壓縮前將文件備份。

「打包壓縮」就是現在常提到的壓縮軟體使用的壓縮法。它把一個或多個文件壓縮成一個文件——壓縮包。要使用壓縮後的文件,必須先解壓將文件復原。它的特點是風險小,適用於減小不常用的文件所佔空間和傳輸數據。當然,按照壓縮演算法,我們還可以將壓縮分成很多種。

一般我們在談到壓縮時,會提到許多相關術語,下面我們就提出一些常見的術語進行解釋。

壓縮格式:壓縮文件時使用的壓縮編碼方法不同,壓縮生成的文件結構就不同,這種壓縮文件結構就稱壓縮格式。

壓縮比率:文件壓縮後佔用的磁碟空間與原文件的比率稱壓縮比率。在常用的壓縮格式中,RAR格式壓縮比率較高,ZIP格式較低。但ZIP格式的文件操作速度較快。

解壓:將壓縮文件還原為本來的文件格式,也稱釋放、擴展。

壓縮包:一般將通用壓縮格式的文件稱為壓縮包,如ZIP格式壓縮文件。這種文件可以在壓縮工具的管理下對包中壓縮的文件進行管理,如查看、刪除、添加等。

打包:將文件壓縮成通用壓縮格式的壓縮包文件稱為打包,也指將文件壓縮添加到壓縮包。

多卷壓縮:將壓縮的文件包分成幾個壓縮文件稱為多卷壓縮,一般是為了將壓縮文件儲存在多個軟磁碟上或方便網上傳輸。

自解壓文件:將文件壓縮生成可執行的文件,然後在沒有壓縮工具的幫助下,通過執行壓縮的文件,就可將自己的源文件解壓還原出來。

壓縮文件格式
目前流行著多種壓縮文件格式,下面我們就來看看到底有哪些吧!

ZIP:目前最流行的壓縮文件格式(在Internet上,ZIP文件已經取得了絕對勝利。在日常操作中,除專門的壓縮軟體之外,許多文件管理程序,如Windows Commander等也都支持ZIP格式)。我們可利用WinZip對ZIP文件進行解壓、釋放等操作,還可以用它來處理ARJ、ARC、CAB、LZH等多種不同格式的壓縮文件,從而大大地方便了用戶的操作。

RAR:是一種高效快速的文件壓縮格式,但不被大多數文件壓縮程序支持,WinRAR是在Windows下處理RAR格式文件的最好工具。

ARJ:由DOS下曾經紅極一時的壓縮軟體ARJ壓縮而成的文件格式,它具有功能強大、壓縮率高等優點。到了現在的Windows時代,它已經沒有了往日的輝煌。

CAB:是Windows 98新增的一種特殊壓縮文件格式,主要用於對有關軟體安裝盤中的文件進行壓縮,其特點是壓縮率非常高(可能是目前最高的),但一經壓縮就不能再進行任何增加、刪除、替換等修改,也就是說它的壓縮包具有「只讀」屬性。我們也可使用WinZip對CAB壓縮包進行操作。

??_:軟體安裝盤所採用的一種壓縮文件方式,如*.ex_、*.dl_、*.d3_等,它們一般由系統直接解壓並完成安裝工作,無須用戶操心。當然,我們也可使用DOS的EXPAND命令對*.??_文件進行釋放操作。

UU/UUE:漢字編碼方式,它們原本是Unix系統中使用的一種編碼方式,後來被改寫到DOS中,我們在傳送中文郵件時只須事先使用該方式進行編碼,此後就能順利通過只能處理7位編碼的郵件伺服器,從而解決了漢字的傳輸問題。

ACE:一種新式的壓縮程序,壓縮比很高。

另外,MP3、MPEG、JPG等音頻、視頻、圖像格式的文件也都採用了壓縮技術,從理論上來說它們也應該算壓縮文件,不過它們所採用的壓縮方式並不相同,這里簡單地介紹一下:

JPEG:JPEG 全名為 Joint Photographic Experts Group,它是一個在國際標准組織(ISO)下從事靜態影像壓縮標准制定的委員會。它制定出了第一套國標靜態影像壓縮標准:ISO 10918-1 就是我們俗稱的JPEG了。由於JPEG優良的品質,使得它在短短的幾年內就獲得極大的成功,目前網站上80%的影像都是採用JPEG的壓縮標准。

JPEG 2000:正式名稱為「ISO 15444」,同樣是由JPEG 組織負責制定。JPEG 2000與傳統 JPEG 最大的不同,在於它放棄了JPEG所採用的以離散餘弦轉換為主的區塊編碼方式,而改以小波轉換為主的多解析編碼方式。其壓縮率比 JPEG高約30%左右,同時支持有損和無損壓縮,無損壓縮對保存一些重要圖片十分有用。

MP3:這個大家應該都認識它了,MP3全稱是MPEG 1 Layer 3,是一種高性能的聲音壓縮編碼方案,它可以做出超小「體積」的音樂文件,大小隻是原始音頻數據的1/10到1/12。但人耳聽起來,效果卻沒有太大差異。它一出世就幾乎佔領了電腦音樂領域,由於MP3的出現,過去在網際網路上半小時才能下載完的一首歌曲,現在以MP3格式僅需短短的幾分鍾就可以「搞定」。

MPEG:MPEG是Moving Pictures Experts Group(動態圖像專家組)的縮寫。
現在使用的有4個版本:MPEG-1、MPEG-2、MPEG-3、MPEG-4。

⑤ 文件壓縮軟體的工作原理是什麼

計算機處理的信息是以二進制數的形式表示的,因此壓縮軟體就是把二進制信息中相同的字元串以特殊字元標記來達到壓縮的目的。為了有助於理解文件壓縮,請您在腦海里想像一幅藍天白雲的圖片。對於成千上萬單調重復的藍色像點而言,與其一個一個定義「藍、藍、藍……」長長的一串顏色,還不如告訴電腦:「從這個位置開始存儲1117個藍色像點」來得簡潔,而且還能大大節約存儲空間。這是一個非常簡單的圖像壓縮的例子。其實,所有的計算機文件歸根結底都是以「1」和「0」的形式存儲的,和藍色像點一樣,只要通過合理的數學計算公式,文件的體積都能夠被大大壓縮以達到「數據無損稠密」的效果。總的來說,壓縮可以分為有損和無損壓縮兩種。如果丟失個別的數據不會造成太大的影響,這時忽略它們是個好主意,這就是有損壓縮。有損壓縮廣泛應用於動畫、聲音和圖像文件中,典型的代表就是影碟文件格式MPEG、音樂文件格式MP3和圖像文件格式JPG。
壓縮原理
很多人都驚異於壓縮技術的神奇,一個文件被壓縮成一半大小,何以能無損還原呢?
早期使用的壓縮技術都基於統計模型,到20世紀80年代初基於字典壓縮的新技術才慢慢推廣開來。
數據壓縮包含了非常多的軟體和硬體技術,這些技術各不相同,但是大多數壓縮軟體都是基於LZ77、LZ88演算法並加以修正而成,而LZ77是字典壓縮的起源。大家都知道一個文本文件是由一些單片語成,而且必定有重復現象發生,例如我們這里經常出現的「壓縮軟體」一詞,壓縮的原理就是在文件的頭部做一個類似字典的東西,把「壓縮軟體」這個詞放在「字典」中,並為這個詞指定一個占較少位元組數的編碼,而文章中的「壓縮軟體」一詞均用此編碼代替,以達到壓縮的目的。當然壓縮軟體在實際運作中並非如此簡單,還要使用一些看了就頭痛的演算方法,在此就不一一細述。也許有人會問,文本文件可用字典技術,那其它文件怎麼辦呢。這就無須操心了,因為對於壓縮軟體來說,一個文件中的「數據壓縮」一詞和「@#¥%^」是一樣的,關鍵在於冗餘碼(重復部分)的多少。
壓縮常識
按壓縮方式分:有所謂的「透明壓縮」和「打包壓縮」。
「透明壓縮」一般針對.exe和.com文件,直接壓縮。成功的話,文件體積變小,功能不變,運行速度還可能更快。但是,這種壓縮方法的對象面很窄。如果壓縮失敗,還會造成文件不可用。所以,這一類程序總是強烈要求用戶在壓縮前將文件備份。
「打包壓縮」就是現在常提到的壓縮軟體使用的壓縮法。它把一個或多個文件壓縮成一個文件——壓縮包。要使用壓縮後的文件,必須先解壓將文件復原。它的特點是風險小,適用於減小不常用的文件所佔空間和傳輸數據。當然,按照壓縮演算法,我們還可以將壓縮分成很多種。
一般我們在談到壓縮時,會提到許多相關術語,下面我們就提出一些常見的術語進行解釋。
壓縮格式:壓縮文件時使用的壓縮編碼方法不同,壓縮生成的文件結構就不同,這種壓縮文件結構就稱壓縮格式。
壓縮比率:文件壓縮後佔用的磁碟空間與原文件的比率稱壓縮比率。在常用的壓縮格式中,RAR格式壓縮比率較高,ZIP格式較低。但ZIP格式的文件操作速度較快。
解壓:將壓縮文件還原為本來的文件格式,也稱釋放、擴展。
壓縮包:一般將通用壓縮格式的文件稱為壓縮包,如ZIP格式壓縮文件。這種文件可以在壓縮工具的管理下對包中壓縮的文件進行管理,如查看、刪除、添加等。
打包:將文件壓縮成通用壓縮格式的壓縮包文件稱為打包,也指將文件壓縮添加到壓縮包。
多卷壓縮:將壓縮的文件包分成幾個壓縮文件稱為多卷壓縮,一般是為了將壓縮文件儲存在多個軟磁碟上或方便網上傳輸。
自解壓文件:將文件壓縮生成可執行的文件,然後在沒有壓縮工具的幫助下,通過執行壓縮的文件,就可將自己的源文件解壓還原出來。
壓縮文件格式
目前流行著多種壓縮文件格式,下面我們就來看看到底有哪些吧!
ZIP:目前最流行的壓縮文件格式(在Internet上,ZIP文件已經取得了絕對勝利。在日常操作中,除專門的壓縮軟體之外,許多文件管理程序,如WindowsCommander等也都支持ZIP格式)。我們可利用WinZip對ZIP文件進行解壓、釋放等操作,還可以用它來處理ARJ、ARC、CAB、LZH等多種不同格式的壓縮文件,從而大大地方便了用戶的操作。
RAR:是一種高效快速的文件壓縮格式,但不被大多數文件壓縮程序支持,WinRAR是在Windows下處理RAR格式文件的最好工具。
ARJ:由DOS下曾經紅極一時的壓縮軟體ARJ壓縮而成的文件格式,它具有功能強大、壓縮率高等優點。到了現在的Windows時代,它已經沒有了往日的輝煌。
CAB:是Windows98新增的一種特殊壓縮文件格式,主要用於對有關軟體安裝盤中的文件進行壓縮,其特點是壓縮率非常高(可能是目前最高的),但一經壓縮就不能再進行任何增加、刪除、替換等修改,也就是說它的壓縮包具有「只讀」屬性。我們也可使用WinZip對CAB壓縮包進行操作。
??_:軟體安裝盤所採用的一種壓縮文件方式,如*.ex_、*.dl_、*.d3_等,它們一般由系統直接解壓並完成安裝工作,無須用戶操心。當然,我們也可使用DOS的EXPAND命令對*.??_文件進行釋放操作。
UU/UUE:漢字編碼方式,它們原本是Unix系統中使用的一種編碼方式,後來被改寫到DOS中,我們在傳送中文郵件時只須事先使用該方式進行編碼,此後就能順利通過只能處理7位編碼的郵件伺服器,從而解決了漢字的傳輸問題。
ACE:一種新式的壓縮程序,壓縮比很高。
另外,MP3、MPEG、JPG等音頻、視頻、圖像格式的文件也都採用了壓縮技術,從理論上來說它們也應該算壓縮文件,不過它們所採用的壓縮方式並不相同,這里簡單地介紹一下:
JPEG:JPEG全名為JointPhotographicExpertsGroup,它是一個在國際標准組織(ISO)下從事靜態影像壓縮標准制定的委員會。它制定出了第一套國標靜態影像壓縮標准:ISO10918-1就是我們俗稱的JPEG了。由於JPEG優良的品質,使得它在短短的幾年內就獲得極大的成功,目前網站上80%的影像都是採用JPEG的壓縮標准。
JPEG2000:正式名稱為「ISO15444」,同樣是由JPEG組織負責制定。JPEG2000與傳統JPEG最大的不同,在於它放棄了JPEG所採用的以離散餘弦轉換為主的區塊編碼方式,而改以小波轉換為主的多解析編碼方式。其壓縮率比JPEG高約30%左右,同時支持有損和無損壓縮,無損壓縮對保存一些重要圖片十分有用。
MP3:這個大家應該都認識它了,MP3全稱是MPEG1Layer3,是一種高性能的聲音壓縮編碼方案,它可以做出超小「體積」的音樂文件,大小隻是原始音頻數據的1/10到1/12。但人耳聽起來,效果卻沒有太大差異。它一出世就幾乎佔領了電腦音樂領域,由於MP3的出現,過去在網際網路上半小時才能下載完的一首歌曲,現在以MP3格式僅需短短的幾分鍾就可以「搞定」。
MPEG:MPEG是MovingPicturesExpertsGroup(動態圖像專家組)的縮寫。
現在使用的有4個版本:MPEG-1、MPEG-2、MPEG-3、MPEG-4。

⑥ 壓縮和解壓縮的原理是什麼

目前壓縮技術可分為通用無損數據壓縮與有損壓縮兩大類,但不管是採用何種技術模型,其本質內容都是一樣的,即都是通過某種特殊的編碼方式將數據信息中存在的重復度、冗餘度有效地降低,從而達到數據壓縮的目的。比如:「中國」是「中華人民共和國」的簡稱,但前者的字數是2,後者則是7,但我們都不會對它們倆所要表達的意思產生誤解,這是因為前者保留了信息中最「關鍵點」。同時,作為有思維能力的人類,我們可以根據前後詞彙關系和知識積累,就可推斷出其原來的全部信息。壓縮技術也一樣,在不影響文件的基本使用的前提下,只保留原數據中一些「關鍵點」,去掉了數據中的重復的、冗餘的信息,從而達到壓縮的目的。這就是文件壓縮技術所要遵循的最基本原理。

⑦ 文件壓縮的原理是什麼

電腦里文件都是以二進制儲存的。壓縮原理就是通過特定的演算法,將文件轉化,而轉化以後的文件佔用的空間較小。

舉個簡單得例子(當然這個例子應該有點問題,但是能說明問題):
原始文件:111110000001
演算法:當連續同樣的1或者0的個數超過5個,則將其轉化成XX1或者XX0得形式;如果不超過5個,保持不變。XX是連續的1或者0的個數,如果連續數量較多,XX得位數可以增加。

於是11111可以表示成5個1,寫成二進制就是1011;000000可以表示成6個0,寫成二進制就是1100;而1保持不變。

這樣,轉化以後的文件就變成了101111001

可見,原始文件需要12個存儲位置,而轉化後的文件只需要9個存儲位置。

當然,實際上壓縮得演算法多種多樣,要比這個例子復雜的多。根據文件種類的不同壓縮演算法也經常不同。

⑧ zip 的壓縮原理與實現

文件壓縮原理

我們使用計算機所做的事情大多都是對文件進行處理。每個文件都會佔用一定的磁碟空間,我們希望一些文件,尤其是暫時不用但又比較重要不能刪除的文件(如備份文件,有點像雞肋呀),盡可能少的佔用磁碟空間。但是,許多文件的存儲格式是比較鬆散的,這樣就浪費了一些寶貴的計算機存儲資源。這時,我們可以藉助壓縮工具解決這個問題,通過對原來的文件進行壓縮處理,使之用更少的磁碟空間保存起來,當需要使用時再進行解壓縮操作,這樣就大大節省了磁碟空間。當你要拷貝許多小文件時,通過壓縮處理可以提高執行效率。如果小文件很多,操作系統要執行頻繁的文件定位操作,需要花費很多的時間。如果先把這些小文件壓縮,變成一個壓縮文件後,再拷貝時就很方便了。由於計算機處理的信息是以二進制數的形式表示的,因此壓縮軟體就是把二進制信息中相同的字元串以特殊字元標記來達到壓縮的目的。為了有助於理解文件壓縮,請您在腦海里想像一幅藍天白雲的圖片。對於成千上萬單調重復的藍色像點而言,與其一個一個定義「藍、藍、藍……」長長的一串顏色,還不如告訴電腦:「從這個位置開始存儲1117個藍色像點」來得簡潔,而且還能大大節約存儲空間。這是一個非常簡單的圖像壓縮的例子。其實,所有的計算機文件歸根結底都是以「1」和「0」的形式存儲的,和藍色像點一樣,只要通過合理的數學計算公式,文件的體積都能夠被大大壓縮以達到「數據無損稠密」的效果。總的來說,壓縮可以分為有損和無損壓縮兩種。如果丟失個別的數據不會造成太大的影響,這時忽略它們是個好主意,這就是有損壓縮。有損壓縮廣泛應用於動畫、聲音和圖像文件中,典型的代表就是影碟文件格式mpeg、音樂文件格式mp3和圖像文件格式jpg。但是更多情況下壓縮數據必須准確無誤,人們便設計出了無損壓縮格式,比如常見的zip、rar等。壓縮軟體(compression software)自然就是利用壓縮原理壓縮數據的工具,壓縮後所生成的文件稱為壓縮包(archive),體積只有原來的幾分之一甚至更小。當然,壓縮包已經是另一種文件格式了,如果你想使用其中的數據,首先得用壓縮軟體把數據還原,這個過程稱作解壓縮。常見的壓縮軟體有winzip、winrar等

熱點內容
解壓到當前文件夾右鍵 發布:2024-04-26 03:57:08 瀏覽:979
html5android教程視頻下載 發布:2024-04-26 03:09:59 瀏覽:867
伺服器的描述是什麼 發布:2024-04-26 03:08:32 瀏覽:394
個人加密 發布:2024-04-26 03:01:23 瀏覽:521
linuxusbgadget 發布:2024-04-26 02:52:54 瀏覽:304
我的世界空島世界伺服器地址 發布:2024-04-26 01:39:08 瀏覽:248
尼爾機械紀元加密 發布:2024-04-26 01:37:11 瀏覽:868
在控制台輸出sql語句 發布:2024-04-26 01:08:12 瀏覽:432
動畫java 發布:2024-04-26 01:02:40 瀏覽:12
得力文件夾5302 發布:2024-04-26 00:21:32 瀏覽:91