Connexion
Abonnez-vous

dav1d 0.9.2 est là : l’équipe de VLC arrive au bout de ses optimisations

dav1d 0.9.2 est là : l'équipe de VLC arrive au bout de ses optimisations

Le 06 septembre 2021 à 08h23

Elle travaille depuis des mois sur ce projet visant à proposer une solution open source pour décompresser les flux vidéo AV1 de manière efficace et multiplateforme.

Dans un billet de blog publié le mois dernier, Jean-Baptiste Kempf évoque pas moins de 140 000 lignes de code rédigées en assembleur pour ce projet, dont la phase d'optimisation touche à sa fin

Les gains sont observables tant sur les plateformes ARM que x86, notamment sur les contenus prenant en charge une profondeur de couleur sur 10/12 bits. Désormais, le travail va se concentrer sur la gestion des threads. 

Aucune date n'a pour le moment été donnée pour une éventuelle version 1.0.

Le 06 septembre 2021 à 08h23

Commentaires (45)

Vous devez être abonné pour pouvoir commenter.

Abonnez-vous
votre avatar

pas moins de 140 000 lignes de code rédigées en assembleur pour ce projet


OMFG :ooo:

votre avatar

Et sinon, les menus DVD en français, ça avance…?

votre avatar

“140 000 lignes de code rédigées en assembleur pour ce projet”.



Je sais que niveau optimisation c’est le nec plus ultra, mais faut vraiment être masochiste pour s’infliger autant d’assembleur !!
Merci à eux en tout cas de faire un aussi bon boulot en open source et gratuit pour les utilisateurs finaux !

votre avatar

TofVW a dit:


Et sinon, les menus DVD en français, ça avance…?


Tu as le droit de contribuer, si cette fonctionnalité t’intéresse tant que ça :-) On parle de localisation après tout, pas de code, c’est accessible.

votre avatar

Pour les 140 k lignes en assembleur, le billet précise ceci donc par plateforme c’est heureusement moins (mais ça reste beaucoup avec 25 à 30 k lignes) :



90000 lines for x86 (AVX2, SSSE3-32, SSSE3-64);
50000 lines for ARM (32bit and 64bit).



This is very large for handwritten assembly, and for comparison, this is more assembly than what there is in FFmpeg (for all codecs).



Et il indique ausssi ceci, intéressant car avec la complexité des CPU modernes d’habitude c’est difficile de faire mieux qu’un compilateur :



And yes, this code is faster than what the compilers can generate by themselves. :)

votre avatar

Merci du complément d’info, la question qui vient ensuite c’est “mais donc est-ce qu’il n’aurait pas fallu plutôt travailler à l’amélioration du compilateur ?”



Mais si ça se trouve ça aurait été encore plus velu.

votre avatar

Masm et Tasm pour discuter avec une imprimante ligne éditant les relevés de compte des clients géré sous Cobol…. revival. :mad2:

votre avatar

Du beau travail a été fait, impressionnant !

votre avatar

Hormis sur mobile, sur desktop j’ai définitivement migré sur MPC-HC, l’interface est claire, le client est plus léger et lis parfaitement le format AV1, avec VLC, j’avais des problèmes avec une version récente (la dernière je ne sais pas) qui le rendait presque inutilisable, je n’ai jamais eu de problèmes avec MPC-HC.

votre avatar

Ne connaissant pas, je suis aller sur le site du projet.
Voici le message en haut de page “MPC-HC is not under development since 2017. Please switch to something else.” :craint:

votre avatar

Le développement continue par un membre de l’équipe : github.com GitHub



Mais ça reste quand même moins bien que VLC :-D

votre avatar

c’est parce qu’on est des vieux de la veille qui veulent rester sur l’interface windows media player de win98 :phibee:



les trads sont pas sur transifex ou une autre plateforme de localisation plutôt?

votre avatar

Si t’es pas tenté par VLC, SMPlayer (qui utilise mpv comme backend de lecture qui a remplacé mplayer) est très bien aussi. :)

votre avatar

J’utilise VLC sur Windows, Mac OS X et Ubuntu.
Et comme Windows n’est pas mon système personnel quotidien, je ne connais pas les autres outils.

