Re: profiling de code ...

Top Page

Reply to this message
Author: Edgar Bonet
Date:  
To: Liste Guilde
Subject: Re: profiling de code ...
Le samedi 7 février, Jérôme Kieffer a écrit :
> Je viens de jouer avec PIL, la bibliotheque de manipulation des images
> sous python et simplement en remplacant les appels a "convert" et a
> "identify" par des appels a PIL j'ai multplié par 10 la vitesse
> d'execution du code. (passant de 52s à 5.2s pour 30 images à 3Mpix)


Et Miguel Moquillon a répondu :
> Il faut faire attention avec ce genre de raisonnement.
> - D'abord, il existe differents algorithmes de redimensionnement d'image
> comme d'ailleur de conversion entre deux formats donnes. Entre deux
> algo, les performances peuvent etre differents ... comme d'ailleurs le
> resultat.


J'abonde dans ce sens. Je suis très content d'ImageMagick à cause de la
qualité de ses résultats, le temps d'exécution m'importe peu. Il faut
voir la qualité lamentable de certaines vignettes qu'on trouve dans des
pages web (probablement faites avec GD). Il faut voir aussi le niveau de
sophistication des algos implémentés dans ImageMagick (filtre Lanczos
par défaut, mais tu peux changer avec -filter) : il est clair que les
auteurs s'y connaissent un peu en traitement du signal.

Maintenant, je ne vais pas critiquer PIL que je ne connais pas. J'espère
seulement qu'il fait mieux que GD, mais à cette vitesse là, on peut en
douter. Il faudrait comparer la qualité des ses images avec celles
obtenues avec convert avec les différentes valeurs de -filter. Les
filtres Point et Box sont (dans cet ordre) les deux plus primitifs. Ce
sont aussi les algos les plus intuitifs, ceux qu'un informaticien sans
culture de traitement du signal implémenterait spontanément. GD
implémente l'un ou l'autre suivant la version. Ils peuvent être
implémentés en un code assez rapide (surtout Point qui n'est qu'un
rééchantillonage) mais présentent (surtout Point, encore lui) un gros
problème d'aliasing. convert n'est pas vraiment efficace quand on lui
demande d'utiliser ces filtres car il les implémente en les incluant
dans un cadre algorithmique plus général davantage adapté à des filtres
du genre Lanczos, Hanning ou Bessel.

Ceci dit, il me semble clair qu'à moins d'avoir une bête de calcul, il
ne faut pas utiliser ImageMagick dans des CGI. Ou alors il faut un
système de cache pour que les images ne soient calculées qu'une seule
fois.

-- 
Edgar Bonet           Maison : 04 76 21 29 16    Bureau : 04 76 88 10 96
3 rue Jean Prévost    Mobile : 06 77 19 79 39    Fax    : 04 76 88 11 91
38000 Grenoble        guilde@???     www.edgar-bonet.org