Extrait de l'émission CPU release Ex0147 : Codecs du son.
Et d'ailleurs, restons avec le format mp3. Ce sous-format du MPEG-1 devient très vite populaire pour compresser des musiques, et le transmettre... bien souvent pour un usage illégal. Et l'encodeur le plus utilisé sur le matériel professionnel comme les logiciels grand-public, était celui distribué sous licence par le Fraunhofer Institute.
En 1998, le développeur Mike Cheng patche dans son coin quelques bugs de dist10, l'encodeur de démonstration fourni par le groupe MPEG pour le MPEG 1 Layer III. Et il s'amuse à bricoler autour du format… Son code forké, Lame, est redistribuée dans le milieu de l'open source, et attire des développeurs.
Ainsi naquit : Lame, l'autre encodeur mp3
Mais attention : Lame est alors une modification d'un code pré-existant, réalisé indépendamment du consortium MPEG et sans aviser le Fraunhofer Institute à l'origine du code et du codec. Ce qui a posé des problèmes de droits, de brevets et autres joyeusetés ruineuses. Même s'il est théoriquement interdit de breveter en Europe une formule mathématique ou un logiciel, ce n'est pas le cas dans le reste du monde, et surtout aux États-Unis, ce qui pose un problème pour la communauté du logiciel libre qui ne peut redistribuer Lame librement.
En quelques mois, tout le code source de Lame est ré-écrit from scratch, enlevant ainsi tout le code originel de dist10. Cette ré-écriture permet de proposer Lame avec la licence LGPL, et avec des fonctionnalités repensées. Et surtout un objectif : obtenir des fichiers mp3 parfaitement lisibles avec les bibliothèques de décompression standards, donc avec tout matériel et logiciel déjà existants, mais avec un bien meilleur ratio de compression de données à qualité de restitution équivalente.
Pour donner une idée, on estime en gros un mp3 encodé avec Lame à 128 kbits/s correspondrait à un mp3 encodé en Fraunhofer à 170 kbits/s, qui correspondrait à un mp2 à 240 kbits/s… Mais honnêtement, c'est plus une affaire de sensations, donc ces chiffres ne sont pas objectifs.
Lame introduisait un hack au format mp3, ouvrant la porte à une propriété inédite : l'encodage à débit variable, variable bit rate
dit VBR
, par opposition au format constant bit rate
, CBR
, qui était utilisé jusqu'ici. En gros, on peut dire que selon la complexité du son à un instant donné, le débit sortant variera entre 64 kbits/s et 192 kbits/s, en répétant la métadonnée du container indiquant le débit du codec chaque fois qu'on veut le changer. L'avantage est que l'encodeur n'a plus à encoder des artefacts pour arriver au débit exigé dans ses réglages.
Alors pourquoi ne s'est-on intéressé que si tard au débit variable ?
La réponse varie
Parce que le standard MPEG-1 a était prévu pour des supports linéaires à débit fixe, sans pouvoir sauter dans le flux, comme les cassettes et CD-Rom, ou utilisant toute la bande passante d'un moyen de diffusion comme le canal d'une liaison satellite, câble ou hertzien. Que les mêmes codecs qui sont dans le container MPEG-1 ont commencé à être développé en 1988, où il n'était même pas envisageable de faire plusieurs compressions en parallèle pour trouver le meilleur ratio durant une diffusion en direct ; et que le développement de Lame a commencé en 1998, quand le piratage de musique en format mp3 a popularisé le format de fichier en tant que tel, et donc sa lecture à partir d'un disque dur, dont le débit de transmission n'avait rien à voir aux applications prévues à l'origine.
Eh oui.
Sauf que le débit variable a de gros inconvénients. Par exemple pour la diffusion en stream : si jamais le serveur de diffusion accepte trop d'auditeurs, mais que la complexité d'un son varie brusquement et demande ponctuellement plus de débit, le serveur entraîne soit des déconnexion brutes, soit provoque des sautes chez tous les auditeurs.
C'est pour ça qu'en stream audio ou vidéo, on évite le pas variable avec une trop grande tolérance. Par contre, elle a montré son efficacité en satellite ou en diffusion hertzienne, quand ce procédé n'est pas utilisé pour un seul programme, mais un bouquet de programmes, lequel bouquet est transmit dans une bande passante maximale donnée. C'est techniquement ce qui a servi pour le bouquet satellite TPS qui se vantait d'une meilleure qualité d'image que CanalSat, qui eux restaient en CBR.
D'autres codecs audio que le mp3 connurent leur ré-implémentation et améliorations rétro-compatibles comme le codec libre Ogg Vorbis.
Texte : Da Scritch
Illustration : Logo officiel du projet Lame, via wikimedia, D.R.