The term data compression refers to lowering the number of bits of information which needs to be saved or transmitted. This can be done with or without the loss of info, so what will be removed during the compression can be either redundant data or unnecessary one. When the data is uncompressed afterwards, in the first case the info and the quality will be identical, while in the second case the quality will be worse. You can find various compression algorithms that are more effective for different type of info. Compressing and uncompressing data in most cases takes lots of processing time, so the server performing the action must have ample resources to be able to process the info fast enough. An example how information can be compressed is to store how many sequential positions should have 1 and just how many should have 0 within the binary code rather than storing the actual 1s and 0s.