wave文件(.wav)格式、PCM数据格式

上传人:平*** 文档编号:9861458 上传时间:2017-10-04 格式:DOCX 页数:7 大小:108.20KB
返回 下载 相关 举报
wave文件(.wav)格式、PCM数据格式_第1页
第1页 / 共7页
wave文件(.wav)格式、PCM数据格式_第2页
第2页 / 共7页
wave文件(.wav)格式、PCM数据格式_第3页
第3页 / 共7页
wave文件(.wav)格式、PCM数据格式_第4页
第4页 / 共7页
wave文件(.wav)格式、PCM数据格式_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《wave文件(.wav)格式、PCM数据格式》由会员分享,可在线阅读,更多相关《wave文件(.wav)格式、PCM数据格式(7页珍藏版)》请在金锄头文库上搜索。

1、wave 文件(*.wav)格式、PCM 数据格式1. 音频简介经常见到这样的描述: 44100HZ 16bit stereo 或者 22050HZ 8bit mono 等等.44100HZ 16bit stereo: 每秒钟有 44100 次采样, 采样数据用 16 位(2 字节)记录, 双声道( 立体声);22050HZ 8bit mono: 每秒钟有 22050 次采样, 采样数据用 8 位(1 字节) 记录, 单声道;当然也可以有 16bit 的单声道或 8bit 的立体声, 等等。采样率是指:声音信号在“模数”转换过程中单位时间内采样的次数。采样值是指每一次采样周期内声音模拟信号的积

2、分值。对于单声道声音文件,采样数据为八位的短整数(short int 00H-FFH) ;而对于双声道立体声声音文件,每次采样数据为一个 16 位的整数(int) ,高八位(左声道)和低八位(右声道)分别代表两个声道。人对频率的识别范围是 20HZ - 20000HZ, 如果每秒钟能对声音做 20000 个采样, 回放时就足可以满足人耳的需求. 所以 22050 的采样频率是常用的, 44100 已是 CD 音质, 超过48000 的采样对人耳已经没有意义。这和电影的每秒 24 帧图片的道理差不多。每个采样数据记录的是振幅, 采样精度取决于储存空间的大小:1 字节 (也就是 8bit) 只能记

3、录 256 个数, 也就是只能将振幅划分成 256 个等级;2 字节 (也就是 16bit) 可以细到 65536 个数, 这已是 CD 标准了;4 字节 (也就是 32bit) 能把振幅细分到 4294967296 个等级, 实在是没必要了.如果是双声道(stereo), 采样就是双份的, 文件也差不多要大一倍.这样我们就可以根据一个 wav 文件的大小、采样频率和采样大小估算出一个 wav 文件的播放长度。譬如 Windows XP 启动.wav 的文件长度是 424,644 字节, 它是 22050HZ / 16bit / 立体声 格式( 这可以从其 属性- 摘要 里看到),那么它的每秒

4、的传输速率(位速 , 也叫比特率、取样率)是 22050*16*2 = 705600(bit/s), 换算成字节单位就是 705600/8 = 88200(字节/秒), 播放时间:424644( 总字节数 ) / 88200(每秒字节数) 4.8145578(秒)。但是这还不够精确, 包装标准的 PCM 格式的 WAVE 文件(*.wav)中至少带有 42 个字节的头信息, 在计算播放时间时应该将其去掉, 所以就有:(424644-42) / (22050*16*2/8) 4.8140816(秒). 这样就比较精确了.关于声音文件还有一个概念: 位速, 也有叫做比特率、取样率, 譬如上面文件的

5、位速是 705.6kbps 或 705600bps, 其中的 b 是 bit, ps 是每秒的意思 ;压缩的音频文件常常用位速来表示, 譬如达到 CD 音质的 MP3 是: 128kbps / 44100HZ.2. wave 文件格式2.1 概述WAVE 文件是计算机领域最常用的数字化声音文件格式之一,它是微软专门为 Windows 系统定义的波形文件格式(Waveform Audio) ,由于其扩展名为*.wav。WAVE 是录音时用的标准的 WINDOWS 文件格式,文件的扩展名为“WAV” ,数据本身的格式为 PCM 或压缩型。WAV 文件格式是一种由微软和 IBM 联合开发的用于音频数

