Après presque une décennie de problèmes de qualité, l’encodeur AMF d’AMD a finalement reçu une mise à niveau massive de la qualité d’image grâce à l’introduction de B-Frames dans la version 1.4.24 d’AMF. La mise à jour a en fait été abandonnée il y a des mois, mais ce n’est qu’hier que Chris Griffith de Code Calamity a finalement mis la nouvelle mise à jour à l’épreuve.
Selon Griffith, il a vu des gains massifs de la mise à jour. L’encodeur AMF a pu se rapprocher du dernier encodeur NVENC de Nvidia trouvé dans ses GPU RTX 20 et 30. Cette mise à jour pourrait voir les GPU AMD Radeon comme une solution beaucoup plus viable pour le streaming de jeux, avec des images à faible débit binaire presque aussi bonnes que l’homologue de Nvidia.
Les principaux problèmes liés aux encodeurs d’AMD remontent jusqu’aux GPU Polaris de la série 400, et dans certains cas même plus loin. Le support et la qualité ont été des problèmes constants et, pour la plupart, ont toujours été inférieurs à d’autres encodeurs tels que l’encodeur NVENC de Nvidia ou l’encodeur QuickSync d’Intel.
Mais le problème de qualité a été aggravé par l’introduction de l’encodeur NVENC de 6e génération de Nvidia, introduit dans la série RTX 20, qui a considérablement augmenté l’encodage GPU, mettant les performances à égalité avec un bon encodage x264.
Malgré la sortie de NVENC de 6e génération il y a plus de quatre ans, AMD n’a jamais vraiment fait son retour, ses encodeurs restant largement les mêmes, même sur les derniers GPU de la série Radeon RX 6000. La vidéo de l’expert en streaming EposVox illustre à quel point les performances de streaming d’AMF sont terribles dans des scénarios à faible débit fonctionnant sur le codec H.264.
La seule exception à cela est l’encodage HVEC, où l’encodeur AMF d’AMD fonctionne exceptionnellement bien. Mais cette capacité ne sera presque jamais utilisée dans le monde réel, tous les lecteurs vidéo modernes nécessitant aujourd’hui la prise en charge du H.264.
Les B-Frames sont de retour
La caractéristique décisive améliorant la qualité d’image d’AMF est la réintroduction des trames B dans l’encodeur AMD. Ironiquement, AMD avait à l’origine un support B-Frame avec son encodeur et décodeur d’origine VCE (en commençant par l’implémentation de 2e génération). Mais AMD semble avoir abandonné sa prise en charge lorsque la société a lancé son nouveau moteur VCN, qui a été lancé pour la première fois avec les APU AMD Raven Ridge et les cartes graphiques RDNA1.
Les B-Frames sont un aspect très important de la compression vidéo à l’ère moderne. Ces images sont associées à des images I et P pour créer un fichier vidéo hautement compressé. Les trames B permettent à l’algorithme de compression H.264 de prédire les données d’image des trames passées et futures dans un flux vidéo. Il s’agit d’une fonctionnalité facultative, mais qui s’est avérée augmenter considérablement la qualité d’image des flux à des débits binaires inférieurs.
Repères
Code Calamity a utilisé VMAF pour mesurer la différenciation de la qualité d’image entre AMF, NVENC et Intel QuickSync, avec Big Buck Bunny comme vidéo de référence. Dans ce benchmark, le score le plus élevé possible 100 est des points. Pour référence, NVENC marque 96,13 points et Intel QuickSync a marqué 96,37 dans ce test. Selon Code Calamity, l’encodeur AMF d’AMD n’est qu’à un demi-point derrière ces deux encodeurs, alors qu’avant (sans B-Frames), l’AMF d’AMD était à deux points derrière.
Ce repère peut être difficile à comprendre. Mais fondamentalement, cela signifie que la qualité d’image d’AMF est juste en dessous du dernier encodeur NVENC de Nvidia en ce moment, ce qui est bien meilleur que là où il se trouvait avant la dernière mise à jour.
Le support est encore largement absent
Pour l’instant, le seul problème avec cette nouvelle mise à jour de l’encodeur AMF est qu’aucune plate-forme de streaming n’offre de support, y compris OBS, bien que la mise à jour soit disponible depuis près de quatre mois. On ne sait pas pourquoi personne n’a encore implémenté la prise en charge de la mise à jour, mais AMD a l’habitude de ne pas soutenir largement les développeurs dans la mise en œuvre de ses SDK d’encodeur. C’est peut-être la raison pour laquelle le support prend si longtemps à être mis en œuvre.
Donc, pour l’instant, nous devons considérer ce benchmark comme un regard futur sur la performance de l’AMF. Espérons qu’il ne faudra pas longtemps pour que des applications comme OBS profitent de la nouvelle mise à jour, afin que les propriétaires actuels et futurs de cartes AMD puissent mieux les utiliser pour le streaming et d’autres tâches.