《数据压缩技术及C语言实例》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:侯阳编著
  • 出 版 社:北京:学苑出版社
  • 出版年份:1994
  • ISBN:7507708764
  • 页数:373 页
图书介绍:本书提供了各种不同的数据压缩技术的介绍

第一章 数据压缩简介 2

1.1读者 2

1.2 为什么用C语言? 2

1.3 哪种C? 3

1.4 成绩 6

1.5 全书结构 6

第二章 数据压缩专业词汇及历史 8

2.1 两个王国 8

2.2 数据压缩=建立模型+编码 8

2.3 破晓时分 9

2.4 编码 10

2.4.1 改进 11

2.5 建立模型的方法 12

2.5.1 统计建立模型的方法 12

2.5.2 字典方案 13

2.6 Ziv和Lempel 14

2.6.1 LZ77 14

2.6.2 LZ78 14

2.7 有损压缩 14

2.8 要知道的程序 15

第三章 破晓:最小冗余编码 17

3.1 香农-法诺算法 18

3.2 霍夫曼编码 20

3.3 用C写霍夫曼算法 22

3.3.1 BITIO.C 22

3.4 关于原型的提醒 28

3.5 MAIN-C.C和MAIN-E.C 29

3.5.1 MAIN-C.C 33

3.5.2 ERRHAND.C 34

3.6 进入霍夫曼代码 35

3.6.1 计数符号 36

3.6.2 保存计数 36

3.6.3 建造树 38

3.6.4 使用树 38

3.7 压缩程序代码 39

3.8 综合 49

3.8.1 性能 50

第四章 重大改进:自适应霍夫曼编码 53

4.1 自适应编码 53

4.2 更新霍夫曼树 54

4.2.1 如何交换 57

4.2.2 算法 57

4.2.3 增强 58

4.2.4 转义码 58

4.2.5 溢出问题 59

4.2.6 重定标的奖励 62

4.3 代码说明 62

4.3.1 数组的初始化 63

4.3.2 压缩主程序 64

4.3.3 扩展主程序 64

4.3.4 编码符号 65

4.3.5 更新树 67

4.3.6 译码符号 70

4.4 代码 71

第五章 优于霍夫曼:算术编码 91

5.1 困难 91

5.2 算术编码:向前一步 91

5.2.1 实际问题 94

5.2.2 复杂点 96

5.2.3 译码 97

5.2.4 优点是什么? 97

5.3 代码说明 98

5.3.1 压缩程序 98

5.3.2 扩展程序 99

5.3.3 初始化模型 100

5.3.4 读入模型 102

5.3.5 初始化编码器 103

5.3.6 编码过程 103

5.3.7 清洗编码器 105

5.3.8 译码过程 105

5.4 概述 107

5.5 代码 107

第六章 统计的建立模型方法 120

6.1 更高次序的模型建立 120

6.2 有限上下文的模型建立 120

6.3 自适应的模型建立 121

6.3.1 一个简单例子 121

6.3.2 用转义码作退路 124

6.3.3 改进 125

6.4 最高次序的模型 126

6.4.1 更新模型 126

6.4.2 转义概率 127

6.4.3 使用记分板 128

6.4.4 数据结构 129

6.4.5 最终接触:表1和表2 131

6.4.6 模型清洗 131

6.4.7 实现 132

6.5 结论 132

6.5.1 增强 132

6.6 ARITH-1.C清单 133

6.7 ARITH1E.C清单 141

6.8 ARITH-N.C清单 150

第七章 基于字典的压缩 173

7.1 例子 173

7.2 静态和自适应 174

7.2.1 自适应方法 174

7.2.2 典型例子 175

7.3 以色列的根 177

7.3.1 历史 177

7.4 ARC:MS-DOS字典压缩之父 178

7.4.1 字典压缩:在哪里表现 178

7.5 危险前景—专利 180

7.6 结论 180

第八章 滑动窗口压缩 181

8.1 算法 181

8.1.1 LZ77的问题 184

8.1.2 编码问题 185

8.2 LZSS压缩 185

8.2.1 数据结构 186

8.2.2 平衡行动 188

8.2.3 贪婪与最可能 189

8.3 代码说明 190

8.3.1 常量和宏 190

8.3.2 全局变量 191

8.4 压缩代码 192

8.4.1 初始化 194

8.4.2 主循环 195

8.4.3 退出代码 196

8.4.4 AddString() 196

8.4.5 DeleteString() 199

8.4.6 二叉树支持例程 200

8.5 扩展例程 201

8.5.1 改进 203

8.6 代码 203

第九章 LZ78压缩 211

9.1 LZ77可以改进么? 211

9.2 进入LZ78 212

9.2.1 LZ78详述 212

9.2.2 LZ78实现 214

9.3 有效的变种 216

9.4 还原的实现 217

9.4.1 问题 218

9.4.2 LZW实现 220

9.4.3 树的维护和遍历 220

9.5 压缩 221

9.6 还原 223

9.7 代码 224

9.8 改进 228

9.9 专利 235

第十章 语音压缩 236

10.1 数字音频概念 236

10.1.1 基础 236

10.1.2 采样变量 240

10.1.3 基于PC的声音 241

10.2 声音的无损压缩 242

10.2.1 问题和结果 243

10.2.2 有损压缩 245

10.2.3 安静压缩 245

10.3 压缩-扩展(Companding) 251

10.4 其它技术 257

第十一章 有损的图形压缩 258

11.1 进入压缩 258

11.1.1 统计和字典的压缩方法 259

11.1.2 有损压缩 259

11.1.3 差分调制 260

11.1.4 自适应编码 260

11.2 标准方法:JPEG 261

11.2.1 JPEG压缩 262

11.2.2 离散余弦变换 262

11.2.3 DCT的详细说明 264

11.3 为什么用DCT? 265

11.4 实现DCT 265

11.4.1 矩阵相乘 266

11.5 继续改进 267

11.5.1 DCT的输出 268

11.5.2 量化 269

11.5.3 选择量化矩阵 269

11.6 编码 271

11.6.1 Zig-Zag序列 271

11.6.2 熵编码 273

11.6.3 彩色怎么办? 274

11.7 样例程序 274

11.7.1 输入格式 275

11.7.2 代码说明 275

11.7.3 初始化 276

11.7.4 正向DCT例程 277

11.7.5 WriteDCTData例程 278

11.7.6 OutputCode例程 278

11.7.7 文件扩展 280

11.7.8 ReadDCTdata例程 281

11.7.9 输入DCT代码 281

11.7.10 反向DCT 282

11.8 完整的代码列表 283

11.9 支持程序 293

11.10 压缩结果 297

第十二章 一个归档软件包 300

12.1 CAR和CARMAN 300

12.1.1 CARMAN命令集 301

12.1.2 CAR文件 302

12.1.3 头 302

12.1.4 头的CRC 305

12.1.5 命令行处理 306

12.2 产生文件列表 308

12.2.1 打开档案文件 311

12.3 主处理循环 312

12.3.1 跳过/拷贝输入文件 316

12.3.2 文件插入 317

12.3.3 文件抽取 318

12.3.4 清除 319

12.4 代码 319

附录A:压缩程序的测试统计 356

附录B:压缩程序的测试程序 359

词汇表 367