[Previo por Fecha] [Siguiente por Fecha] [Previo por Hilo] [Siguiente por Hilo]

[Hilos de Discusión] [Fecha] [Tema] [Autor]

Re: ayuda con Xlib



> 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
	



[Hilos de Discusión] [Fecha] [Tema] [Autor]