I created a BlitzMax program to filter* and compress images using either LZMA SDK or zlib. Here are the results for three test images I picked up from Wikipedia: Mona Lisa (painting), The Gunk (pixel art) and Grad1 (gradient). All compression was done with level 9 (smallest size).
Image Size (BMP) Size (zlib) Size (LZMA)
Painting 612 KB 347 KB = 56.7% 287 KB = 46.9% (17.3% better)
Pixel art 93 KB 13 KB = 13.4% 11 KB = 11.4% (15.2% better)
Gradient 63 KB 28 KB = 44.9% 23 KB = 36.3% (18.9% better)
Image Compress (zlib) Compress (LZMA)
Painting - ~160ms ~630ms
Pixel art - ~70ms ~90ms
Gradient - ~45ms ~75ms
Image Uncompress (zlib) Uncompress (LZMA)
Painting - ~40ms ~40ms
Pixel art - ~1ms ~1s
Times are not very exact for such small operations, but the results seem to suggest that LZMA compresses more and slower, but uncompresses as fast as zlib. That makes LZMA a good choice for precompressed data, while zlib may be better for real time compression.
Note: Filtering times are not included.
*The filter uses Paeth prediction similar to PNG.