愛瑪很快活。如果不是從臥室里傳來埃爾頓太太的聲音,從而妨礙了她,使她急匆匆地真誠地緊緊握住她的手以表達(dá)最誠摯的祝愿和深厚的感情,她真想立刻就表示有話要講。
——簡·奧斯汀,《愛瑪》 譯文選自張宇譯本。——譯者注
我們對壓縮實(shí)物的概念都很熟悉:當(dāng)你試圖將許多衣服放入一個小提箱中時,你可以壓一壓衣服,讓它們小到能被小提箱容納,即便衣服的正常體積會超出小提箱。你壓縮了衣服。之后,再從小提箱中拿出衣服時,你就能解壓它們,并以它們的原始大小和形狀再度穿著(希望能如此)。
令人驚訝的是,我們也有可能對信息做同樣的事:計算機(jī)文件和其他種類的數(shù)據(jù),通常能被壓縮成更小的體積,以方便存儲或傳輸。然后,它們會被解壓并以原始形式被使用。
絕大多數(shù)人的計算機(jī)上有足夠的磁盤空間,無須為壓縮自己的文件煩心。因此,人們傾向于認(rèn)為,壓縮對絕大多數(shù)人沒有影響。但這種印象是錯誤的:事實(shí)上,計算機(jī)系統(tǒng)背后經(jīng)常用到壓縮。比如,許多通過互聯(lián)網(wǎng)發(fā)送的消息都經(jīng)過了壓縮,用戶甚至不知道這一點(diǎn);幾乎所有軟件都是以壓縮格式被下載——這意味著你下載和轉(zhuǎn)移文件的速度,要比不壓縮時快數(shù)倍。甚至當(dāng)你對著電話講話時,你的聲音也經(jīng)過了壓縮:如果電話公司能在傳輸語音數(shù)據(jù)前進(jìn)行壓縮,它們就能對自己的資源實(shí)現(xiàn)超高利用率。
壓縮也以更明顯的方式得到了運(yùn)用。流行的ZIP文件格式運(yùn)用的精巧壓縮算法,將在本章得到介紹。你很有可能也對涉及壓縮數(shù)字視頻的得失很熟悉:高質(zhì)量視頻的文件體積,要比相同視頻的低質(zhì)量版本大很多。
無損壓縮:終極免費(fèi)午餐
計算機(jī)使用兩種截然不同的壓縮:無損壓縮和有損壓縮,這點(diǎn)很重要。無損壓縮是真正的免費(fèi)午餐,對你有益無害。一種無損壓縮算法能將一個數(shù)據(jù)文件壓縮為其原始體積的一小部分,然后將其解壓為和之前一樣的東西。相反,有損壓縮會導(dǎo)致解壓后的原始文件發(fā)生一些小改變。我們稍后再討論有損壓縮,現(xiàn)在讓我們專注于無損壓縮吧。舉個無損壓縮的例子,假設(shè)原始文件包含本書文本。那么你在壓縮前和壓縮后得到的文件版本包含完全相同的文本——不會有一個字、空格或標(biāo)點(diǎn)符號不同。在我們?yōu)槊赓M(fèi)午餐感到欣喜若狂之前,我要加一個重要警告:無損壓縮算法并不能為所有文件都節(jié)省大量空間。但一個好的壓縮算法能為特定大類的文件節(jié)省大量空間。