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" міститься розмір даних і фактичні дані звукозапису.


Структура WAV файлу
Позиція (HEX) Позиція Розмір Назва Пояснення
  • RIFF Заголовок
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).

  • Підсекція "fmt "
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 Місце для запису додаткових параметрів
  • Підсекція "data"
0024 36 4 байти Subchunk2ID Містить літери "data"

(0x64617461 у порядку байт big-endian).

0028 40 4 байти Subchunk2Size Розмір даних звукозапису в байтах, які містяться в наступному полі.

Кількість семплів * NumChannels * BitsPerSample/8

002С 44 X Data Фактичні дані звукозапису.

Програми редактори[ред. | ред. код]

Програми відтворювачі[ред. | ред. код]

Посилання[ред. | ред. код]