Index: trunk/pstamp/src/ppstampParseCamera.c
===================================================================
--- trunk/pstamp/src/ppstampParseCamera.c	(revision 33389)
+++ trunk/pstamp/src/ppstampParseCamera.c	(revision 33504)
@@ -8,14 +8,21 @@
 
 // Set up the ppstamp output Image file
-bool setupOutput(pmConfig *config, pmFPAfile *input, psString stage, bool doMask, bool doWeight, pmFPAfile **pOutput)
+bool setupOutput(pmConfig *config, pmFPAfile *input, ppstampOptions *options, bool doMask, bool doWeight, pmFPAfile **pOutput)
 {
-    pmFPAfile *output;
-    
-    if (!stage || (strcmp(stage, "diff") != 0)) {
-        output = pmFPAfileDefineSkycell(config, NULL, "PPSTAMP.OUTPUT");
+    if (!options->stage || (strcmp(options->stage, "diff") != 0)) {
+        if (options->nocompress) {
+            options->outputFileRule = "PPSTAMP.OUTPUT.NOCOMP";
+        } else {
+            options->outputFileRule = "PPSTAMP.OUTPUT";
+        }
     } else {
         // need special filerule for diff stage image to allow for negative values
-        output = pmFPAfileDefineSkycell(config, NULL, "PPSTAMP.OUTPUT.DIFF");
+        if (options->nocompress) {
+            options->outputFileRule = "PPSTAMP.OUTPUT.DIFF.NOCOMP";
+        } else {
+            options->outputFileRule = "PPSTAMP.OUTPUT.DIFF";
+        }
     }
+    pmFPAfile *output = pmFPAfileDefineSkycell(config, NULL, options->outputFileRule);
     if (!output) {
         psError(PS_ERR_UNKNOWN, false, "Unable to setup output.");
@@ -27,12 +34,23 @@
 
     if (doMask) {
-        pmFPAfile *outMask = pmFPAfileDefineSkycell(config, output->fpa, "PPSTAMP.OUTPUT.MASK");
+        char *rule;
+        if (options->nocompress) {
+            rule =  "PPSTAMP.OUTPUT.MASK.NOCOMP";
+        } else {
+            rule =  "PPSTAMP.OUTPUT.MASK";
+        }
+        pmFPAfile *outMask = pmFPAfileDefineSkycell(config, output->fpa, rule);
         outMask->save = true;
     }
     if (doWeight) {
-        pmFPAfile *outWeight = pmFPAfileDefineSkycell(config, output->fpa, "PPSTAMP.OUTPUT.VARIANCE");
+        char *rule;
+        if (options->nocompress) {
+            rule =  "PPSTAMP.OUTPUT.VARIANCE.NOCOMP";
+        } else {
+            rule =  "PPSTAMP.OUTPUT.VARIANCE";
+        }
+        pmFPAfile *outWeight = pmFPAfileDefineSkycell(config, output->fpa, rule);
         outWeight->save = true;
     }
-
 
     return true;
@@ -97,5 +115,5 @@
     // Set up the output target
     pmFPAfile *output;
-    if (!setupOutput(config, input, options->stage, doMask, doWeight, &output)) {
+    if (!setupOutput(config, input, options, doMask, doWeight, &output)) {
         psError(PS_ERR_UNKNOWN, false, "Unable to setup output.");
         return false;
@@ -113,14 +131,6 @@
 
     if (options->writeJPEG) {
-        char *filerule;
-        // If stage is chip flip the X axis otherwise don't flip.
-        // XXX: is this the right thing to do?
-        // Shouldn't the JPEG match the stamp even for chip stage?
-        if (!options->stage || strcmp(options->stage, "chip")) {
-            filerule = "PPSTAMP.OUTPUT.JPEG";
-        } else {
-            filerule = "PPSTAMP.OUTPUT.JPEG.FLIP";
-        }
-        pmFPAfile *jpg = pmFPAfileDefineOutput(config, output->fpa, filerule);
+        char *filerule = "PPSTAMP.OUTPUT.JPEG";
+        pmFPAfile *jpg = pmFPAfileDefineSkycell(config, output->fpa, filerule);
         if (!jpg) {
             psError(PS_ERR_IO, false, "Unable to generate new file from %s", filerule);
