]> AND Private Git Repository - book_gpu.git/blobdiff - BookGPU/Chapters/chapter3/code/kernMedianRegTri9.cu~
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
last version
[book_gpu.git] / BookGPU / Chapters / chapter3 / code / kernMedianRegTri9.cu~
index cd173eb3de78ed4a250d4f742f5ebce41016eb79..29922a31b78030da1b212c1ddb45e6bebe7037e2 100755 (executable)
@@ -1,19 +1,11 @@
-__global__ void kernel_Median3RegTri9( short *output, int i_dim, int j_dim)
+__global__ void kernel_Median3RegSort9( short *output,
+                                                                          int i_dim, int j_dim)
 {  
-  
-  // coordonnees absolues du point
   int j = __mul24(blockIdx.x,blockDim.x) + threadIdx.x ; 
   int i = __mul24(blockIdx.y,blockDim.y) + threadIdx.y ;
-  
-  /**************************************************************************
-   *             tri(s)
-   **************************************************************************/
-  int a0, a1, a2, a3, a4, a5, a6, a7, a8 ;
+  int a0, a1, a2, a3, a4, a5, a6, a7, a8 ; // 1 register per pixel
 
-  /********************************************************************************
-   * affectation des valeurs
-   ********************************************************************************/
-  a0 = tex2D(tex_img_ins, j-1, i-1) ;
+  a0 = tex2D(tex_img_ins, j-1, i-1) ;      // fetching values
   a1 = tex2D(tex_img_ins, j  , i-1) ;
   a2 = tex2D(tex_img_ins, j+1, i-1) ;
   a3 = tex2D(tex_img_ins, j-1, i) ;
@@ -23,10 +15,7 @@ __global__ void kernel_Median3RegTri9( short *output, int i_dim, int j_dim)
   a7 = tex2D(tex_img_ins, j  , i+1) ;
   a8 = tex2D(tex_img_ins, j+1, i+1) ;
 
-  //tri selection
-  bubTriReg9(&a0, &a1, &a2, &a3, &a4, &a5, &a6, &a7, &a8);
+  bubReg9(&a0,&a1,&a2,&a3,&a4,&a5,&a6,&a7,&a8);    // bubble sort
   
-  //median au milieu !
-  output[ __mul24(i, j_dim) +j ] = a4 ;
-}
+  output[ __mul24(i, j_dim) +j ] = a4 ;   // median at the middle
+ }