PTStitcherNG : le warp et le blend à la vitesse supérieure

Cela faisait déjà quelques temps que je me demandais pourquoi aucun algorithme pour assembler les photos panoramiques ne s’effectuait dans la carte graphique plutôt que par le CPU, car au niveau des performances, il y a tout à gagner. C’est probablement parce que le développement de ce type d’algorithme n’est pas des plus simples et doit freiner plus d’un développeur.

Je pressentais que cet outil allait voir le jour. Je me suis ainsi orienté vers une carte graphique nVidia plutôt que ATI, bénéficiant de l’API CUDA, permettant de développer en C des applications tournant sur la carte graphique. Voir à ce sujet mon article « un ordinateur taillé pour des photos HD ».

C’est donc à Helmut Dersch, « père » de la photographie panoramique par assemblage que l’on ne présente plus, que revient la primeur de ce nouveau logiciel PTStitcherNG *.

En plus de pouvoir s’exécuter dans la carte graphique, un nouvel algorithme a été mis au point pour regrouper l’étape de warp et de blend. Jusqu’à présent, toutes les images devaient être warpées avant que le blend ait lieu. Cela provoquait un rallongement du temps d’assemblage, particulièrement pour des panoramas hautes définitions où toutes les images ne tenaient pas dans la RAM. Il fallait d’abord écrire toutes les images warpées sur le disque dur avant de les relire une à une pour le blend … le temps perdu pour les accès disques était monstrueux !

Les temps d’assemblage peuvent être divisés par 10 selon les commentaires des forums.

PTStitcherNG est livré en deux versions : une version CUDA, et une version CPU. Il tourne sur Windows, Mac et Linux (Suse uniquement) Le code devrait être disponible prochainement. Le logiciel se base sur des script « panotools » générés par PTOptimizer ou PTGui par exemple. Il est téléchargeable ici : PTStitcherNG.

J’imagine que le développeur de PTGui ne tardera pas à intégrer ce nouveau logiciel dans l’interface GUI.

* C’est en réalité une mise à jour : les premières versions de PTStitcherNG fonctionnaient sur PlayStation 3 ! Je m’étais posé la question il y a 3 ans d’acheter une PlayStation 3 pour pouvoir traiter mes assemblages dessus, mais finalement, pour le peu de panorama gigapixel que je fais et devant la difficulté rencontrée par certains pour configurer la console, je me suis dis que ça n’en valait pas la peine.

2 commentaires

  1. Yuval Levy : site

    L’utilisation de la carte graphique (GPU) pour générer des panoramique existe depuis quelques temps. Andrew Mihal, créateur de Enblend [0] a introduit le blending par GPU en Enblend en 2008 et le stitching par GPU en Hugin [1] en 2009 (version 2009.2.0 si je me souviens bien). La nouveauté introduite par Helmut Dersch n’est pas le traitement par la GPU, mais le traitement sans fichiers intermediaires, en un seul pas, ce qui permet le rendu d’un gigapano en moins que 200 MB. Sur mon vieux laptop (2GB RAM), Hugin aligne un pano de 18.000 x 9.000 et nona transforme les images (de 24 megapixel), mais enblend manque de mémoire et quitte. PTStitcherNG 4.0a prends le projet Hugin legèrement modifié et complète le stitch sans problèmes.

    3 janvier 2010 à 4:00
  2. Nicolas Burtey : site

    Merci pour ces renseignements très intéressants. Je ne savais pas que Enblend et Hugin utilisait déjà le GPU !

    5 janvier 2010 à 11:35

Un Trackback

  1. By PTStitcherNG 0.7b on 10 mars 2010 at 15:47

    [...] nouvelle version de PTStitcherNG est sortie, avec une intégration accrue avec PTGui comme je pouvais facilement l’imager il y a quelques mois. Des tutoriaux devraient voir le jour prochainement pour expliquer tout cela en [...]