Oct 13, 2023
Obtenez des exportations ultra rapides dans Davinci Resolve avec les encodeurs doubles Nvidia RTX série 4000 de Nick Lear
Exportez jusqu'à 6 fois plus vite en modifiant un paramètre ! Ayant récemment fait un
Exportez jusqu'à 6 fois plus vite en modifiant un paramètre !
Ayant récemment effectué une série de tests approfondis de ma nouvelle carte graphique Nvidia RTX 4080 sur une gamme de NLE et d'applications graphiques intensives, je voulais approfondir le nouveau Nvidia Encoder (NVENC) de 8e génération fourni avec la série 4000 qui accélère le encodage AV1, H.265 (HVEC) et H.264 (AVC). Je voulais savoir comment tirer le meilleur parti du matériel, en particulier des encodeurs doubles - Nvidia ayant inclus deux puces d'encodeur cette fois-ci.
On dit souvent "Bon, rapide, pas cher - Choisissez deux" et cela convient assez bien à la post-production. L'encodage a une relation similaire entre la qualité, la vitesse et la taille du fichier.
Par exemple, si vous fixez la taille du fichier en fixant le débit binaire, comme c'est souvent le cas, vous pouvez obtenir une meilleure qualité en prenant plus de temps pour effectuer l'encodage. Si vous corrigez la qualité (en utilisant, par exemple, le curseur de qualité constante dans Handbrake), vous pouvez réduire un peu la taille du fichier en prenant plus de temps avec l'encodage. La façon dont vous procédez consiste à choisir un préréglage différent - vu ici pour l'encodeur x264 dans Handbrake par exemple.
Un préréglage est défini comme suit :
Un préréglage est une collection d'options qui fourniront une certaine vitesse d'encodage sur le taux de compression. Un préréglage plus lent fournira une meilleure compression (la compression est la qualité par taille de fichier). Cela signifie que, par exemple, si vous ciblez une certaine taille de fichier ou un débit constant, vous obtiendrez une meilleure qualité avec un préréglage plus lent. De même, pour un encodage de qualité constante, vous économiserez simplement du débit en choisissant un préréglage (source) plus lent.
La vraie question est cependant de savoir si prendre ce temps supplémentaire en vaut la peine pour vous. Certaines personnes choisiront simplement le préréglage le plus lent en sachant qu'elles veulent la meilleure qualité et qu'elles sont prêtes à l'attendre. Personnellement, j'aimerais toujours savoir si cela vaut la peine de faire quelque chose de plus lent - et si vous attendez 10 minutes de plus chaque jour pour une amélioration de 0,01 % que personne ne verra jamais ? Eh bien, il s'avère que c'est exactement comme ça - non seulement pour les encodeurs logiciels comme x264, mais aussi pour la nouvelle série RTX 4000, sur laquelle je reviendrai plus tard.
Il y a quelque temps, je suis tombé sur une excellente recherche de Jan Ozer intitulée "Choisir un préréglage x264" qui montre clairement que vous ne gagnez presque rien en utilisant quelque chose de plus lent que le préréglage "plus rapide" en termes de qualité, mais cela vous coûte un bon peu de temps si tu fais.
L'encodeur matériel Nvidia (NVENC) a également des préréglages - officiellement appelés P1 (le plus rapide) à P7 (le plus lent) qui, selon Nvidia, "déterminent par exemple la structure GOP, les images B, l'encodage anticipé, etc." - la plupart d'entre nous n'ont pas le temps de comprendre, mais c'est la même chose - passer un peu plus de temps pour obtenir un peu plus de qualité ou un fichier plus petit.
Et il s'avère que le temps d'exportation est extrêmement différent entre ces préréglages. J'ai effectué des tests sur le RTX 4080 en exportant un clip DNxHR UHD 25fps de 5 minutes vers les trois options de sortie (H.264, H.265 et AV1) sur les 7 préréglages. Pour H.265 et AV1,le préréglage le plus rapide était environ 6 fois plus rapide que le plus lent, allant d'environ 50 FPS à environ 300 FPS. Pour mettre cela dans un certain contexte,si vous avez un calendrier de 30 minutes, le préréglage « Très lent » prendra plus de 15 minutes et le préréglage « Très rapide » prendra 2,5 minutes. Ce genre de temps s'additionne si vous faites cela tous les jours. Pour obtenir cette vitesse d'exportation, le codec d'entrée doit être ProRes ou DNxHR (ou un codec mezzanine équivalent) avec des effets déjà mis en cache/rendus - sinon l'encodeur n'est pas alimenté assez rapidement.
Il y a aussi une raison pour laquelle la vitesse d'encodage augmente brusquement pour les deux préréglages les plus rapides - c'est ici que les encodeurs doubles entrent en jeu. Apparemment, sous certaines conditions, les nouvelles cartes peuvent diviser une vidéo en deux moitiés et passer chaque moitié à chaque encodeur, puis les recombiner. Pour utiliser les encodeurs doubles sur la nouvelle série RTX 4000, vous devez respecter les conditions suivantes :
Je n'ai également pu y parvenir que dans Davinci Resolve (pas Premiere Pro ou Shutter Encoder par exemple). Il est intéressant de noter que l'encodage H.265 est maintenant globalement plus rapide que H.264 - je pense qu'il est temps de commencer à l'utiliser si vous ne l'êtes pas déjà.
Bien sûr, la grande question est de savoir quel est le compromis entre la qualité et ces vitesses ? Bien que vous puissiez et deviez utiliser vos yeux pour voir si une exportation est de la qualité souhaitée, pour des différences plus subtiles, il est préférable d'utiliser quelque chose comme PSNR ou VMAF pour évaluer la qualité visuelle.
VMAF est un "algorithme d'évaluation de la qualité vidéo perceptuelle primé aux Emmy développé par Netflix". Et vous pouvez l'utiliser gratuitement dans FFmpeg - J'ai suivi ce guide (encore une fois par Jan Ozer). La très bonne chose à propos de VMAF est qu'il s'agit d'un score sur 100, ce qui le rend assez facile à comprendre et selon Netflix, un score de plus de 85 est bon.
Bien qu'il y ait une petite baisse de qualité dans les préréglages, elle est vraiment très petite - moins d'un demi-point VMAF et non visible à l'œil nu. Vraiment, avec n'importe quel score supérieur à 90, j'ai du mal à voir le moindre artefact. Une différence beaucoup plus grande est observée en utilisant H.265 au lieu de H.264 (et AV1 est encore meilleur). Bien sûr, les chiffres réels dépendront du matériel source, mais j'ai fait quelques autres tests et j'ai obtenu des résultats similaires.
Bien que la vitesse d'encodage n'affecte pas beaucoup la qualité, le débit/taille du fichier l'est. Vous pouvez voir ici un fichier de test 1080p encodé en H.265 à des débits allant de 10 Mbps à 1 Mbps – la qualité varie peu selon les préréglages, mais beaucoup selon les débits. À mes yeux, j'étais très satisfait des encodages supérieurs à 6 Mbps.
Étant donné que la plupart des gens ne manquent pas d'espace disque ou de vitesse Internet, augmenter le débit binaire est certainement le moyen d'améliorer la qualité, tout en conservant l'avantage d'obtenir l'encodage rapide avec les préréglages les plus rapides.
Dans Premiere Pro, les options sont plus limitées, mais vous pouvez toujours accélérer vos exportations en ajustant judicieusement les paramètres. Les préréglages ne sont pas disponibles en H.264 et AV1 n'est pas encore disponible (à part l'utilisation du plugin tiers Voukoder), mais si vous choisissez HVEC (H.265) comme format et que vous composez dans les paramètres vidéo, vous voyez cinq options répertoriées comme "Qualité" - pourquoi il y en a cinq et non sept, je n'en ai aucune idée (je suppose que j'essaie de simplifier les choses en omettant les deux autres). Vous devez également vous assurer que vous avez choisi un encodage matériel en une passe qui utilise l'encodeur Nvidia NVENC.
Encore une fois, il y a des gains de temps substantiels à faire ici, bien que malheureusement aucun d'entre eux ne semble accéder aux encodeurs doubles. Mais j'ai vu une augmentation de vitesse d'environ 67% passant du réglage par défaut "Bon" au réglage "Bas" - et cette fois, la baisse de qualité était complètement négligeable (seulement 0,1 point VMAF sur tous les préréglages). Et arriver à 167 FPS est assez impressionnant même si ce n'est pas tout à fait les 300 FPS de Davinci Resolve.
Shutter Encoder est un outil d'encodage gratuit et populaire, j'ai donc pensé à lui donner un coup d'œil aussi. C'est très utile et meilleur que Handbrake à bien des égards (par exemple, il garde le timecode intact). C'est un frontal pour FFmpeg et par défaut, il utilise les encodeurs CPU comme x264. C'est très bien si vous avez une carte graphique plus ancienne ou si vous recherchez la meilleure qualité possible. Vous pouvez le forcer à utiliser NVENC si vous le souhaitez pour des vitesses beaucoup plus rapides - dans mes tests, j'obtiens une augmentation de vitesse 10x en passant des paramètres par défaut à NVENC "très rapide". Il a fonctionné de la même manière que Premiere avec 183 FPS et encore une fois, il ne semblait pas pouvoir utiliser les encodeurs doubles.
J'ai trouvé que les encodeurs logiciels donnaient 1 ou 2 points VMAF supplémentaires pour le même matériau en général, donc encore une fois, cela dépend si vous essayez de tirer le meilleur parti de la qualité et que cela ne vous dérange pas de passer du temps à le faire.
L'encodeur matériel Nvidia (NVENC) est de très haute qualité depuis de nombreuses générations - suffisamment proche de la qualité des encodeurs logiciels pour le rendre intéressant et beaucoup plus rapide. Dans cette série RTX 4000, c'est encore mieux et l'inclusion de deux encodeurs est assez excitante. Pouvoir y accéder dans Davinci Resolve est fantastique, amenant des vitesses d'encodage jusqu'à 300 FPS impressionnants en utilisant les préréglages les plus rapides. Et ces vitesses impliquent très peu de baisse de qualité, et vous pouvez de toute façon compenser cela en augmentant un peu le débit binaire, sans réel inconvénient.
Je pense aussi qu'il est temps d'abandonner le H.264 pour le H.265. Le matériel du côté récepteur est désormais capable de le lire facilement et il est désormais plus rapide à fabriquer et de meilleure qualité. H.264 a maintenant 20 ans et H.265 peut maintenant être considéré comme le choix "sûr" contre AV1 si cela vous fait vous sentir mieux.
Destination incontournable des cinéastes pour l'équipement de pré-production, de production et de post-production !
le préréglage le plus rapide était environ 6 fois plus rapide que le plus lent, si vous avez une chronologie de 30 minutes, le préréglage "Très lent" prendra plus de 15 minutes et le préréglage "Très rapide" prendra 2,5 minutes.