search
尋找貓咪~QQ 地點 桃園市桃園區 Taoyuan , Taoyuan

可知壓縮軟體也有大坑?老司機談壓縮軟體的故事

壓縮軟體的原理

為什麼壓縮軟體能夠減少文件體積?無論是什麼壓縮軟體,其目的就只有一個——減少冗餘數據。這是什麼意思呢?例如某行字是「000011111」,就可以壓縮為「0(4)1(5)」,在保證數據沒有受損的同時,減少其佔用的體積。

一個簡單的壓縮案例

上面的例子比較簡單,實際上壓縮軟體的演算法是複雜且多種多樣的。

不同的壓縮軟體會使用不同的字典,用來查找壓縮冗餘的數據,演算法結合字典在很大程度上決定了壓縮的效率。

我們經常會看到不同的壓縮文件格式,例如ZIP、RAR、7Z等,實際上這只是不同的壓縮規範,就算是同樣的格式,例如大家都是ZIP,其中的壓縮演算法可能也是不一樣的,ZIP就可以使用Shrinking、Reducing、Deflate等演算法。

某個壓縮文件壓縮率高不高,不但要看其文件格式,更要看其具體使用的演算法(例如ZIP和7Z都可以使用Deflate演算法)。

至於用哪個壓縮軟體最高效,實際上絕大多數的壓縮軟體,都沒有自己的壓縮演算法,本質上只是馬甲。

主流的壓縮文件格式大致有三種,分別是ZIP、RAR和7Z,它們分別來自Winzip、Winrar以及7-Zip,下面我們來說說這三種格式及其背後的壓縮軟體吧。

ZIP:事實上的標準格式

這是一個歷史非常悠久的壓縮格式,也是事實上的標準格式。

你可以看到各大軟體商發布軟體時,提供的往往都是ZIP格式的壓縮文件包,各大操作系統也對ZIP格式有著比較好的支持,例如Win系統中就可以直接訪問ZIP文件中的內容。

不過,這個最被廣泛支持、被最多人認同的格式,其開發者的命運卻有點悲情——ZIP格式的發明者Philip Katz英年早逝,37歲就因為酗酒去世了。

Winzip對推廣ZIP格式有著巨大作用

在DOS操作系統仍在盛行的時代,最流行的壓縮格式是ARC。ARC效率慢且封閉,使用對應的壓縮軟體還要付費,Philip Katz對其不滿,於是Philip Katz開發出了PKARC這款完全兼容ARC的軟體。

不料因為此事,Philip Katz被ARC告上法庭並敗訴,不得不放棄PKARC的開發。

Philip Katz並沒有放棄壓縮軟體的鑽研,他隨後開發出了PKZIP這款軟體,首創了ZIP格式。就算到了今天,你開啟任何ZIP文件,仍可以在文件頭中看到「PK」的字樣,這就是Philip Katz名字的縮寫。

ZIP的表現全方面壓制了ARC,速度更快壓縮比更高,而且Philip Katz開放了ZIP格式,任何壓縮軟體都可以創建ZIP。很快,ZIP就成為了最流行的壓縮標準。

ZIP是一種開放的格式,Philip Katz的PKWare公司並沒有為ZIP格式註冊專利。ZIP格式被多家軟體商所利用,Winzip這款軟體也是在那時候崛起的。Nico Mak利用開放的ZIP格式開發了Winzip,兼容Win系統。借著Win崛起的東風,Winzip成為了最流行的壓縮軟體之一。

再例如大家都很熟悉的Winrar,也使用了ZIP的演算法,同時沒有開放RAR演算法給其他軟體,這令Winrar一度成為最全能的壓縮軟體,一躍成為主流。

Philip Katz的結局並不好,在2000年,他在一家汽車旅館中去世,死時還握著酒瓶。

Philip Katz

ZIP的開放令其成為了最流行的格式,也是事實上的標準格式,家家戶戶都支持它。不過它也存在一些缺點。例如,它的壓縮率相比RAR和7Z偏低,對Unicode字元支持並不好,缺乏修復功能,加密安全性一度堪憂等,RAR和7Z都令ZIP感到巨大的競爭壓力。

RAR:起於江湖盛行於

