Added some code for getting minimum/maximum coefs images.
authorviric@llimona
Sun, 02 Dec 2007 17:56:34 +0100
changeset 224 2f8f25e66235
parent 223 928903f2fbbf
child 225 96bc629baba9
Added some code for getting minimum/maximum coefs images.
qjpeg/plugins/QCS.cpp
--- a/qjpeg/plugins/QCS.cpp	Sun Dec 02 17:10:30 2007 +0100
+++ b/qjpeg/plugins/QCS.cpp	Sun Dec 02 17:56:34 2007 +0100
@@ -141,10 +141,38 @@
             std::fclose(f);
         }
     }
-    if (DCTimage.getPtr()[j] > DCTmax.getPtr()[j])
-      DCTimage.getPtr()[j] = DCTmax.getPtr()[j];
-    else if (DCTimage.getPtr()[j] < DCTmin.getPtr()[j])
-      DCTimage.getPtr()[j] = DCTmin.getPtr()[j];
+
+    if (1) /* normal flow */
+    {
+        if (DCTimage.getPtr()[j] > DCTmax.getPtr()[j])
+          DCTimage.getPtr()[j] = DCTmax.getPtr()[j];
+        else if (DCTimage.getPtr()[j] < DCTmin.getPtr()[j])
+          DCTimage.getPtr()[j] = DCTmin.getPtr()[j];
+    } else if (0) /* Minimum coefs */
+    {
+        float &min = DCTmin.getPtr()[j];
+        float &max = DCTmax.getPtr()[j];
+        float &final = DCTimage.getPtr()[j];
+
+        if (min > 0 && max > 0)
+            final = min;
+        else if (min < 0 && max > 0)
+            final = 0;
+        else
+            final = max;
+    } else if (0) /* Maximum coefs */
+    {
+        float &min = DCTmin.getPtr()[j];
+        float &max = DCTmax.getPtr()[j];
+        float &final = DCTimage.getPtr()[j];
+
+        if (min > 0 && max > 0)
+            final = max;
+        else if (min < 0 && max > 0)
+            final = max;
+        else
+            final = min;
+    }
   }
 
   fdct_inverse_image(DCTimage.getPtr(), out.getPtr(), width, height);