Documente Academic
Documente Profesional
Documente Cultură
Norme MP3
1 : Introduction au MP3
MP3 ou encore MPEG 1-2 Audio Layer 3 est la spécification du MPEG (Moving Picture
Experts Group). Le MP3 est un algorithme de compression audio aussi appelé codec. Le
brevet a été déposé par l’institut allemand de recherche Fraunhofer. Au départ les
chercheurs de cet institut travaillaient sur la compression de séquences vidéo en vue de la
diffusion de la TV numérique. L’institut allemand Fraunhofer détient 10 à 18 brevets,
Thomson Multimédia détient les 8 autres et gère les licences.
L'objectif est d'offrir un fichier numérique d'une taille inférieure aux autres formats tout en
proposant une qualité d'écoute quasi identique.
Pour atteindre cet objectif le MP3 utilise un algorithme dit destructif. En effet le signal audio
va d'abord être adapté au modèle psycho-acoustique humain. Le but est de restituer un fichier
audio nécessitant moins de quantité de données nécessaire, tout en ayant un rendu sonore
acceptable pour l'oreille humaine.
Puis dans un second temps il utilisera une technique de sauvegarde des informations
permettant d'utiliser un espace encore plus réduit sur un support, le codage Huffman.
Cette conversion peut être paramétrée notamment en choisissant le taux d'échantillonnage (on
retiendra que celui-ci sera d'au moins 128 Kbits/s pour obtenir une qualité d'écoute
acceptable), ou encore en réduisant le nombre de canaux (1 : mono / 2 : stéréo par exemple).
Ce format apporte une compression d'environ 1:4 à 1:12. L'utilisation de ce format s'est vue
exploser grâce notamment aux contraintes d' internet. L'utilisation par exemple des fichiers
"wav" était inadaptée pour ce support, beaucoup trop volumineuse. Une autre utilisation en
son les lecteurs MP3. Ils permettent de transporter de grandes quantités de morceaux
musicaux dans une simple mémoire flash.
Dans le commerce, on retrouve des signalétiques douteuses visant à induire le client en erreur
: "Qualité CD" ou encore "Qualité numérique". Ces expressions ne signifient rien. Comme
nous venons de le voir ,la qualité à proprement dite est induite par les paramètres lors du
codage et non par l'algorithme lui même. De plus "numérique" n'est pas un critère de qualité,
car en numérique ou en analogique il existe différentes techniques mettant en jeux la qualité
du signal.
1.2 : Définition d'un CODEC
Il existe deux méthodes de compression, la première dite non destructrice (ou lossless), il
permet de retrouver un signal tel qu'il était avant codage.
La seconde est dite destructrice (ou lossy), lors de la compression elle prend en compte les
caractéristiques de la cible (exemple le modèle psycho-acoustique) pour supprimer les
informations non nécessaires à la bonne interprétation du signal.
L'être humain n'est pas capable de percevoir tous les sons. En effet, il est plus ou moins
sensible suivant la fréquence de celui-ci. On appelle le modèle psycho-acoustique les bandes
de fréquences audibles par l'oreille humaine. Les fréquences audibles vont de 20 Hz à 20kHz.
Cependant celles ci sont optimum entre 2 et 5 kHz. Dans cet intervalle on peut atteindre le
nombre de décibels. Dans la plage de fréquence optimum l'oreille humaine est plus sensible.
Le seuil de perception dans cette plage est de seulement 5dB, alors que en dessous de 100 Hz
et au dessus de 10kHz il faudra au moins 20db.
Il est évident que pour l'élaboration d'un codage destructif mais optimale, les fréquences hors
des limites du modèle psycho-acoustique humain ne seront pas préservées.
Le seuil de l'audition se définit par la pression acoustique minimale pouvant être perçue.
Comme nous venons de le voir, l'oreille est plus au moins sensible selon la fréquence des
sons. Par exemple pour un son de 1kHz, elle vaudra 2.10 -5 ce qui correspond à une intensité
de 10-12 W.m².
Voici une illustration représentant les seuils en dB permettant à une oreille de percevoir
L'oreille humaine interprète des sons par rapport aux autres. Si un son crée une grosse
pression auditive (son de forte puissance), un son moindre ne sera alors pas reçu. Ce
phénomène agit aussi dans le temps. Après un son de forte puissance, l'oreille mettra un
certain temps avant de recevoir à nouveau des sons moins intenses. C'est le temps d'adaptation
de l'oreille à la variation de pression.
Lorsque le taux de compression est excessivement haut (très faible taux d'échantillonnage)
cela peut faire ressortir certaines harmoniques de façon inattendue.
Chaque son est reçu par l'oreille comme une pression sonore. Celle-ci n'évolue pas de façon
linéaire par rapport au niveau sonore mais de manière logarithmique selon la formule .
où
Ldb = 20 log (Peff / Po )
Les courbes ont été mesurées en 1933 par Fletcher et Munson (la standardisation viendra avec
la norme iso226 de 2006).
Le but est de reproduire pour l'oreille humaine des sons identiques. L'un en partant d'un son
pur (sinusoïdale) à différentes fréquences et l'autre en prenant un signal de référence (c'est à
dire 1 kHz), en lui modifiant seulement son volume.
L'unité de mesure est le phone. Lorsque deux courbes ont le même phone alors en théorie
elles ont le même son.
Cette nouvelle propriété est aussi intéressante car elle pourrait nous permettre de modéliser un
ensemble de sons avec une courbe. Deux sons pouvant avoir le même phone, on pourrait alors
avoir l'opportunité de sauvegarder un nouveau son (à une fréquence et un temps donnés) ou
de faire référence à un son de phone égal déjà apparu à un instant précédent.
L'algorithme du Sub-Band Coding est lié au principe du masquage des fréquences. Toujours
dans le but de minimiser la quantité d'informations nécessaires pour restituer de manière
convenable un signal, ici pour être plus précis il est question de bande passante. Le but est de
filtrer les fréquences lorsqu'elles sont masquées pour économiser de la bande passante.
Celle-ci utilisant des médias où la préservation de la bande passante est nécessaire pour
garantir une qualité de service suffisante.
L'oreille humaine est incapable de situer la source d'un son basse fréquence. C'est une
propriété pouvant être mise en avant pour éviter par exemple de coder en "dual channel" un
son qui sera interprété de la même manière qu'il soit reçu de l'oreille gauche ou droite. Autant
ne sauvegarder qu'un seul canal est le restituer en mono.
1.3.6 : La quantification
Tout comme pour le joint Stéréo, la quantification est un autre phénomène de l'oreille
humaine. Le modèle psycho acoustique humaine précise que la sensibilité de l'oreille humaine
est optimale pour des fréquences allant de 2 à 10kHz. Il serait alors intéressant d'augmenter le
taux d'échantillonnage pour ces fréquences, afin de numériser des informations de plus en
plus précises. Inversement, pour les fréquences les moins sensibles, on pourrait alors coder les
informations sur un nombre de bits moins élevés, ce qui nous permettrait de réduire la
quantité d'informations.
1.4 : Le codage HUFFMAN
Le principe est d'utiliser une séquence de bits plus courte pour les octets revenant le plus
régulièrement.
L'algorithme tire profit de la redondance, il s'avère offrir des taux de compression pouvant
atteindre 90%. Néanmoins l'algorithme doit lire l'objet devant être compresser une première
fois pour référencer sous la forme d'un tableau l'ensemble des éléments de l'objet pour
permettre de la classer selon leurs redondances.
Pour des raisons techniques on est obligé de découper le signal en plusieurs sous bandes. Une
sous bande est une partie du signal à un instant donné, ainsi chaque donnée n'est pas la même
que la suivante ou la précédente. Chaque sous bande est traitée de la même façon. En fait ce
découpage est fait afin de gagner du temps lors de la compression, car si l'on effectue cette
opération sur tout le signal cela met en échec l'opération.
On retrouve dès l'arrivée du signal son découpage en 32 sous bandes. Avant la quantification
(avec le codage Huffman) de chaque bande , on applique le modèle psycho-acoustique
humain.
Enfin on réassemble les bandes de fréquences afin de retrouver un signal audible sur
l'ensemble des fréquences pouvant êtres reçues par une oreille humaine. En plus on appliquera
un correcteur d'erreurs.
2 Implémentation MATLAB :
2.1 Convertisseur WAV MP3
Pour réaliser cette opération d'encodage nous allons utiliser un fichier wav de référence
possédant une fréquence d'échantillonage de 44.1Khz.
MATLAB propose des fonctions pour effectuer des traitements notamment wavopen
permettant d'importer un fichier wavread, audioplayer, permettant d'interpréter un signal
importer, et play effectuant une lecture du signal.
%Y : Signal source
%z = audioplayer(Y,FS);
%play(z)
%Y : Signal
Dans un premier temps, nous avons affiché le signal en fréquences grâce à la fonction
spectrum. Il permet de repérer les bandes de fréquences les plus utilisées.
Cependant pour pouvoir travailler en bandes de fréquences sur un signal nous utilisons la
transformée de Fourier.
Encore une fois nous faisons appel à la librairie wav avec la fonction wavwrite qui permet de
retranscrire un signal dans un fichier.
Dans le cas où le signal aurait subi un découpage fréquentiel, il devra déjà être ré-
assembler avant de le réécrire.
4 : Bibliographie
Wikipedia
http://fr.wikipedia.org/wiki/MP3
http://fr.wikipedia.org/wiki/Codage_de_Huffman
http://fr.wikipedia.org/wiki/Courbes_isosoniques
Comment ça marche
http://www.commentcamarche.net/audio/mp3.php3
Pingu.ch
EPSIC.ch
Illustration des seuils de sensibilité de l'oreille humaine (figure 2)
Effet de masquage