CRUNCH!

PACKER. CRUNCHER. DATENKOMPRESSION.

Nachträgliches Komprimieren einer mit Exomizer gecrunchten ausführbaren C-64 Datei mit 7zip - Ein Experiment

Juli 22, 2022 | Datenkompression

In der Welt der digitalen Daten ist Effizienz ein entscheidender Faktor. Insbesondere in der C64-Demoszene ist die Größe von Dateien von großer Bedeutung. Ein interessantes Experiment war das nachträgliche Komprimieren einer mit Exomizer gecrunchten ausführbaren C64-Datei mit 7zip. Diese Analyse wird nicht nur die Ausgangslage und die Ergebnisse dieses Experiments darlegen, sondern auch die Gründe hinter den beobachteten Ergebnissen erläutern.

Die Ausgangslage des Experiments ist wie folgt:

  • Der Assembler-Quellcode beträgt 10.695 KB.
  • Musikdaten: 3.541 KB.
  • Bild im Koala-Format: 10.003 KB.
  • Charset: 2.048 KB.

Die mit Acme kompilierte ausführbare Datei beträgt 31.351 KB. Nachdem diese Datei mit Exomizer gecruncht wurde, reduzierte sich die Größe auf 5.673 KB. Eine deutliche Komprimierung, die die Größe erheblich reduzierte.

Interessanterweise ergab das nachträgliche Packen der mit Exomizer gecrunchten Datei mit 7zip eine Dateigröße von 5.831 KB. Überraschenderweise ist diese Größe größer als die der gecrunchten Datei selbst.

Eine entscheidende Metrik, um die Effizienz von Komprimierungsalgorithmen zu bewerten, ist die Kompressionsrate. Diese wird berechnet, indem man die Größe der komprimierten Datei durch die Größe der Ausgangsdatei teilt. Im vorliegenden Fall beträgt die Kompressionsrate von Exomizer:

Kompressionsrate Exomizer

Das bedeutet, dass die gecrunchte Version etwa 5,5-mal kleiner ist als die ursprüngliche Dateigröße. Eine beeindruckende Leistung von Exomizer.

Hingegen beträgt die Kompressionsrate von 7zip:

Kompressionsrate 7zip

Hier liegt das Problem offenbar auf der Hand. Die Kompressionsrate von 7zip beträgt nur minimal über 1, was bedeutet, dass das Archiv praktisch keine Kompression bietet. Warum also ergibt sich eine größere Dateigröße, wenn die bereits gecrunchte Datei erneut mit 7zip gepackt wird?

Die Antwort liegt in der Natur der Kompressionsalgorithmen. Exomizer ist speziell darauf ausgerichtet, den Inhalt von C64-Dateien effizient zu komprimieren. Es nutzt spezielle Techniken, die auf die Struktur dieser Dateien zugeschnitten sind, was zu beeindruckenden Kompressionsraten führt.

Auf der anderen Seite ist 7zip ein allgemeiner Kompressionsalgorithmus, der für eine breite Palette von Dateitypen optimiert ist. Es funktioniert gut für große Dateien oder verschiedene Dateitypen, bietet jedoch möglicherweise keine signifikante Kompression für bereits komprimierte Dateien oder Dateien, die auf spezielle Weise strukturiert sind, wie es bei C64-Dateien der Fall ist.

Infolgedessen kann das erneute Packen einer bereits gecrunchten Datei mit 7zip zu einer größeren Enddateigröße führen. Es ist ein Fall, in dem die Anwendung des falschen Werkzeugs zu suboptimalen Ergebnissen führt.

In der Praxis zeigt dieses Experiment die Bedeutung der Auswahl des richtigen Kompressionsalgorithmus für bestimmte Arten von Dateien. Während 7zip ein vielseitiges Werkzeug ist, kann es in spezialisierten Anwendungsfällen, wie der Retro-Computing-Szene, besser geeignete Alternativen geben. Es verdeutlicht auch die Notwendigkeit, die Eigenschaften der zu komprimierenden Dateien zu verstehen und die richtigen Werkzeuge entsprechend auszuwählen, um optimale Ergebnisse zu erzielen.

Warum sollte man überhaupt ausführbare C64-Dateien mit 7zip packen?

Im Grunde genommen ist es nicht sinnvoll, C64-Dateien mit einem PC-Packer zu komprimieren, da sie auf dem C64 nicht wiederhergestellt werden können. Dieses Experiment sollte lediglich zeigen, dass 7zip nicht immer das beste Werkzeug ist, insbesondere bei bereits komprimierten kleinen Dateien. Allerdings macht es Sinn, viele einzelne ausführbare Dateien in einem 7zip-Archiv zu bündeln, da die Kompressionsrate letztendlich höher ist. Auf diese Weise können, wie ich es praktiziere, viele C64-Dateien auf einer 3,5"-Diskette gespeichert und direkt aus dem Archiv heraus in Vice abgespielt werden. Dieses Vorgehen mag sich nicht für jeden erschließen, da auch das gewählte Diskettenformat nicht dem C64-Standard der 5 1/4-Diskette entspricht, aber jeder hat eben seine speziellen Hobbys.


Verwandte Artikel