Encodage H.264 - CPU vs GPU : Nvidia CUDA, AMD Stream, Intel MediaSDK et x264 en test
Publié le 28/04/2011 par Guillaume Louel
Depuis quelques années, les constructeurs de cartes graphiques mettent en avant la capacité de leurs GPU à faire autre chose que du jeu. Si l'on peut relever certaines réussites dans le marché du High Performance Computing (milieux financiers, etc), côté grand public le concept du GPGPU (General Purpose computing on GPU) se cherche encore. Les standards comme OpenCL et DirectCompute tentent de faire leur trou mais l'adoption reste encore, côté grand public, relativement anecdotique.
La vidéo, évidemment !Un usage GPGPU grand public revient cependant assez souvent dans les présentations : l'encodage de vidéos. Sur le papier, l'idée semble très bonne. Les GPU peuvent déjà être mis à contribution quand il s'agit de décoder des vidéos (par exemple des Blu-ray), ce qui se fait par le biais d'un circuit dédié, intégré au GPU. Utiliser un GPU pour encoder semble donc l'étape suivante dans la logique.
Après un départ assez limité avec la première version de Badaboom en 2008 , le transcodage est revenu sur les devant par l'intégration dans Windows 7 de la possibilité d'utiliser sa carte graphique pour transcoder automatiquement ses fichiers vers un périphérique (lecteur de vidéo portable, smartphone, à condition qu'il soit compatible et détecté par Windows 7). Et de multiples applications, gratuites ou payantes, se sont attaquées aux problèmes de transcodages de fichiers, que ce soit à destination de périphériques mobiles, de tablettes ou de consoles de jeu.
Un point commun de ces applications est qu'elles utilisent souvent des bibliothèques conçues par les constructeurs de GPU eux même. Nvidia fournit ainsi sous licence un encodeur H.264 développé sous CUDA (nvcuvenc), AMD dispose du sien utilisant la technologie Stream (AMD Media Codec package en bas de page), et même Intel s'y est mis, comme nous l'avions vu en début d'année lors du lancement des processeurs Core Sandy Bridge avec son MediaSDK (qui repose lui-même en partie sur la bibliothèque IPP).
Mais que valent en pratique ces solutions ? Tous les logiciels qui les utilisent sont ils équivalents ? Quid de la rapidité d'encodage et de la qualité ? Et comment se mesurent ces solutions d'encodage face à la référence de l'encodage H.264, le logiciel open source x264 (que nous utilisons régulièrement dans nos tests processeurs) ? Des questions brulantes auxquelles nous allons tenter de répondre dans ce dossier !
Avant d'aller plus loin nous tenons à remercier le magasin Nicolas et fils pour les prêts de matériels ainsi que Jason Garrett-Glaser (dévelopeur de x264) pour avoir répondu à nos questions sur H.264. Si vous souhaitez approfondir le sujet, voici quelques ressources que nous avons utilisées pour élaborer cet article :
- La specification de H.264
- Le livre The H.264 Advanced Video Compression Standard de Iain Richardson (dont le site propose un certain nombre de contenus intéressants et gratuits ici )
- Le blog de Jason Garrett-Glaser
Conteneur, codec, transcodage
Sommaire
1 - Introduction
2 - Conteneur, codec, transcodage
3 - H.264 (1/2)
4 - H.264 (2/2)
5 - Mesurer la qualité : PSRN, SSIM et leurs travers
6 - Nombre de passes, GOP dynamique
7 - Scènes de tests, configuration
8 - ArcSoft Media Converter, Avatar 720p (1/4)
9 - ArcSoft Media Converter, Inception/K-On!! 720p (2/4)
10 - ArcSoft Media Converter, Avatar 1080p (3/4)
11 - ArcSoft Media Converter, Inception/K-On!! 1080p (4/4)
12 - Cyberlink MediaEspresso, Avatar 720p (1/4)
13 - Cyberlink MediaEspresso, Inception/K-On!! 720p (2/4)
14 - Cyberlink MediaEspresso, Avatar 1080p (3/4)
2 - Conteneur, codec, transcodage
3 - H.264 (1/2)
4 - H.264 (2/2)
5 - Mesurer la qualité : PSRN, SSIM et leurs travers
6 - Nombre de passes, GOP dynamique
7 - Scènes de tests, configuration
8 - ArcSoft Media Converter, Avatar 720p (1/4)
9 - ArcSoft Media Converter, Inception/K-On!! 720p (2/4)
10 - ArcSoft Media Converter, Avatar 1080p (3/4)
11 - ArcSoft Media Converter, Inception/K-On!! 1080p (4/4)
12 - Cyberlink MediaEspresso, Avatar 720p (1/4)
13 - Cyberlink MediaEspresso, Inception/K-On!! 720p (2/4)
14 - Cyberlink MediaEspresso, Avatar 1080p (3/4)
15 - Cyberlink MediaEspresso, Inception/K-On!! 1080p(4/4)
16 - MediaCoder, Avatar 720p (1/4)
17 - MediaCoder, Inception/K-On!! 720p (2/4)
18 - MediaCoder, Avatar 1080p (3/4)
19 - MediaCoder, Inception/K-On!! 1080p(4/4)
20 - StaxRip/x264, Avatar 720p (1/4)
21 - StaxRip/x264, Inception/K-On!! 720p (2/4)
22 - StaxRip/x264, Avatar 1080p (3/4)
23 - StaxRip/x264, Inception/K-On!! 1080p(4/4)
24 - Récapitulatif 720p
25 - Récapitulatif 1080p
26 - Récapitulatif temps/consomation
27 - Conclusion
16 - MediaCoder, Avatar 720p (1/4)
17 - MediaCoder, Inception/K-On!! 720p (2/4)
18 - MediaCoder, Avatar 1080p (3/4)
19 - MediaCoder, Inception/K-On!! 1080p(4/4)
20 - StaxRip/x264, Avatar 720p (1/4)
21 - StaxRip/x264, Inception/K-On!! 720p (2/4)
22 - StaxRip/x264, Avatar 1080p (3/4)
23 - StaxRip/x264, Inception/K-On!! 1080p(4/4)
24 - Récapitulatif 720p
25 - Récapitulatif 1080p
26 - Récapitulatif temps/consomation
27 - Conclusion
Vos réactions
Contenus relatifs
- [+] 09/05: AMD Ryzen 7 2700, Ryzen 5 2600 et I...
- [+] 05/04: Pas de MAJ Microcode pour les Gulft...
- [+] 05/10: Intel Core i7-8700K, Core i5-8600K,...
- [+] 12/09: Core i7-7820X : Un Skylake-X mieux ...
- [+] 07/09: Les Skylake en fin de vie chez Inte...
- [+] 23/08: Coffee Lake incompatible avec les L...
- [+] 29/06: Intel Core i9-7900X et Core i7-7740...
- [+] 03/01: Core i5-7600K et i7-7700K : pour qu...
- [+] 28/12: Gigabyte BRIX Gaming GT
- [+] 31/10: Intel dévoile les Kaby Lake dans un...