(轉)WAVE PCM 聲音文件格式


WAVE文件格式是Microsoft為存儲多媒體的RIFF規范的一部分。一個RIFF文件以一個文件頭開始,然后是一系列的數據塊。一個WAVE文件常常僅由一個WAVE塊構成,WAVE塊包含一個說明格式的fmt塊和存儲取樣信息的數據塊。

標准WAVE文件格式

 

 

 

偏移

長度(字節)

變量名

描述

備注

0

4

ChunkID

ASCII字符“RIFF”,大端形式

RIFF頭

4

4

ChunkSize

36+SubChunk2Size,即:4 + (8 + SubChunk1Size) + (8 + SubChunk2Size),指除文件前8字節后的字節數

RIFF頭

8

4

Format

ASCII字符“WAVE”,大端形式

RIFF頭

12

4

Subchunk1ID

ASCII字符“fmt ”,大端形式

Fmt子塊

16

4

Subchunk1Size

對於PCM文件為16。指除前8字節的Fmt塊大小

Fmt子塊

20

2

AudioFormat

PCM=1,其他值指以某種形式壓縮(見表2)

Fmt子塊

22

2

NumChannels

單聲道=1,立體聲=2

Fmt子塊

24

4

SampleRate

取樣率,取16000

Fmt子塊

28

4

ByteRate

SampleRate * NumChannels * BitsPerSample/8

Fmt子塊

32

2

BlockAlign

NumChannels * BitsPerSample/8,所有聲道中一個樣本數據的字節總數

Fmt子塊

34

2

BitsPerSample

8或16

Fmt子塊

36

4

Subchunk2ID

ASCII字符串“data”

Data子塊

40

4

Subchunk2Size

NumSamples * NumChannels * BitsPerSample/8,指數據中的字節數

Data子塊

44

*

Data

實際的聲音數據

 

表2 Format Code 格式編碼

格式編碼

預處理符號

數據

0x0001

WAVE_FORMAT_PCM

PCM

0x0003

WAVE_FORMAT_IEEE_FLOAT

Ieee float

0x0006

WAVE_FORMAT_ALAW

8bits ITU-T G.711 A-law

0x0007

WAVE_FORMAT_MULAW

8-bit ITU-T G.711 u-law

0xFFFE

WAVE_FORMAT_EXTENSIBLE

 

 

注意:

1)WAVE文件默認的字節順序是小端順序,若是大端順序用RIFX代替RIFF標識

2)取樣數據必須是偶數字節

3)8位取樣數據被存儲為無符號數,從0到255.16位的取樣數據被存儲為補碼,從-32768到32767

4)在wave數據流中可能有添加的子塊。每一個子塊有char SubChunkID[4],unsigned long SubChunkSize和SubChunkSize字節的數據

5)RIFF代表Resource Interchange File Format

 

轉自:http://blog.csdn.net/foxwit/article/details/5802389


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM