How Data Compression Works