Le codage d'un fichier WAV :
Un fichier .wav contient toutes les informations nécessaires à la reconstitution de « l’image sonore » qu’il contient. Il faut disposer d’un logiciel approprié pour lire ce type de fichier.
Ce qui va définir que le fichier sera de la musique sera bien sûr son extension (ici WAV) mais ce n'est pas tout. En effet, le fichier, en plus de contenir la version numérique (01000111000....) de la musique va posséder une entête contenant des informations importantes sur la musique.
Cette partie va vous faire découvrir cette entête.
L’organisation d’un fichier .wav est détaillée dans le tableau "structure du format Wav" ci-dessous. | B (Byte) = entier sur 1 octet (8 bits) W (Word) = entier sur 2 octets DW (DoubleWord) = entier sur 4 octets S[x] (String) = chaîne de caractères avec x caractères (1 caractère = 1 octet) |
Donnée |
Structure |
Valeur |
Explications |
chunk type |
|||
file_type |
S[4] |
‘RIFF’ |
identification du format |
file_size |
DW |
taille du fichier - 8 (restant) |
|
file_id |
S[4] |
‘WAVE’ |
|
chunk format |
|||
chunk_id |
S[4] |
‘fmt’ |
identification chunk format |
chunk_size |
DW |
taille du chunk format |
|
format |
W |
format (0 pour classique) |
|
channels_nb |
W |
{1,2} |
nombre de canaux (mono / stéréo) |
sampling_freq |
DW |
fréquence d'échantillonnage |
|
bytes_per_second |
DW |
nombre d'octets par seconde utilisés |
|
bytes_per_sample |
W |
nombre d'octets par échantillonnage utilisés |
|
depth |
W |
{8,16} |
profondeur (nombre de bits par échantillonnage) |
chunk données |
|||
chunk_id |
S[4] |
‘data’ |
identification chunk données |
chunk_size |
DW |
taille du chunk données |
|
données |
la musique |
la musique !!!!! |
Chunk = morceau
Remarque: 1 octet = 8 bits. Donc un octet correspond à 28 valeurs possibles c'est à dire:
Pour plus de lisibilité on écrit le binaire sous sa forme hexadécimale |
Le contenu du fichier à analyser est donné ci-dessous (le contenu de ce fichier binaire est affiché octet par octet pour des raisons évidentes de facilité de lecture). Il contient la note LA.
Exemple: d'analyse de l'entête:
le 1er groupe de 4 octet représente le mot RIFF. En effet , dans le code ASCII (code international des caractères), R= (52)16, I=(49)16, F = (46)16
De même, le 3ème groupe de 4 octet: 57 41 56 45 , on retrouve (57)16 = W, (41))16 = A, (56))16 = V et (45)16 = E, c'est à dire 'WAVE' comme prévu.
1. Entourez, dans le fichier ci-dessus, jusqu'à "bytes_per_sample", les différentes informations correspondant à la colonne « Valeur » du tableau de la structure du format wav (au dessus).
Remarques : L’ordre des octets est inversé. Ex : Le 'file size' B4 01 00 00 se lit 00 00 01 B4.
2. Montrez que la taille du fichier est conforme à celle donnée au passage de la souris (image ci-contre) en vous servant de la ligne "file_size" du tableau « Structure format » |
3. Combien de canaux composent notre fichier son (justifiez votre réponse)?
4. A partir des informations trouvées dans la question 3.1, retrouvez la valeur du débit binaire annoncé sur l’icône au passage de la souris.
Le champ « data » contient la liste des valeurs issues de l’échantillonnage (échantillons) des deux voies. On peut calculer le débit par la formule suivante:
débit = fréquence d'échantillonnage × nombre d'octets par échantillon × 8