壓縮原理
很多人都驚異於壓縮技術的神奇,壹個文件被壓縮成壹半大小,何以能無損還原呢?
早期使用的壓縮技術都基於統計模型,到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。