數據壓縮入門
[美]柯爾特·麥克安利斯(Colt McAnlis)[美]亞歷克斯·海奇(Aleks Haecky) 王凌雲譯
- 出版商: 人民郵電
- 出版日期: 2020-04-01
- 定價: $414
- 售價: 8.5 折 $352
- 語言: 簡體中文
- 裝訂: 平裝
- ISBN: 7115534179
- ISBN-13: 9787115534170
- 此書翻譯自: Understanding Compression: Data Compression for Modern Developers
已絕版
買這商品的人也買了...
-
$450$441 -
$650$553 -
$403樹莓派<Raspberry Pi>實戰指南 (手把手教你掌握100個精彩案例)
-
$254GitHub 入門與實踐
-
$958深度學習
-
$403AWS Lambda 實戰 : 開發事件驅動的無服務器應用程序 (AWS Lambda in Action: Event-Driven Serverless Applications)
-
$254亞馬遜 AWS 雲基礎與實戰
-
$414$393 -
$380$296 -
$520$411 -
$490$382 -
$301Serverless 架構應用開發 Python 實現
-
$266機器學習開發者指南
-
$266網店運營推廣
-
$283一目瞭然學電子技術
-
$690$545 -
$250信息論與編碼技術(MATLAB實現)
-
$780$608 -
$1,000$780 -
$1,080$853 -
$680$530 -
$390$351 -
$500$390 -
$580$458 -
$780$616
相關主題
商品描述
本書的主題是數據壓縮,也就是用*緊湊的方式來表示數據。
本書先講解了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