Lossless compression algorithms