6、字存储的标准,它采用 RIFF 文件格式结构,非常接近于 AIFF 和 IFF 格式。符合 PIFF Resource Interchange File Format 规范。所有的 WAV 都有一个文件头,这个文件头音频流的编码参数。WAV 对音频流的编码没有硬性规定,除了 PCM 之外,还有几乎所有支持 ACM 规范的编码都可以为 WAV 的音频流进行编码。多媒体应用中使用了多种数据,包括位图、音频数据、视频数据以及外围设备控制信息等。RIFF 为存储这些类型的数据提供了一种方法,RIFF 文件所包含的数据类型由该文件的扩展名来标识,能以 RIFF 文件存储的数据包括:音频视频交错格式数据(

7、.AVI) 、波形格式数据(.WAV) 、位图格式数据(.RDI) 、MIDI 格式数据(.RMI) 、调色板格式(.PAL) 、多媒体电影(.RMN) 、动画光标(.ANI) 、其它 RIFF 文件(.BND)。wave 文件有很多不同的压缩格式,所以,正确而详细地了解各种 WAVE 文件的内部结构是成功完成压缩和解压缩的基础,也是生成特有音频压缩格式文件的前提。最基本的 WAVE 文件是 PCM(脉冲编码调制)格式的,这种文件直接存储采样的声音数据没有经过任何的压缩,澳门新濠天地官网 66bb.org 是声卡直接支持的数据格式,要让声卡正确播放其它被压缩的声音数据,就应该先把压缩的数据解压

8、缩成 PCM 格式,然后再让声卡来播放。2.2 Wave 文件的内部结构注:由于 WAV 格式源自 Windows/Intel 环境,因而采用 Little-Endian 字节顺序进行存储。WAVE 文件是以 RIFF(Resource Interchange File Format, 资源交互文件格式)格式来组织内部结构的。RIFF 文件结构可以看作是树状结构,其基本构成是称为块 (Chunk)的单元,最顶端是一个“RIFF”块,下面的每个块有“类型块标识( 可选)”、 “标志符” 、 “数据大小”及“ 数据”等项所组成。块的结构如表 1 所示:名称 Size 备注块标志符 4 个小写字符(

9、如 fmt , fact, data 等)数据大小 4 DWORD 类型,表示后接数据的大小(N Bytes)数据 N 本块中正式数据部分表:基本 chunk 的内部结构上面说到的“类型块标识” 只在部分 chunk 中用到,如 WAVE chunk 中,这时表示下面嵌套有别的 chunk。当使用了 类型块标识 时,该 chunk 就没有别的项(如块标志符,数据大小等) ,它只作为文件读取时的一个标识。先找到这个“类型块标识”,再以它为起点读取它下面嵌套的其它 chunk。每个文件最前端写入的是 RIFF 块,每个文件只有一个 RIFF 块。从 Wave 文件格式详细说明 中可以看到这一点。非

10、 PCM 格式的文件会至少多加入一个 fact 块,它用来记录数据(注意是数据而不是文件)解压缩后的大小。这个 fact 块一般加在 data 块的前面。WAVE 文件是由若干个 Chunk 组成的。按照在文件中的出现位置包括:RIFF WAVE Chunk, Format Chunk, Fact Chunk(可选), Data Chunk。具体见下图:-| RIFF WAVE Chunk | ID = RIFF | RiffType = WAVE |-| Format Chunk | ID = fmt |-| Fact Chunk(optional) | ID = fact |-| Data

11、 Chunk | ID = data |-图 Wav 格式包含 Chunk 示例Fact Chunk=| |所占字节数| 具体内容 | =| ID | 4Bytes | fact |-| Size | 4Bytes | 4 |-| data | 4Bytes |解压后的音频数据的大小(B)|-图 Fact Chunk2.3 Wave 文件格式详细说明别名 字节数 类型 注释ckid 4 char RIFF 标志, 大写cksize 4 int32 文件长度。这个长度不包括RIFF标志 和文件长度 本身所占字节, 下面的子块大小也是这样。fcc type 4 char WAVE 类型块标识, 大

12、写。ckid 4 char 表示fmt chunk 的开始。此块中包括文件内部格式信息。小写, 最后一个字符是空格。cksize 4 int32 文件内部格式信息数据的大小。FormatTag 2 int16 音频数据的编码方式。1 表示是 PCM 编码Channels 2 int16 声道数,单声道为 1,双声道为 2SamplesPerSec 4 int32 采样率( 每秒样本数), 比如 44100 等BytesPerSec 4 int32 音频数据传送速率, 单位是字节。其值为采样率每次采样大小。播放软件利用此值可以估计缓冲区的大小。BlockAlign 2 int16 每次采样的大小 = 采样精度 *声道数/8( 单位是字节); 这也是字节对齐的最小单位, 譬如 16bit 立体声在这里的值是 4 字节。播放软件需要一次处理多个该值大小的字节数据,以便将其值用于缓冲区的调整。BitsPerSample 2 int16 每个声道的采样精度; 譬如 16bit 在这里的值就是 16。如果有多个声道,则每个声道的采样精度大小都一样的。cbsize 2 int16 可选 附加数据的大小。. x ckid 4 char fact.cksize 4 int32 fact chunk data size.fact data 4 int32 解压后的音频数据的大小(Bytes).

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 试题/考题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号