Windows不同壓縮軟件、壓縮算法、壓縮率詳細(xì)對(duì)比測(cè)試與選擇
上次寫了圖片壓縮,這倒讓我想起幾年前看過(guò)的一個(gè)很有意思的東西
那就是這張鴨子圖:

不過(guò)微信會(huì)壓縮圖片,你可以打開(kāi)這個(gè)鏈接:http://2.im.guokr.com/F70Kn-4wz7aF5Yejf9W3g6kO4exDBqVEb0TumQmxy5MiAQAAEAEAAEpQ.jpg?來(lái)獲取原圖
將這張圖片下載到本地,修改文件后綴為?.rar,然后再解壓,你會(huì)得到四個(gè)文件

這其中有一個(gè)「說(shuō)明.txt」里面是這樣寫的:
每年,世界各地著名的Warez組織都會(huì)推出一個(gè)小的動(dòng)畫(huà)片來(lái)比較,僅僅是用來(lái)炫耀其實(shí)力
要知道,一首普通的MP3,通常就有4000K左右,一張普通的JPG壓縮圖片也要30-40K,而這個(gè)僅有63K的3D動(dòng)畫(huà),你花半個(gè)小時(shí)也看不完,而且不重復(fù)、帶音樂(lè)!
雙擊「prophecy《彗星撞地球》.exe」便能查看這段3D動(dòng)畫(huà)
阿虛簡(jiǎn)單錄了一下前2分鐘的效果
第1段:

第2段:

如果感興趣,可以自己把圖片保存下來(lái)后看看
注:系統(tǒng)必須安裝有directx8.0才行。按A鍵可縮小,按S鍵放大,按F鍵快速放,按R鍵重放……
可能很多人會(huì)誤以為這是什么逆天的壓縮算法,但實(shí)際上不是的,這段動(dòng)畫(huà)并不是由什么視頻壓縮而成,背后上實(shí)際是靠即時(shí)演算而得到的
就好比給電腦一個(gè)譜子,然后電腦其實(shí)是在照譜演奏

另外,像8個(gè)關(guān)卡的魂斗羅只有128K,32個(gè)關(guān)卡的超級(jí)馬里奧甚至只有64K,零幾年時(shí)紅極一時(shí)的3D FPS射擊游戲 kkrieger(毀滅殺手)僅96KB...
這些都不是單純的壓縮,背后涉及的原理很多,的確也都很有意思,不過(guò)對(duì)我們一般人來(lái)講,看了也就圖一樂(lè),沒(méi)有什么實(shí)際的用途

阿虛倒想借由這個(gè)問(wèn)題給大家科普一下——普通的壓縮包怎么壓縮,才能擁有最好的壓縮率?
▍1 關(guān)于壓縮文件的常識(shí)
首先你得知道:壓縮率很大程度上取決于你壓的是什么東西

我們一般分5??大文件類型:程序文件,文本文件,壓縮圖片,壓縮音頻和壓縮視頻
而實(shí)際上只有程序文件和文本文件這種人類語(yǔ)言的數(shù)據(jù)是有壓縮價(jià)值的
這句話的意思是:圖片、音頻、視頻文件,數(shù)據(jù)基本上已經(jīng)壓縮了,用壓縮軟件的壓縮算法二次壓縮是幾乎沒(méi)有作用的?????♂?
Kaciras在他的博客也分享過(guò)他的測(cè)試結(jié)果:https://blog.kaciras.com/article/4/WinRAR-vs-7zip-performance

阿虛自己也實(shí)際測(cè)試過(guò)包括:mobi、epub、docx、pdf、mp3、flac、jpg、png...這些常見(jiàn)格式,壓縮率基本都是100%,即原本100MB,壓縮后還是100MB

除外實(shí)際有點(diǎn)壓縮效果的也就 doxc 和 pdf:100MB 的 docx 大約能壓到94MB、1GB 的 pdf 能壓縮到 986MB
還有 txt 文件,靠壓縮軟件還是能有比較不錯(cuò)的壓縮率的!

所以你要是想靠壓縮軟件來(lái)進(jìn)行壓縮視頻、音頻、圖片是幾乎沒(méi)有實(shí)際意義的
對(duì)于這種情況,壓縮軟件基本上就起一個(gè)打包作用

如果準(zhǔn)備打包的文件較大,我建議你壓縮方式選擇「存儲(chǔ)」
這個(gè)方式就是幾乎直接把文件裝在一起,不進(jìn)行壓縮操作,能最大程度的節(jié)約在壓縮&解壓的時(shí)間

