《Visual C++音频/视频技术开发与实战》PDF下载

  • 购买积分:18 如何计算积分?
  • 作  者:张玲玲编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2012
  • ISBN:9787302279860
  • 页数:615 页
图书介绍:本书由浅入深地讲解了使用Visual C++ 2010开发音频和视频项目的基本知识。

第一篇 基础篇 3

第1章 音频/视频技术的现状 3

1.1 了解一些音频、视频文件格式 3

1.1.1 音频格式 3

1.1.2 视频格式 5

1.2 常用编解码技术介绍 6

1.2.1 音频的编码和解码 6

1.2.2 视频的编码和解码 9

1.2.3 音频视频编码方案 10

1.3 编/解码技术的发展 10

1.4 不得不说的音视频处理平台 12

1.5 必备的常用音视频开发工具 12

1.5.1 Visual C++集成开发工具 12

1.5.2 多媒体API DirectX 17

1.5.3 CCS开发系统 33

第2章 与MFC深情相拥 38

2.1 MFC印象 38

2.1.1 了解MFC编程的特点 38

2.1.2 关于MFC类的分层结构 39

2.1.3 MFC中的WinMain()函数 39

2.2 消息交流的意义 40

2.2.1 消息概述 40

2.2.2 Windows句柄 42

2.2.3 传送消息 42

2.2.4 消息与事件 43

2.3 使用对话框 43

2.3.1 构建对话框应用程序 44

2.3.2 设置对话框属性 47

2.3.3 常见对话框的种类 52

2.4 控件 58

2.4.1 Windows公共控件 58

2.4.2 ActiveX控件 59

2.5 MSDN中的巨大资源 62

第二篇 DirectX篇 67

第3章 DirectSound,天籁之音靠你实现 67

3.1 什么是缓冲区 67

3.1.1 缓冲区的种类 67

3.1.2 缓冲区通知 67

3.2 DirectSound开发基础 69

3.2.1 DirectSound和Direct Music 69

3.2.2 DirectSound SDK的结构 70

3.2.3 DirectSound的播放功能 71

3.2.4 开发步骤 72

3.3 DirectSound音频开发对象 73

3.3.1 DirectSound对象介绍 73

3.3.2 使用DirectSound设备对象 74

3.3.3 使用DirectSound缓冲区对象 78

3.4 神奇的WAV数据 87

3.4.1 WAVE文件结构 87

3.4.2 使用WAV数据 88

3.4.3 读取WAV数据 89

3.4.4 计算WAV声音的持续时间 89

3.4.5 三种播放WAV文件的方法 90

3.5 DirectSound环境也需要搭建 95

3.5.1 DirectSound开发环境配置 95

3.5.2 配置开发环境 97

3.6 梳理播放音频文件的过程 100

3.6.1 第一步:创建DirectSound对象 100

3.6.2 第二步:设置设备协作级别 100

3.6.3 第三步:创建播放缓冲区 101

3.6.4 第四步:创建DirectSound Buffer对象 104

3.7 小试牛刀——打造一个多彩的音频播放器 106

3.7.1 创建项目程序框架 106

3.7.2 添加控件和变量 107

3.7.3 封装CDirectSound类实现DirectSound 108

3.7.4 对话框界面操作 118

3.7.5 编译和调试 121

3.8 总结DirectSound音频编程的步骤 122

第4章 混音和3D音效编程 124

4.1 混音开发技术 124

4.1.1 混音技术原理 124

4.1.2 小试牛刀——实现三路音频混音 125

4.2 DirectSound 3D技术 130

4.2.1 DirectSound 3D介绍 130

4.2.2 听众空间参数 131

4.2.3 获取3D听者 133

4.2.4 三种处理模式 134

4.2.5 声音的锥效应 135

4.2.6 DirectSound 3D缓冲区对象 135

4.2.7 试试声音特技 136

4.3 小试牛刀——实现3D音效 138

4.3.1 创建项目程序框架 138

4.3.2 添加控件和变量 139

4.3.3 实现流程分析 141

4.3.4 编译和调试 155

第5章录 制音频 158

5.1 如何实现声音的录制 158

5.1.1 录音的基本原理 158

5.1.2 剖析实现流程 159

5.2 小试牛刀——用DirectSound录制音频 167

5.2.1 封装类 167

5.2.2 管理声音的函数 170

5.2.3 编译和调试 180

5.3 Windows CE下的录音程序 181

5.3.1 Windows CE环境 181

5.3.2 使用缓冲实现音频回环录制 182

5.3.3 小试牛刀——一个功能强大的录音程序 187

第6章 DirectMusic音频开发 195

6.1 什么是DirectMusic 195

6.1.1 组成 195

