WAV (ang. waveform audio format) – format plików dźwiękowych stworzony przez Microsoft oraz IBM. WAVE bazuje na formacie RIFF, poszerzając go o informacje o strumieniu audio, takie jak użyty kodek, częstotliwość próbkowania czy liczba kanałów. WAV podobnie jak RIFF został przewidziany dla komputerów IBM PC, toteż wszystkie zmienne zapisywane są w formacie little endian. Odpowiednikiem WAV dla komputerów Macintosh jest AIFF.

Pliki WAVE mogą być zapisane przy użyciu dowolnych kodeków audio, ale zazwyczaj stosuje się nieskompresowany format PCM, w którym pliki zajmują około 172 kB na sekundę dla jakości CD. Ze względu na fakt, iż pole reprezentujące rozmiar pliku jest liczbą 32-bitową, wielkość pliku jest ograniczona do maksymalnie 4 GB.

Struktura pliku WAV

edytuj

Plik WAV zbudowany jest w następujący sposób:

Offset względem
początku pliku
Rozmiar
w bajtach
Nazwa Opis zawartości
0 - 3 4 "RIFF" Początek nagłówka używany do identyfikacji formatu RIFF
4 - 7 4 fileSize Całkowity rozmiar pliku w bajtach pomniejszony o 8, czyli o "RIFF" i fileSize, równy jednocześnie rozmiarowi danych powiększonemu o 36 (24h), czyli o fileSize - dataSize
8 - 11 4 "WAVE" Typ pliku używany do identyfikacji formatu WAV
12 - 15 4 "fmt " Tzw. format chunk marker (ang.). Ostatni bajt ma wartość 32 (20h), czyli wartość ASCII dla spacji
16 - 19 4 16 (10h) Rozmiar formatu danych w bajtach
20 - 21 2 1 Typ formatu. Wartość 1 oznacza format PCM
22 - 23 2 channels Liczba kanałów
24 - 27 4 sampleRate Częstotliwość próbkowania. Wartość standardowa wynosi 44 100 Hz
28 - 31 4 bytesPerSecond Strumień danych w bajtach na sekundę równy iloczynowi liczby kanałów przez częstotliwość próbkowania i rozdzielczość, podzielonemu przez 8
32 - 33 2 bytesPerSample Iloczyn liczby kanałów przez rozdzielczość, podzielony przez 8, w bajtach
34 - 35 2 bitsPerSample Rozdzielczość w bitach na próbkę (i kanał). Wartości standardowe wynoszą 8 lub 16 (10h)
36 - 39 4 "data" Początek danych
40 - 43 4 dataSize Rozmiar danych w bajtach równy iloczynowi strumienia danych przez czas trwania dźwięku w sekundach

Następnie w pliku znajdują się dane dźwiękowe. Format ich zapisu uzależniony jest od przyjętej rozdzielczości. Jeśli ta jest równa 8, wówczas zbiór wartości próbki wynosi od -128 do 127, przy czym każdą taką wartość należy powiększyć o 128, otrzymując w ten sposób wartości pomiędzy 0 a 255. W przypadku zaś, gdy rozdzielczość jest równa 16, wówczas wartość próbki wynosi od -32 768 do 32 767, przy czym wartości ujemne należy powiększyć o 65 536, natomiast nieujemne pozostawiamy bez zmian, otrzymując w ten sposób wartości pomiędzy 0 a 65 535, gdzie te od 0 do 32 767 są nieujemne, zaś te od 32 768 do 65 535 - ujemne.

Linki zewnętrzne

edytuj