Here's my single threaded version. LawCounsels, you owe me $5 for 10 minutes work 
Code:
// rcomp.cpp - random file compressor. Public domain.
#include <stdio.h>
int main(int argc, char** argv) {
if (argc!=4)
return printf("To compress|decompress: rcomp c|d input output\n"), 1;
FILE* in=fopen(argv[2], "rb");
if (!in) return perror(argv[2]), 1;
FILE* out=fopen(argv[3], "wb");
if (!out) return perror(argv[3]), 1;
fseek(in, 0, SEEK_END);
int i, n=ftell(in); // input size
rewind(in);
unsigned char* buf=new unsigned char[n+1]; // data to be compressed
fread(buf, 1, n, in);
if (argv[1][0]=='c') { // compress
if (n==0) return printf("Can't compress empty file\n"), 0;
for (i=0; i<n; ++i) {
if (buf[i]>0) {--buf[i]; break;}
else buf[i]=255;
}
if (i==n) --n;
}
else if (argv[1][0]=='d') { // decompress
for (i=0; i<n; ++i) {
if (buf[i]<255) {++buf[i]; break;}
else buf[i]=0;
}
if (i==n) buf[n++]=0;
}
return fwrite(buf, 1, n, out), 0;
}