1 / 5
文档名称:

wave音频文件格式.doc

格式:doc   页数:5页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

wave音频文件格式.doc

上传人:xxj16588 2016/2/13 文件大小:0 KB

下载得到文件列表

wave音频文件格式.doc

文档介绍

文档介绍:WAVE文件的压缩与解压缩[转帖]一、概述:本文叙述了如何通过IMA-ADPCM压缩和解压缩算法来完成从IMA-ADPCM文件转换为PCM文件的过程。主要包括的内容有:PCM和IMA-ADPCMWAVE文件内部结构的介绍,IMA-ADPCM压缩与解压缩算法,以及如何生成特有的音频压缩格式文件等三方面的内容。二、WAVE文件的认识WAVE文件是计算机领域最常用的数字化声音文件格式之一,它是微软专门为Windows系统定义的波形文件格式(WaveformAudio),由于其扩展名为"*.wav"。wave文件有很多不同的压缩格式,而且现在一些程序生成的wave文件都或多或少地含有一些错误。这些错误的产生不是因为单个数据压缩和解压缩算法的问题,而是因为在压缩和解压缩后没有正确地组织好文件的内部结构。所以,正确而详细地了解各种WAVE文件的内部结构是成功完成压缩和解压缩的基础,也是生成特有音频压缩格式文件的前提。最基本的WAVE文件是PCM(脉冲编码调制)格式的,这种文件直接存储采样的声音数据没有经过任何的压缩,是声卡直接支持的数据格式,要让声卡正确播放其它被压缩的声音数据,就应该先把压缩的数据解压缩成PCM格式,然后再让声卡来播放。(ResourceInterchangeFileFormat,"资源交互文件格式")格式来组织内部结构的。RIFF文件结构可以看作是树状结构,其基本构成是称为"块"(Chunk)的单元,最顶端是一个“RIFF”块,下面的每个块有“类型块标识(可选)”、“标志符”、“数据大小”及“数据”等项所组成,块的结构如表1所示:上面说到的“类型块标识”只在部分chunk中用到,如“WAVE”chunk中,这时表示下面嵌套有别的chunk,当使用了“类型块标识”时,该chunk就没有别的项(如块标志符,数据大小等),它只作为文件读取时的一个标识。先找到这个“类型块标识”,再以它为起来读取它下面嵌套的其它chunk。每个文件最前端写入的是RIFF块,每个文件只有一个RIFF块。从表2中可以看出它的结构:非PCM格式的文件会至少多加入一个“fact”块,它用来记录数据解压缩后的大小。(注意是数据而不是文件)这个“fact”块一般加在“data”块的前面。,这些区别可以通过两者的WAVEFORMAT结构来区分。下面以PCM和IMA-ADPCM来进行对比:WAVE的基本结构WAVEFORMATEX结构定义如下:typedefstruct{WORDwFormatag;//编码格式,包括WAVE_FORMAT_PCM,//WAVEFORMAT_ADPCM等WORDnChannls;//声道数,单声道为1,双声道为2;DWORDnSamplesPerSec;//采样频率;DWORDnAvgBytesperSec;//每秒的数据量;WORDnBlockAlign;//块对齐;WORDwBitsPerSample;//WAVE文件的采样大小;WORDsbSize;//PCM中忽略此值}WAVEFORMATEX;PCM的结构就是基本结构;IMAADPCMWAVEFORMAT结构定义如下:Typedefstruct{WAVEFORMAT