mercredi 27 février 2008

WMA LOSSLESS 9.2 N’EST PAS SI LOSSLESS QUE ÇA : IL ENCODE MAL LES SILENCES PURS !!!

WMA LOSSLESS 9.2 N'EST PAS SI LOSSLESS QUE ÇA : IL ENCODE MAL LES SILENCES PURS !!!


 

Lorsque les gens à Billou étalonnent le mode VBR de leur codec audio, le bien nommé WMA, ils ne spécifient pas une plage de bitrates préférentiels, mais plutôt un niveau de qualité, exprimé en %. Ainsi, quand vous encodez en VBR 50, on peut comprendre que le signal originel est « tronqué » de 50 %. Mais tout cela est fort théorique. En effet, le codec WMA Professional, même en VBR 50, délivre un son si net que je doute fortement que le signal soit si amputé que cela. De même pour le WMA Lossless, fièrement affublé d'un VBR 100, c'est-à-dire 100 % du son d'origine. Bref, un sans perte assuré. Est-ce donc vrai ?

Un peu par ennui, un beau matin de la semaine passée, je me suis demandé quel type de signal pouvait mettre en difficulté un codec audio WMA, version 9.2 en l'occurrence. Je me suis rendu compte – et je n'en ai pas la primeur, loin s'en faut – que les sons très riches en aigues étaient fortement atténués, voire carrément supprimés, du moins au vu de l'analyse spectrale, pas forcément d'après l'ouïe... Seul le WMA Lossless, selon toute apparence, résiste à toute dégradation du signal d'origine. En effet, l'intensité de toutes les composantes spectrales du son converti est identique à l'original, au décibel près. Cependant, il est un type de signal qui, paradoxalement, n'occasionne aucune distorsion après conversion en WMA « classique », mais qui produit un spectre fort étrange après conversion en WMA Lossless. Il s'agit des silences purs, tels qu'on les crée au moyen de logiciels de traitement de son. Démonstration avec Audacity :

  1. Dans un projet audio mono à 44 100 Hz, générez un silence de 30 secondes
  2. Enregistrez en WAV, mono, 16 bits, 44 100 Hz
  3. Convertissez le fichier WAV en WMA Lossless, 16 bits, 44 100 Hz, stéréo
  4. Convertissez le fichier WMA en WAV, 16 bits, 44 100 Hz, stéréo
  5. Ouvrez ce fichier WAV avec Audacity
  6. Tracez le spectre dudit signal (Vue 4Tracer le spectre ou, si vous avez la dernière version, Analyse 4Tracer le spectre)
  7. La surprise est de taille : une saturation quasi-totale de toutes les fréquences colore le spectrogramme en bleu, comme s'il s'agissait d'un bruit blanc, alors qu'à l'écoute, aucun son n'est audible !

Mon cerveau d'amateur de traitements audio a alors envisagé trois hypothèses qui peuvent être cumulatives :

  1. La conversion mono-stéréo a dû introduire des erreurs de calculs (arrondis) dans le traitement
  2. Audacity dispose d'un mauvais algorithme de conversion et/ou de décodage WAV
  3. WMA Lossless a un problème avec les silences purs

Après réflexion, j'ai écarté les deux premières hypothèses. En effet, avec le WMA « classique », même à 32 Kbits/s, le spectre indique bel et bien un silence total à l'issue de toute cette chaîne de traitements. La troisième hypothèse est donc la bonne : WMA LOSSLESS N'EST PAS 100 % LOSSLESS ! Certes, à l'écoute, on ne perçoit aucune différence, mais graphiquement apparaissent des distorsions de signal.

Autre chose que je ne m'explique guère : en WMA « classique », mode VBR 98, le silence pur produit un fichier dont le débit moyen avoisine 103 Kbits/s, alors qu'en VBR 100, le débit moyen oscille autour de 75 Kbits/s, avec un pic à environ 86 Kbits/ !! Le silence serait-il fluctuant ?

Aux spécialistes de Micro$oft de répondre…

0 commentaires: