在之前去馬賽克的科普中,我們知道在大多數時候,資訊是不能由少變多的,除了靠聯想,這也是目前“還原”圖片馬賽克唯一的辦法。
但在我們實際使用計算機的時候,有一種我們經常使用的技術——檔案的壓縮,解壓。這個過程難道不是資訊的由多到少,再由少到多的過程嗎?
還真不是。
檔案的資訊量並沒有在壓縮的過程中減少,因此解壓時也就不存在“增多”一說。
那壓縮檔案是如何做到在保留資訊含量的情況下,讓檔案變小的呢?
我們都知道,電腦上的資料都是以一連串的二進位制資訊,也就是“0”和“1”的形式儲存的。
比如電腦CPU,裡面是成千上萬的電晶體,這些電晶體只有兩種狀態,通電和斷電。“0”代表斷電,“1”代表通電。
再比如硬碟中儲存的並不是我們螢幕中看到的文字或圖片,而是硬碟中的碟片,透過磁化,用磁極S和N極代表數字“0”和數字“1”來儲存資訊的。
而一個“0”或“1”的大小就是一位元(Bit),8位元等於一子節(Byte),1024位元組就是我們更為常見的1KB。以此類推,1024KB等於1MB,1024MB等於1GB。
知道了資料的大小後,便可以來看電腦實際上在處理的二進位制編碼了。
「01000001表示字母A
01000010表示字母B
01000011表示字母C
01000100表示字母D」
這一段國際上常用的ASCII編碼中字母A-D對應的二進位制表示方法。不難看出這些編碼中含有大量重複的部分,比如D前面五位數字都是「01000」,每行都有「表示字母字樣」。
而壓縮檔案的原理,本質上就是透過找規律,簡化這些0和1之間的排列組合。
比如這裡就可以用上「字典演算法」壓縮這個檔案。
字典演算法,即把文字中出現頻率較多的單詞或詞彙組合做成一個對應的字典列表,並用特殊程式碼來表示這個單詞或詞彙,類似我們小時候解方程時把一個等式列為未知數。
如果這裡我們將「01000」列為X,「表示字母」列為Y,就可以這樣壓縮上面那段編碼:
「X001YA
X010YB
X011YC
X100YD」
換種方法解釋就是如果你說:
「我吃火鍋會拉肚子,我昨天吃火鍋了,我今天拉肚子了」
用字典演算法就可以將這句話壓縮成:
「我吃A會B,我昨天A了,我今天B了」
當然,同樣的內容,其實還可以用「固定位長演算法」,「RLE」等等演算法來進行壓縮,但原理都是透過找規律,再進行歸納整理,這就完成了一次壓縮。
而有的時候,有的檔案可以壓縮的很小,有的壓縮完卻幾乎沒有變化也是這個原因。內容相似之處較多時則容易壓縮的很小,反正則不容易壓縮。
在之前去馬賽克的科普中,我們知道在大多數時候,資訊是不能由少變多的,除了靠聯想,這也是目前“還原”圖片馬賽克唯一的辦法。
但在我們實際使用計算機的時候,有一種我們經常使用的技術——檔案的壓縮,解壓。這個過程難道不是資訊的由多到少,再由少到多的過程嗎?
還真不是。
檔案的資訊量並沒有在壓縮的過程中減少,因此解壓時也就不存在“增多”一說。
那壓縮檔案是如何做到在保留資訊含量的情況下,讓檔案變小的呢?
我們都知道,電腦上的資料都是以一連串的二進位制資訊,也就是“0”和“1”的形式儲存的。
比如電腦CPU,裡面是成千上萬的電晶體,這些電晶體只有兩種狀態,通電和斷電。“0”代表斷電,“1”代表通電。
再比如硬碟中儲存的並不是我們螢幕中看到的文字或圖片,而是硬碟中的碟片,透過磁化,用磁極S和N極代表數字“0”和數字“1”來儲存資訊的。
而一個“0”或“1”的大小就是一位元(Bit),8位元等於一子節(Byte),1024位元組就是我們更為常見的1KB。以此類推,1024KB等於1MB,1024MB等於1GB。
知道了資料的大小後,便可以來看電腦實際上在處理的二進位制編碼了。
「01000001表示字母A
01000010表示字母B
01000011表示字母C
01000100表示字母D」
這一段國際上常用的ASCII編碼中字母A-D對應的二進位制表示方法。不難看出這些編碼中含有大量重複的部分,比如D前面五位數字都是「01000」,每行都有「表示字母字樣」。
而壓縮檔案的原理,本質上就是透過找規律,簡化這些0和1之間的排列組合。
比如這裡就可以用上「字典演算法」壓縮這個檔案。
字典演算法,即把文字中出現頻率較多的單詞或詞彙組合做成一個對應的字典列表,並用特殊程式碼來表示這個單詞或詞彙,類似我們小時候解方程時把一個等式列為未知數。
如果這裡我們將「01000」列為X,「表示字母」列為Y,就可以這樣壓縮上面那段編碼:
「X001YA
X010YB
X011YC
X100YD」
換種方法解釋就是如果你說:
「我吃火鍋會拉肚子,我昨天吃火鍋了,我今天拉肚子了」
用字典演算法就可以將這句話壓縮成:
「我吃A會B,我昨天A了,我今天B了」
當然,同樣的內容,其實還可以用「固定位長演算法」,「RLE」等等演算法來進行壓縮,但原理都是透過找規律,再進行歸納整理,這就完成了一次壓縮。
而有的時候,有的檔案可以壓縮的很小,有的壓縮完卻幾乎沒有變化也是這個原因。內容相似之處較多時則容易壓縮的很小,反正則不容易壓縮。