Question

J'écris une bibliothèque graphique en C et j'aimerais utiliser les instructions SSE pour accélérer certaines fonctions. Comment pourrais-je m'y prendre? J'utilise le compilateur GCC pour pouvoir compter sur les composants intrinsèques du compilateur. J'aimerais également savoir si je dois changer la façon dont je stocke les données d'image (pour l'instant, je n'utilise qu'un tableau de flottants). Dois-je utiliser un tableau de type float __attribute__ ((vector_size (16) )) ?

EDIT: le type de manipulation / traitement d’image qui m’intéresse comprend les transformations affines, la géométrie et le filtrage dans le domaine fréquentiel (analyse de Fourier)

Toutes les références ou conseils sur la manière dont je devrais utiliser SSE pour la manipulation d'images en C seraient grandement appréciés.

merci

Était-ce utile?

La solution

J'ai travaillé sur un traitement d'image avec SSE sous Microsoft Visual C ++. J'ai trouvé qu'il était plus facile d'aligner toutes les données d'image (en Visual C ++, avec _aligned_malloc et _aligned_free) dès le début. L'alignement est une vraie douleur, c'est pourquoi je n'ai utilisé SSE que pour des opérations arithmétiques (additionner, soustraire, produit scalaire, ce genre de choses). Si je devais faire des choses plus compliquées, je n’utilisais généralement que des pointeurs.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top