le jitter logiciel

Posté par dematetcd le 24 novembre 2012

Dans le numéro de ce mois (Novembre 2012) de Stéréo Prestige, Musiq met le doigt sur une question, qui, à ma connaissance, n’a jamais été abordée nulle part: le jitter logiciel.

Cette forme de jitter concerne le décodage des pistes (transformation d’un fichier en flux audio) par logiciel au sein d’un Mac ou d’un PC.

Dans une platine CD, cette opération est menée à bien par un asservissement Électro-Mécanique de la lecture du CD. Cette technologie est très mature, et le flux audio en sortie d’un lecteur CD (vers son DAC interne ou un DAC externe) est très rigoureusement fabriqué.

Par la, ou plutôt, les façons dont fonctionnent les différents système d’exploitation (Windows, OSX, Linux), et les modes de développement des logiciels de décodage, il y a création d’un jitter, y compris de manière aléatoire, lors de la création d’un flux audio par logiciel à partir des pistes.

Ceci est sans doute l’une des raisons de la systématique infériorité d’un « drive Mac/PC » par rapport à un drive CD, toutes choses étant égales par ailleurs.

Cela explique sans doute, enfin!, les différences audibles constatées (contre tout logique) entre le décodage de fichiers WAVE, FLAC, AIF ou ALAC, qui théoriquement produisent strictement le même flux audio au décodage.

Il est possible (mais non encore annoncé par les concepteurs, ni démontré, ni écouté) que la programmation d’un logiciel de décodage dans la puce dédiée d’un lecteur réseau soit en mesure d’éviter totalement ce phénomène de jitter logiciel.

Toujours est-il qu’il semble que le décodage des pistes au sein d’un ordinateur soit a priori voué à se voir détérioré par la façon même dont les processeurs généralistes, les systèmes d’exploitation et les logiciels fonctionnent. A moins, peut-être, d’être en mesure de programmer de tels logiciels au plus près de l’architecture logique et physique des processeurs et en bypassant certaines couches logicielles ou d’abstraction des systèmes d’exploitation.

Merci à Musiq pour sa perspicacité, son article et pour corriger les éventuelles erreurs que j’aurais commises dans ce post.

5 Réponses à “le jitter logiciel”

  1. Thierry G dit :

    Bonsoir Thierry-Dematetcd

    C’est une bonne synthèse en l’état de l’art. L’article que j’ai préparé est somme toute assez compliqué, mais la technologie en termes d’ingénierie logiciel est fort complexe. Peu de programmeurs maîtrisent cet aspect et s’en tiennent à dérouler des jeux d’API sans trop comprendre ce qui se passe réellement autour sauf à naturellement faire face à de réels problèmes et devoir creuser… Il faut noter que les techniques évoquées sont le fruit d’une part de mes connaissances personnelles sur l’ingénierie de développement temps réel pour laquelle je travaille depuis de nombreuses années, mais également d’échanges avec des concepteurs de logiciels ultra-performant en la matière (reproduction audio).

    Tu peux noter d’autre part que les puces embarquant des firmware réalisent nombre d’opérations hard codées et en isolation quasi parfaite du reste de l’appareil, si cela semble plu simple en apparence, tout devient plus compliqué quand la puce n’est pas fabriquée par soi même et que le firmware devient une boîte noire que l’on assemble tant bien que mal avec d’autres composants. Le jeu des compensations et des processeurs aux 600 ou 1000MIPS embarqués vient pour contrebalancer les latences que l’on ne peut traiter. Fort heureusement de nos jours les processeurs sont plus puissants et traitent de plus en plus de choses en parallèle, mais attention, la mémoire elle est toujours source d’accès lent et partagé, notamment la mémoire flash, donc, méfiez-vous du marketing :)

    Cordialement
    Thierry-Musiq

  2. Mako dit :

    Jplay est il ce genre de logiciel dont vous parlez dans le dernier paragraphe ou est ce encore autre chose ?

  3. dematetcd dit :

    Oui.

    Je ne parle tout au long de ce post que d’un seul type de logiciels, ceux qui ont en entrée une piste (WAVE, FLAC, AIFF, ALAC,…) et qui en font un flux audio.

    Comme iTunes, Audivarna, Pure Music, Amarra, Jplay, Windows Média Player, Foobar,…

    Et les logiciels embarqués dans les serveurs de musique comme Aurender, Olive ou Meridian qui travaillent avec un « système d’exploitation ».

    Pour les lecteurs réseau (Linn, Ayon, etc) il est un peu plus difficile de s’avancer, le logiciel étant embarqué directement dans des puces.

  4. Zaurux dit :

    J’ai du mal à saisir… le décodage hardware est lié à la puce qui peut être embarqué dans un lecteur réseau ou un PC classique (même si c’est plus commun pour les cartes graphiques que son).
    Ensuite, je n’ai pas vu les références qui permettent de mettre le doigt sur ce jitter, même si je n’en doute pas (ex: en aval de foobar avant le transport du flux).
    Ce qui m’intéresse, ce sont les pistes qui permettent de l’éviter.
    Je m’oriente vers une lecture sous Linux via logiciel (Audacious) et Jack avec un noyau temps réel..
    Bref, je vais reprendre la lecture du blog à la recherche de la solution au meilleur rapport simplicité/efficacité !!

  5. dematetcd dit :

    Je n’ai pas trop saisi… ce que vous ne saisissiez pas :-)
    En plus de l’article de Musiq mentionné dans le premier post, il y a aussi cet article de Damien Plisson, le papa de Audivarna:
    http://www.amr-audio.co.uk/large_image/MAC%20OSX%20audio%20players%20&%20Integer%20Mode.pdf

    Musicalement
    Dematetcd

Laisser un commentaire

 

Erick Yuber |
Quadrumane Productions |
Le Blog de Cocktail |
Unblog.fr | Créer un blog | Annuaire | Signaler un abus | RADIO BEAUCHASTEL
| Ralassbirecordz12
| Vocalibre