stell dir vor in einer datei steht 1000 mal "0" also 00000000000000000....
dann ist in der datei, 1000 mal hintereinander, der kodierte wert für 0 gespeichert (pro 0er 1 byte, also 1000 bytes + header daten, ca 1kB)
komprimiert könnte man aber speichern: "1000x0", oder "1000*0" oder "0,1000x" usw, wie man halt seine komprimierung machen möchte (das waren natürlich aus der luft gezogene beispiele, in wahrheit ist das viel komplizierter). und plötzlich sind das nur noch 6 bytes, und dein programm (dass die komprimierung versteht) kann die datei noch immer lesen, aber ein normaler text editor nicht, der kennt nur die normale kodierung. deshalb muss dein programm die möglichkeit haben es wieder in die originaform zu übersetzen, aka entpacken