Skin utilisée

TimeSwitch
Edit Juillet 2004

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