1 __global__ void kernel_medianForgetR( short *output, int i_dim, int j_dim, int r)
3 // coordonnees absolues du point
4 int j = __mul24(blockIdx.x,blockDim.x) + threadIdx.x ;
5 int i = __mul24(blockIdx.y,blockDim.y) + threadIdx.y ;
7 short Nreg = ((2*r+1)*(2*r+1))/2 + 2 ;
9 // remplissage du vecteur de tri minmax
12 for (ic=0; ic<2*r+1; ic++)
14 for (jc=0; jc<2*r+1; jc++)
16 if ( ic*(2*r+1)+jc < Nreg )
18 vect[ ic*(2*r+1)+jc ] = tex2D(tex_img_ins, j-r+jc, i-r+ic) ;
21 minmaxN(vect, Freg--) ;
22 vect[ Nreg-1 ] = tex2D(tex_img_ins, j-r+jc, i-r+ic) ;
26 minmax3(&vect[Nreg-3], &vect[Nreg-2], &vect[Nreg-1])
28 //medRoi[ (threadIdx.y+ic)*(bdimX+L-1)+ (tidX+jc) ]
30 output[ __mul24(i, j_dim) +j ] = vect[ Nreg-2 ];