如果你是想壓縮圖片、視頻、音頻...通常有損壓縮才能真正起到效果
比如降低視頻分辨率,降低碼率等:https://mp.weixin.qq.com/s/CBhVeL5s9S9ewsgwsdhTsg

音頻的話,一般人用一般設(shè)備其實(shí)也聽(tīng)不出 flac 和 320K mp3 的區(qū)別,但這格式在文件大小上差別就大了:https://mp.weixin.qq.com/s/Am2u6zPd49aWKMjPjbdZ-Q

如果是圖片的話,我前不久才講過(guò),一般人會(huì)用到的壓縮方式,也就 png 格式轉(zhuǎn) jpg 格式了:https://mp.weixin.qq.com/s/pV_WuPXP62QnJ19o76Y2nQ

▍2 最好的壓縮參數(shù)該怎么設(shè)置?
而對(duì)于程序文件,壓縮還是很有必要的——尤其是你遇到像藍(lán)奏云、閃電盤這類網(wǎng)盤,限制上傳大小是100MB的時(shí)候

于是阿虛這幾天,就結(jié)合自己以往的使用體驗(yàn)&網(wǎng)上的推薦,測(cè)試了一下以下4??款軟件的壓縮效果

但你需要知道:對(duì)于一個(gè) .exe 安裝包,壓縮是不起效果的(exe實(shí)際也屬于一種壓縮格式了)
而什么樣的程序文件能獲得較高的壓縮率呢?
程序中的小文件越多,就越容易獲得較高的壓縮率,比如下圖這種情況

所以就算你壓縮設(shè)置啥的完全都一樣,也不一定能取得同樣的壓縮率,具體能壓縮多少還是取決與于源文件
測(cè)試之前,先說(shuō)一下壓縮文件的一些參數(shù):
壓縮算法: 常見(jiàn)的壓縮算法有Defate、Bzip、PPMd、RAR、LZMA、LZMA2,真正決定壓縮效果的不是7z、zip、rar等壓縮格式,而是壓縮算法
字典大小:較大的字典文件能提供較高的壓縮比,但同時(shí)壓縮所需內(nèi)存會(huì)大量增加(解壓所需內(nèi)存也會(huì)少量增加),具體大小需根據(jù)電腦配置量力而行
單詞大小:影響純文本文件的壓縮比,此參數(shù)越大,壓縮速度越慢,但不影響解壓速度
固實(shí)壓縮:可增加壓縮比,如果創(chuàng)建的壓縮檔案需要更新,建議關(guān)閉固實(shí)模式
CPU線程:線程越高壓縮時(shí)間越低,但同時(shí)壓縮所需內(nèi)存越大
為了具體說(shuō)明,我找來(lái)一個(gè)正好100MB的程序文件,下面看看怎么壓縮能壓到最低

我就對(duì)這個(gè)程序用不同壓縮軟件,在不同壓縮參數(shù)下,進(jìn)行了幾十次的壓縮測(cè)試


最終的結(jié)果便是下面這張圖

▲點(diǎn)擊查看大圖
答案還是顯而易見(jiàn)的:
選用壓縮軟件7zip,壓縮方法LZMA2,字典大小根據(jù)自身電腦配置盡可能的大,單詞選擇273,采用固實(shí)壓縮,便能取得最高的壓縮率
上圖之所以把好壓也加亮了,是因?yàn)榘⑻撚玫呐f版好壓很多年了,在正確設(shè)置參數(shù)的情況下,還是能取得和最新版7zip差不多的壓縮率(差0.1M)

個(gè)人覺(jué)得,綜合好壓其他功能的實(shí)用性,這款軟件還是很值得推薦的
● 2.1 字典大?。PU線程
測(cè)試結(jié)論雖然簡(jiǎn)單粗暴,但還有一些問(wèn)題需要說(shuō)明
首先便是在設(shè)置壓縮參數(shù)的時(shí)候,要根據(jù)自己的電腦配置量力而行

選擇LZMA2算法,字典大小如果選擇1024MB,線程個(gè)數(shù)還是12的話,一般需要電腦有30G的內(nèi)存才能完成壓縮...

99%的用戶電腦內(nèi)存都是沒(méi)這么大的,上面那樣設(shè)置只會(huì)導(dǎo)致壓縮失敗
所以你需要適當(dāng)降低字典大小、降低線程個(gè)數(shù)!

「解壓所需內(nèi)存」一般都是大大低于「壓縮所需內(nèi)存的」
而且解壓所需內(nèi)存一般最大也就1G左右,如今的電腦基本上都能勝任的
所以基本上不必?fù)?dān)心你的壓縮文件別人會(huì)因?yàn)殡娔X內(nèi)存不足而解壓不了

