REEF WAVE
Waveform Audio File Format (WAVE) | |
---|---|
Filutvidelse : |
.wav
|
MIME-type : | lyd / vnd.wave lyd / wav lyd / wave lyd / x-wav |
Utviklet av: | Microsoft og IBM |
Type: | Lydfil |
Utvidet av: | REV |
Den WAVE filformat er en container format for digital lagring av lyddata som er basert på Resource Interchange File Format (RIFF) definert av Microsoft for Windows . Før lyddata inneholder en WAVE-fil minst informasjon om formatet.
Den inneholder vanligvis såkalte PCM- rådata, dvs. en diskret tids- og verdidiskret representasjon av signalforløpet. Kvaliteten på den innspilte lyden avhenger da av to verdier, samplingsfrekvensen (antall sampler per tidsenhet) og oppløsningen (bitdybde); når det gjelder komprimerte data også fra metoden, f.eks. B. ADPCM eller MP3 .
I motsetning til det lignende AIFF- formatet kan ikke ID3-koder lagres med WAV .
Filstruktur
RIFF-formatet består av flere seksjoner (engelske biter ), som er strukturert som IFF , bortsett fra byterekkefølgen : low-order byte (LSB) først, dvs. i liten endian byterekkefølge. WAVE-spesifikasjonen definerer tre seksjoner som obligatoriske: RIFF-seksjonen identifiserer filen som en .wav-fil og inneholder de andre seksjonene som en container. FORMAT-delen inneholder parametere som B. prøvetakingshastigheten. DATA-delen inneholder bølgeformen.
I løpet av den ukoordinerte utviklingen dukket det opp et uhåndterlig antall ytterligere seksjonstyper med delvis overflødig innhold. Et eksempel er "Etikett" -delen og "Merk" -delen, som begge pekepinnoppføringene i "Cue" -delen har en etikett. En "etikett" betegner tittelen på et startpunkt, "merk" en kommentar. De lagres som underavsnitt (engelske underbunker ) i delen på høyere nivå tilknyttet dataliste . Det er også et stort antall komprimerte formater som en "Fakta" -seksjon med dekomprimert størrelse er bindende for, men som ellers definerer et bredt spekter av parametere, noe som gjør full støtte til WAV-formatet enda vanskeligere for utviklere.
RIFF-seksjon (også seksjonen "RIFF WAVE")
Den inneholder de andre seksjonene som en container, toppteksten består bare av
"Format" -delen
Det begynner med identifikatoren "fmt" og må være inneholdt nøyaktig en gang i filen - nemlig som første underavsnitt, som imidlertid ikke kan stole på mer enn på det faktum at dataklumpen er den siste. I ChunkSize
innholdet følger det generelle av et sett med parametere og en påfølgende format-spesifikk del. Den generelle delen:
-
wFormatTag
(uint16_t
, Identifikasjon for formatet som brukes, f.eks. 0x0001 står for PCM, det kanoniske, ukomprimerte formatet) -
wChannels
(uint16_t
) -
dwSamplesPerSec
(uint32_t
, Samplingsfrekvens i Hz, f.eks. 0x0000AC44 står for 44100) -
dwAvgBytesPerSec
(uint32_t
, nødvendig overføringsbåndbredde) -
wBlockAlign
(uint16_t
, Størrelse på bildene i byte)
For PCM-data har formatseksjonen bare dette ene feltet:
-
wBitsPerSample
(uint16_t
, Kvantiseringsoppløsning, identisk for alle kanaler)
Hvis komprimering ikke brukes, dwAvgBytesPerSec
er produktet av samplingsfrekvensen og rammestørrelsen. Rammestørrelsen er resultatet av spesifikasjonen at alle verdier i dataseksjonen skal kodes som et heltall med akkurat tilstrekkelig størrelse i byte (eventuelle nødvendige fyllbiter er i den nedre enden med verdien 0, null polstring ). Følgende gjelder PCM-format
-
wBlockAlign = wChannels * ((wBitsPerSample + 7) / 8)
(Heltall divisjon uten resten),
så rammestørrelsen for 12-bit stereo er ikke tre, men fire byte. Med to kanaler (stereo), først venstre, deretter høyre kanal lagres.
"Data" -delen
Den har identifikatoren "data". Dens chunkSize
inkluderer (som med alle seksjoner) verken de 8 byte med kodestørrelse og til og med mulig på slutten av den foreskrevne justeringen derved til ordgrensene null byte. Innholdet er en serie rammer.
Dette formatet, lagret uten overskrift, har vanligvis slutten .raw og krever kunnskap om samplingshastighet, bitdybde og byterekkefølge for avspilling (sistnevnte er bare definert under RIFF, ikke for rå PCM).
Størrelsen på "Data" -delen i PCM-dataformatet beregnes som følger: dwSamplesPerSec
Rammer med wChannels
eksempler på ett eller to byte forekommer hvert sekund . For CD- kvalitet (16 bit stereo = 4 byte per prøve (2 byte per kanal), 44 100 Hertz) f.eks. B. Så omtrent 10 megabyte per minutt (60 s x 44 100 Hz x 4 byte).
Eksempel på et generelt lesbart WAVE-PCM-format
RIFF-overskrift (12 byte):
Offset | Type | Lengde (i byte) | innhold |
---|---|---|---|
0 (0x00) | røye | 4. plass | 'REV' |
4 (0x04) | usignert | 4. plass | <Filstørrelse> - 8 |
8 (0x08) | røye | 4. plass | 'BØLGE' |
Fmt-delen (24 byte) beskriver formatet til de enkelte prøvene:
Offset | lengde | innhold | beskrivelse |
---|---|---|---|
12 (0x0C) | 4. plass | 'fmt' | Topptekstsignatur (merk følgende mellomrom) |
16 (0x10) | 4. plass | <fmt lengde> | Lengde på gjenværende fmt-overskrift (16 byte) |
20 (0x14) | 2 | <format tag> | Dataformat for prøvene (se egen tabell nedenfor) |
22 (0x16) | 2 | <kanaler> | Antall kanaler: 1 = mono, 2 = stereo; i mellomtiden er mer enn 2 kanaler (f.eks. for surroundlyd) mulig. |
24 (0x18) | 4. plass | <prøvefrekvens> | Prøver per sekund per kanal (f.eks. 44100) |
28 (0x1C) | 4. plass | <byte / sekund> | Prøvefrekvens · rammestørrelse |
32 (0x20) | 2 | <blokker justering> | Rammestørrelse = <antall kanaler> ((<bits / prøve (av en kanal)> + 7) / 8) (deling uten resten) |
34 (0x22) | 2 | <bits / prøve> | Antall databiter per prøveverdi per kanal (f.eks. 12) |
Dataseksjonen inneholder eksemplene:
Offset | lengde | innhold | beskrivelse |
---|---|---|---|
36 (0x24) | 4. plass | 'data' | Topptekst signatur |
40 (0x28) | 4. plass | <lengde> | Datablokkens lengde, maks. <Filstørrelse> - 44 |
44 (0x2C) | <blokker justering> | den første prøven (e) | |
<blokker justering> | den andre prøven (e) | ||
... | ... |
Dataformater (format tag)
ID | beskrivelse |
---|---|
0x0001 | PCM |
0x0002 | MS ADPCM |
0x0003 | IEEE FLOAT |
0x0005 | IBM CVSD |
0x0006 | EN LOV |
0x0007 | MULAW |
0x0010 | OKI ADPCM |
0x0011 | DVI / IMA ADPCM |
0x0012 | MEDIASPACE ADPCM |
0x0013 | SIERRA ADPCM |
0x0014 | G723 ADPCM |
0x0015 | DIGISTD |
0x0016 | DIGIFIX |
0x0017 | DIALOGISK OKI ADPCM |
0x0020 | YAMAHA ADPCM |
0x0021 | SONARC |
0x0022 | DSPGROUP TRUESPEECH |
0x0023 | ECHOSC1 |
0x0024 | LYDFIL AF36 |
0x0025 | APTX |
0x0026 | LYDFIL AF10 |
0x0030 | DOLBY AC2 |
ID | beskrivelse |
---|---|
0x0031 | GSM610 |
0x0033 | ANTEX ADPCME |
0x0034 | KONTROLL RES VQLPC |
0x0035 | KONTROLL RES VQLPC |
0x0036 | DIGIADPCM |
0x0037 | KONTROLL RES CR10 |
0x0038 | NMS VBXADPCM |
0x0039 | CS IMAADPCM (Roland RDAC) |
0x0040 | G721 ADPCM |
0x0050 | MPEG-1 lag I, II |
0x0055 | MPEG-1 Layer III (MP3) |
0x0069 | Xbox ADPCM |
0x0200 | KREATIV ADPCM |
0x0202 | KREATIV FASTSPEECH8 |
0x0203 | KREATIV FASTSPEECH10 |
0x0300 | FM TORN SND |
0x1000 | OLIGSM |
0x1001 | OLIADPCM |
0x1002 | OLICELP |
0x1003 | OLISBC |
0x1004 | OLIOPR |
Videre utvikling
På grunn av 32-bit-feltene som brukes i filformatet, er det en størrelsesgrense på 4 GiB, som tilsvarer en spilletid på ca. 6,75 timer med to kanaler på 16 bit hver og 44100 prøver per sekund ( CD- kvalitet). Med høyere amplitude eller tidsoppløsning eller flere kanaler, reduseres den oppnåelige spilletiden tilsvarende. For å omgå denne begrensningen, har Sonic Foundry introdusert en utvidelse av formatet som omgår filstørrelsesgrensen. Siden Sonic Foundrys desktop software divisjon ble overført til Sony Pictures Digital , har formatet blitt kalt Sony Pictures Digital Wave 64 , eller kort sagt Wave64 ; den leveres uten lisenskostnader. Den foreslåtte filendelse er .w64 . Den interne strukturen er bevisst basert på den konvensjonelle WAVE for å forenkle implementeringen av programvaren. Å bruke 64-biters felt, basert på antagelsene ovenfor, oppnår en maksimal spilletid på over 3 millioner år.
litteratur
- Günter Born: Referanse manuelle filformater. 1990, Addison-Wesley Longman, i forskjellige reviderte utgaver
- Gunter Born: File Formats Handbook. ITP Boston 1995.
weblenker
- WAV-lydformat ( Memento fra 7. desember 2010 i Internet Archive ) (Detaljert beskrivelse som en del av sammendraget av et seminar for multimedieforelesningen ved Esslingen University .)
- “Lydformatet * .wav.” Overskrift, datafelt og eksempel på en PCM WAV-fil for Windows. ( Memento fra 4. januar 2016 i Internet Archive ) (Kort og tydelig. Fra en avhandling av Thomas Becker og Dirk Manthey ved Giessen-Friedberg University of Applied Sciences )
- WAVE-filformat (engelsk, mer detaljert)
- WAVE lydfilformat - spesifikasjoner (engelsk)
- Versjon 1.0 av spesifikasjonen (engelsk)
- Timothy John Weber: WAVE-filformatet. Svar på vanlige spørsmål. (Engelsk)
Individuelle bevis
- ↑ Resource Interchange File Format Services- spesifikasjon fra Microsoft på msdn.microsoft.com (engelsk)
- ↑ Thomas Höss og Tobias Rieck: WAV-Audio-Format, fmt-chunk ( Memento fra 27. juni 2007 i Internet Archive ) på it.fht-esslingen.de
- ↑ VCS Engineering: Sony Wave64. (PDF) Informasjon om Sony Wave64, åpnet 2. mai 2012.