Table des matières
Wav
Le format wav signifie Waveform audio vector, il a été developpé par Microsoft et IBM. Il est donc très répandu sur les systèmes Windows mais aussi dans le monde de gnu / Linux.
Ce n'est pas véritablement un format audio mais un conteneur de format audio. En effet, le wav peut contenir des format compressés tels que mp3, pcm, wma etc…
Par conséquent il s'agit bien d'un support qui peut être destructeur, contrairement à ce que l'on pourrait croire.
historique
Le format wav découle du format RIFF (Resource Interchange File Format) développé par Microsoft et IBM en août 1991 sous Windows 3.1. Cette version de Windows fut enrichie d'extensions multimédia et notament du format .wav. Mais ces spécifications définitives on été validées en 1994, ou elles deviennent un standard (Multimedia Data Standards Update April 15, 1994)
Le format audio .WAV
Comme nous l'avons vu, il s'agit d'un conteneur de format audio, cependant il se présente toujours de la façon suivante:
- Une entête de fichier
- Les donnés audio
Utilisation
Son utilisation est ancienne et c'est un format désuet aujourd'hui. Néanmoins, le format WAV reste incontournable sous la plate-forme Windows. Il s'agit probablement du format de stockage audio le plus répandu étant donné qu'il s'agit du format natif des sons du système d'exploitation Microsoft Windows.
En effet, il possède de nombreuses limitations dont sa taille maximum limité à 2 Go qui est atteinte avec à peine 20 minutes d'informations au format 5.1 en 24 bit/96 kHz (source Wikipedia).
Les formats .wav rencontrés sous Microsoft servent souvent à transporter de la musique codée en PCM avec une qualité sonore excellente (proche des cd audio) mais avec une taille de fichier énorme, non propice à sa diffusion via les réseaux Internet, ni a une utilisation d'encodage de grande quantité de musique.
De plus, il possèdent un fichier d'en-tête très rudimentaire et n'autorisant pas la gestion de grandes bibliothèques de fichier.
technique et fonctionnement
Souvent considéré (à tort) comme un format non destructeur, car la majorité des fichiers que l'on trouve se servent du format .wav pour transporter des formats non compressés à la base tel que le PCM.
En effet, le format PCM est le codage le plus couramment utilisé, ce qui confère au format wav un encodage et un décodage immédiats, sans compression, avec une qualité sonore par conséquent excellente mais la taille des fichiers est très importante.
Néanmoins, il peut aussi contenir des format mp3 ou d'autres qui eux sont destructeur de la qualitée sonore.
taux de compression et qualitée
Il est toutefois possible de compresser un format wav en changeant son bitrate et notament via Audacious le logiciel libre, mais la qualité ainsi obtenue est bien souvent médiocre !
Logiciels permettant de crée des .WAV sous linux
Liens vers page du soft lp
Logiciels permettant de lire des .WAV sous linux
Liens vers page du soft lp
comment graver des .WAV sous linux
Structures d'un fichier .WAV
source pour la section structure uniquement: www.commentcamarche.net sous licence creatice common
L'en-tête d'un fichier WAV commence dès le premier octet (offset 0). Il a une taille de 44 octets, et est constitué des champs suivants (listés dans l'ordre) :
TAG1 (4 octets) : Constante « RIFF » (0x52,0x49,0x46,0x46) SIZE1 (4 octets) : Taille du fichier moins 8 octets FORMAT (4 octets) : Format = « WAVE » (0x57,0x41,0x56,0x45) TAG2 (4 octets) : Identifiant « fmt » (0x66,0x6D,0x74,0x20) LGDEF (4 octets) : Nombre d'octets utilisés pour définir en détail le contenu FORMAT (2 octets) : Format de fichier (1: PCM, ...) NBCANAUX (2 octets) : Nombre de canaux (1 pour mono ou 2 pour stéréo) FREQ (4 octets) : Fréquence d'échantillonnage (en Hertz) BYTEPERSEC (4 octets) : Nombre d'octets par seconde de musique NBRBYTE (2 octets) : Nombre d'octets par échantillon NBBITS (2 octets) : Nombre de bits par donnée TAG3 (4 octets) : Constante « data » (0x64,0x61,0x74,0x61) SIZE2 (4 octets) : Taille du fichier moins 44 octets
Structure
Le format WAV définit une structure de données permettant d'accueillir des données audio sous forme de morceaux (en anglais chunks). Il s'agit de structures de données imbriquées, à la manière de poupées russes.
La structure globale du fichier est la suivante :
Adresse (octet) | Nom | Taille (oct.) | Description |
00h | rID | 4h | Mot «RIFF» |
04h | rLen | 4h | Taille du morceau de données (chunk) |
08h | rData | rLen | Morceau de données (chunk) |
La section rData contient le chunk, codé sous la forme suivante :
Adresse (octet) | Nom | Taille (octet) | Description |
00h | wID | 4 | Terme “WAVE” |
04h | Format Chunk | 18 | Format utilisé |
1Ch | WAVE Data Chunk | ? | Données |
Format Chunk :
Décalage (octet) | Nom | Taille (octet) | Description |
00h | fId | 4 | Terme «fmt » (l'espace est nécessaire) |
04h | fLen | 4 | ?? |
08h | wFormatTag | 2 | Format (en général 1 pour le format Microsoft Pulse Code Modulation) |
0Ah | nChannels | 2 | Nombre de canaux (1=mono, 2=stéréo) |
0Ch | nSamplesPerSec | 4 | Fréquence d'échantillonage (en Hz) |
10h | nAvgBytesPerSec | 4 | nChannels * nSamplesPerSec * (nBitsPerSample/8) Permet d'estimer la taille du tampon nécessaire |
14h | nBlockAlign | 2 | nChannels * (nBitsPerSample / 8) Permet l'alignement du tampon |
16h | FormatSpecific | 2 | Longueur d'un échantillon en bits (8 ou 16) |
Le WAVE Data Chunk :
Adresse (octet) | Nom | Taille (octet) | Description |
00h | dId | 4 | Terme «data» |
04h | dLen | 4 | Longueur du champ dData (en octets) |
08h | dData | dLen | Données du son échantillonné |
Le champ dData est formatté comme suit :
- En mono 8 bits: chaque octet représente un échantillon,
- En stéréo 8 bits: 2 octets pour chaque échantillon (canal gauche, canal droit),
- En mono 16bits chaque mot (octet faible, octet fort) représente un échantillon
- En stéréo 16 bits: 2 mots pour chaque échantillon (gauche faible, gauche fort, droit faible, droit fort)