Domanda

Sto scrivendo una libreria grafica in C e vorrei utilizzare le istruzioni SSE per velocizzare alcune delle funzioni. Come potrei fare per fare questo? Sto usando il compilatore GCC in modo da poter fare affidamento su intrinseci del compilatore. Vorrei anche sapere se dovrei cambiare il modo in cui sto memorizzando i dati di immagine (attualmente sto solo usando una matrice di float) - devo usare una matrice di tipo float __attribute__ ((vector_size (16) )) ?

EDIT: il tipo di manipolazione / elaborazione delle immagini che mi interessa includere trasformazioni affini, geometria e filtro del dominio di frequenza (analisi di Fourier)

Qualunque riferimento o suggerimento su come dovrei utilizzare SSE per la manipolazione delle immagini in C sarebbe molto apprezzato.

grazie

È stato utile?

Soluzione

Ho lavorato su alcune elaborazioni di immagini con SSE su Microsoft Visual C ++. Ho trovato che è più semplice allineare tutti i dati di immagine (in Visual C ++ che è fatto con _aligned_malloc e _aligned_free) fin dall'inizio. L'allineamento è però un vero dolore, ecco perché ho usato SSE solo per operazioni aritmetiche (aggiungi, sottrai, punto prodotto, quel tipo di cose). Se dovessi fare cose più complicate, di solito usavo solo i puntatori.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top