Wie gut ein bestimmtes Programm komprimieren kann, hängt sowohl vom Programm selbst ab, als auch von den zu komprimierenden Daten.
Es gibt viele Komprimierungsverfahren. Vor allem unterscheidet man verlustlfreie (wenn die Daten exakt nachgestellt werden müssen, z.B.: .exe-Datei) und verlustbehaftete Komprimierungsverfahren (wenn die Daten nur approximativ nachgestellt werden müssen, z.B.: Video- oder Audiodateien).
Für beide Typen gibt es zahlreiche Verfahren, zB Zero Suppression, Huffman, Arithmetic, RLE, lexikographische Verfahren bei verlustfreie Verfahren, oder Fraktal, Frequenztransofrmationen bei verlustbehaftete Verfahren. Natürlich gibt es auch Verfahren, die beides einsetzen, z.B. JPEG, MP3 oder MPEG.
Nicht jedes Verfahren ist in jeder Situation geeignet, aber es gibt Verfahren die im Durchschnitt sehr gut sind.
Mit Zero Supression kannst du Dateien, in denen viele Nullen aufeinanderfolgen, sehr stark komprimieren. Dateien die viele Einsen enthalten, werden nicht so stark komprimiert. Bei der Arithmetischen Kodierung wirst im Durchschnitt einen grossen Komprimierungserfolg erwarten können. Im Schlimmsten Falle kannst du also Dateien sogar grösser Machen, wenn du ein völlig ungeeignetes Verfahren anwendest.
Bei verlustbehafteten Verfahren kanns du es ja selbst ausprobieren:
Nimm ein Bild mit einfachen geometrischen Formen (Quadrate, Kreise, Striche,...) und ein Bild mit natürlichen Dingen drauf (Menschen, Landschaften, Tiere, ...).
Speichere die Bilder einmal im JPEG und einmal im PNG Format ab, und wähle dabei die Qualitätseinstellungen so, dass die resultierenden Dateien ungefähr die gleiche Größe haben. Du wirst dabei merken:
Bei den künstlichen Figuren ist PNG besser, und bei realen Motiven ist JPEG besser. (besser= Verhaltnis Qualität ~ Dateigröße).
Einfacher ist es sogar wenn du jedesmal einfach mit 100% Qualität abspeicherst und dann die Dateigrößen vergleichst.
Zum Thema Kompression gibt es im Netz eine ganze Menge! Google einfach mal nach verschiedene Kompressionsbegriffe die ich hier niedergeschrieben habe wenn du mehr erfahren willst.