Rather than extract data from the compiled binary, why not extract it from the generated C code, compress it, and generate equivalent C code with the compressed data?
This approach would probably simplify many aspects of implementation, debugging, and testing.