CoMa

Computerorientierte Mathematik

TU logo

Inhalt
.

Institut
 .  Vorlesungen
 .  .  CoMa
 .  .  .  ehemalige Zyklen
 .  .  .  .  CoMaII SS04
 .  .  .  .  .  Literatur
 .  .  .  .  .  Programmierregeln
 .  .  .  .  .  Mailarchiv
 .  .  .  .  . Programm 1

back zurück

Computerorientierte Mathematik II (SS04)
- 1. Programmieraufgabe -


Übersicht

Achtung! Eine ausdruckbare Version dieser Seite findet ihr hier.

Abgabetermin

Diese Aufgabe ist bis Donnerstag, 06. Mai 2004 vorzuführen.


Beispiele

An einer Reihe von Beispielen könnt Ihr testen, wie gut eure Kompression ist. Alle Beispiele befinden sich unter compression_examples [examples.zip] . Ihr müsst sie nicht zu Euch kopieren, sondern könnt einfach direkt auf sie zugreifen.

In der folgenden Tabelle findet Ihr eine Übersicht über die Beispiele mit Länge der Originaldatei, der Länge erreicht durch eine eigene Implementation des Huffman-Verfahrens und zum Vergleich die Länge, die ein paar bekannte Komprimierungsprogramme erzielen (die nicht (nur) auf Huffman-Codes basieren).

Anmerkung: Es ist normal, dass die Längen, die Ihr erreicht, leicht von der hier angegebenen (Spalte 4) abweichen. Das liegt dann an unterschiedlicher Weise, in der Ihr Information über Euren Code abspeichert. Die Länge der eigentlichen komprimierten Daten (also ohne die Codeinformation in der Datei) sollte gleich sein, da der Huffman-Code bei Euch und uns ja einen optimaler präfixfreier Code ist.

Wir haben den Beispielen Namen gegeben, die anzeigen, wie gut sie sich komprimieren lassen. In der Tat gibt es Dateien, die in komprimierter Form sogar länger sind als unkomprimiert (Warum?).

Länge (in Bytes) erreicht durch
NameOriginallängeuntersch. Bytesunsere Huffman-Implementation compresszip gzipbzip2
bad1201911256 198718240797169388169308169257
bad227819256 2932640355278682778828245
bad3112 19101062638
bad416667256 1821024548167671669217132
bad54664188 47393074259225122607
good11659181 99637851609360135587
good24194295 2668920347152121513213735
good37530684 4629744955399283984835971
good447152092 22033685939202672018717907
good5927418 40634120342433443274
mediocre125610 174791153557
mediocre2903886 64994379246723872630
mediocre3346978 26002194188618061852
mediocre4467778 35063365258025002671
mediocre52294170 1776321643175391745917580
verybad1256256 1797291356281425
verygood1172178465 45997421197117964317956391894
verygood210011 137541113145
verygood310012 143741123243
veryverybad111 1251012337

Die zum Vergleich herangezogenen Komprimierungsprogramme wurden jeweils zum Komprimieren "gezwungen", auch wenn sie es eigentlich nicht wollten, weil die Datei länger wird. Wo die Wahl bestand, wurde beste Kompression eingestellt.

Tip: Ihr könnt Euch den Inhalt einer Datei Byte Weise ansehen mit

od -vt u1 Dateiname.

Die erste Spalte ist dabei nur ein Zähler für die Bytes, die anderen Spalten sind die Werte der Bytes im Dezimalsystem.

top top
zuletzt bearbeitet: Sat April 10 2004, zuletzt erstellt: Sat April 10 2004
Martin Oellrich <oellrich@math.tu-berlin.de>
Validate HTML