]> 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 9c82847429ab688d9dddd83d08b10192d018e552..6b0b0a922f7f1f3d3395b4cc7b10a00553941270 100644 (file)
@@ -4,7 +4,7 @@ __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 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 tidX = threadIdx.x<<3 ; // décalage paquet
     
   // coordonnées absolues du point de base
@@ -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 ] ;