在國外,其實RAR的流行程度和ZIP有差距;但在,RAR當之無愧是最流行的壓縮格式。RAR格式源於Winrar這款軟體,和ZIP不同,RAR格式並不開放,只免費發放了其解壓組件。

這意味著別的壓縮軟體只能解壓RAR,不能創建RAR。和Winzip相比,RAR能壓縮、解壓ZIP和RAR,Winzip卻不能壓縮RAR,因此Winrar利用專利,取得了競爭優勢。

在尤為流行的RAR

這其實尚不足以讓RAR流行起來,畢竟和ZIP對比,RAR的專利演算法雖然壓縮率更高一些,但速度也較慢。令RAR真正崛起的契機是破解組織的力挺——破解遊戲往往使用了Winrar來壓縮,而又是盜版遊戲最橫行的市場,RAR由此在開始流行。

遊戲盜版行業可謂是不折不扣的灰色地帶,RAR絕對稱得上是起於江湖。

為什麼破解遊戲喜歡使用RAR呢?

首先,RAR對Unicode字元支持好,很多遊戲都不是英文版,用ZIP壓縮可能會出現亂碼,而RAR不會;其次,RAR很早就支持分卷壓縮,不少破解遊戲體積都很大,要把它們裝進盜版光碟,就得用RAR分卷。

而RAR的分卷文件,一度只能用Winrar開啟。於是,盜版遊戲玩家們紛紛成為了Winrar的擁簇,在Winrar成為了最萬能的壓縮軟體,流行度完全蓋過了Winzip。

RAR出色的分卷壓縮是其流行的一大原因

RAR的成功,一方面是由於專利保護,令其處在了競爭的有利位置上;另一方面它的確也比較先進。RAR壓縮率稍高,對分卷壓縮支持好,早早支持AES加密安全性好,而且還自帶修復功能——不少由於光碟划花導致的數據錯誤,就是靠RAR的CRC修復得而完璧歸趙的。

不過,RAR的封閉始終是個問題,它最開始是收費軟體,現在針對發行了帶廣告的免費版,但人們還是更傾向於使用破解版。隨著7-ZIP的出現,萬能壓縮軟體越來越多,雖然RAR格式仍在流行,但很多人已經不再使用Winrar這款軟體。

7Z:完全開源的良心品

7Z是壓縮軟體7-Zip的御用格式,支持LZMA等先進演算法,壓縮效率進一步提高,甚至要比RAR更勝一籌,而且壓縮時間比RAR更短,與此同時對AES加密、固實壓縮、超大文件壓縮的支持也非常好,表現是相當驚艷的。

而造就7Z格式的7-Zip壓縮軟體也堪稱良心——它對各種壓縮文件支持很好,主流的壓縮文件基本都給予支持,當然一些商業的壓縮格式例如RAR,就只能解壓不能壓縮。

7-Zip在國內不流行的一大原因可能是界面太簡陋,但就是這樣的風格,社會你7哥,人狠話不多

最良心的一點是,7-Zip和7Z是完全開源的!因此,它的內核被很多其他壓縮軟體所使用,國產壓縮軟體通常就是7-Zip的忠實擁簇,壓縮軟體中的「坑」也由此而來。

7-Zip開源,但它使用了LGPL開源協議,某個軟體如果使用了7-Zip的源碼,按理來說也必須開源。但國內的「X壓」等軟體非但沒有開源,還在壓縮文件的文件頭中故意加入無助於壓縮的私貨,讓其他壓縮軟體無法解壓。

用了人家的代碼還故意製造不兼容,對於這種行為,只想說一句,「我從未見過如此厚顏無恥之人」!

總結

總體來說,在壓縮文件格式方面,筆者是比較推薦大家壓縮成ZIP格式的,畢竟這個格式擁有著最廣泛的支持。

在壓縮軟體的選擇上,大家可以優先考慮7-Zip,對分卷壓縮有特殊要求的朋友,則可以使用Winrar。對於某些不厚道的國產壓縮軟體,大家還是少碰為好,這種坑不僅坑自己,也會坑到別人。



熱門推薦

本文由 yidianzixun 提供 原文連結

寵物協尋 相信 終究能找到回家的路
寫了7763篇文章,獲得2次喜歡
留言回覆
回覆
精彩推薦