Mon TPE de l'année 2003-2004 est consacrée au format mp3. Vous pouvez trouver un dossier complet sur ce format en cliquant sur ce lien.
L’article au complet
Comme chacun devrait le
savoir, le MP3 tire son incroyable efficacité d’une méthode de compression dite
« avec pertes » : en quoi consiste-t-elle ?
Simple et efficace
« Le Mp3 devait offrir un taux
de compression très élevé (économisant la mémoire et la bande passante), rester
peu exigeant en ressource lors du décodage (pour trouver sa place dans
l’électronique grand public), le tout en maintenant une excellente qualité
audio. Pour y parvenir, ses concepteurs ont tiré parti d’un principe connu et
largement utilisé : la sélectivité de l’ouïe humaine. Puisque nous ne percevons
qu’une certaine partie des sons entendus, il de meure inutile de stocker la
totalité d’un signal audio : autant éliminer l’inaudible dès l’encodage. Ainsi,
un encodeur MP3 agit comme un filtre contrôlé par un ensemble de paramètres
définis plus ou moins empiriquement, que l’on désigne savamment par le terme
« modèle psycho acoustique ». Il repose sur trois principes très simples, le
masquage temporel, le masquage de fréquence et le seuil d’audibilité.
Le masquage temporel
L’expérience prouve que l’oreille nécessite un certain temps d’adaptation pour réagir à de soudains pics
d’amplitude. Dans notre perception, un tel « pic » (par exemple, un battement de
grosse caisse) « écrase » en effet des sons qui le précédent ou le suivent de
quelques dizaines de millisecondes. Autrement dit, il se trouve entouré d’une
« enveloppe », ou « masque », à l’intérieur de laquelle les sons plus faibles
éventuellement présents restent inaudibles. L’encodeur MP3 met à profit cette
propriété en calculant ces masques pour éliminer les sons ainsi « écrasés ».
Le masquage de fréquences
Ce principe, similaire au
précédent permet de simplifier, « épurer » le signal audio en éliminant un grand
nombre de fréquences inaudibles. En effet, l’oreille ne parvient pas à
distinguer deux fréquences très proches dans un son entendu. La présence
importante d’une fréquence crée donc encore une fois une « enveloppe », masquant
ainsi des fréquences proches. Ces dernières peuvent être donc éliminées, sans
changement perceptible concernant le son entendu.
Le seuil d’audibilité
Enfin, des études ont montré
que l’oreille humaine ne réagit pas de la même manière à toutes les fréquences :
très sensible pour certaines, elle l’est beaucoup moins pour d’autres. Ainsi,
pour chaque fréquence, il existe un certain « seuil d’audibilité » en deçà
duquel la fréquence en question demeure imperceptible… On appelle cela la loi de
Fletcher – Munsen. On peut donc « épurer » encore davantage le signal audio en
éliminant toutes les fréquences dont la présence demeure trop faible pour être
perceptible par l’auditeur.
Le codec MP3
Ces principes étant posés, le
fonctionnement du codec MP3, se résume éventuellement ainsi : à partir de
données audio brutes fournies en entrée, l’encodeur calcule le masque qui
recouvre tout ce qui s’avère inaudible. Il ne convient donc de conserver que la
partie du spectre qui « dépasse » du masque. Cette dernière subit alors un
échantillonnage et les valeurs ainsi obtenues se trouvent stockées dans le
fichier résultant. L’algorithme exact reste assez technique et hors du cadre de
cet article. Nous dirons simplement qu’il est conçu de telle sorte que le bruit,
inévitablement engendré par l’échantillonnage, reste entièrement recouvert par
le masque – autrement dit, qu’il demeure imperceptible pour l’auditeur. Dernière
astuce, on utilise ici un codage de Huffman, c’est-à-dire une compression
classique sans perte, qui permet de représenter les valeurs les plus courantes
par les codes les plus courts. Voilà donc le secret du MP3 : grâce au filtrage
sophistiqué par le biais du modèle psycho-acoustique, on obtient un signal très
appauvri, dont le stockage requiert beaucoup moins d’informations.
En pratique, un fichier MP3 se voit découpé en une suite de « frames », coresspondant chacune à quelques
fractions de seconde de musique. Chaque frame, forme un tout, largement
indépendant des autres frames. Outre les données encodées elles-meêmes, elle
contient un en-tête renfermant toutes les informations nécessaires à son
décodage. Ainsi, un émetteur radio numérique (sur Internet ou hertzien…) génère
un flux ininterrompu de frame, le récepteur peut alors commencer à écouter à
tout moment en captant une frame et la décodant, captant la frame suivant et
ainsi de suite…
Qualité paramétrable
L’un des paramètres cruciaux
lors de l’encodage concerne la taille en bits des frames. Une taille plus petite
signifie que seules les valeurs représentées par les codes de Huffman les plus
courts trouveront leur places dans la frame, à l’inverse, une taille plus grande
permet d’y stocker plsude valuers, au prix d’une consommation de mémoire accrue.
On définit ainsi le « bitrate », ou nombre de bits par seconde de musqie : plus
le bitrate sera élevé, et plus la valeurs pourront se voir stockées dans les
frames, augmentant ainsi la résolution et la fidélité du signal encodé. En
revanche, un bitrate faible ne donnera qu’une représentation grossière du signal
par les valeurs les plus importantes, mais produira des fichiers très petits.
En pratique, il peut arriver
que certaines frames ne sont pas entièrement remplies, si le stockage du signal
nécessite moins de bits que la frame n’en offre. De même, certaines frames
peuvent « déborder », lorsqu’il s’avère absolument nécessaire d’utiliser une
taille plsu grande pour maintenir une qualité audio acceptable. On exploite
alors la place disponible la place disponible dans certaines frames pour y
stocker ce qui ne peut rentrer dans d’autres ; dans le jargon du MP3, cette
astuce porte le nom de « réservoir de bits ». Certains encodeurs (par exemple la
version Open Source de Lame) pousse le vice plus loin : puisque chaque frame
reste indépendante des autres, rien n’interdit de recourir à un « bitrate »
variable (Variable BitRate, VBR) ! Ainsi, l’utilisateur ne choisit plus q’un
niveau de qualité générale, l’encodeur emploie alors un bitrate élevé lorsque
cela se montre nécessaire et génère les autres frames avec un bitrate plus
faible, offrant ainsi le meilleur compromis entre qualité élevée et forte
compression. Nous avons vu que l’encodage d’un fichier MP3 demeure donc une
procédure assez complexe et exigeante en puissance de calcul. Le décodage, en
revanche, se montre très simple et facilement implémentable, même avec des
moyens modestes. L’algorithme demeure en effet enfantin : le modèle
psycho-acoustique n’intervient pas ici, il suffit de décoder les valeurs de
Huffman stockées dans les frames pour obtenir le spectre du signal à rejouer ! »
Article tiré du Login n°93 Février 2002