diff --git a/app/Operations/MICD.cpp b/app/Operations/MICD.cpp
index 91782a9ab345be2e6f65d555637a23c61cf681d6..97b79e66968180393f18874aa21085319db7399d 100644
--- a/app/Operations/MICD.cpp
+++ b/app/Operations/MICD.cpp
@@ -51,55 +51,53 @@ string MICD::execute( const GrayscaleImage *im, Prediction prediction_alg, image
         throw "Error in MICD::execute:\nquantdef = NULL";
     }
     string returnval;
-    int nbl,nbc,size,rep,i,j,pred,ier,ireco,icode;
+    int imgHeight,imgWidth,pred,ier,ireco,icode;
+
     float pi[512],nbpt = 0;
     double h = 0.;
-    rep = prediction_alg;
 
-    nbl = im->getHeight();
-    nbc = im->getWidth();
-    size = nbc * nbl;
+    imgHeight = im->getHeight();
+    imgWidth = im->getWidth();
 
-    int po;
-    int temp_p;
     /* initialisation de la loi de quantification */
     set_levels();
     codlq(0);
+
     /* allocation mmoire pour l'image d'erreur de prdiction */
-    ImageDouble *error_prediction_image = new ImageDouble(nbc, nbl, 1);
+    ImageDouble *error_prediction_image = new ImageDouble(imgWidth, imgHeight, 1);
     Image *reconstructed_image = new GrayscaleImage(*im);
-    // File these images with all values of zero
-    long wcounter, hcounter;
-    for( hcounter=0; hcounter< nbl; hcounter++ ) {
-        for( wcounter=0; wcounter< nbc; wcounter++ ) {
-            error_prediction_image->setPixelAt(wcounter, hcounter, 0);
+
+    // Init the error image with 0 values
+    for(int i=0; i < imgHeight; i++) {
+        for(int j=0; j< imgWidth; j++) {
+            error_prediction_image->setPixelAt(j, i, 0);
         }
     }
 
-    /* mise  0 du tableau des probas servant pour le calcul de
+    /* mise a 0 du tableau des probas servant pour le calcul de
     l'entropie de l'erreur de prdiction */
-    for(i=0 ; i<512 ; i++) pi[i]= 0.;
+    for(int i=0 ; i<512 ; i++) pi[i]= 0.;
 
     /* codage de l'image */
-    for(i=1; i<nbl ; i++)
+    for(int i=1; i<imgHeight ; i++)
     {
-        for(j=1; j<nbc ; j++)
+        for(int j=1; j<imgWidth ; j++)
         {
-            if(rep == PX_EQ_A) {
-                temp_p = reconstructed_image->getPixelAt( j - 1, i );
-                pred = temp_p;
-            }
-            else if(rep == PX_EQ_B) {
-                temp_p = reconstructed_image->getPixelAt( j, i - 1);
-                pred = temp_p;
-            }
-            else if(rep == PX_EQ_APC) {
-                temp_p = reconstructed_image->getPixelAt( j - 1, i );
-                pred = (int)temp_p;
-                temp_p = reconstructed_image->getPixelAt( j, i - 1 );
-                pred = ( pred + (int)temp_p ) / 2;
-            }
-            else if(rep == PX_EQ_Q) {
+            switch (prediction_alg) {
+            int AplusC;
+            float A,B,C;
+
+            case PX_EQ_A:
+                pred = reconstructed_image->getPixelAt(j-1, i);
+                break;
+            case PX_EQ_B:
+                pred = reconstructed_image->getPixelAt(j, i-1);
+                break;
+            case PX_EQ_APC:
+                AplusC = reconstructed_image->getPixelAt(j-1, i) + reconstructed_image->getPixelAt(j, i-1);
+                pred = AplusC / 2;
+                break;
+            case PX_EQ_Q:
                 /*
                 Modified Graham's Algorithm:
                 if |B-C| - Q <= |B-A| <= |B-C| + Q
@@ -110,43 +108,43 @@ string MICD::execute( const GrayscaleImage *im, Prediction prediction_alg, image
                     else
                             P(X) = C
                 */
-                float A = im->getPixelAt( j - 1, i );
-                float B = im->getPixelAt( j - 1, i - 1 );
-                float C = im->getPixelAt( j, i - 1 );
+                A = im->getPixelAt(j-1, i);
+                B = im->getPixelAt(j-1, i-1);
+                C = im->getPixelAt(j,   i-1);
+
                 if( ((fabs(B-C) - Q) <= fabs(B-A)) &&
                         (fabs(B-A) <= (fabs(B-C) + Q)) ) {
                     pred = (uint8_t)((A + C) / 2);
-                }
-                else {
+                } else {
                     if( fabs(B-A) > fabs(B-C) ) {
                         pred = (uint8_t)A;
-                    }
-                    else {
+                    } else {
                         pred = (uint8_t)C;
                     }
                 }
+                break;
+            default:
+                break;
             }
 
-            temp_p = reconstructed_image->getPixelAt( j, i );
-            ier = (int)temp_p - pred;
+            depth_default_t thePixel = reconstructed_image->getPixelAt(j, i);
+            ier = (int) thePixel - pred;
+
             codec(0,ier,&icode,&ireco);
-            pi[ier+255]++;      /* proba associe  l'erreur de prdiction */
+
+            pi[ier+255]++;      /* proba associe a l'erreur de prdiction */
             nbpt++;
 
-            int tempvalue;
-            tempvalue = ier + 128;
-            po = tempvalue;
-            error_prediction_image->setPixelAt( j, i, po );
-            tempvalue = pred + ireco;
-            if( tempvalue > 255 ) tempvalue = 255;
-            if( tempvalue < 0 ) tempvalue = 0;
-            po = tempvalue;
-            reconstructed_image->setPixelAt( j, i, po );
+            error_prediction_image->setPixelAt(j, i, ier + 128);
+
+            int tempvalue = pred + ireco;
+            // Crop the value in [0,255]
+            reconstructed_image->setPixelAt(j, i, tempvalue > 255 ? 255 : tempvalue < 0 ? 0 : tempvalue);
         }
     }
 
-    /* calcul de l'entropie de l'image d'erreur de prdiction */
-    for(i=0 ; i<512 ; i++)
+    /* calcul de l'entropie de l'image d'erreur de prediction */
+    for(int i=0 ; i < 512 ; i++)
     {
         if(pi[i] != 0) {
             pi[i] /= nbpt;
@@ -228,7 +226,7 @@ void MICD::set_levels() {
 
 string MICD::print_iloiqu() {
     string returnval;
-    returnval = "seuils de dcision --------------- niveaux de reconstruction\n";
+    returnval = "seuils de decision --------------- niveaux de reconstruction\n";
     int counter;
     char buffer[100];
     for( counter=1; counter<= iloiqu[0]*2-1; counter++ ) {