Voici un commentaire assez enthousiaste de l'auteur des optimisations SIMD et PCM que Le Dom va implémenter dans la v2.0:
Cher @Bear,
Tout d'abord, merci beaucoup d'avoir pris en considération et intégré mes optimisations PCM et SIMD AVX2 pour Zen 4. J'apprécie sincèrement le temps que vous y avez consacré et votre ouverture aux contributions de la communauté !
Je souhaitais créer ce ticket afin de partager quelques détails supplémentaires sur mon travail d'optimisation, ainsi que quelques observations et inconvénients potentiels qui pourraient vous être utiles, à vous et à d'autres utilisateurs.
Observations sonores sur mon système
Après avoir mené de nombreuses expériences sur ma configuration, j'ai remarqué certaines caractéristiques intéressantes lors de l'application de ces optimisations :
Optimisation AVX2 SIMD :
Son nettement plus clair et plus transparent
Amélioration de la clarté et du rendu des détails
Scène sonore élargie avec une meilleure image
Extension améliorée des aigus
Cependant, j'ai également remarqué un léger compromis : les médiums peuvent tendre vers la brillance, ce que certains auditeurs pourraient trouver moins musical ou moins naturel.
Optimisation PCM :
C'est là que quelque chose de tout à fait magique s'est produit : lorsque j'ai appliqué l'optimisation PCM en même temps que l'AVX2, la brillance dans les médiums a semblé disparaître, ce qui a donné une présentation globale plus équilibrée et plus musicale.
Suivent des suggestions d'optimisation de l'installation de ffmpeg.
Ensuite:
Merci beaucoup pour vos suivis et pour avoir partagé ces précieuses observations avec la communauté !
Tout d'abord, je vous présente mes sincères excuses pour la gêne occasionnée par la configuration de compilation FFmpeg 5.1.2 qui empêche la lecture DSD. Comme je n'utilise pas personnellement le DSD dans ma configuration, je n'ai pas pu détecter ce problème lors de mes tests. Je vous suis très reconnaissant d'avoir pris le temps de le signaler, cela aidera certainement d'autres personnes à éviter le même écueil. Je suis heureux d'apprendre que FFmpeg 7.1 avec les recommandations de configuration personnalisée fonctionne bien pour vous maintenant.
La philosophie derrière la configuration personnalisée
Je voudrais prendre un moment pour expliquer le raisonnement derrière une configuration aussi minimale. L'idée centrale est la suivante :
Moins de fonctionnalités = moins de gigue et de latence.
En désactivant autant de composants inutiles que possible, nous permettons au code de se concentrer exclusivement sur la production d'un son de haute qualité. Moins il y a de chemins de code, moins il y a de sources potentielles d'incohérences de synchronisation et de surcharge de calcul, ce qui se traduit par un son plus propre et plus transparent.
Options supplémentaires à tester
Si vous souhaitez approfondir la question, voici quelques indicateurs de compilation qui pourraient vous intéresser :
--enable-lto (optimisation au moment de la liaison)
--enable-small
Ces options peuvent potentiellement améliorer la pureté et la transparence du son. Cependant, veuillez noter qu'il y a un compromis : le son obtenu peut être légèrement moins riche. Comme toujours, tout dépend de vos préférences personnelles et de la synergie du système.
Et pour finir:
Quelle merveilleuse nouvelle ! ?
Je suis vraiment touché par vos aimables paroles et submergé de gratitude pour cette incroyable nouvelle !
Apprendre que @Dominiquecomet, le créateur original de ce projet, est enthousiasmé par notre collaboration et a décidé d'intégrer à la fois votre implémentation de la classe Sync et mes optimisations dans la prochaine version 2.0, cela dépasse honnêtement tout ce que j'aurais pu imaginer. Quel honneur !
C'est exactement ce qu'est la collaboration open source. Un projet commence par la vision d'une seule personne, se développe grâce aux contributions de la communauté et évolue vers quelque chose de plus grand que ce que chacun d'entre nous pourrait réaliser seul. Ce sont des moments comme ceux-ci qui me rappellent pourquoi j'aime faire partie de cette communauté.
Je suis également ravi d'apprendre que vos tests DSD n'ont révélé aucun effet indésirable jusqu'à présent. Tenez-moi au courant de vos conclusions, je suis très curieux de savoir comment cela fonctionne dans différents scénarios.
Merci d'être un collaborateur aussi aimable et d'avoir facilité la communication avec Dominiquecomet. Votre implémentation de la classe Sync semble également constituer une amélioration significative, et je suis impatient de voir comment la version 2.0 intégrera toutes ces améliorations.
Si je trouve de nouvelles idées, optimisations ou observations au cours de mes expériences, je ne manquerai pas de vous en faire part. De même, n'hésitez pas à me contacter si je peux vous aider ou contribuer à quoi que ce soit d'autre.
Voilà qui fait plaisir et devrait aussi vous mettre dans l'attente impatiente de la v2.0