作爲谷歌開發者佈道師,我爲什麼要寫這本通俗的《數據壓縮入門》(二)

數據壓縮無處不在,對現代計算來說它仍然像以前一樣必不可少。過去,1 GB 就已經很大了,數據以每秒幾千字節的速度傳輸。從某種意義上來說,我們已經經歷了一個完整的循環,從內存和帶寬有限的古董計算機時代,來到了內存有限且數據套餐十分昂貴的移動設備時代。

幸運的是,有很多工具、API 以及程序包可以幫我們壓縮數據。理解它們如何工作,有助於我們正確地選擇壓縮工具(或算法),而這又可以令用戶更高興,同時降低成本、增加收入。

數據壓縮的基礎是數學,讓我們坦然面對它。對大多數人來說,數學很難,真的很難,而且對於程序員曾經是最高的一道門檻。想想數據壓縮之父克勞德 • 香農(Claude Shannon),他的數學非常好,在黑板上隨手一寫就是一行行復雜的方程。

更瘋狂的是,現代程序員不需要了解數學。現在,8 歲的孩子都能上網,甚至在沒有上過代數課的情況下,就能通過自學教程發佈自己的網頁或應用程序。

我們相信,這就是過去 20 多年裏數據壓縮領域一直停滯不前的原因。雖然有 20 億人在使用移動設備,並且他們經常遇到內存不足和網絡連接不良等問題,但是數據壓縮技術仍然處於半停滯狀態。這是因爲懂數學的程序員不多。

當然也因爲數學比較難。

你可以看到,壓縮不是真的與數據有關。數據壓縮領域早期的創始人考慮的並不是數據,而是統計。他們尋找並發現了操縱數據集中符號的概率分佈的不同方法,並利用這些方法來生成包含同樣的信息但更小的數據集。

隨着計算機技術越來越普遍、越來越去數學化,普通程序員需要知道的統計學知識和其他高等數學知識也越來越少。因此,儘管 21 世紀初出現了計算機史上最大規模的技術繁榮,整個數據壓縮領域卻只取得了兩三項技術進展。

因爲數據壓縮很難。因爲它以數學爲基礎。

現在,我們從公平和實用的角度來看待這個問題。如今,大多數程序員和內容開發人員不需要懂得高等數學,也不需要理解壓縮的工作原理,因爲他們只需要獲得一個像樣的數據壓縮庫,再把數據扔給它,就可以到處使用壓縮後的數據了。

然而,向前看,這還不夠。根據預測,到 2025 年,將有 50 億人使用計算機並通過互聯網傳輸數據。想想那時,數據量會急劇增長,我們會有太多的數據,運營商的傳輸速度會不夠快,數據倉庫又太小而無法容納這些數據。當然,一個解決方法就是使用尚未發明出來的創新算法,實現更快、更好的壓縮。

這自然要用到數學。而數學又很難。

另一個解決方法是教那些願意學的人理解數據壓縮的工作原理。因此,你不再是隨便拿到某個壓縮工具就去使用,而是可以選擇最好的壓縮工具,並將數據以最高效的方式提供給用戶。

這就是本書的寫作動機。我們試圖將數據壓縮這一學科中大量難以理解的內容簡化爲普通人都能理解的內容,並且讓他們能將這些知識應用到日常的數據需求中。我們試着儘可能少用數學,儘量用圖、表和數據流的形式來解釋數據壓縮的基本原理。與柯爾特在 YouTube 上的 Compressor Head 系列視頻相似,我們希望能通過本書教給任何高中以上文化水平的讀者一些數據壓縮知識,即使你不是程序員也不要緊。

不過,我們要坦誠地告訴讀者:如果你真想理解這些內容,就必須做一些思維訓練。就像騎自行車一樣,數據壓縮還是比較難的,只有你真正領會了其中的要點,一切才變得有意義起來。但在這之前,你必須堅持下去,並通過例子加深自己的理解。

有一點需要明確,本書的目標不是讓你成爲壓縮專家,因爲那需要相當深厚的數學功底(這很難做到),而是讓你理解壓縮算法,這意味着我們有時會使用恰當的術語,有時則會使用雖然不太正確但更具描述性的術語。掌握這些術語也許還不足以讓你與其他數據壓縮專業人員在茶歇時隨心交流。我們想爲你提供足夠多的信息,以確保你做出正確的有關數據壓縮的商業決策。

最後,老實說,數據壓縮真的很酷。當然,這是我們的想法,希望當你深入閱讀本書後,也會這樣認爲。在寫這本書時,我們覺得很開心,也希望你能從數據壓縮知識的學習中獲得樂趣。

谷歌開發高手通俗講解

5類數據壓縮算法 

《數據壓縮入門》

[美] 柯爾特·麥克安利斯等 著

王凌雲 譯

5G 時代即將到來,隨之而來的是鋪天蓋地的數據洪流。在 5G 時代成功獲取用戶並提升轉化率,離不開數據壓縮的專業技能。

本書從理論和實踐兩方面入手,面向開發人員講解數據壓縮算法,並幫助開發人員選擇合適的數據壓縮工具。書中通過講解清晰、步驟詳細的示例,將數據壓縮算法化繁爲簡,幫助開發人員做出正確的有關數據壓縮的商業決策,從而實現客戶更多、事業更興、利潤更高。

☟ 一鍵擁有

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章