2017年6月5日 星期一

WAVE header format 說明

1. WAVE header由RIFF header開始
               ___________________
0         4   |   ChunkID         |   0x52494646: "RIFF" 
              |___________________|
4         4   |   ChunkSize       |   4 + (8 + SubChunk1Size) + (8 + SubChunk2Size)
              |___________________|
8         4   |   Format          |   0x57415645: "WAVE" 
              |___________________|

2. subchunk由fmt和data所組成

2.1. fmt內容
               ___________________
12        4   |   Subchunk1ID     |   0x666d7420: "fmt"
              |___________________|
16        4   |   Subchunk1Size   |   0x10000000: 16
              |___________________|
20        2   |   AudioFormat     |   0x0100: PCM
              |___________________|
22        2   |   NumChannels     |   0x0100: Mono, 0x0200: Stereo
              |___________________|
24        4   |   SampleRate      |
              |___________________|
28        4   |   ByteRate        |   SampleRate * NumChannels * BitsPerSample / 8
              |___________________|
32        2   |   BlockAlign      |   NumChannels * BitsPerSample / 8
              |___________________|
34        2   |   BitsPerSample   |   0x0800: 8 bits, 0x1000: 16 bits
              |___________________|

2.2. data內容
               ___________________
36        4   |   Subchunk2ID     |   0x64617461: "data"
              |___________________|
40        4   |   Subchunk2Size   |   NumSamples * NumChannels * BitsPerSample / 8
              |___________________|
44        *   |   Data            |
              |___________________|

3. SampleRate的十六進制轉換
           0x401F0000:   8.0k (0x1F40)
           0x803E0000:  16.0k (0x3E80)
           0x22560000:  22.5k (0x5622)
           0x007D0000:  32.0k (0x7D00)
           0x44AC0000:  44.1k (0xAC44)
           0x80BB0000:  48.0k (0xBB80)

4. 參考來源
http://soundfile.sapp.org/doc/WaveFormat/

沒有留言:

張貼留言