6.1.2 功能 195

6.2 DirectMusic的体系结构 196

6.2.1 核心层和接口 196

6.2.2 DirectMusic的对象和接口 196

6.2.3 DirectMusic的数据流 199

6.2.4 DirectMusic的消息 200

6.2.5 可下载银色技术(DLS) 203

6.2.6 Microsoft软件合成器 203

6.2.7 小试牛刀——打造一个音乐演奏器 203

6.3 小试牛刀——打造回音和测量工具 206

6.3.1 实例分析 206

6.3.2 具体实现 207

第7章 DirectShow来了 220

7.1 DirectShow基础 220

7.1.1 DirectShow介绍 220

7.1.2 剖析DirectShow的构成 221

7.1.3 常用的DirectShow接口 224

7.2 搭建DirectShow SDK开发环境 225

7.2.1 获取DirectShow SDK 225

7.2.2 安装DirectShow SDK 225

7.3 配置DirectShow SDK开发环境 228

7.3.1 生成DirectShow SDK库 228

7.3.2 配置Visual C++ 2010 233

7.3.3 几个调试问题的解决方法 235

7.4 小试牛刀——使用DirectShow技术 239

7.4.1 滤镜和图像滤镜介绍 239

7.4.2 编写一个DirectShow程序 240

7.4.3 使用graphedit.exe播放AVI文件 241

7.4.4 编程实现播放AVI文件 242

第8章 DirectShow核心技术分析 246

8.1 Filter Graph及其组成 246

8.1.1 DirectShow中的Filter 246

8.1.2 Media Type(媒体类型) 247

8.1.3 媒体样本Samples和分配器Allocators 250

8.2 构建Filter Graph 250

8.2.1 链表构建组件 251

8.2.2 Graph构建概述 251

8.2.3 智能连接详解 252

8.3 数据流在Filter Graph中的流动 253

8.3.1 传输(Transports) 255

8.3.2 样本Samples和分配器Allocators 255

8.3.3 Filter状态 257

8.3.4 拉模式 258

8.4 事件通知机制(Event Notification) 259

8.4.1 从队列中取事件 259

8.4.2 当事件发生时 260

8.5 时间的意义 262

8.5.1 参考时钟 262

8.5.2 时钟时间 263

8.5.3 时间戳 263

8.5.4 实时源(Live Source) 264

8.6 动态重建可靠吗 266

8.6.1 动态重连 266

8.6.2 Filter链 268

8.7 剖析SDK基类源码 269

8.7.1 COM实现部分和部分辅助源码 270

8.7.2 与Pin密切相关的类 274

8.7.3 CBaseFilter类 277

8.7.4 CSource类 280

8.7.5 CTransformFilter类 281

8.7.6 CBaseRenderer类 282

8.7.7 CBaseAllocator类 284

8.8 小试牛刀——开发一个视频播放器 286

8.8.1 系统分析和设计 287

8.8.2 实现媒体控制类 294

8.8.3 创建播放器主题 304

8.8.4 添加背景图片 313

第9章 DiectShow基本应用 314

9.1 DirectShow的基本应用 314

9.1.1 视频提交(Video Rendering) 314

9.1.2 枚举系统的设备和过滤器 317

9.1.3 连接两个Filter 321

9.1.4 获得Filter或者Pin的接口指针 322

9.1.5 查找与某个Filter的上下相连的Filter 324

9.2 DirectShow SDK典型开发案例 327

9.2.1 用DirectShow实现视频马赛克处理 327

9.2.2 DirectShow驱动摄像头 334

9.2.3 DirectShow视频采集 338

9.2.4 录制视频 349

9.2.5 音频采集 354

9.2.6 DirectShow在网络方面的应用 357

9.3 编写自己的Filter 358

9.3.1 配置开发环境 358

9.3.2 创建工程 359

9.3.3 为Filter创建入口函数 360

9.3.4 实现Filter的类厂对象 361

9.3.5 实现自己的Filter 363

9.3.6 最后的总结 365

第10章 以VFW实现视频处理 367

10.1 揭开VFW的神秘面纱 367

10.1.1 VFW概述 367

10.1.2 VFW开发流程 367

10.1.3 VFW视频捕获流程 368

10.1.4 视频编辑和播放 369

10.2 VFW的视频预览 370

10.2.1 基本步骤 370

10.2.2 编码演示 372

10.3 小试牛刀——用VFW实现视频捕获和预览 373

10.3.1 建立单文档应用程序 373

10.3.2 创建视频窗口 374

10.3.3 创建回调函数 375

10.3.4 设置视频图像 377

10.3.5 捕获预览视频 378

10.3.6 设置视频格式和图像参数 380

