Spring til indhold

Wav

Fra Wikipedia, den frie encyklopædi

Wav (eller "wave"; det engelske ord for "bølge") er betegnelsen for et Microsoft- og IBM-udviklet 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 lige som f.eks. FLAC-formatet; 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

[redigér | rediger kildetekst]

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.

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.
  Koderings type:
2 bytes
Hvordan bølgeformatet er kodet; har tallene 00 og 01 som betyder PCM
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 bytes) 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 bits der bruges til at é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

[redigér | rediger kildetekst]

Ud fra omfanget af lydinformationen (H) og antallet af bytes pr. sampling (F) kan man beregne det antal gange (J) hver kanal bliver samplet i løbet af hele optagelsen: J = H / F.
Disse J samples afspilles med D samples pr. sekund, så hele lydklippets varighed K i sekunder er givet ved K = J / D, eller mere direkte som K = H / (D · F).

Lydinformation

[redigér | rediger kildetekst]

Umiddelbart efter headeren følger H bytes der rummer den egentlige lydinformation: Denne information er inddelt i J grupper à F bytes, og hver gruppe er igen inddelt i C samples; én for hver kanal. Hvis optagelsen er i stereo, er den første sample i hver gruppe til venstre kanal, mens den næste er til højre kanal. Grupperne er i øvrigt ordnet i den rækkefølge de skal afspilles i.

Fortegn i lydinformationen

[redigér | rediger kildetekst]

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:

  • Ved optagelser i G=8 bits 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.
  • For optagelser i G=16 bits pr. sample pr. kanal, skrives negative tal efter 2-komplement-metoden.