ou INSCRIVEZ-VOUS Mot de passe oublié ?
Publicité

BadaBOOM : test de l'encodage vidéo H.264 sur GPU NVIDIA

Bruno Cormier le 23 octobre 2008 (33 226 lectures)
Encodage en 720p - 8090 kbits/s
(coupe d'image en 900 x 460, définition 720p d'origine, cliquez pour voir en taille réelle, format png)

BadaBOOM                                                                                               MeGUI x264

BadaboomBadaboom
 
Badaboom GPU 720pBadaboom x264 720p

Badaboom GPU 720pBadaboom x264 720p

Badaboom GPU 720pBadaboom x264 720p

Badaboom GPU 720pBadaboom x264 720p

Badaboom GPU 720pBadaboom x264 720p

On voit ici que l'encodage GPU de BadaBOOM tient plutôt bien la route. Le haut débit d'encodage permet de réduire les effets nocifs de sa (trop) puissante réduction de macroblocs. Le x264 fait tout de même un peu mieux dans le détail, avec une image plus fidèlement reproduite, mais à ce débit, rien de vraiment frappant : BadaBOOM remplit son contrat.

Encodage en 720p - 2700 kbits/s

BadaBOOM                                                                                               MeGUI x264

Badaboom GPU 720p 2700 kbpsbadaboom x264 720p 2700kbps

Badaboom GPU 720p 2700 kbpsbadaboom x264 720p 2700kbps

Badaboom GPU 720p 2700 kbpsbadaboom x264 720p 2700kbps

Badaboom GPU 720p 2700 kbpsbadaboom x264 720p 2700kbps

Badaboom GPU 720p 2700 kbpsbadaboom x264 720p 2700kbps

Badaboom GPU 720p 2700 kbpsbadaboom x264 720p 2700kbps

C'est ici déjà bien plus frappant : la réduction des macroblocs (deblocking), intégrée à l'encodage dans le MPEG-4 AVC, est ici bien trop forte chez BadaBOOM. Avec un bitrate plus bas, les détails se perdent donc bien vite, alors que le x264 tient encore bien le coup. Ici, la différence se fait sentir, elle tourne en faveur du x264 en termes de qualité pure. On rappellera que le deblocking intégré au x264 était réglé à sa valeur par défaut (0,0) lors de tous les encodages.

Encodage pour iPhone - 640 kbits/s
(480 x 270)

BadaBOOM                                                                                               MeGUI x264

Ici encore, on voit que l'image encodée par BadaBOOM est bien trop floutée par le deblocking. La différence ne se fait pas vraiment sentir dans toutes les scènes, mais elle est bien visible, surtout avec de jolies blondes sur un fond rouge ! Une fois de plus dans ce cas, la réduction du débit d'encodage fait beaucoup de mal à la qualité visuelle de la compression de BadaBOOM.

Encodage en 720p - 2700 kbits/s (avec le x264 réglé au minimum pour obtenir du 33 images par seconde)

        BadaBOOM (régagle normal 2700 kbits/s)                                        MeGUI x264 (estimation minimale du mouvement)
 
badaboom gpu 720p 2700kbpsbadaboom x264 720p 2700kbps ME minimale

badaboom gpu 720p 2700kbpsbadaboom x264 720p 2700kbps ME minimale

badaboom gpu 720p 2700kbpsbadaboom x264 720p 2700kbps ME minimale

Que dire dans ce cas, si ce n'est de rappeler que BadaBOOM reste plus rapide (43 ips) que le x264, histoire d'être indulgent. Ces images montrent une chose : l'estimation de mouvement (une chose essentielle dans l'encodage MPEG-4) est certainement réduite au minimum chez BadaBOOM, et elle est compensée par un puissant filtre antimacrobloc.

Rien d'étonnant en fait, puisque cette estimation de mouvement est particlulièrement difficile à prendre en charge pour un GPU. Cette tâche est difficilement parrallélisable, elle prend énormément de temps et nécessite beaucoup d'échanges avec la mémoire. Lors d'une enquête sur l'éventuel développement d'un codec x264 accéléré par GPU, une entreprise ayant tenté le coup (Avail Media) nous avait confié avoir abandonné après plusieurs mois de recherche portant sur une implémentation CUDA du x264.

BadaboomCes derniers nous ont expliqué que même si rien n'est impossible, il est très difficile d'adapter le threading du x264 au fort parallélisme d'un GPU : « L'architecture multiprocessus actuelle du x264 fonctionne image par image, il est du coup très peu efficace de ne charger qu'une partie de l'image dans la mémoire du GPU, effectuer l'estimation de mouvement, et de renvoyer les résultats. Nous serions ravis que quelqu'un puisse tout faire fonctionner, mais cela semble peu faisable pour le moment ».

Si Elemental Technologies dit juste, ils ont semble-t-il trouvé le moyen de faire tourner une estimation de mouvement, aussi basique soit-elle, sur le GPU en découpant l'image en plusieurs parties (leur codec est bien au standard H.264 mais ce n'est pas le x264). La firme nous avait promis que les développements futurs permettraient de faire du H.264 en Main et High Profile sur GPU, impliquant une estimation plus poussée du mouvement, on ne demande qu'à les croire.

Conclusion

Pour l'instant, cette version de BadaBOOM semble parfaite pour ceux qui transfèrent beaucoup de contenu sur des appareils de poches. Le rapport qualité-rapidité est largement acceptable pour une utilisation quotidienne. Les cinéphiles nomades souhaitant faire les choses rapidement et sans difficulté seront ravis, mais limités par deux choses : BadaBOOM coûtera 29,99 dollars (disponible sur cette page), et ne pourra lire que les vidéos MPEG-2, non cryptées évidemment. Notez cependant que certains fabricants devraient proposer BadaBOOM gratuitement avec leurs cartes graphiques, ce qui sera clairement une valeur ajoutée supplémentaire. On attend aussi la solution de CyberLink, Power Producer 7, qui devrait offrir un encodage vidéo accéléré par GPU, avec ATI et NVIDIA cette fois.