Quadro CX, une carte graphique dédiée à la suite vidéo Adobe CS4

Test d'encodages H264, en conditions de prod.
L'accélération GPU au-delà de l'Open GL
La Quadro CX s'accompagne en exclusivité du plug-in RapiHD développé par la société Elementals et s'appuyant sur la puissance GPU pour accélérer l'encodage en H264.
On croit trop souvent que l'accélération GPU se limite au protocole Open GL utilisé entre autre dans les logiciels 3D pour accélérer le preview en cours de travail. Pourtant, la puissance des très nombreux processeurs d'une carte graphique (200 sur la Quadro CX) peuvent être mis à profit pour des tâches répétitives (du calcul parallèle) avec des performances souvent bien supérieures à celles de son CPU. A cet effet, NVidia a lancé il y a deux ans une architecture ouverte, nommée CUDA, permettant aux développeurs de venir tirer parti de la puissance de calcul GPU là où ils avaient l'habitude de solliciter uniquement le CPU. En réalité CUDA est ouvert à tous les langages de programmation courants comme le langage C: par exemple, et les développeurs ne quittent pas vraiment leur environnement traditionnel pour tirer parti de la puissance de la carte graphique.
C'est ainsi que si Adobe exploite le CPU pour les encodages de la CS4, le plug-in d'Elementals vient rajouter une approche différente : avec son propre codec et un code exploitant le GPU, l'encodage se calcule donc avec les processeurs de la carte graphique en plus du CPU, pour en accélérer le traitement, surtout pour un codec gourmand comme le H264 (la fameuse déclinaison du MPEG-4 utilisée sur iPod, PSP, Blu-Ray ou pour l'AVCHD).
Encodage GPU RapiHD contre encodage CPU...
Selon la puissance processeur de sa machine, l'éditeur annonce qu'un encodage avec RapiHD+Quadro CX peut être jusqu'à 7x plus rapide que l'encodage CPU. Qu'en est-il avec une machine de montage du moment (QuadCore 3Ghz)?
J'ai mis en place un protocole de test proche de nos conditions réelles de production et de montage.
Notre test se base donc sur les critères et le protocole suivants :
-Tester avec des montages de 10mn aux formats sources chaque fois différents : AVCHD, P2, XDCAM EX, HDV, DV, AVCHD 24Mb/s (le petit dernier de Canon). Les séquences ne mélangent pas les formats et ne contiennent QUE des fichiers du format souhaité, sans effets, avec des points d'entrée/sortie pour chaque clip passé en séquence.
La source du format aura-t-elle un impact sur le temps d'encodage ?
-Exporter dans un format techniquement proche de l'original, Full HD ou 1440x1080 par exemple.
-Exporter pour des usages courants réclamant une downconversion: pour iPod, PSP, YouTube, H264 720x576
La down-conversion dans ces formats différents aura-t-elle un impact sur les temps d'encodage par rapport à un encodage reprenant les mêmes résolutions et fréquence d'image que la source ?
-Bien entendu, encodage des mêmes séquences avec le codec Mainconcept par défaut d'Adobe Media Encoder d'une part, et avec RapiHD da la Quadro CX par ailleurs. Les temps d'encodage qui seront relevés seront ceux du journal d'Adobe Media Encoder qui consigne toutes les opérations réalisées.
-Nous souhaitons aussi comparer la qualité des encodages afin d'évaluer la qualité du codec H264 de Mainconcept intégré à Adobe Media Encoder, et le codec propre à Elementals lors de l'encodage GPU. Pour cela les fichiers finaux seront lus à 100% de leur taille sur écran 30 pouces Dell, un écran 24 pouces Samsung, mais aussi en projection HD avec notre « juge de paix » le Sony SXRD (dont le test est dispo ici: Test BRAVIA VPL-HW10 videoprojecteur HD Sony ).
La station de test

Résultat des encodages
Cliquez sur les images pour voir les graphs en détail,
Vous pouvez voir les graphs les uns à la suite des autres en utilisant les flèches de navigation en bas de la fenêtre pop-up.
Les chiffres indiquent le temps en minutes, pour rappel chaque source est un montage de 10 minutes dans un format donné.

Encodage Sony PSP

Encodage YouTube 320x240

Encodage AppleTV 720P

Encodage SD 720x576 en H264

Encodage HD 1440x1080

