Considerations such as encoded data size (space efficiency), time to encode data (time efficiency), and data integrity (lossiness???many compression algorithms lose some data) all come into play when selecting a method for encoding (and decoding) data, and a corresponding codec.