Stewdent.eu
▾

Verlustfreie Kompression

Verlustfreie Kompression reduziert die Dateigröße, ohne irgendwelche Informationen zu verlieren – die Datei kann perfekt wiederhergestellt werden.

Zuletzt aktualisiert: 10. November 2025

★★☆☆☆ Stufe 2computingDatencompressionlosslesszippng3 Min Lesezeit

Fehler melden

Was ist verlustfreie Kompression?

Verlustfreie Kompression ist eine Methode, die Dateien kleiner macht, ohne dabei irgendwelche Informationen wegzulassen. Das bedeutet: wenn du eine komprimierte Datei wieder entpackst, bekommst du exakt dasselbe zurück wie vorher – Bit für Bit identisch.

Das ist so, als würde man ein Wort wie „aaaaabbbbb" abkürzen zu „5a5b" – beide Versionen enthalten dieselbe Information, aber die zweite ist kürzer.

Wann brauchen wir verlustfreie Kompression?

Verlustfreie Kompression ist wichtig, wenn jede Information erhalten bleiben muss:

  • Textdokumente – ein fehlender Buchstabe kann eine Bedeutung verändern
  • Quellcode – ein falsches Zeichen kann ein Programm zum Absturz bringen
  • Medizinische Bilder – kein Pixel darf verändert werden
  • Datenarchive – ZIP-Dateien müssen exakt wiederherstellbar sein
Hinweis

Das ZIP-Format, das du vielleicht kennst, verwendet verlustfreie Kompression. Du kannst eine ZIP-Datei entpacken und erhältst exakt die ursprünglichen Dateien zurück.

Wie funktioniert verlustfreie Kompression?

Es gibt verschiedene Algorithmen. Zwei wichtige Prinzipien:

1. Lauflängenkodierung (RLE)

Wiederholungen werden durch eine Zahl + Symbol ersetzt:

  • Original: AAAAAABBBB (10 Zeichen)
  • Komprimiert: 6A4B (4 Zeichen)

2. Huffman-Kodierung

Häufige Zeichen bekommen kürzere Codes, seltene Zeichen bekommen längere Codes. In einem deutschen Text kommt 'e' sehr oft vor – es bekommt vielleicht nur 2 Bits. Das seltene 'q' bekommt 8 Bits.

# Einfaches Beispiel: Lauflängenkodierung in Python
def rle_kodieren(text):
    if not text:
        return ""
    ergebnis = ""
    zaehler = 1
    for i in range(1, len(text)):
        if text[i] == text[i-1]:
            zaehler += 1
        else:
            ergebnis += str(zaehler) + text[i-1]
            zaehler = 1
    ergebnis += str(zaehler) + text[-1]
    return ergebnis

print(rle_kodieren("AAAAAABBBB"))  # Ausgabe: 6A4B
print(rle_kodieren("ABCDE"))       # Ausgabe: 1A1B1C1D1E

Bekannte verlustfreie Formate

FormatVerwendung
ZIPAllgemeine Dateiarchive
PNGBilder (besonders Grafiken/Logos)
FLACAudio (CD-Qualität)
GIFEinfache Bilder und Animationen
Tipp

Der Kompressionsgrad hängt vom Inhalt ab. Eine Textdatei mit vielen Wiederholungen lässt sich stark komprimieren. Ein Foto lässt sich mit verlustfreier Kompression weniger stark verkleinern, weil die Pixelwerte weniger Muster aufweisen.

Verlustfrei vs. Verlustbehaftet

Der Hauptunterschied:

  • Verlustfrei: 100 % der Daten werden nach dem Entpacken wiederhergestellt
  • Verlustbehaftet: Einige Daten werden dauerhaft entfernt, kleinere Dateien, aber nicht vollständig wiederherstellbar

Verlustfreie Kompression erzeugt meistens größere Dateien als verlustbehaftete Kompression – dafür sind die Daten vollständig erhalten.

Übungsaufgaben

Die Zeichenkette 'BBBBBAAAAAACCC' soll mit Lauflängenkodierung komprimiert werden. Wie lautet das Ergebnis? Wie viele Zeichen spart man?

Antwort anzeigen
Original: 14 Zeichen. Komprimiert: 5B6A3C = 6 Zeichen. Man spart 14 - 6 = 8 Zeichen.

Ein Programmierer speichert eine wichtige Programmdatei als ZIP-Archiv. Warum ist verlustfreie und nicht verlustbehaftete Kompression hier wichtig?

Antwort anzeigen
Quellcode enthält exakte Zeichen und Syntax. Selbst ein einzelnes verändertes oder fehlendes Zeichen kann dazu führen, dass das Programm nicht mehr funktioniert. Verlustbehaftete Kompression würde die Datei dauerhaft verändern, was den Code unbrauchbar machen könnte.