Abstract
De plus en plus d’outils logiciels modernes pour le traitement d’images sont conçus en prenant en compte le problème de la généricité du code, c’est-à-dire la possibilité d’écrire des algorithmes réutilisables, compatibles avec de nombreux types d’entrées. Cependant, ce choix de conception se fait souvent au détriment des performances du code exécuté. Du fait de la grande variété des types d’images existants et de la nécessité d’avoir des implémentations rapides, généricité et performance apparaissent comme des qualités essentielles du logiciel en traitement d’images. Cet article présente une approche préservant les performances dans un framework logiciel générique tirant parti des caractéristiques des types de données utilisés. Grâce à celles-ci, il est possible d’écrire des variantes d’algorithmes génériques offrant un compromis entre généricité et performance. Ces alternatives sont capables de préserver une partie des aspects génériques d’origine tout en apportant des gains substantiels à l’exécution. D’après nos essais, ces optimisations génériques fournissent des performances supportant la comparaison avec du code dédié, allant parfois même jusqu’à surpasser des routines optimisées manuellement.