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)
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
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)
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)
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.
Ces 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.
(coupe d'image en 900 x 460, définition 720p d'origine, cliquez pour voir en taille réelle, format png)
BadaBOOM MeGUI x264
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
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)
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.
Ces 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.
Sommaire
- 3. Une qualité en retrait, mais très correcte
- 4. BadaBOOM version 1.1 : perfectionnement et aboutissement ?















































