Sie sind auf Seite 1von 10

Compression des signaux

Norme MP3
1 : Introduction au MP3

1.1 : Définition du 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

Le codec vient de la contraction des mots compression - décompression, il désigne un procédé


visant à transformer un signal qu'il soit numérique ou analogique dans un format donné.

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.

1.3 : Modèle psycho-acoustique humain

1.3.1 : Perception des fréquences

Figure 1 : Représentation du modèle psycho-acoustique

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

sans être détériorée.


<!--[i f !supportEmptyParas ]--><!--[e

1.3.2 : L'effet de masque

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.

L'effet de masquage évolue de façon linéaire. Il dépend de la puissance du signal masquant. Il


en résulte un effet de masquage plus important sur la plage de fréquence audible optimum

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 .

Ldb = 10 log (Peff / Po )²


Ldb = 20 log (Peff / Po )

Ldb : Niveau de pression sonore


La distance entre un émetteur et un récepteur influe sur le bruit perçu.
Voici une formule permettant de calculer cet affaiblissement
Aff = 10 log ( d2² / d1² ) ou Aff = 20 log ( d2 / d1 )

figure 3 : Principe de masquage des fréquences

1.3.3 : Fletcher et Munson

Une courbe isonique est une mesure de pression sonore en dB).

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.

<!--[i f !supportEmptyParas ]--><!--[endi f]-->


figure 4

1.3.4 : Sub Band Coding

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.

1.3.5 : Le joint Stéréo

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.

2 : Étape de codage du MP3


2.1 : Décomposition du signal en sous bandes

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.

Pour effectuer ce découpage on va utiliser le filtrage temporel pour découper le signal en


plusieurs autres signaux ayant les mêmes propriétés que le signal de départ. Et ensuite on
utilisera des filtres passe-haut passe-bas ou l'on filtrera les fréquences voulues c'est à dire les
fréquences audibles grâce à la Transformée de Fourrier (FFT) qui nous permet de passer du
mode temporel en mode fréquentiel.

Pour effectuer ces opérations, Matlab a besoin de la fréquence d'échantillonnage, fréquence


qui doit être choisie judicieusement afin de restituer en intégralité le signal. Pour cela on doit
respecter la condition de shannon qui est que la fréquence d'échantillonnage doit être au
moins égale au double de la fréquence du signal pour éviter le recouvrement.
On sait que l'oreille humaine peut capter les sons jusqu'à 16 kHz, quelquefois jusqu'à 20 kHz.
Il convient donc, lors de la conversion, d'échantillonner le signal audio à au moins 40
kHz.44,1 kHz est la valeur normalisée par l'industrie.

2.2 : Application du modèle psycho-acoustique humain

L'ensemble de modèles psycho-acoustique humains devra être utilisé afin de détruire


l'ensemble des informations non nécessaires à la restitution d'un signal de qualité (cf 1.3).

2.3 : Modélisation d'un codeur MP3


Voici l'encodeur MP3 selon la normalisation ISE/IEC 11172-3

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

Acquisition d'un signal WAV

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.

%_/--\____________________________________Définition des chemins d'accès

FileIn = 'E:\projet RT\projet RT\WorkMai08\5s.wav';

%FileIn : Chemin d'accès du fichier contenant le signal source

FileOut = 'E:\projet RT\projet RT\WorkMai08\mp3.wav';

%File Out : Chemin de sauvegarde du resultat


%__/--\___________________________________Importation du signal

[Y, FE, NBITS] = wavread(FileIn);

%Y : Signal source

%FE : Fréquence d'échantillonage du signal source

%NBITS : Nombre de Bits par échantillon

%___/--\__________________________________Audio Player MatLab

%z = audioplayer(Y,FS);

%play(z)

%Audio player prend 3 parametres :

%Y : Signal

%FS : Fréquence du signal

2.2 Visualisation et analyse du signal en fréquence

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.

3.3 Découpage du signal en 32 sous bandes fréquentielles

Pour découper le signal source en 32 sous bandes, on utilisera la syntaxe :

%FS : fréquence du signal


Fpas = FS / 32 %Pas en fréquence
Fmin = 1; %Fréquence de départ pour une bande
Fmax = Fpas-1; %Fréquence max pour une bande
for SB=1:32
Xtemp = TFX[Fmin : Fmax];
%...
%Traitement sur l'échantillon fréquentiel
%...
Fmin = Fmin + Fmax;
Fmax = Fmax + Fpas
end
3.4 Application du model psycho-acoustique

Pour appliquer le modèle nous utilisons un filtre passe bande adapté à la


bande de fréquence en cours de traitement.

%Création du filtre passe bande


[B,A] = butter(5,[Bend Bstart],'bandpass'); %filtre PB d'ordre
(5) et de frequence de coupure fc
[H,W] = freqz(B,A,Pas); %Permet de visualiser le filtre
%Application du filtre a la bande
Y = (H .* Xtemp);

Ce traitement est effectuer dans la boucle découpant la source


en 32 sous bandes fréquentielles.

3.5 Exportation du signal dans un fichier numérique

Encore une fois nous faisons appel à la librairie wav avec la fonction wavwrite qui permet de
retranscrire un signal dans un fichier.

wavwrite( Signal ,Fréquence, NBITS, FileOut); % ecriture du mp3

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

Planète Numérique (Article "modèle psycho acoustique")

Ecole Nationale des ponts et chaussées (codage HUFFMAN par R. Lalement )


http://cermics.enpc.fr/polys/oap/node49.html

Pingu.ch

Illustrations du modèles psycho-acoustique et du phénomène de recouvrement (figure 1)

EPSIC.ch
Illustration des seuils de sensibilité de l'oreille humaine (figure 2)

UVMT (Université Virtuelle de Médecine du Travail)

Effet de masquage

Laboratoire de communication, Bethungra Rovers (Australie)