第1章 绪论 1
1.1 基本概念 1
1.1.1 媒体及其分类 1
1.1.2 多媒体 3
1.2 多媒体的应用 6
1.2.1 大众传媒领域 6
1.2.2 消费电子领域 6
1.2.3 现代教育技术领域 7
1.2.4 多媒体通信领域 7
1.2.5 表演与会展 8
1.2.6 Web应用 8
1.2.7 物联网领域 9
1.2.8 军事领域 9
1.2.9 游戏与软件 10
1.3 体系结构 11
1.3.1 硬件平台层 11
1.3.2 操作系统层 12
1.3.3 应用系统层 13
思考与练习 13
第2章 编程环境与平台 15
2.1 Win32API编程基础 15
2.1.1 概述 15
2.1.2 Windows程序的运行机制 17
2.1.3 第一个Win32 API程序 18
2.1.4 编程实践:在窗口过程函数中添加代码 29
2.2 COM组件编程初步 31
2.2.1 组件 31
2.2.2 COM组件 33
2.3 多媒体应用设计面临的挑战 38
2.4 Microsoft Media Foundation 39
2.4.1 基本概念 39
2.4.2 体系结构 41
2.4.3 音视频管道 43
2.5 本书资源的使用及问题解决办法 45
思考与练习 46
第3章 数字音频基础 47
3.1 声音及其属性 47
3.1.1 声音的概念 47
3.1.2 声音的基本属性 47
3.2 从模拟到数字 48
3.2.1 采样 48
3.2.2 量化 49
3.2.3 编码 50
3.3 数字音频编码 50
3.3.1 PCM编码 50
3.3.2 增量调制编码 52
3.3.3 自适应差分脉冲编码调制 54
3.3.4 子带自适应差分脉冲编码调制 58
3.3.5 基于参数的语音编码 61
3.4 数字音频编码国际标准 62
3.5 本章小结 63
思考与练习 64
第4章 音频应用程序设计 66
4.1 波形音频文件分析 66
4.1.1 概述 66
4.1.2 RIFF WAVE Chunk 67
4.1.3 Format Chunk 67
4.1.4 Fact Chunk 68
4.1.5 Data Chunk 68
4.2 音频播放程序 69
4.2.1 利用PlaySound函数播放音频文件 70
4.2.2 基于MF Media Session的音频播放 77
4.3 音频转码程序 83
4.3.1 概述 83
4.3.2 函数分析 84
4.3.3 在转码程序中操作音频数据 101
4.4 本章小结 102
思考与练习 102
第5章 无损数据压缩算法 103
5.1 信息熵编码 103
5.1.1 预备知识 103
5.1.2 香农-范诺编码 104
5.1.3 赫夫曼编码 106
5.1.4 算术编码 108
5.2 行程编码 111
5.3 词典编码 112
5.3.1 基本思想 112
5.3.2 LZ77算法 114
5.3.3 LZSS算法 117
5.3.4 LZ78算法 118
5.3.5 LZW算法 122
5.4 本章小结 126
思考与练习 127
第6章 数字图像基础 128
6.1 数字图像的基本概念 128
6.1.1 图像的一般表示 128
6.1.2 采样与量化 129
6.1.3 像素与位深度 130
6.1.4 分辨率 130
6.2 颜色模型 131
6.2.1 RGB模型 131
6.2.2 RGBA模型 132
6.2.3 HSV模型 133
6.2.4 CMYK模型 134
6.2.5 YUV模型 134
6.3 数字图像的像素格式 136
6.3.1 真彩图像 136
6.3.2 伪彩图像 138
6.4 图像文件格式分析 139
6.4.1 BMP图像 139
6.4.2 GIF图像 144
6.5 图像压缩标准JPEG 146
6.5.1 JPEG有损压缩技术概览 146
6.5.2 JPEG算法的具体处理步骤 147
6.6 本章小结 150
思考与练习 151
第7章 图像处理与应用程序设计 152
7.1 图形图像开发包 152
7.1.1 GDI 152
7.1.2 Direct2D 153
7.1.3 Windows Imaging Component 153
7.2 位图的基本操作 153
7.2.1 数据结构 153
7.2.2 一个显示位图的基本程序 155
7.3 基于像素的位图操作 158
7.3.1 SetPixel函数 158
7.3.2 图像的倒立显示 159
7.3.3 图像的正立显示 162
7.3.4 分量图像的正立显示 163
7.3.5 灰度图像的正立显示 164
7.4 几个典型的图像处理算法 166
7.4.1 图像滤波 166
7.4.2 浮雕滤镜 170
7.4.3 图像融合 172
7.5 水波纹模拟 175
7.5.1 水波纹模拟算法原理 175
7.5.2 水波纹模拟程序的实现 178
7.6 本章小结 185
思考与练习 186
第8章 数字视频基础 187
8.1 模拟视频 187
8.1.1 扫描 187
8.1.2 电视制式 188
8.1.3 模拟电视信号的类型 189
8.2 模拟视频的数字化 192
8.2.1 概述 192
8.2.2 数字视频的分辨率格式 192
8.2.3 数字视频的采样格式 193
8.3 计算机系统中的数字视频数据 194
8.3.1 YUV的取值问题 195
8.3.2 YUV视频的存储格式 196
8.3.3 颜色空间和色差采样率的变换 199
8.4 编程实践:一种YUV文件的显示 203
8.4.1 YUV文件格式分析 203
8.4.2 显示YUV文件的基本程序 204
8.4.3 显示YUV文件的改进程序 207
8.5 本章小结 212
思考与练习 212
第9章 视频应用程序设计 213
9.1 视频播放 213
9.1.1 基于Media Foundation的视频播放应用概述 213
9.1.2 完整视频播放程序设计 216
9.2 视频特效 224
9.2.1 给视频添加字幕和图标 224
9.2.2 淡入淡出 226
9.3 视频捕获 229
9.3.1 基于Media Foundation的视频捕获概述 229
9.3.2 设备枚举模块示例 230
9.3.3 一个完整的视频捕获程序 232
9.4 运动对象检测与跟踪 243
9.4.1 研究背景 244
9.4.2 概念与定义 245
9.4.3 基本原理 246
9.4.4 算法描述 247
9.4.5 系统实现 249
9.5 本章小结 253
思考与练习 253
第10章 数字视频编码原理与标准 255
10.1 视频编码算法 255
10.1.1 编码原理 255
10.1.2 编码算法的基本框架 256
10.2 运动搜索算法 258
10.2.1 概述 258
10.2.2 搜索起点的选择 259
10.2.3 匹配准则 259
10.2.4 运动搜索算法 260
10.3 视频编码国际标准 262
10.3.1 H.26x系列标准 262
10.3.2 MPEG系列标准 267
10.3.3 视频编码标准的应用和性能比较 270
10.4 本章小结 271
思考与练习 272
第11章 网络多媒体基础 273
11.1 网络与分布式系统 273
11.1.1 计算机网络 273
11.1.2 分布式系统 274
11.1.3 分布式多媒体系统 275
11.2 多播 276
11.2.1 IP多播概述 277
11.2.2 多播用户模型 277
11.2.3 IGMP协议 278
11.2.4 IP多播路由协议 279
11.3 多媒体传输协议 281
11.3.1 RTP协议 281
11.3.2 RTCP协议 283
11.4 流媒体技术 285
11.4.1 流媒体技术的特点 285
11.4.2 典型流媒体协议分析 286
11.5 流媒体系统及其应用 292
11.5.1 主要流媒体系统简介 292
11.5.2 流媒体应用系统的组成 293
11.5.3 应用举例 294
11.6 Media Foundation的网络媒体源特性 307
11.6.1 网络源的创建 307
11.6.2 网络源的配置 308
11.7 视频会议系统 310
11.7.1 视频会议系统的构成 310
11.7.2 视频会议系统的应用 312
11.8 本章小结 313
思考与练习 313
第12章 网络多媒体应用程序设计 315
12.1 WinSock编程基础 315
12.1.1 C/S模型 315
12.1.2 客户端设计 316
12.1.3 服务器设计 322
12.2 远程桌面图像的传输 327
12.2.1 屏幕图像捕获 327
12.2.2 桌面图像的网络传输 332
12.2.3 系统应用 344
12.3 本章小结 346
思考与练习 346