文件壓縮包應該是大家都用過的東西,通過打包壓縮,可以減少文件體積,對文件進行加密,繞過一些網絡傳輸規則。盡管我們幾乎每天都在使用壓縮文件,但是幾乎沒有人真正理解,數據壓縮的原理和壓縮文件格式之間的區別,實際上不同的壓縮格式之間的效率差別很大。
壓縮原理
壓縮被分成“有損壓縮”和“無損壓縮”。
有損壓縮是指直接對文件進行壓縮,去除無關緊要的數據,通常用于音樂、視頻、圖像等媒體文件。有損壓縮后無法恢復,如在微信上傳的圖片未勾選“原始圖片”,將被有損壓縮。
無損耗壓縮,數據可完全還原。我們今天講的是無損壓縮,即壓縮包形式。
簡而言之,所有的文件都是由代碼組成的,代碼的數量決定文件的大小,但是,它和文件所包含的有效信息的數量是不相等的。由于文件中的代碼不是最精簡的狀態,如果您對代碼進行精簡,則可以在文件內容不變的情況下縮小文件體積。除了不同格式的算法不同,所有的壓縮軟件都是這樣工作的。若壓縮速率較高,則自然需要進行的運算量也較大,壓縮調和壓也較耗時。
.zip 格式

當前主流的壓縮格式是zip和rar,兩者都是老版本。從1986年開始,zip格式的壓縮率在眾多壓縮格式中只能算一般,但是由于它是開放的免費格式,所以在那個沒有很多壓縮方式可選的年代迅速流行起來,現在幾乎所有的壓縮軟件都可以創建或打開zip格式的文件,而不必擔心格式不兼容,畢竟Windows系統都支持自己的zip格式。此外,zip格式相當簡單,沒有建立統一的標準,造成了許多格式問題,例如,不同語言操作系統互傳zip后打開時顯示的代碼混亂;相同文件壓縮后的md5值不同;不同軟件打開相同壓縮文件時顯示的時間信息不同等等。.rar格式

若與之比較,你會發現rar格式的壓縮速度一般比zip更快,但你可能不知道這是一種專利文件格式,只有收費軟件WinRAR才能創建rar格式的壓縮文件,而其他壓縮軟件則能對rar文件進行解壓。在所有方面,rar都比zip強,這就是為什么作為付費軟件,它能夠生存下去。 當電腦剛開始普及時,軟盤容量非常小,網絡傳輸速度又慢,壓縮速率更高自然成為廣大網民共享資源的首選,下載站為了節省帶寬費用,也都使用rar。再加上“WinRAR”在國內基本上是“免費”的原因,因此rar壓縮格式還是國內主流壓縮格式,rar在國外市場所占份額就少了許多。.7z 格式

此外,您可能已經看到了7z格式,7z格式是開源軟件7-Zip的開放源代碼壓縮格式,與zip一樣,主流軟件可以打開或創建7z格式的文件。7z是壓縮格式中的后起之秀,其壓縮率甚至超過了收費的rar,但它誕生于rar已經流行的年代,并沒有乘著互聯網普及的東風,因此很難取代rar和zip。為達到高壓收縮,7z采用了包括報頭壓縮在內的各種奇巧手段。同樣因為這些特性,當7z壓縮文件被輕微破壞時,幾乎無法恢復。