WAV
WAV (англ. waveform audio format) — формат аудіофайлу, розроблений компаніями Microsoft та IBM. WAVE базується на форматі RIFF, поширюючи його на інформацію про такі параметри аудіо, як застосований кодек, частота дискретизації та кількість каналів. WAV як і RIFF передбачався для комп'ютерів IBM PC, тому всі змінні записані у форматі little endian. Відповідником WAV для комп'ютерів PowerPC є AIFF.
Хоча файли WAVE можуть бути записані за допомогою будь-яких кодеків аудіо, зазвичай використовується нестиснений PCM, який призводить до великих обсягів файлу (близько 172 кБ на секунду для CD-якості). Іншим недоліком файлу є обмеження обсягу до 4 ГБ, через 32-бітну змінну. Формат WAV був частково витіснений стисненими форматами, проте, завдяки своїй простоті, надалі знаходить широке використання в процесі редагування звуку та на переносних аудіопристроях, як програвачі та цифрові диктофони.
Канонічний формат файлу
WAVE файл складається з двох частин: заголовку файлу і області даних.
Канонічний формат WAVE файлу починається з RIFF заголовку і двох підсекцій: "fmt " і "data". Підсекція "fmt " описує параметри даних звукозапису. У підсекції даних "data" міститься розмір даних і фактичні дані звукозапису.
Позиція (HEX) | Позиція | Розмір | Назва | Пояснення |
---|---|---|---|---|
| ||||
0000 | 0 | 4 байти | ChunkID | Містить літери "RIFF" в ASCII кодуванні
(0x52494646 у порядку байт big-endian) |
0004 | 4 | 4 байти | ChunkSize | 36 + SubChunk2Size, або більш точно: 4 + (8 + SubChunk1Size) + (8 + SubChunk2Size)
Це розмір всього файлу в байтах, не враховуючи 8 байтів перших двох полів: ChunkID і ChunkSize. |
0008 | 8 | 4 байти | Format | Містить літери "WAVE"
(0x57415645 у порядку байт big-endian). |
| ||||
000C | 12 | 4 байти | Subchunk1ID | Містить літери "fmt "
(0x666d7420 у порядку байт big-endian). |
0010 | 16 | 4 байти | Subchunk1Size | Приймає значення 16 для формату кодування PCM.
Це розмір області цієї підсекції, що слідує після цього поля. |
0014 | 20 | 2 байта | AudioFormat | PCM = 1 (Лінійне квантування)
Значення відмнінні від 1 вказують на наявність конкретного кодування аудіо даних. |
0016 | 22 | 2 байта | NumChannels | Кількість звукових каналів. Моно = 1, Стерео = 2, і т.д. |
0018 | 24 | 4 байти | SampleRate | Частота дискретизації у Герцах. Наприклад, 8000, 44100, інші. |
001С | 28 | 4 байти | ByteRate | = SampleRate * NumChannels * BitsPerSample/8 |
0020 | 32 | 2 байта | BlockAlign | = NumChannels * BitsPerSample/8
Кількість байт, яка міститься в одному семплі враховуючи кількість каналів. |
0022 | 34 | 2 байта | BitsPerSample | Кількість біт в одному семплі. Так звана "глибина" чи точність звучання.
8, 16, 32, і так далі. |
2 байта | ExtraParamSize | Розмір поля з параметрами. Якщо PCM, ці два поля ExtraParamSize і ExtraParams не записуються. | ||
X | ExtraParams | Місце для запису додаткових параметрів | ||
| ||||
0024 | 36 | 4 байти | Subchunk2ID | Містить літери "data"
(0x64617461 у порядку байт big-endian). |
0028 | 40 | 4 байти | Subchunk2Size | Розмір даних звукозапису в байтах, які містяться в наступному полі.
Кількість семплів * NumChannels * BitsPerSample/8 |
002С | 44 | X | Data | Фактичні дані звукозапису. |
Програми редактори
Програми відтворювачі
- Winamp
- Aimp
- foobar2000
Посилання
- Opis budowy pliku (En)
- Список зареєстрованих кодеків звуку
- codenet (Rus)
- kazus (Rus)
- wav-pcm.narod.ru (Rus)
- Структура WAV файла (Rus)
- WAVE PCM soundfile format (En)
- WAV & BWF Metadata Guide (En)