WAV格式文件学习

 

WAV (RIFF) 文件是一个包含标头和数据的多格式文件,是微软的 RIFF

 规范存储的多媒体文件格式的子集。其基本构成为以“块”(chunk)组成的

单元,RIFF 文件以一串数据块(data chunks)组成的文件头为开始,"标

准型"wav文件往往只是 RIFF 文件中一个单独的"WAVE"大块,包含两个子

块:描述数据格式信息的fmt块和包含实际的示例数据的数据块

(如下图,来源网络):

WAV文件头是 44 个字节长,具体描述如下表:

字节

示例值

描述

1-4

"RIFF"

将文件标记为RIFF文件,每字符用1个字节表示。

5-8

文件大小(整数)

4个字节整数表示总体文件大小,以字节为单位32 位整数)在创建之后即填写

9-12

"WAVE"

文件类型标记为WAVE

13-16

fmt

标记格式块,描述数据格式信息

17-20

16

上面列出的格式数据的长度

21-22

1

2 字节整数,描述格式类型(如1 PCM

23-24

2

2 字节整数,描述通道数目,1为单声道,2为双声道

25-28

44100

4字节整数,描述采样率。常用的值是 44100 (CD) 48000 (DAT)(采样率 = 样本数 / 秒或Hz)。

29-32

176400

4字节整数,描述比特率=(采样率* 每样值位数*渠道) / 8

33-34

4

(每样值位数* 通道) / 8。表示所有通道的一个样值所需比特数。8 mono28 位立体声;16 mono416 位立体声

35-36

16

每样值位数(常用16比特或8比特表示样值)

37-40

"data"

"data"块标记,标记数据节开始。

41-44

文件数据大小

描述数据节的大小。


举个例子, 这是一个以16进制表示的72字节大小的WAV文件数据:

52 49 46 46 24 08 00 00 57 41 56 45 66 6d74 20 10 00 00 00 01 00 02 00

22 56 00 00 88 58 01 00 04 00 10 00 64 6174 61 00 08 00 00 00 00 00 00

24 17 1e f3 3c 13 3c 14 16 f9 18 f9 34 e723 a6 3c f2 24 f2 11 ce 1a 0d

下图是这些数据的表示意义,可以看出,前44个字节为文件头,后面28字节分别表示左右声道样本值:


注意︰

所假设的波形数据文件的默认字节排序是小端字节序,而采用大端字节排序方

案编写的文件具有标识符 RIFX 而不是RIFF。

问题:

1.8比特样值和16比特样值的二进制编码一样吗?

8 比特采样存储为无符号字节,范围从 0 至 255;

16 比特采样存储为可补充 2 字节的有符号整数,范围从-32768到 32767。

2.现有的WAV支持哪几种音频压缩方法?

MPEG,MSADPCM,CCITTALaw,CCITTLaw和其他压缩算法

3.如何将采样频率从48kHz转化为44.1kHz?

需要将WAV文件头中的chunkSize、sampleRate、

byteRate、subchunk2Size都重新计算更改。

参考资料:

http://soundfile.sapp.org/doc/WaveFormat/

http://www.topherlee.com/software/pcm-tut-wavformat.html

 

展开阅读全文

没有更多推荐了,返回首页