LexOpen   - Dit online leksikon

  Forside        


Wav
Wav-formatet kort fortalt
Wav (eller »wave«; det engelske ord for »bølge«) er betegnelsen for et filformat til ukomprimerede lydoptagelser på computere. Selv om den primære anvendelse er lyd, rummer formatet mulighed for at optage signaler i en kvalitet langt ud over hvad det menneskelige øre opfatter som lyd.
Lydinformationen i en wav-fil er ukomprimeret; modsat andre lydformater som MP3 og Ogg Vorbis bruges der ikke nogle "tricks" der skal få lydinformationen til at optage mindre plads; derfor fylder samme lydklip adskillige gange mere plads på harddisken i Wav-formatet, end det ville gøre hvis man anvendte et komprimeret lydformat.
Tekniske detaljer
En lydfil i WAV-formatet indledes med en header der angiver lydens kvalitet med hensyn til antal lyd-kanaler (1 for mono, 2 for stereo), tidsmæssig opløsning (samplefrekvens) og sampledybde (antal bits pr. sample pr. kanal). Herefter følger lyden, kodet som bytes efter det format der er angivet i headeren.
Header
Headeren omfatter som minimum 46 bytes, men formatet er indrettet så flere oplysninger kan føjes til headeren, som derved bliver længere end de 46 bytes. Indholdet af denne header skal tolkes således:
Headerens opbygning i filer i WAV-formatet

4 bytes
Indeholder altid tallene hhv. 82, 73, 70 og 70; ASCII-koderne for bogstavsekvensen "RIFF". Bruges til at identificere filen som en WAV-fil.
A
Filstørrelse:
4 bytes
Disse 4 bytes danner et 32-bit tal, som er lig med WAV-filens samlede længde minus 8.

8 bytes
Indeholder altid talsekvensen 87, 65, 86, 69, 102, 109, 116 hhv 32; ASCII-koderne for bogstaverne "WAVEfmt", efterfulgt af et blanktegn. Identificerer filen som en WAV-fil.
B
Formatblok-længde:
4 bytes
Disse 4 bytes danner et 32-bit tal, som angiver antallet af bytes der bruges til at beskrive lydkvaliteten og antallet af kanaler (mono/stereo). Dette tal er større end eller lig med 16.

2 bytes
Disse 2 bytes indeholder altid tallene 0 hhv. 1.
C
Kanal-antal:
2 bytes
Disse 2 bytes danner et 16-bit tal, som angiver antallet af kanaler. Normalt 1 for mono, eller 2 for stereo.
D
Samplefrekvens:
4 bytes
Disse 4 bytes danner et 32-bit tal, som angiver samplefrekvensen udtrykt i Hertz, eller antal samples pr. sekund.
E
Datatæthed: 4
bytes
Disse 4 bytes danner et 32-bit tal, som angiver datahastigheden; antallet af bytes (tilsammen for alle kanaler) der skal behandles pr. sekund.
F
Størrelse af datasæt:
2 bytes
Disse 2 bytes danner et 16-bit tal, som angiver den informationsmængde (udtrykt i antal bits) der kommer af at sample alle kanaler én gang.
G
Samplestørrelse:
2 bytes
Disse 2 bytes danner et 16-bit tal, som angiver antallet af bytes der indgår i én sample for én kanal.
Hvis formatblok-størrelsen B er større end 16, vil der på dette sted følge B - 16 bytes.

4 bytes
Indeholder altid tallene hhv. 100, 97, 116 og 97; ASCII-koderne for bogstavsekvensen "data". Markerer starten på den egentlige lydinformation.
H
Datamængde:
4 bytes
Disse 4 bytes danner et 32-bit tal, som angiver antallet af bytes der er egentlige lyd-data.
Alle de binære tal der læses i headeren, skal fortolkes uden fortegn.
Andre oplysninger der kan beregnes
Antallet af kanaler (C) og antallet af bytes pr. kanal pr. sample G er givet, så antallet af bytes der skal bruges til at opbevare én sample til hver kanal, er J = C · G. Da al lydinformationen omfatter H bytes, kan man beregne det antal samples der skal afspilles i hver kanal som: K = H / J.
Da der skal afspilles D samples i sekundet i hver kanal, kan man beregne det optagne lydklips varighed i sekunder som L = D / K, eller mere direkte som L = D / (H · J).
Lydinformation
Umiddelbart efter headeren følger H bytes der rummer den egentlige lydinformation. Hvis der er C kanaler og der optages G bytes til hver kanal, inddeles disse bytes i "grupper" à C · G bytes. Hver gruppe indeholder én sample til hver kanal i form af først G bytes til kanal nr. 1 (venstre), så G bytes til kanal nr. 2 (højre), og hvis mere end to kanaler anvendes; G bytes til hver af kanal nr. 3, nr. 4, nr. 5 osv. Grupperne optræder i den rækkefølge de skal afspilles i.
Fortegn i lydinformationen
Modsat for oplysningerne i headeren forekommer der i selve lydinformationen sample-værdier med både positivt og negativt fortegn. Dette fortegn tilvejebringes på to forskellige måder afhængigt af G; antallet af bytes pr. sample pr. kanal:
* Hvis G er 1 (dvs. 8 bit pr. sample pr. kanal), forskydes alle samples med 128: Ved optagelsen adderes 128 til hver sample, så alle resultater er 0 eller positive, og ved afspilning trækkes samme 128 fra, så de oprindelige sample-værdier gendannes.
* Hvis G er 2 (16 bit pr. sample pr. kanal), skrives negative tal efter 2-komplement-metoden.