楠木軒

一個二維碼能裝10T電影?看樣子我都能改變世界了

由 長孫秀芬 發佈於 科技

今天,差評君在網絡上愉快的摸魚衝浪的時候,偶然刷到這樣一條消息。一瞬間就將差評君從椅子上驚到了地板上。

大意是中國專利局公開了一項申請,有家公司發明了一個非常牛逼的壓縮算法,理論上能做到萬億分之一的壓縮比例

按照他的説法 10T 大小的內容我們也可以輕鬆壓縮到 6000 比特,換算下來只有 0.73 KB ,還不及一張表情包的大小。

這是啥水平?用這算法壓縮以後,上百部電影也只要一眨眼就能下載完。

而現在的二維碼技術可以做到單張二維碼存儲接近 3000 字節的信息,也就是説,只要一個小小的二維碼,就可以帶走數量龐大的電影,你説聽起來牛不牛逼??

這要是真的,對人類意義可是巨大。

不過在繼續討論它之前,差評君打算先和大家聊聊我們一般人認知的壓縮技術。

眾所周知,計算機數據會佔用存儲空間。為了節約空間,人們研究出了壓縮技術,分為「 有損壓縮 」和「 無損壓縮 」兩個領域。

其中有損壓縮指的就是像 MP3 、 JPG 一樣的文件,日常生活中我們用不着聽特別高清的音樂,看特別高清的圖片,因此會主動消除掉一些數據來減少空間

這類壓縮有個特點,就是我們得到的結果最多就是看個糊一點的圖片,不至於不能用。

但大多數其他情況下,我們是需要百分之百還原文件的,這時候就有了「 無損壓縮 」這回事兒。

這個方法的核心思路,就是用更少的信息「替換」表達原來的信息,打個比方,我們在和朋友描述電話號碼時「 1111 」轉而用「 4 個 1 」代替,這個過程少説了 1 個字,這也算是某種壓縮。

無損壓縮的過程有點像「 翻字典 」。

大家都知道英文單詞比較長,中文同意詞彙比較短,文言文則更短。。。一個好的壓縮算法就好比將幾十個字母的英文句子翻譯為十個字的文言文。

我們舉一個例子,比如我們需要壓縮這樣一串字符:「 abcabcaacabdaacabd 」

整個字符串非常的冗長,密密麻麻的擠在一起,只是看起來就已經很費眼睛了。

但是在仔細觀察後,可以發現在字符串中存在着多個重複的字符串「 abc 」「 aac 」以及「 abd 」

那麼只要我們建立一個對照翻譯表,用「 1 」代替字符串「 abc 」,用數字「 2 」代替字符串「 aac 」,用數字「 3 」代替字符串「 abd 」。

整個字符串可以簡化為了「 112323 」的數字串,相較於原始字符串已經精簡了許多。

如果更進一步,用「Ⅰ」代表「 11 」,用「Ⅱ」代表「 23 」,這樣字符串還可以精簡為「 Ⅰ Ⅱ Ⅱ 」

電腦裏的壓縮文件過程原理大概就是如此,只不過實際上文件不是隻有字符串,而且數據量比這個大得多。

解壓縮的原理自然也很容易想到,回到前面的例子中,我們只需要對照翻譯表將數字重新還原,就能夠得到原始字符串。

這樣一套操作邏輯就叫做字典編碼算法,所謂的翻譯對照表也就是算法中的「 字典 」,不論是什麼壓縮算法,都得帶着這本「 字典 」,也就是解碼參數

當然聰明的你可能已經發現了,這本字典完全可以換個方式寫:我們還可以將字符串分解成 abc abc acca bd acca bd ,就又得到了一種全新的壓縮方式。

不同的壓縮方式對應不同的文件格式,我們常見的有 rar/zip/7z 等等,其實就是在告訴電腦這是用什麼方式壓縮的。

而相應的的翻譯工具,則就是常見的壓縮軟件,相信不少人都被這張圖騷擾過↓

理論上來説,我們可以搞一波智障操作,這麼寫翻譯表:abcabcaacabdaacabd = 1 ,整個字符串只用一個數字就能代替了。

但這麼幹的話,字典本身的大小就和原文一樣了,再加上壓縮後的數字,信息量反倒變大了。

換成現實比方,就意味着你把一個 1 KB 的文件反向壓縮成了一個 1.1 KB 的玩意兒,所以説這是波智障操作。。。

所以説這事兒挺不簡單的,目前為止工程師們研究出了很多方法,最快的壓縮效率也只是接近 2 : 1 。

所以才説開頭那個萬億分之一的消息驚得讓我摔在了地上。

事實上,工程師怎麼實現是一回事,壓縮的極限比例其實能用數學工具算出來。

這就不得不提到一位天降猛男,信息論之父——克勞德 · 香農。

作為一個偉大的科學家,克勞德 · 香農提出了信息熵函數,而在後續學者的配合下,終結了這個疑問。

信息熵公式▼

總而言之,在這個宇宙裏,信息壓縮的比例是存在理論上限的,和信息的複雜程度有關,但是遠遠達不到萬億分之一,這個專利要真能達到萬億分之一,香農的棺材板都要壓不住了。。。

所以關於這篇專利的説法是真的嗎?為了求證,我去查看了一下專利的原始文檔。

果然,在文章並沒有與萬億級相關的字眼和描述,取而代之的則是千分之一和萬分之一的描述。

所以。。。又是一場營銷號折騰出來的鬧劇嗎?

也不是,儘管在文章中沒有提到萬億級壓縮,但是申請者對自己的專利也是信心滿滿:理論上任何數據都可以壓縮到只剩 2 個比特和解碼參數。

還記得前面提到的智障操作嗎?。。。壓縮到 2 個比特情況下沒提解碼參數有多大,這不耍流氓麼?

而且就算不談萬億級別的壓縮率,僅僅是萬分之一的壓縮率可以實現嗎?

可以,很簡單,但沒有任何意義:

假設我有個由 100 萬個 a 組成的字符串,那我就只需要用「 100 萬個 a 」這句話,就完成了這波極限操作。

説白了,這都是重複信息,原有信息那 100 萬個 a 看着長,根本就不包含有意義的內容。

還記得差評君以前介紹過的壓縮炸彈嗎?一個 42 KB 文件通過自我複製 N 遍達到 4.5 PB ,這玩意兒就是壓縮比高得嚇人,但一點卵用都沒。

總之,這個還在申請中的專利絕對不可能有網傳萬億分之一的壓縮比那麼誇張,專利文件裏寫到的「 任何數據都可以壓縮到只剩 2 個比特和解碼參數 」也多半是沒有實際意義的極端情況。

話説回來,這玩意兒要真推翻香農的定理或者是打了我的臉,那差評君高興還來不及呢:人類的信息科學一直都在解決信息處理和傳遞問題,要是真那麼牛逼,那我們飛出太陽系指日可待。