Encodage 3GPP 352x288
Dans tous les cas de figure testés, l'encodage tirant parti de l'accélération GPU se montre donc toujours plus rapide que l'encodage avec le processeur seul.
Cependant il y a des contextes bien plus favorables que d'autres :
-les encodages HD (pour Blu-Ray ou pour diffusion d'un fichier HD) en Full HD ou 1440x1080 se réalisent 3 à 4 fois plus vite que l'encodage CPU. Avec une machine disposant d'un processeur plus ancien les écarts seraient bien sûr plus impressionnants.
-l'encodage en HD720p Apple TV reste plus rapide en GPU avec la Quadro CX, mais déjà moins qu'en full HD, là c'est une fois et demi à deux fois plus rapide.
-les temps d'encodages pour iPod, PSP, téléphones (3GPP) sont assez proches en encodage GPU et CPU, la plus-value montre ici ses limites...
Il semble donc que la downconversion d'une source HD, pour la ramener à de petites résolutions type iPod, PSP ou 3GPP grève grandement les performances d'encodage de la Quadro CX avec le plug-in Elemental. Elles se rapprochent alors de celles de l'encodage CPU. D'ailleurs, si on réalise un encodage GPU réclamant une downconversion, j'ai remarqué que la charge du CPU est également grandement sollicitée, ce qui n'est pas autant le cas en encodant nos sources HD en HD 1080 (1920x1080 ou 1440x1080).
D'ailleurs la communication de NVidia met beaucoup en avant l'encodage Blu-Ray accéléré avec cette carte, domaine dans lequel le plug-in RapiHD d'Elementals se montre le plus véloce et convaincant. Sans qu'il ne s'agisse d'une puce dédiée spécifiquement à l'encodage, le processeur de la carte graphique Quadro est donc exploité par l'encodeur RapiHD via la technologie CUDA afin de décharger le processeur CPU d'une part de ce travail, et de le réaliser plus vite.
Quelle charge processeur pendant encodage GPU ?
Bien que le GPU soit à l'œuvre lors des encodages, le processeur reste particulièrement sollicité, et même à charge maximale lors des downconversion (exports Youtube; iPod etc.)!

Montage HDV encodé en H264 1440x1080 avec encodeur Mainconcept intégré à Premiere Pro et exploitant uniquement le processeur. Les 4 processeurs sont à 100%. Adobe Media Encoder est cependant prévu pour se mettre automatiquement en pause si on lance une lecture de vidéo dans Premiere Pro, afin de pouvoir continuer à monter tout en encodant en tâche de fond. L'encodage reprend alors lors de tâches de manip des éléments en séquence, et autres opération ne lançant pas de lecture de vidéos.
Je regrette cependant que Premiere Pro ne soit pas capable de proposer des options du genre : combien de processeurs pour l'encodages ? combien de processeurs pour le montage ? On pourrait par exemple se garder deux CPU pour le montage et 2 CPU tourneraient en parrallèle pour l'encodage, mais ce n'est pas possible, dommage.

Le même montage HDV encodé en H264 1440x1080 mais cette fois avec l'encodeur intégré à la Quadro CX. L'usage du GPU (processeur de la carte graphique) fait passer la charge CPU à une moyenne à 70%. Cela montre que l'usage du GPU, même en restant dans la même résolution que l'original pour l'encodage, a quand même pas mal besoin des ressources processeur CPU en complément !
Et là aussi aucune option possible pour n'exploiter que certains CPU et pas d'autres...

Le même montage HDV, encodé pour iPod avec l'encodeur de la Quadro CX. Surprise, le CPU est alors à 100% sur les quatre processeurs! La down-conversion n'est donc pas optimale côté performance et le GPU a pleinement besoin de s'appuyer sur le CPU pour réaliser l'encodage. Décevant...

Un montage AVCHD encodé en H264 1920x1080 (donc même résolution que la source). L'encodeur intégré à Premiere Pro met de nouveau la charge processeur au maximum.

Le même montage AVCHD encodé en H264 1920x1080, encodé avec l'encodeur de la Quadro CX. Là encore la charge processeur est plus limitée qu'en encodage CPU seul, mais quand même largement au dessus des 50% ! Et là aussi aucune option possible pour n'exploiter que certains CPU et pas d'autres...
Qualité des encodages.
La qualité d'image des encodages m'a paru équivalente en encodage avec le codec Elements ou avec le codec Mainconcept. Dégradés, reproduction des couleurs, détails de l'image, m'ont parus équivalents entre les deux encodeurs.
Pas de RapiHD pour d'autres cartes NVidia...
Le choix d'Elementals et de NVidia de réserver RapiHD à la Quadro CX uniquement pose question : quel est le véritable coût de ce plug-in et de son codec ? Pourquoi le limiter à ce bundle avec la Quadra CX et ne pas le proposer pour les autres cartes Quadro moins chères ?
Y-a-t-il un vrai motif technologique à ce choix ? On peut en douter quand on voit les performances de l'autre plug-in d'Elemental technologies, Badaboum, exploitant aussi le GPU (des cartes grand public NVidia cette fois) pour l'encodage accéléré en H264. Mais là pas de compatibilité avec Premiere Pro, juste un encodeur en tant que logiciel seul et indépendant. Badaboom accélère là aussi l'encodage H264 pour iPod, PSP etc. Son tarif est d'environ 30$.
Encodage MPEG-2
La HD ne tourne pas qu'autour du H264, le MPEG-2 HD a encore sa carte à jouer, et a l'avantage de temps d'encodages plus raisonnables, même s'il faut monter les débits pour une qualité équivalente au H264. Malheursement le plug-in d'Elemental se concentre uniquement sur le H264, rien n'est consacré au MPEG-2. Et puis pour l'encodage des DVD (eh oui on en fait encore !!!) l'accélération de l'encodage MPEG-2 aurait pu être intéressante.
Autres « accélérations » pour Premiere Pro CS4 ?
Hormis les fonctions d'encodage pour Premiere Pro CS4 ou Adobe Media Encoder CS4, la Quadro CX n'apporte pas de plus-value au logiciel de montage Adobe comme peut le faire une carte Matrox par exemple. Ici pas de plus-value apportée au moteur vidéo par défaut de Premiere Pro pour le mélange de plusieurs formats en séquence avec up ou down-conversion en temps réel, pas de filtres vidéo accélérés ou de bibliothèque d'effet rajoutée.
Par ailleurs, la GPU n'est pas exploité pour l'accélération en montage du format AVCHD ou du MPEG-2. Rappelons qu'associé à des logiciels de lecture Blu-Ray ou vidéo, les cartes graphiques même grand public sont capables de décoder le H264 pour décharger le CPU de ce travail. Sur une telle carte pro j'espèrait la même approche mais au sein de Premiere Pro. En effet, surtout avec le format AVCHD, on aurait beaucoup apprécié que le CPU soit déchargé en partie de ce lourd travail de décodage alors que l'AVCHD est traité en natif dans Premiere Pro (pas avec un codec intermédiaire moins groumand en charge CPU). Que la Quadro CX soit mise à profit pour la lecture des vidéos dans le moniteur source ou les séquences de Premiere était donc très attendu.
Quand NVidia a lancé sa Quadro CX comme un accélérateur de CS4 j'avoue que c'est l'aspect sur lequel j'avais le plus d'attente en plus des fonctions d'encodage... mais seul l'encodage a été prévu, pas le décodage hardare de l'AVCHD. Pour une prochaine version de carte chez NVidia peut-être ? Ou bien si Adobe programme le code de Premiere Pro afin d'exploiter le GPU des cartes NVidia via le CUDA (et en prévoyant l'équivalent pour tirer parti des GPU ATI, constructeur concurrent d'NVidia)?
Enfin, pas de retour monitoring de sa vidéo en cours de montage dans Premiere Pro ! Pour une carte dédiée à une suite logicielle vidéo c'est balo !
Ca aurait été une bonne idée que l'une des sortie DVI (avec un adapteur DVI>HDMI) ou Display Port, se transforme en sortie de retour vidéo pour Premiere Pro, surtout avec la sortie Display Port 10bit qui annonce de belles perspectives pour la gestion des couleurs...
After Effects CS4 et le GPU de la Quadro CX: quel gain ?
Depuis plusieurs versions déjà Adobe s'appui sur l'OpenGL afin d'accélérer certaines tâches dans After Effects en allégeant donc le processeur (CPU) au profit du GPU (le processeur des cartes graphiques). En soit la Quadro CX n'apporte pas de fonctionnalités exclusives pour After Effects comme peut l'être le plug-in RapiHD pour Premiere Pro et Adobe Media Encoder. Cependant, After Effects CS4 pourra bien entendu s'appuyer sur le GPU de la Quadro CX, comme il le ferait avec des cartes moins onéreuses de la gamme Quadro de NVidia, de sa gamme grand public GForce, ou de son concurrent ATI (détenu désormais par AMD).
Notons que la belle quantité de mémoire intégrée à cette Quadro CX permettra aux graphistes travaillant avec de grosses images sous After Effects d'avoir une carte graphique à la hauteur. Les 1,5 Go de mémoire pourront donc offrir des performances dans After Effects sur de gros fichiers image là où une carte disposant de moins de RAM verrait ses performances GPU « s'écrouler » une fois le buffer rempli... un point pouvant se montrer crucial pour certains utilisateurs.
Pour juger du gain que peut apporter le GPU sur certaines tâches de travail, mais aussi des limites concrètes du GPU tel qu'Adobe l'exploite à ce jour dans After Effects, nous avons décrypté avec Bruno Quintin le couple After Effects CS4 + GPU dans ce test publié sur TutoVideo.TV :

Les utilisateurs d'After CS3 découvrirons qu'une bonne part de ces fonctionnalités sont également transposables à leur version du logiciel, à l'exception des accélérations des filtres bruit fractal et « cartoon » (le nouveau filtre « dessin animé » en VF apparu dans la CS4).
Photoshop CS4 et le GPU
Pour la nouvelle version de Photoshop Adobe a enfin décidé de s'appuyer sur le GPU pour optimiser certaines tâches de son logiciel de création graphique et de retouche photo.
Zoomer, déplacer un calque, améliorer l'antialisating sont désormais au rendez-vous grâce au GPU si on en coche l'activation dans les préférences.
Là encore, toute carte disposant de l'Open GL 2.0 proposera ces fonctions et la Quadro CX ne propose pas de fonctions spécifiques pour Photoshop CS4. Mais sa RAM intégrée de 1,5 Go pourra par contre offrir des performances sur de très gros fichiers image là où une carte disposant de moins de RAM verrait ses performances GPU « s'écrouler » une fois le buffer rempli.
Le confort du travail sur écran 30 pouces
Si vous souhaitez travailler sur un écran 30 pouces, toutes les cartes ne seront pas à même de gérer la résolution Dual-DVI comme le propose la Quadro CX. De même, pour la gestion d'écran multiples, ou encore pour un contrôle précis de la couleur avec un écran 10 Bit (on les attend pour le moment), le display port 10 bit de la Quadro, et le second display port traditionnel en plus du DVI pourront apporter un plus pour des usages d'affichage poussés.
Conclusion
C'est principalement la fonction d'encodage H264 exploitant le GPU via l'architecture CUDA qui retient mon attention sur cette Quadro CX. Les autres aspects mis en avant dans la communication de NVIdia pour jutifier que la Quadro CX est un "accélérateur de la suite CS4" se rattachent en fait à l'Open GL 2.0. Pour Photoshop et After Effects bénéficier des accélérations OpenGL en question est possible avec des cartes graphiques très abordables et qui offriront les mêmes fonctionnalités, ça ne me semble donc pas un aspect majeur de la Quadro CX, hormis si un buffer avec beaucoup de RAM compte pour vous si vous travaillez avec des images de grandes résolutions, les 1.5 Go de la Quadro CX vous seront alors utiles.
0n notera aussi l'intérêt du Dual-DVI pour travailler avec un écran 30 pouces, et la sortie Display Port 10Bit pour les moniteurs qui seraient compatibles.
L'encodage H264 accéléré par le plug-in d'Elementals intégré est très convainquant pour les exports aux résolutions Blu-Ray 1920x1080, 1440x1080, et dans une moindre mesure en 720P. Outre le Blu-Ray, l'export de fichiers vidéo HD pour une lecture avec un ordinateur ou périphérique de lecture de fichiers HD est tout autant concerné.
Le traitement par lot géré avec Adobe Media Encoder, allié à l'encodage GPU, permet donc d'encoder ses montages bien plus vite, mais le coût de cette solution sera à mettre en perspective avec la valeur que l'on donne à ce temps économisé en fonction de son flux de production, au nombre d'encodages que l'on doit réaliser par jour ou à l'importance dans certains contexte de livrer très vite ses films encodés. Nul doute que certains contextes posent ces questions de productivité...
Par contre, même si elle reste plus rapide que le CPU, la Quadro montre ses limites en encodage accéléré impliquant une downconversion pour une déclinaison YouTube, iPod ou PSP de son montage HD. Dommage.
Rien non plus pour accélérer l'encodage MPEG-2, ce qui aurait été très intéressant pour l'encodage DVD mais aussi encoder en HD, le codec MPEG-2 ayant encore toute sa place, même sur Blu-Ray (il fait partie de la norme tout autant que le H264).
Et surtout, pas mal de regrets car il n'y a pas d'autres accélérations hormis l'encodage pour Premiere Pro CS4: pas d'accélération du décodage AVCHD en montage dans Premiere Pro, pas de sortie monitoring pour Premiere via une des sortie Display Port ou DVI, pas d'effets accélérés etc.
Les + | Les - |
|
|
Mise à jour Mai 2009 :
Dans ce domaine de l'encodage H264 tout semble bouger très vite. Alors que ce test de la Quadro CX a été réalisé début 2009, le mois d'avril a déjà apporté des perspectives nouvelles lors du NAB. Ainsi, les annonces de Matrox avec une puce d'encodage H264 dans ses cartes de montage, ou en tant que carte d'encodage, dresse de nouvelles perspectives à tester. Là aussi les solutions Matrox s'interfacent avec la suite Adobe Production Premium CS4 ou avec la suite Apple Final Cut Studio, ce qui a de quoi séduire les flux de production concernés ! Idem chez Grass Valley avec des cartes d'encodage dédiées à Edius.
Il ne serait donc pas étonnant que NVidia vienne également proposer de nouvelles solutions autour du H264 dans les prochains temps vu que tout bouge très vite en ce domaine !..
{include_content_item 1008}