● 2.2 固實(shí)壓縮
然后對(duì)于固實(shí)壓縮還是有必要說(shuō)明一下的
壓縮參數(shù)中的「固實(shí)大小」要大于你被壓縮文件本身,才能取得最好的壓縮率
假如你有100MB的文件需要壓縮,那么固實(shí)大小就得設(shè)置100MB以上,如128MB
另外固實(shí)壓縮雖然具有壓縮比高的優(yōu)點(diǎn),但也有其缺點(diǎn)

:
如果你需要往壓縮包里添加文件,或者說(shuō)想取出壓縮包里的某部分文件,對(duì)于采用固實(shí)壓縮的壓縮包會(huì)較慢
關(guān)于固實(shí)壓縮更詳細(xì)的說(shuō)明,可以到 Bandizip官網(wǎng)的幫助中了解:https://www.bandisoft.com/bandizip/help/what-is-solid-compression

▲掃碼即可查看
● 2.3 PPMd 壓縮算法
還有 PPMd 這種壓縮算法,雖然只能單線程,但優(yōu)勢(shì)是對(duì)純文字的壓縮有加成

阿虛找來(lái)50MB的純TXT文件,單獨(dú)對(duì)比了PPMd算法和上面得出的最高壓縮率設(shè)置,的確是PPMd壓縮效果更好一點(diǎn)

● 2.4 RAR格式
WinRAR雖然在壓縮率上沒(méi)有優(yōu)勢(shì),但其是唯一帶恢復(fù)記錄功能的壓縮軟件
什么是恢復(fù)記錄?
假如有個(gè)100m的壓縮文件,如果不帶恢復(fù)記錄,損壞了1k,那整個(gè)這個(gè)文件就壞了,如果帶有1%的恢復(fù)記錄,它的大小會(huì)變成101m,但在任意位置損壞不超過(guò)1m,這個(gè)文件就能正常解壓!

所以對(duì)于準(zhǔn)備長(zhǎng)期冷備份的文件,這個(gè)恢復(fù)記錄還是很有作用的(不過(guò),阿虛更建議多重備份來(lái)解決這個(gè)問(wèn)題)

因?yàn)閃inRAR是商業(yè)軟件,不開(kāi)源,需要購(gòu)買許可證才能使用
同時(shí)由于你懂的原因,這款軟件阿虛在公眾號(hào)也不方便提供,大家要是想使用,可以自己上網(wǎng)找一下注冊(cè)密鑰
▍3 壓縮軟件下載
于是,如果你對(duì)壓縮率有要求,我便只推薦你兩款壓縮軟件

一是好壓(舊版):

二是7-zip:

原因是這倆款軟件才能對(duì)「壓縮參數(shù)」進(jìn)行詳細(xì)設(shè)置(Bandizip只能簡(jiǎn)單設(shè)置)
再主觀上來(lái)講,阿虛自己是比較推薦好壓(舊版)的

除了使用符合國(guó)人習(xí)慣,還提供一些實(shí)用的小功能,搭配2345看圖王(去廣告版),也能方便的查看壓縮包內(nèi)的圖片

舊版好壓的下載地址在儲(chǔ)物間(axutongxue.com)一直有提供,你也可以關(guān)注微信公眾號(hào):阿虛同學(xué),在后臺(tái)回復(fù)以下關(guān)鍵詞來(lái)獲取
解壓縮
而7-zip是一款開(kāi)源軟件,在官網(wǎng)即可免費(fèi)下載:https://sparanoid.com/lab/7z/
另外不是說(shuō)不推薦 Bandizip
這款壓縮軟件的確好用,但是就算是企業(yè)版,也無(wú)法對(duì)壓縮參數(shù)進(jìn)行過(guò)多的設(shè)置——這是它的缺點(diǎn)

當(dāng)然,如果有人想用 Bandizip,阿虛這里也有順便提供,獲取方式還是在后臺(tái)發(fā)送關(guān)鍵詞:解壓縮
Bandizip 之前一直有在儲(chǔ)物間提供個(gè)人版,不過(guò)這次更新了企業(yè)版,在用這款軟件的粉絲可以更新一下

另外如果你對(duì)壓縮包密碼有疑問(wèn),可以去復(fù)習(xí)我原來(lái)寫過(guò)的這篇文章:https://mp.weixin.qq.com/s/sBxLpr2uwKF2IpTFTrH8HA

而如果你想搜索壓縮包內(nèi)的內(nèi)容,則可以復(fù)習(xí)這篇文章:https://mp.weixin.qq.com/s/ApyutqrsRN8dP65aKzq3mQ

