數據壓縮入門

數據壓縮入門

《數據壓縮入門》是2020年人民郵電出版社出版的圖書,作者是[美] 柯爾特·麥克安利斯(Colt,McAnlis)、[美]亞歷克斯·海奇、[美]亞歷克斯·海奇(Aleks,Haecky) 。

基本介紹

  • 中文名:數據壓縮入門 
  • 作者:[美] 柯爾特·麥克安利斯(Colt,McAnlis)、[美]亞歷克斯·海奇、[美]亞歷克斯·海奇(Aleks,Haecky)
  • 出版社:人民郵電出版社
  • ISBN:9787115534170
內容簡介,作者簡介,目錄,

內容簡介

本書的主題是數據壓縮,也就是用最緊湊的方式來表示數據。本書先講解了5類數據壓縮算法,即變長編碼、統計壓縮、字典編碼、上下文模型和多上下文模型,然後介紹了香農的資訊理論,以及怎樣通過各種方法來突破熵,如統計編碼、自適應統計編碼、字典轉換、上下文數據轉換、數據建模等。本書還討論了數據壓縮中的一些要點,如多媒體數據壓縮和通用壓縮,並介紹了有損數據壓縮。本書最後說明了數據壓縮與你、你的公司以及未來的技術是如何相互關聯的。

作者簡介

柯爾特·麥克安利斯 (Colt McAnlis)
谷歌開發倡導者,專注於遊戲開發、壓縮技術和性能提升。擔任南衛理公會大學Guildhall學院的兼職教授,加州大學洛杉磯分校繼續教育學院講師,以及優達學城(Udacity)的講師。
亞歷克斯·海奇 (Aleks Haecky)
谷歌開發倡導者、培訓開發人員,從事性能提升、文檔編寫等幕後工作,在優達學城、谷歌開發者頻道也從事一些幕後工作。
【譯者簡介】
王凌雲
先後就讀於大連理工大學與北京師範大學,現從事科技信息服務工作。閱讀興趣廣泛,對數學、計算機、歷史、文學等有濃厚的興趣。除本書外,另譯有《度量:一首獻給數學的情歌》《軟體開發本質論》。

目錄

