Ignorer la navigation

III: Bonus: codage du fichier

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:

  • de 00000000 à 11111111 en binaire
  • de 0 à 255 en décimal
  • de 00 à FF en hexadécimal

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