Tipps & Tricks 28.08.2006, 06:30 Uhr

Wie funktioniert Datenkomprimierung?

Ich weise eine gute Kollegin in die Kunst des PC-Alltages ein. Nun stellte Sie mir kürzlich die Frage, wie der Computer Dateien komprimiert, sprich den genauen Vorgang, der abläuft, wenn das Programm (z.b. ZIP) die Dateien verkleinert. Ich wusste darauf keine genaue Antwort. Vielleicht können Sie mir helfen, ihr diese Funktion näher zu bringen.
Grundsätzlich und ganz einfach erklärt geht es bei der Datenkomprimierung darum, mehrfach vorkommende gleiche Daten zu finden und die Mehrfachvorkommen durch Zeiger zu ersetzen. Am Beispiel wird es klarer: Die folgende Zeichenkette hat 69 Zeichen.
sieben Zwerge wohnen hinter sieben Bergen schlafen in sieben Bettchen
Das Wort "sieben" kommt dreimal vor. Das ist Platzverschwendung, ersetzen wir die zwei redundanten Siebenen durch einen anderen Wert:
sieben Zwerge wohnen hinter 1 Bergen schlafen in 1 Bettchen
Wobei die Kodierung in diesem Fall lautet: Die 1 ersetzt das erste Wort in der Zeichenkette. Und damit sind es nur noch 59 Zeichen.
Das ist eine sehr vereinfachte Darstellung der verlustfreien Datenkompression, "verlustfrei" deshalb, weil die Kompression wieder komplett rückgängig gemacht werden kann. Eine ZIP-Komprimierung ist verlustfrei, weil ZIP-komprimierte Dateien ohne Qualitätsverlust wiederhergestellt, "entzippt" werden können.
Das Gegenteil von "verlustfrei" ist "verlustbehaftet". Verlustbehaftete Komprimierung streicht einfach Daten aus einer Datei, unwiderruflich. Die JPEG-Komprimierung ist ein Beispiel für eine verlustbehaftete Komprimierung, weil aus dem Originalbild Bildpunkte entfernt bzw. ersetzt oder verändert werden. Aus einem JPEG-Bild kann das Original nicht wiederhergestellt werden.
Wesentlich genauer und technisch korrekter sind Verfahren zur Datenkomprimierung in einem Wikipedia-Artikel [1] erklärt. Noch genauer inkl. Vergleich verschiedener Kompressionsverfahren können es Sie in einem Artikel der Universität Karlsruhe [2] nachlesen.



Kommentare
Es sind keine Kommentare vorhanden.