[Previo por Fecha] [Siguiente por Fecha] [Previo por Hilo] [Siguiente por Hilo]
[Hilos de Discusión] [Fecha] [Tema] [Autor]> int > transforma2(XImage *ximage, unsigned int owidth, unsigned long oheight) > { > int x,y; > unsigned short *imagen; > imagen = (unsigned short *)malloc((size_t)(owidth*oheight*2)); > memcpy(imagen,ximage->data,(size_t)(owidth*oheight*2)); > for (x=0; x<(int)oheight; x++) { > for(y=0; y<(int)oheight; y++) { > *((unsigned short *)ximage->data+((x * (int)owidth)+y)) = *(imagen+((y * (int)owidth)+x)); > } > } > free(imagen); > return 0; > } > > La mejoria es sustancial... ¿habra forma de acelerarlo mas? Si hay. Me sorprende que hayas llegado a tu casa a programar a las 5am despues de la patito-reunion :-). Basicamente, estás perdiendo casi la mitad de la velocidad en el mempcy que estás haciendo: 1. Mueve la información en un solo golpe (sin el memcpy) 2. No uses multiplicaciones, usa sumas (no las necesitas, ya que el loop de adentro de puede usar para sumar elementos y el externo para avanzar lineas). Miguel