10.3.7 编码、解码捕获的视频 381

10.3.8 打开文件操作 382

10.3.9 窗口诊断处理 383

10.3.10 实现CvfwappDoc类的接口 383

10.4 视频压缩管理器 385

10.4.1 视频压缩管理器初步 385

10.4.2 视频压缩管理器初步 386

10.4.3 三个重要的函数 390

10.4.4 小试牛刀——使用VCM编码、解码 392

10.5 使用XviD CODEC算法 397

10.5.1 XviD基础 397

10.5.2 编译XviD 400

10.5.3 小试牛刀——演示XviD编码、解码 401

第三篇 编码、解码篇 413

第11章 MMX带来新的体验 413

11.1 MMX指令基础 413

11.1.1 MMX多媒体扩展 413

11.1.2 MMX指令剖析 414

11.1.3 CPU寄存器 419

11.2 MMX内联汇编的一般原则 420

11.3 MMX在C++中的使用 421

11.4 MMX代码开发规则 423

11.4.1 开发规则 423

11.4.2 开发建议 423

11.4.3 MMX代码开发策略 424

11.5 小试牛刀——MMX编程实例 425

第12章 SSE编程 440

12.1 SSE基础 440

12.1.1 SSE指令 440

12.1.2 其他的几种技术 441

12.2 SSE/SSE2剖析 442

12.2.1 SSE/SSE2原理 443

12.2.2 SSE/SSE编程设计 444

12.2.3 SSE指令简述 446

12.3 小试牛刀——SSE编程实例 458

12.3.1 SSETest项目 458

12.3.2 SSESample项目 461

第13章 最流行的DM642 465

13.1 认识TMS320DM642 465

13.2 CCS集成开发环境简介 466

13.2.1 CCS集成开发环境简介 466

13.2.2 DSP/BIOS插件 467

13.2.3 硬件仿真和实时数据交换 470

13.2.4 CCS文件和变量 470

13.3 常见应用介绍 473

13.3.1 DSP DM642上移植Yaffs2 473

13.3.2 基于TMS320C64x/DM64x的视频编码优化 475

13.3.3 DM642视频采集与回放 478

13.3.4 视频会议系统的主流解决方案与技术趋势 482

13.4 DSP视频算法优化 487

13.4.1 基于DSP视频算法系统优化策略 488

13.4.2 基于DSP的信道译码算法优化 491

13.5 基于DSP的JPEG图像解码算法的实现 495

13.5.1 JPEG图像算法基础 496

13.5.2 小试牛刀——JPEG编码算法实现DSP优化 498

第14章 MPEG-4编/解码分析 508

14.1 MPEG-4编/解码基础 508

14.1.1 基于对象的MPEG-4视频编码 508

14.1.2 XviD介绍 508

14.2 MPEG-4编/解码剖析 509

14.2.1 MPEG-4视频编码 509

14.2.2 MPEG-4视频解码 523

14.2.3 销毁解码器 535

14.3 DM642下实现XviD CODEC优化 537

14.3.1 水平方向插值补偿 537

14.3.2 垂直方向插值补偿 538

14.3.3 斜角插值补偿 540

14.4 运行XviD CODEC系统 542

14.4.1 YUV原始视频数据及其显示 542

14.4.2 VC平台编译\运行XviD CODEC 543

14.4.3 系统运行效果 545

第15章 H.264/AVC带来不一样的感觉 547

15.1 H.264/AVC基础 547

15.1.1 技术特点 547

15.1.2 编码结构与格式 549

15.2 X264视频编码从此开始 553

15.2.1 X264应用工程 554

15.2.2 libx264编码库 561

15.2.3 视频帧的存放和获取 562

15.2.4 视频帧压缩编码VCL 565

15.2.5 码流NAL打包输出 572

15.3 X264核心模块的MMX/DSP汇编优化 573

15.3.1 MMX/DSP汇编优化 574

15.3.2 DM642线性汇编优化 574

第四篇 综合实战篇 581

第16章 一切皆有可能——打造一个视频监控系统 581

16.1 系统分析 581

16.1.1 功能分析 581

16.1.2 系统目标 582

16.1.3 功能结构 582

16.1.4 系统预览 582

16.2 设计数据库 584

16.3 开发前的准备 584

16.3.1 选购监控卡 584

16.3.2 准备软件 585

16.3.3 安装监控卡 585

16.4 实现核心模块 586

16.4.1 设计公共模块 586

16.4.2 设计主窗体 592

16.5 其他辅助功能模块 605

16.5.1 设计管理员登录模块 605

16.5.2 监控管理 608

16.5.3 广角自动监控模块 611

16.5.4 视频回放模块 613

参考文献 615