votre avatar

Ca tombe bien, SMPlayer n’est pas un soft Windows mais un soft multiplateforme (comme mplayer et mpv qui sont les backend utilisables d’ailleurs).



Ca prenait 20s à vérifier au lieu d’expliquer ne pas connaitre les alternatives Windows (ce que SMPlayer n’es pas).



https://www.smplayer.info/en/downloads

votre avatar

Pareil, toujours eu quelques soucis avec VLC qui étaient résolus en lisant ma vidéo avec MPC-HC… mais ma dernière expérience remonte pas mal et ces soucis réguliers ne sont peut-être plus d’actualité.



Du coup aujourd’hui je ne jure plus que par MPC-HC + madVR. Aucun regret. A ce sujet MPC-HC a été repris et je vous recommande chaudement l’installeur ultra complet, maintenu régulièrement et très propre “K-Lite”. Je suis le premier à fuir les packs de codecs en temps normal pour leur côté bordélique et un peu trop envahissant mais là j’ai été séduit.



Je reste néanmoins très respectueux de travail accompli sur VLC, je précise histoire de pas sembler torpiller une news positive sur VLC. D’autant que Jean-Baptiste me lira probablement :D

votre avatar

Ca aurait été bien de mettre un graphique pour voir les progrès réalisés.

votre avatar

J’ai peut-être mal compris ta remarque, mais il y en a bien un et il est parlant : http://www.jbkempf.com/blog/public/VideoLAN/dav1d/dav1d_090_10b.png

votre avatar

C’est l’article de NXI qui manque de graphes.

votre avatar

Il n’y a pas d’images dans le brief mais effectivement, un lien vers le billet de blog qui donne des détails (en images) sur le sujet.

votre avatar

Normal, c’est pas un article c’est une brève.
Il n’y a jamais d’images (en dehors de l’illustration) dans une brève.



(Edit : arf, grillé le temps de lire et répondre sur un autre article… :craint: )

votre avatar

(reply:1894492:Thorgalix_21) Normal, j’aurais ptet dû préciser que la version d’origine a été abandonné mais qu’un fork l’a remplacé et est maintenu à jour, c’est cette version que j’utilise, il faut connaître le lien.


github.com GitHub




wanou2 a dit:



Mais ça reste quand même moins bien que VLC :-D


Sur desktop, je préfère MPC-HC, j’ai eu des problèmes/bugs à plusieurs reprises avec VLC, client plus lourd, je n’ai jamais eu de soucis avec MPC-HC, mais je ne suis pas une généralité et tout dépends des préférences de chacun, en soit, quand VLC fonctionne correctement il est très bon.

votre avatar

Je ne peux pas parler pour aujourd’hui, mais du temps où j’utilisais VLC et MPC-HC (sous Windows), je trouvais que le soucis majeur de VLC c’était la navigation dans la vidéo. MPC-HC était nettement plus réactif à ce niveau, c’était incomparable. Sur VLC ça n’était pas purement instantané et m’amenait quelques soucis de sync son ou st.



Bon on s’écarte un peu du sujet de la news là.

votre avatar

grsbdl a dit:


Tu as le droit de contribuer, si cette fonctionnalité t’intéresse tant que ça :-) On parle de localisation après tout, pas de code, c’est accessible.


Localisation? Les menus sont déjà disponibles en français sur les DVD (la preuve en est qu’avec MPC-HC ou PowerDVD ils s’affichent correctement), donc il y a bien une ligne de code à écrire quelque part pour qu’ils s’affichent dans la langue de son choix sur VLC, non? :keskidit:

votre avatar

(reply:1894552:Ozwel) J’ai essayé madVR dans MPC-HC mais je ne vois aucune différence, de plus, ça me cause parfois un problème de format sur certaines vidéos, faut-il un écran HDR pour que ça fonctionne ?



Ozwel a dit:


je trouvais que le soucis majeur de VLC c’était la navigation dans la vidéo. MPC-HC était nettement plus réactif à ce niveau, c’était incomparable. Sur VLC ça n’était pas purement instantané et m’amenait quelques soucis de sync son ou st.


