ZPAQ is a defined standard format which embedds the decompression algorithm for each block as bytecode into the archive. One can define a transformation (eg. LZ77 or color transformations of a picture) and compress this data through context mixing and arithmetic coding.
It uses checksums but I can't judge rightnow whether there is some issue implied concerning bitflips.
But of course for real world use cases one would choose a general compression algorithm or write a specific one for a certain type of data you want to handle (because it will perform better than a general algorithm).
[0] http://ck.kolivas.org/apps/lrzip/README.benchmarks