VC下调用ACM音频编程接口压缩Wave音频
日期:2007年9月12日 作者: 查看:[大字体 中字体 小字体]-
摘要:本文介绍了在Microsoft Visual C++ 6.0下如何调用ACM(Audio Compression Manager,音频 压缩管理器)音频压缩编程接口对原始录入的Wave音频进行数据压缩。
关键字:ACM、CODECs、Wave音频、音频编码压缩
引言
音频和视频是多媒体应用程序向用户提供信息的主要方式,这些音频、视频数据一般都具有较高的采样率,经过压缩的原始数据才具有实用价值,否则不仅要占用大量存储空间而且在播放或进行网络传输时效率也是非常低下的,所以音频、视频数字压缩编码在多媒体应用中有着广泛而又重要的用途。本文主要对音频的编码压缩作了阐述。
音频的编码压缩方式有许多种,如基于ITU-T G.728语音编码协议的LD-CELP 低时延码激励线性预测编码、基于ITU-T G.711语音编码协议的PCM(Pulse Code Modulation ,脉冲编码调制)编码以及我们非常熟悉的GSM数字蜂窝移动电话的语音编码标准等等。这些不同的压缩方式有着不同的数据压缩比和还原音质,具体的编码格式和算法更是大相径庭。多数协议都比较复杂,普通程序难以实现其加、解压算法,而为多媒体提供了较强支持的Windows 98操作系统引入了ACM和VCM技术,用来管理系统中存在的所有的音频和视频编、解码器(Coder-Decoder,即CODECs,用来实现音频、视频数据编解码的驱动程序)。可以通过它们提供的编程接口调用系统中存在的现成的编解码器来实现音频数据的加、解压。Windows 98系统自带的音频CODECs 支持一些早期的音频数据压缩标准,如ADPCM (Adaptive Differential Pulse Code Modulation,自适应差分脉冲编码调制)编码等,而Internet EXPlorer 5.0 等应用程序包含的音频CODECs支持一些较新 的压缩标准, 如MPEG Layer 3等。本文所要介 绍的就是ACM音频压缩接口的编程方法,所使用的编程工具为Microsoft Visual C++ 6.0。
实现思路
尽管一个CODEC在理论上能够用于压缩、解压缩任一种数据流,但还是设计有各种各样的CODECs 以实现更高的压缩比、更高的保真度或实时压缩性能来压缩某种特定的数据类型。例如,把获取很高的视频压缩数据压缩率的最好方法应用到音频数据时未必就能得到相同的效果。
压缩音频数据的主要原理是降低存储某一声音序列所需的数据量。少的数据量就意味着声音所占有的空间更少,就能够以更快的速度通过MODEM在网络上传递。如果数据以Windows系统所支持的某种通用格式压缩的话,就可不经手工解压缩而直接播放--系 统将使用它自己的CODECs解压缩数据并播放。Windows 98本身附带有几种标准的CODECs,如DSP Group,Inc. TrueSpeech CODEC等。因此我们写的任何应用于 Windows 98下的程序都可应用这些CODEC,具体系统中都存在有哪些CODECs可以在控制面版的"多媒体"选项的"设备"标签页中查到。
CODEC 支持从源音频格式到目标格式的转换,而在实际应用中, 可能某种CODEC 不支持直接将源音频格式转换成目标格式,比如我们通过麦克风向多媒体计算机录入了一些频率为11025Hz、8位数据、单声道的PCM数据,如果选用系统的TrueSpeech CODEC进行处理,就会引起失败,因为这种CODEC只能处理频率为8KHz,16位单声道的数据。所以转换时要采取两步转换法,即先将源格式转换成一种中间格式,再将此中间格式转换成目标格式,因为线性PCM 编码 最为简单,且为绝大多数CODEC 所支持,所以一般中间格式都选为线性PCM 格式的一种。比如就可以先将原始数据转换成TrueSpeech CODEC所支持的中间PCM格式,然后再将其通过TrueSpeech CODEC转换成最终的压缩格式。 - [1] [2] [3] [4] [5] 下一页
-
- VC下调用ACM音频编程接口压缩Wave音频 相关文章:
- ·大学生思想状况调查报告(下)
- ·进程调度模拟程序
- ·客户端回调实现gridView无刷新分页
- ·教你如何调试CISCO路由器(上)
- ·教你如何调试思科路由器
- ·19宽屏分辨率不能调到1440*900?
- ·路由器调试大全
- ·.NET调用Oracle存储过程,使用数组类型的参数(如ArrayList)
- ·图文详解:如何调整光驱激光头功率
- ·Photoshop调色实例:让暗黄肤色变白
- VC下调用ACM音频编程接口压缩Wave音频 相关软件
- ·串口调试助手 V4.0
- ·SoundFaction Mixer(音量调节专家) V1.1.0 汉化版
- ·ComONE串口调试工具 V1.0.0.2
- ·犯罪现场调查:谋杀的三维(CSI 3 Dimensions of Murder)
- ·Commix 工业控制串口调试工具 V1.3
- ·TCP/UDP应用开发调试助手 V3.1
- ·星月电脑硬件销售及借调管理系统免费版 V5.1
- ·系统调度精灵 V1.0
- ·MP3调音器(MP3Gain) V1.3.5c1.0 汉化版
- ·网络调试助手(CM精装版) V2.7
- 特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作
- 者.文章版权归文章原始作者所有.对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转
- 载的文章有版权问题请联系编辑人员,我们尽快予以更正. 转载请注明来源:http://www.hackhome.com
上一篇:浅析c/c++中的指针
精品推荐
热点TOP10
- ·C语言教程第六章:指针
- ·C/C++笔试、面试题目大汇总
- ·MSComm控件使用详解
- ·学生成绩管理系统实习
- ·Windows下C语言网络编程快速入门
- ·飞机订票系统设计
- ·进程调度模拟程序
- ·c#.net连接access操作类
- ·打字游戏
- ·C#基础概念二十五问
- ·makefile规则
- ·C语言的常用库函数使用方法分析及用途
- ·Windows编程基础 - 概述
- ·c语言中的结构(struct)和联合(union)简介
- ·一个简单的链表程序
- ·GDB 的文档
- ·漫谈C++ Builder多线程编程技术
- ·VC下调用ACM音频编程接口压缩Wave音频
- ·C语言教程第五章:函数
- ·ASP.NET在线用户列表精确版——解决用户意外退出在线列表无法及时更新问题
特别推荐
- ·C#基础概念二十五问
- ·利用C#远程存取Access数据库
- ·入门教程:实例详解C++友元
- ·C语言基础教程(三)输入输出函数及控制流程语句
- ·VC下调用ACM音频编程接口压缩Wave音频
- ·如何在C/C++中调用Java
- ·设计的一个计算器类的源代码,很简陋哦,请各位高手不要见笑!
- ·gSOAP中内存的使用
- ·Windows下C语言网络编程快速入门
- ·C语言教程第六章:指针
- ·漫谈C++ Builder多线程编程技术
- ·学生成绩管理系统实习
- ·用C#实现pdf文件的完整性验证
- ·将程序从托管扩展 C++ 迁移到 C++/CLI(1)
- ·链表的c语言实现(六)
- ·C语言库函数 (D类字母)
- ·用AVIFile函数制做AVI文件基本步骤
- ·利用C++实现的贪吃蛇游戏
- ·Windows API-GDI入门基础知识详解(3)
- ·C语言库函数 (C类字母)