J’ai aussi eu durant un temps des problèmes de navigation dans la vidéo, plus la vidéo qui freeze, le son qui plante ce genre de chose.

votre avatar

Pour être honnête madVR c’est vraiment un plus optionnel. Là où je vois une différence non négligeable c’est sur la lecture du contenu HDR converti en SDR via tone mapping. VLC le fait nativement avec son propre renderer mais si on met les images côte à côte on s’aperçoit sans trop de mal que le rendu est meilleur sur madVR. Mais ce n’est peut-être qu’une question de goût ? Pour ma part je trouve le rendu VLC trop fade.

votre avatar

C’est vrai que j’ai souvent des trucs bizarres avec VLC. Le dernier était l’absence des voies des personnes dans un film, film qui passait sans soucis avec mplayer (juste les voies, il y avait la musique).

votre avatar

TofVW a dit:


Localisation? Les menus sont déjà disponibles en français sur les DVD (la preuve en est qu’avec MPC-HC ou PowerDVD ils s’affichent correctement), donc il y a bien une ligne de code à écrire quelque part pour qu’ils s’affichent dans la langue de son choix sur VLC, non? :keskidit:


Tu n’as pas ouvert de ticket pour ça ? Apparemment tu connais le sujet, tu pourrais les aider :p

votre avatar

Franchement, la flemme de créer un énième compte sur un énième site pour ça. Surtout que le problème est connu depuis longtemps, ça m’étonnerait que l’équipe ne soit pas au courant.

votre avatar

cyrano2 a dit:


C’est vrai que j’ai souvent des trucs bizarres avec VLC. Le dernier était l’absence des voies des personnes dans un film, film qui passait sans soucis avec mplayer (juste les voies, il y avait la musique).


J’ai rencontré ce genre de problème avec des films au format Dolby 6 canaux : VLC ne configurait pas automatiquement le mélangeur audio en stéréo sur mon PC équipé d’une sortie configurée en stéréo dans Windows, et donc seules les pistes audio arrières gauche et droite étaient audibles. Dans le menu Audio, faire passer le son en Mode Stéréo > Stéréo corrigeait le problème.

votre avatar

Dans un billet de blog publié le mois dernier, Jean-Baptiste Kempf évoque pas moins de 140 000 lignes de code rédigées en assembleur pour ce projet, dont la phase d’optimisation touche à sa fin.


Bande de has-been, portez-moi tout ça sur Electron. :langue:

votre avatar

QTrEIX a dit:


Hormis sur mobile, sur desktop j’ai définitivement migré sur MPC-HC, l’interface est claire, le client est plus léger et lis parfaitement le format AV1, avec VLC, j’avais des problèmes avec une version récente (la dernière je ne sais pas) qui le rendait presque inutilisable, je n’ai jamais eu de problèmes avec MPC-HC.


Pourquoi ya toujours des gens pour parler de MPC-HC qui est mort sur les news de VLC ??



VLC > tous les player

votre avatar

(reply:1894784:marba) Ca a déjà été dit dans les commentaires précédant mais je le reposte, MPC-HC a été repris par l’un des devs qui le maintient à jour et il fonctionne très bien.


github.com GitHub




VLC > tous les player


Non.




(reply:1894741:Ozwel) Ok ! Vu que mon utilisation est très basique la différence doit pas être significative pour moi, je ne sais pas. VLC trop fade, c’est à dire ? Comparé à MPC-HC, j’ai un peu l’impression d’avoir des couleurs légèrement saturés, mais j’ai pas re comparé récemment cela dit, sur Linux, VLC m’affichait une image avec de l’aliasing alors j’utilisais SMPlayer qui lui, m’affichait une image nette, c’était assez subtile mais quand même.


votre avatar

“pas moins de 140 000 lignes de code rédigées en assembleur pour ce projet”
Engagez-vous qu’ils disaient, rengagez-vous !

votre avatar

David_L a dit:


Il n’y a pas d’images dans le brief mais effectivement, un lien vers le billet de blog qui donne des détails (en images) sur le sujet.