序 xiii
前言 xv
第 1章 並非無趣的一章 1
1.1 5類數據壓縮算法 1
1.2 惹人“憤怒”的克勞德 香農 2
1.3 關於數據壓縮,你必須知道的 3
第 2章 不容錯過的一章 9
2.1 理解二進制 9
2.1.1 十進制計數系統 9
2.1.2 二進制計數系統 10
2.2 資訊理論 12
2.2.1 二分查找 14
2.2.2 熵:表示一個數所需要的最少二進制位數 15
2.2.3 標準的數字長度 16
第3章 突破熵 17
3.1 理解熵 17
3.2 熵有什麼用處呢 19
3.3 理解機率 19
3.4 突破熵 20
3.4.1 示例1:增量編碼 21
3.4.2 示例2:符號分組 22
3.4.3 示例3:排列 22
3.5 資訊理論與數據壓縮 26
第4章 VLC 29
4.1 摩爾斯碼 29
4.2 機率、熵與碼字長度 31
4.3 VLC 33
4.3.1 運用VLC 34
4.3.2 創建VLC 37
4.3.3 幾個VLC示例 39
4.3.4 為數據集找到最適合的編碼方法 45
第5章 統計編碼 47
5.1 利用統計使數據壓縮接近熵 47
5.2 哈夫曼編碼 49
5.2.1 構造哈夫曼樹 49
5.2.2 生成碼字 50
5.2.3 編碼和解碼 52
5.2.4 實際的實現方法 52
5.3 算術編碼 53
5.3.1 找出正確的數 54
5.3.2 編碼 55
5.3.3 選擇正確的輸出值 57
5.3.4 解碼 57
5.3.5 具體實現 62
5.4 ANS 62
5.4.1 通過轉換表來編碼和解碼 62
5.4.2 創建備查表 64
5.4.3 使用ANS壓縮數據 66
5.4.4 解碼示例 67
5.4.5 壓縮是從哪裡來的 68
5.5 在實際壓縮中,選擇哪一種統計壓縮算法 69
第6章 自適應統計編碼 71
6.1 位置對熵的重要性 71
6.2 自適應VLC編碼 73
6.2.1 動態創建VLC表 73
6.2.2 字面值 75
6.2.3 重置 78
6.2.4 知道何時重置 79
6.2.5 實際中的套用 80
6.3 自適應算術編碼 80
6.4 自適應哈夫曼編碼 81
6.5 現代的選擇 81
第7 章 字典轉換 83
7.1 基本字典轉換 84
7.2 LZ算法 87
7.2.1 LZ算法的工作原理 88
7.2.2 編碼 92
7.2.3 解碼 93
7.2.4 壓縮LZ算法的輸出 94
7.2.5 LZ算法的變體 95
7.3 儘可能多地收集數據 96
第8章 上下文數據轉換 97
8.1 RLE 98
8.1.1 處理短行程問題 98
8.1.2 壓縮 99
8.2 增量編碼 101
8.2.1 XOR增量編碼 103
8.2.2 參照系增量編碼 104
8.2.3 修正的參照系增量編碼 105
8.2.4 壓縮增量編碼後的數據 107
8.2.5 那么它對文本有效嗎 107
8.3 MTF 107
8.3.1 消除搗亂符號的影響 109
8.3.2 壓縮MTF 109
8.4 BWT 110
8.4.1 順序很重要 111
8.4.2 BWT的工作原理 111
8.4.3 BWT的逆操作 112
8.4.4 具體的實現 114
8.4.5 壓縮BWT後的數據 115
第9 章 數據建模 117
9.1 馬爾可夫鏈 118
9.1.1 馬爾可夫鏈與壓縮 121
9.1.2 實際的實現 125
9.2 部分匹配預測算法 126
9.2.1 單詞查找樹 127
9.2.2 字元的壓縮 128
9.2.3 選擇一個合理的N值 130
9.2.4 處理未知的符號 130
9.3 上下文混合算法 130
9.3.1 模型的類型 131
9.3.2 混合的類型 132
9.4 下一代技術 133
第 10章 換個話題 135
10.1 多媒體數據壓縮 135
10.2 通用壓縮 136
10.3 實踐中的數據壓縮 137
第 11章 評價數據壓縮 139
11.1 數據壓縮的使用場景 139
11.1.1 線下壓縮,客戶端解壓 139
11.1.2 客戶端壓縮,雲端解壓 140
11.1.3 雲端壓縮,客戶端解壓 140
11.1.4 客戶端壓縮,客戶端解壓 141
11.2 數據壓縮的需求 141
11.3 壓縮率 142
11.4 壓縮性能 142
11.5 解壓性能 143
11.6 解碼流的能力 143
11.7 比較壓縮算法 144
第 12章 壓縮圖像數據 147
12.1 理解圖像質量與檔案大小 147
12.1.1 是什麼降低了圖像的質量 149
12.1.2 度量圖像質量 150
12.1.3 讓想法真正工作 152
12.2 圖像的尺寸很重要 152
12.3 選擇正確的圖像格式 153
12.3.1 PNG 154
12.3.2 JPG 154
12.3.3 GIF 155
12.3.4 WebP 156
12.3.5 現在,到了選擇的時刻 156
12.4 GPU 紋理格式 157
12.5 矢量格式 158
12.6 收穫的捷徑 160
第 13 章 序列化數據 161
13.1 了解常見的使用場景 162
13.1.1 伺服器動態生成的數據 162
13.1.2 伺服器擁有的靜態數據 162
13.1.3 客戶端動態生成的數據 162
13.1.4 客戶端擁有的靜態數據 162
13.2 序列化格式的問題 162
13.2.1 可讀文本 163
13.2.2 解碼時間長 164
13.3 更小的序列化數據 164
13.3.1 使用二進制序列化格式 164
13.3.2 重構列表以獲得更好的壓縮 165
13.3.3 組織數據以便高效獲取 166
13.3.4 將數據切分為適當的壓縮格式 168
第 14章 有損數據壓縮 171
第 15章 讓世界變得更小 173
15.1 數據壓縮與你 173
15.2 數據壓縮與盈利 173
15.2.1 用戶獲取與保持 173
15.2.2 運行成本 174
15.2.3 提前規劃 175
15.3 讓用戶的生活更美好更便宜 175
15.4 對下一步技術的思考 175
15.4.1 未來的50億用戶 176
15.4.2 行動網路 176
15.5 開始行動 176
數據壓縮術語表 179
關於作者 188
關於封面 188

相關詞條

熱門詞條

聯絡我們