]> AND Private Git Repository - these_gilles.git/blobdiff - THESE/Chapters/chapter6/code/convoSepShH.cu
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
final
[these_gilles.git] / THESE / Chapters / chapter6 / code / convoSepShH.cu
index c65c9206693ef211c84dbf6034dde324c25e84b6..6b0b0a922f7f1f3d3395b4cc7b10a00553941270 100644 (file)
@@ -4,8 +4,8 @@ __global__ void kernel_convoSepShx8pH(unsigned char *output, int j_dim, int r)
   int k = 2*r+1 ;
   float outval0=0.0, outval1=0.0, outval2=0.0, outval3=0.0 ;
   float outval4=0.0, outval5=0.0, outval6=0.0, outval7=0.0 ;
   int k = 2*r+1 ;
   float outval0=0.0, outval1=0.0, outval2=0.0, outval3=0.0 ;
   float outval4=0.0, outval5=0.0, outval6=0.0, outval7=0.0 ;
-  int bdimX = blockDim.x<<3 ; // nombre de paquets par ligne
-  int tidX = threadIdx.x<<3 ; // offset paquet
+  int bdimX = blockDim.x<<3 ; // nombre de pixels traités par une ligne d'un bloc
+  int tidX = threadIdx.x<<3 ; // décalage paquet
     
   // coordonnées absolues du point de base
   int j = (__umul24(blockIdx.x,blockDim.x) + threadIdx.x)<<3 ; 
     
   // coordonnées absolues du point de base
   int j = (__umul24(blockIdx.x,blockDim.x) + threadIdx.x)<<3 ; 
@@ -25,8 +25,10 @@ __global__ void kernel_convoSepShx8pH(unsigned char *output, int j_dim, int r)
   // droite de la ROI
   if ( threadIdx.x < r )
        {
   // droite de la ROI
   if ( threadIdx.x < r )
        {
-         roi8p[  idrow + bdimX + threadIdx.x    ] = tex2D( tex_img_inc, j0-r +bdimX+threadIdx.x  , i ) ;
-         roi8p[  idrow + bdimX + threadIdx.x +r ] = tex2D( tex_img_inc, j0   +bdimX+threadIdx.x  , i ) ;
+         roi8p[  idrow + bdimX + threadIdx.x    ] = tex2D( tex_img_inc, j0-r 
+                                                           +bdimX+threadIdx.x  , i ) ;
+         roi8p[  idrow + bdimX + threadIdx.x +r ] = tex2D( tex_img_inc, j0   
+                                                           +bdimX+threadIdx.x  , i ) ;
        }
   
   __syncthreads();
        }
   
   __syncthreads();
@@ -35,7 +37,7 @@ __global__ void kernel_convoSepShx8pH(unsigned char *output, int j_dim, int r)
   for (jc=0 ; jc<k ; jc++)
          {
                int baseRoi = idrow + tidX +jc ;
   for (jc=0 ; jc<k ; jc++)
          {
                int baseRoi = idrow + tidX +jc ;
-               float valMask = mask[ jc ] ;
+               float valMask = maskh[ jc ] ;
                outval0 += valMask*roi8p[  baseRoi    ] ;
                outval1 += valMask*roi8p[  baseRoi +1 ] ;
                outval2 += valMask*roi8p[  baseRoi +2 ] ;
                outval0 += valMask*roi8p[  baseRoi    ] ;
                outval1 += valMask*roi8p[  baseRoi +1 ] ;
                outval2 += valMask*roi8p[  baseRoi +2 ] ;