Je demandais pas forcément un graphe mais “Les gains sont observables” ça laisse un peu sur sa faim (x2 ? x10 ? +30%?)

votre avatar

TofVW a dit:


Franchement, la flemme de créer un énième compte sur un énième site pour ça. Surtout que le problème est connu depuis longtemps, ça m’étonnerait que l’équipe ne soit pas au courant.


Ha bah tampis pour toi alors ^_^. Tu sais, sur ce genre de projets, les contributeurs se focalisent sur ce qu’ils jugent nécessaire (bcp font ça sur leur temps libre, sans aucune contrepartie). Les petits bugs ou manques qui n’intéressent (ou n’impactent) plus personne, ils restent dans le backlog jusqu’au moment où qqun décide de le classer en wontfix, histoire de nettoyer un peu. Pourquoi se donner du mal pour rien ?
Peut être qu’on montrant que ça t’impacte, et en aidant un peu, ça serait résolu.
Nota : VLC utilise Gitlab pour le bugtracking. Tu n’as pas un compte dessus ? Tu peux même t’enregistrer avec Google/Twitter etc, franchement ça va.

votre avatar

Non je n’ai pas de compte Gitlab.




grsbdl a dit:


Ha bah tampis pour toi alors ^_^.


Du coup j’utilise autre chose que VLC, alors pour le coup j’ai envie de dire tant pis pour eux. Bon, façon de parler, que j’utilise ou pas VLC, ça ne leur génère ni revenu ni perte.
Par contre, je ne suis pas le seul que ça embête, il existe de nombreux sujets sur les forums à propos de ça.
Faut dire quand même que c’est une fonction basique de tout lecteur multimédia qui se respecte. :keskidit:

votre avatar

140’000 lignes d’assembleur avec une moyenne d’un bug tous les 1000 lignes… ca promet :xzombi:

votre avatar

QTrEIX a dit:


Sur desktop, je préfère MPC-HC, j’ai eu des problèmes/bugs à plusieurs reprises avec VLC, client plus lourd, je n’ai jamais eu de soucis avec MPC-HC, mais je ne suis pas une généralité et tout dépends des préférences de chacun, en soit, quand VLC fonctionne correctement il est très bon.


Sous Linux VLC fonctionne très bien, sous Windows (portable du bureau) je m’en sers de temps à autre depuis des années et je n’ai pas eu de souci.




Ozwel a dit:


Du coup aujourd’hui je ne jure plus que par MPC-HC + madVR.


madVR ça sert à quoi en plus du lecteur MPC-HC ?




Ozwel a dit:


Je ne peux pas parler pour aujourd’hui, mais du temps où j’utilisais VLC et MPC-HC (sous Windows), je trouvais que le soucis majeur de VLC c’était la navigation dans la vidéo. MPC-HC était nettement plus réactif à ce niveau, c’était incomparable. Sur VLC ça n’était pas purement instantané et m’amenait quelques soucis de sync son ou st.


Dans le temps j’ai fait remarquer à J-B Kempf que le saut (de 5 ou 10 s) dans VLC était nettement plus lent que sous mplayer (sous lequel c’était comme instantané), et depuis ça a été réglé. Il y a aussi une question de format, le saut est instantané en MKV mais un peu moins sur des fichiers “.m2t” (fichiers MPEG-TS issus de la TNT), cela dit c’est pas bien gênant.

votre avatar

madVR c’est tout simplement un moteur de rendu (renderer) tiers, qui propose des réglages un peu plus fins et de base meilleurs que celui de MPC. Enfin, c’est mon avis et celui de beaucoup de monde dans la communauté du PCHT (PC dédié à la diffusion vidéo). Mais je veux bien avouer que par défaut VLC et MPC font déjà du bon travail.

votre avatar

Avec 140 000 lignes d’assembleur, j’ai peur pour la maintenabilité du projet. Les lignes en assembleur, c’est précisément ce que les devs du kernel Linux ont chassés car avec le temps les lignes devenaient désuètes (les compilateurs arrivant à faire bien mieux, et les CPU ayant des extensions de plus en plus poussées)

