Pregunta

Estoy escribiendo una biblioteca de gráficos en C y me gustaría utilizar instrucciones SSE para acelerar algunas de las funciones. ¿Cómo voy a hacer esto? Estoy utilizando el compilador GCC, por lo que puedo confiar en los intrínsecos del compilador. También me gustaría saber si debo cambiar la forma en que estoy almacenando los datos de la imagen (actualmente solo estoy usando una matriz de flotadores). ¿Debo usar una matriz de tipo float __attribute__ ((vector_size (16) )) ?

EDITAR: el tipo de manipulación / procesamiento de imágenes en el que estoy interesado incluye transformaciones afines, geometría y filtrado de dominio de frecuencia (análisis de Fourier)

Cualquier referencia o consejo sobre cómo debo usar el SSE para la manipulación de imágenes en C sería muy apreciado.

gracias

¿Fue útil?

Solución

He estado trabajando en el procesamiento de algunas imágenes con SSE en Microsoft Visual C ++. He encontrado que es más fácil alinear todos los datos de imagen (en Visual C ++ que se hace con _aligned_malloc y _aligned_free) desde el principio. Sin embargo, la alineación es un verdadero dolor, por eso solo usé SSE para operaciones aritméticas (suma, resta, producto de puntos, ese tipo de cosas). Si tuviera que hacer cosas más complicadas, generalmente solo usaba punteros.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top