Encodage H.264 - CPU vs GPU : Nvidia CUDA, AMD Stream, Intel MediaSDK et x264 en test

Publié le 28/04/2011 par
Imprimer

StaxRip/x264, Avatar 720p (1/4)
Comme nous l'évoquions plus tôt, nous avons souhaité comparer les performances des encodeurs H.264 accélérés GPU avec ce qui existe côté processeur. Si un grand nombre de logiciels commerciaux existent, une implémentation Open Source de H.264 existe sous le nom de x264. Projet démarré par certains auteurs de VLC, x264 est une implémentation libre de H.264 comme XviD l'était en son temps pour le Mpeg 4 part 2. x264 est généralement considéré comme ce qui se fait de mieux en matière de qualité, au détriment bien sur de la rapidité d'encodage.


En soit x264 ne s'occupe que de l'encodage d'images brutes vers le format H.264. Afin de pouvoir effectuer un transcodage, il faut utiliser un frontend qui inclut les autres morceaux nécéssaires (décodeurs, encodeurs audio, etc). Nous avons retenu StaxRip , là encore un logiciel Open Source. Même s'il est un peu plus complexe de prise en main que les logiciels d'Arcsoft ou de Cyberlink, son interface reste abordable. Il a l'avantage de donner un grand contrôle au niveau de la configuration de x264, ce qui fait que nous l'avons préféré à d'autres outils comme Handbrake  que l'on recommandera à ceux qui trouvent StaxRip trop austère.

Côté versions, nous avons utilisés la version 1.1.7.0 de StaxRip, à laquelle nous avons rajouté la dernière build en date au début de nos tests de x264, la r1913 .
Contrairement aux autres logiciels, x264 permet littéralement de configurer tous les paramètres d'un encodage. Pratique, même si, parfois, cela peut être un peu… intimidant :

cabac=1 / ref=16 / deblock=1:-1:-1 / analyse=0x3:0x133 / me=umh / subme=10 / psy=1 / psy_rd=1.00:0.15 / mixed_ref=1 / me_range=24 / chroma_me=1 / trellis=2 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=-3 / threads=12 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / constrained_intra=0 / bframes=8 / b_pyramid=2 / b_adapt=2 / b_bias=0 / direct=3 / weightb=1 / open_gop=0 / weightp=2 / keyint=250 / keyint_min=23 / scenecut=40 / intra_refresh=0 / rc_lookahead=60 / rc=2pass / mbtree=1 / bitrate=4029 / ratetol=1.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / cplxblur=20.0 / qblur=0.5 / ip_ratio=1.40 / aq=1:1.00

Histoire de simplifier un peu la tâche, les auteurs ont ajouté des « presets », des séries de reglages qui offrent des niveaux successivement plus élevés de qualité. Par exemple, dans le cas de notre encodage ci-dessus, il s'agit simplement du mode veryslow. 10 modes sont disponibles, allant de ultrafast à placebo, un mode affreusement lent dont les gains sont difficilement visibles par rapport à la version veryslow, d'où son nom.

Nous avons testés les neufs modes (tous sauf placebo) à la fois en mode deux passes (le mode classique et recommandé), mais aussi en mode une passe pour garder un lien avec nos autres encodeurs. Il est temps de passer aux résultats !

Avatar 720p


Le mode ultrafast en tune film implique un profil H.264 baseline.


Comme vous le voyez sur les temps de calculs, l'ajout d'une seconde passe ne double pas réellement le temps d'encodage. Par défaut la première passe réalisée est rapide, nous avons extrait les temps de calcul de chaque passe à titre informatif :


Le mode 2p faster s'execute en temps réel sur notre Core i7.

Utilisez un navigateur compatible HTML5 pour voir le graphique !
Cliquez ici pour voir le graphique PSNR de cette scène.


Comme vous pouvez le voir le preset ultrafast détonne de tous les autres. Pas vraiment de surprise, ce dernier est le seul à utiliser le profil baseline. x264 est en effet configuré pour le résultat le plus rapide possible, en clair pour faire la course avec les encodeurs GPU. En pratique on évitera ce mode dont les résultats visuels sont pour le moins affreux comme on le verra. Notez que tous les autres modes utilisent un profil high (avec CABAC, B-Frames, GOP dynamique, etc).

Si vous comparez un même preset en version une passe et deux passes (abrégé 2p), on note de suite la meilleure uniformité en matière de qualité. Comment tout cela se traduit il en image ? Réponse !

Cliquez-ici pour afficher le comparateur d'images dans un nouvel onglet.


Si le mode ultrafast fait réellement mal aux yeux, le niveau de qualité monte rapidement. Dès le mode faster la qualité est au dessus de ce que l'on a vu de mieux précédemment. Mais de manière beaucoup plus intéréssante, la qualité des modes deux passes est significativement plus elevée, le mode 2p veryfast faisant déjà significativement mieux.

Voyons maintenant ce qui se passe dans un motion blur :

Utilisez un navigateur compatible HTML5 pour voir le graphique !
Cliquez ici pour voir le graphique PSNR de cette scène.


On rappellera tout de même que les modes d'encodages de x264 ne sont pas optimisés pour les mesures SSIM, mais pour la qualité visuelle de par leurs optimisations psychovisuelles. Malgré tout dès le mode veryfast (1 passe) la qualité est au dessus de tout ce que l'on a vu plus tôt. Et en image ?

Cliquez-ici pour afficher le comparateur d'images dans un nouvel onglet.


Dès le mode superfast, la préservation visuelle est plus elevée, nottamement lorsque l'on regarde la grille au milieu. Les modes 2p rajoutent significativement en netteté, une fois de plus.
Vos réactions

Top articles