文件壓縮包應(yīng)該是大家都用過的東西,通過打包壓縮,可以減少文件體積,對(duì)文件進(jìn)行加密,繞過一些網(wǎng)絡(luò)傳輸規(guī)則。盡管我們幾乎每天都在使用壓縮文件,但是幾乎沒有人真正理解,數(shù)據(jù)壓縮的原理和壓縮文件格式之間的區(qū)別,實(shí)際上不同的壓縮格式之間的效率差別很大。
壓縮原理
壓縮被分成“有損壓縮”和“無損壓縮”。
有損壓縮是指直接對(duì)文件進(jìn)行壓縮,去除無關(guān)緊要的數(shù)據(jù),通常用于音樂、視頻、圖像等媒體文件。有損壓縮后無法恢復(fù),如在微信上傳的圖片未勾選“原始圖片”,將被有損壓縮。
無損耗壓縮,數(shù)據(jù)可完全還原。我們今天講的是無損壓縮,即壓縮包形式。
簡(jiǎn)而言之,所有的文件都是由代碼組成的,代碼的數(shù)量決定文件的大小,但是,它和文件所包含的有效信息的數(shù)量是不相等的。由于文件中的代碼不是最精簡(jiǎn)的狀態(tài),如果您對(duì)代碼進(jìn)行精簡(jiǎn),則可以在文件內(nèi)容不變的情況下縮小文件體積。除了不同格式的算法不同,所有的壓縮軟件都是這樣工作的。若壓縮速率較高,則自然需要進(jìn)行的運(yùn)算量也較大,壓縮調(diào)和壓也較耗時(shí)。
.zip 格式
當(dāng)前主流的壓縮格式是zip和rar,兩者都是老版本。從1986年開始,zip格式的壓縮率在眾多壓縮格式中只能算一般,但是由于它是開放的免費(fèi)格式,所以在那個(gè)沒有很多壓縮方式可選的年代迅速流行起來,現(xiàn)在幾乎所有的壓縮軟件都可以創(chuàng)建或打開zip格式的文件,而不必?fù)?dān)心格式不兼容,畢竟Windows系統(tǒng)都支持自己的zip格式。此外,zip格式相當(dāng)簡(jiǎn)單,沒有建立統(tǒng)一的標(biāo)準(zhǔn),造成了許多格式問題,例如,不同語言操作系統(tǒng)互傳zip后打開時(shí)顯示的代碼混亂;相同文件壓縮后的md5值不同;不同軟件打開相同壓縮文件時(shí)顯示的時(shí)間信息不同等等。.rar格式
若與之比較,你會(huì)發(fā)現(xiàn)rar格式的壓縮速度一般比zip更快,但你可能不知道這是一種專利文件格式,只有收費(fèi)軟件WinRAR才能創(chuàng)建rar格式的壓縮文件,而其他壓縮軟件則能對(duì)rar文件進(jìn)行解壓。在所有方面,rar都比zip強(qiáng),這就是為什么作為付費(fèi)軟件,它能夠生存下去。 當(dāng)電腦剛開始普及時(shí),軟盤容量非常小,網(wǎng)絡(luò)傳輸速度又慢,壓縮速率更高自然成為廣大網(wǎng)民共享資源的首選,下載站為了節(jié)省帶寬費(fèi)用,也都使用rar。再加上“WinRAR”在國(guó)內(nèi)基本上是“免費(fèi)”的原因,因此rar壓縮格式還是國(guó)內(nèi)主流壓縮格式,rar在國(guó)外市場(chǎng)所占份額就少了許多。.7z 格式
此外,您可能已經(jīng)看到了7z格式,7z格式是開源軟件7-Zip的開放源代碼壓縮格式,與zip一樣,主流軟件可以打開或創(chuàng)建7z格式的文件。7z是壓縮格式中的后起之秀,其壓縮率甚至超過了收費(fèi)的rar,但它誕生于rar已經(jīng)流行的年代,并沒有乘著互聯(lián)網(wǎng)普及的東風(fēng),因此很難取代rar和zip。為達(dá)到高壓收縮,7z采用了包括報(bào)頭壓縮在內(nèi)的各種奇巧手段。同樣因?yàn)檫@些特性,當(dāng)7z壓縮文件被輕微破壞時(shí),幾乎無法恢復(fù)。