votre avatar

TofVW a dit:


Non je n’ai pas de compte Gitlab.



Du coup j’utilise autre chose que VLC, alors pour le coup j’ai envie de dire tant pis pour eux. Bon, façon de parler, que j’utilise ou pas VLC, ça ne leur génère ni revenu ni perte. Par contre, je ne suis pas le seul que ça embête, il existe de nombreux sujets sur les forums à propos de ça. Faut dire quand même que c’est une fonction basique de tout lecteur multimédia qui se respecte. :keskidit:


Si tu avais consacré 50% de ton énergie à aider les devs de VLC plutôt qu’à te plaindre / te trouver des excuses, ça serait peut être déjà corrigé ^^. Mais non, c’est mieux de se plaindre, qui plus est sur un site que les devs ne consulteront pas.
Les ouin-ouin sur les forums c’est pareil : c’est sur le bugtracker qu’il faut mettre des infos, et relancer si besoin.

votre avatar

TroudhuK a dit:


Merci du complément d’info, la question qui vient ensuite c’est “mais donc est-ce qu’il n’aurait pas fallu plutôt travailler à l’amélioration du compilateur ?”


L’amélioration des compilateurs est un travail continu, mais le compilateur ne peut pas toujours “deviner” ce qui est désiré par le programmeur, ce qui fait qu’on peut dans certains cas optimiser en assembleur, typiquement pour l’utilisation des instructions spécialisées SSE/AVX.
La compilation c’est un problème de traduction au sens large, et la traduction fidèle entre 2 langues n’est pas chose aisée, sauf si le texte est relativement simple.

votre avatar

Personnellement j’utilise MPC-BE avec madVR, mais si vous avez des solutions plus simple je prends !



Pourquoi ce combo et pas VLC : c’est le seul moyen, que j’ai trouvé pour envoyer les metadata HDR à ma TV pour lire correctement les fichiers 10bits/HDR. J’ai également dit à madVR de changer le framerate de windows quand je lance un fichier vidéo pour qu’il corresponde au framerate de la vidéo. Ceci afin que la TV puisse faire son interpolation “true motion” (surement un autre nom chez les autres marques, en gros créer des images intermédiaires à la volée pour fluidifier la vidéo, comme si elle avait été filmée à 60FPS par exemple ou 48FPS pour les films de Jackson). Comme ça les vidéos sont superbes ET sans saccades, le tout sur un HTPC sans CG avec un core i5 basse conso.



VLC ne fait qu’appliquer un LUT sur une vidéo HDR avant de l’envoyer à l’écran, la différence est flagrante entre les deux pour avoir comparé (visible dans le détail des noirs notamment et sur la chaleur de la chroma). Je n’ai trouvé aucun moyen d’envoyer les metadatas à la TV.



Ah oui ! Et évidemment il faut basculer en HDR dans les paramètres d’affichage de windows avant chaque lecture de fichier de ce type, ce qui n’est pas très pratique vous en conviendrez !



Du coup si jamais un INpactien connait un lecteur qui fait tous ça tout seul je suis grandement intéréssée !

votre avatar

Orshak a dit:


Ca tombe bien, SMPlayer n’est pas un soft Windows mais un soft multiplateforme (comme mplayer et mpv qui sont les backend utilisables d’ailleurs).



Ca prenait 20s à vérifier au lieu d’expliquer ne pas connaitre les alternatives Windows (ce que SMPlayer n’es pas).


J’aime quand on me fait une remarque désobligeante non justifiée.
Mon premier commentaire #10 (auquel tu as répondu) parlait de MPC-HC. Le premier commentaire qui mentionne SMPlayer est le #26.
De plus, comme j’utilise VLC et que j’en suis content, je n’avais aucune raison de chercher des alternatives.
Alors effectivement, avant de te répondre en #43, j’ai bien vu que SMPlayer était multiplateforme (alors que MPC-HC n’est que Windows).
Tout ça pour te montrer que ta remarque est légèrement déplacée.

dav1d 0.9.2 est là : l’équipe de VLC arrive au bout de ses optimisations

Fermer