The term data compression identifies reducing the number of bits of data that should be stored or transmitted. This can be done with or without the loss of data, which means that what will be removed during the compression shall be either redundant data or unnecessary one. When the data is uncompressed subsequently, in the first case the information and its quality shall be identical, while in the second case the quality shall be worse. There're different compression algorithms which are more efficient for various kind of info. Compressing and uncompressing data usually takes lots of processing time, so the server executing the action should have plenty of resources in order to be able to process your data quick enough. One simple example how information can be compressed is to store just how many sequential positions should have 1 and how many should have 0 inside the binary code as an alternative to storing the actual 1s and 0s.