Kompression und Dateiformate
Du willst das Video von deinem Ausflug an eine Freundin schicken. Es ist 500 MB groß, und das Verschicken würde ewig dauern. Der Messenger packt das Video zusammen, und plötzlich sind es nur noch etwa 40 MB. Das Video sieht fast genauso aus wie vorher, vielleicht ein wenig unschärfer.
Wie kann eine Datei schrumpfen, ohne dass das Video verschwindet? Warum darf man bei einem Text nichts weglassen, bei einem Video aber schon? Und wie kann ein Video schon laufen, bevor es ganz angekommen ist? Das klärst du in dieser Lektion.
Dateiformate
Du kennst Dateiformate schon: Sie legen fest, wie die Daten einer Datei aufgeschrieben sind. Die Dateiendung verrät das Format. Für eine Art von Inhalt gibt es oft mehrere Formate, weil sie die Daten verschieden speichern. Manche halten jedes Pixel einzeln fest, andere schreiben die Daten kürzer auf.
| Endung | Inhalt | Besonderheit |
|---|---|---|
| .txt | Text | einfacher Text ohne Gestaltung |
| .png | Bild | verlustfrei komprimiert, gut für Zeichnungen und klare Kanten |
| .jpg | Bild | verlustbehaftet komprimiert, gut für Fotos |
| .wav | Ton | meist unkomprimiert, sehr groß |
| .mp3 | Ton | verlustbehaftet komprimiert, viel kleiner |
| .mp4 | Video | enthält Bild und Ton, meist stark verlustbehaftet komprimiert |
| .zip | Archiv | fasst Dateien zusammen und komprimiert sie verlustfrei |
Was „verlustfrei“ und „verlustbehaftet“ heißt, erfährst du gleich.
Kompression: verlustfrei und verlustbehaftet
Kompression heißt: Daten so aufschreiben, dass sie weniger Speicherplatz brauchen. Das spart Platz und verkürzt die Übertragung. Das Gegenteil heißt Dekomprimieren oder Entpacken. Es gibt zwei Arten:
- Bei der verlustfreien Kompression kommt nach dem Entpacken genau das Original heraus, Bit für Bit. Das Verfahren nutzt Wiederholungen in den Daten. Du brauchst es für Texte, Tabellen und Programme, denn ein einziges falsches Zeichen kann sie zerstören.
- Bei der verlustbehafteten Kompression lässt das Verfahren Teile weg, die du kaum bemerkst: feine Farbunterschiede im Foto oder sehr leise Töne neben lauten. Das Original lässt sich danach nicht mehr herstellen. Dafür werden die Dateien viel kleiner. Je stärker die Kompression, desto sichtbarer wird der Verlust.
Kompressionsrate
Wie gut eine Kompression ist, misst die Kompressionsrate: Du teilst die Größe vor der Kompression durch die Größe danach. Eine Rate von 4 bedeutet: Die Datei ist auf ein Viertel geschrumpft. Manche geben stattdessen an, auf wie viel Prozent die Datei geschrumpft ist. Beides sagt dasselbe, denn Rate 4 sind 25 %. Je größer die Rate, desto besser komprimiert das Verfahren. Sie hängt auch von den Daten ab: Daten mit vielen Wiederholungen schrumpfen stark, Daten ohne Wiederholungen kaum.
Wie gut ist die Kompression?
Wie gut ist die Kompression?
Ein Foto ist 1000 Pixel breit und 800 Pixel hoch. Jedes Pixel braucht 24 Bit, also 3 Byte. Angenommen, als JPG ist die Datei nur 240 kB groß. Wie groß wäre das Foto ohne Kompression, und wie hoch ist die Kompressionsrate?
Ohne Kompression: 1000 · 800 = 800 000 Pixel. Jedes Pixel braucht 3 Byte, also 800 000 · 3 = 2 400 000 Byte = 2400 kB. Die Rate ist 2400 kB : 240 kB = 10. Das JPG ist auf ein Zehntel geschrumpft, das sind 10 %.
Lauflängencodierung
Die Lauflängencodierung ist ein einfaches verlustfreies Verfahren. Eine Folge gleicher Zeichen heißt Lauf. Statt den Lauf auszuschreiben, schreibst du auf, wie lang er ist und welches Zeichen es ist. Aus AAAAAABBB (6 mal A, 3 mal B) wird 6A3B. Das Verfahren lohnt sich nur bei langen Läufen: Aus ABAB wird 1A1B1A1B, und das ist doppelt so lang. Gut geeignet sind einfache Bilder mit großen einfarbigen Flächen, zum Beispiel ein Schwarz-Weiß-Bild mit langen Reihen Weiß.
Ein Bild mit Lauflängencodierung komprimieren
Ein Bild mit Lauflängencodierung komprimieren
Ein Schwarz-Weiß-Bild ist 8 Pixel breit und 4 Pixel hoch. W steht für weiß, S für schwarz.
| Zeile | Pixel |
|---|---|
| 1 | WWWWWWWW |
| 2 | WWSSSSWW |
| 3 | WWSSSSWW |
| 4 | WWWWWWWW |
Codiere jede Zeile mit Lauflängencodierung und berechne die Kompressionsrate. Zähle dabei jedes Zeichen als 1 Byte.
Zeile 1 besteht aus 8 mal W, also 8W. Zeile 2 besteht aus 2 mal W, 4 mal S und 2 mal W, also 2W4S2W. Zeile 3 ist genauso: 2W4S2W. Zeile 4 ist wie Zeile 1: 8W.
Das Bild hat 4 · 8 = 32 Zeichen. Die codierten Zeilen haben 2 + 6 + 6 + 2 = 16 Zeichen. Die Rate ist 32 : 16 = 2. Die Datei ist auf die Hälfte geschrumpft. Aus dem Code lässt sich das Bild vollständig zurückholen, die Kompression ist verlustfrei.
Archivformate
Ein Archiv fasst mehrere Dateien und Ordner in einer einzigen Datei zusammen, meist mit verlustfreier Kompression. Bekannte Formate sind ZIP und 7z. Archive haben zwei Vorteile: Du verschickst viele Dateien als eine, und die Datei ist kleiner. Beim Entpacken entstehen die Originale zurück. Bei Dateien, die schon komprimiert sind, etwa JPG, MP3 oder MP4, bringt das Packen kaum etwas, denn dort gibt es kaum noch Wiederholungen, die das Verfahren nutzen könnte.
Streaming
Beim Streaming läuft ein Video oder Lied schon, während es noch ankommt. Du wartest nicht, bis die ganze Datei geladen ist. Der Server schickt die Daten in kleinen Stücken. Dein Gerät sammelt ein paar Sekunden davon im Puffer, einem kleinen Zwischenspeicher, und spielt sie ab, während schon die nächsten ankommen. Wird die Verbindung langsamer, zehrt der Player vom Puffer. Ist er leer, stockt das Bild.
Streaming braucht Kompression. Die Verbindung muss mindestens so viele Daten pro Sekunde schaffen, wie der Strom braucht. Diese Datenrate misst man in kbit/s (1 kbit/s sind 1000 Bit pro Sekunde). Bei langsamer Verbindung wählen viele Dienste eine stärkere Kompression und damit ein schlechteres Bild.
Wie groß ist ein Lied?
Wie groß ist ein Lied?
Ein Lied dauert 4 Minuten. Als WAV hat es eine Datenrate von etwa 1400 kbit/s, als MP3 von 128 kbit/s. Wie groß sind beide Dateien in MB, und wie hoch ist die Kompressionsrate?
4 Minuten sind 240 Sekunden. WAV: 240 · 1400 = 336 000 kbit. Durch 8 geteilt sind das 42 000 kB, also 42 MB. MP3: 240 · 128 = 30 720 kbit. Durch 8 geteilt sind das 3840 kB, also etwa 3,8 MB. Die Rate ist 42 MB : 3,84 MB, das sind etwa 11. Die MP3-Datei ist etwa elfmal kleiner. Zum Streamen mit 128 kbit/s muss die Leitung mindestens 128 kbit/s schaffen.
ZIP macht jede Datei kleiner
ZIP macht jede Datei kleiner
„Ich packe meine Urlaubsfotos in eine ZIP-Datei. Dann brauchen sie nur noch halb so viel Platz.“
Ein JPG ist schon komprimiert. Es enthält kaum noch Wiederholungen, die ZIP nutzen kann. Die ZIP-Datei ist daher nur wenig kleiner. Stark schrumpfen Dateien mit vielen Wiederholungen, etwa Texte oder unkomprimierte Bilder.
Die Qualität lässt sich zurückholen
Die Qualität lässt sich zurückholen
„Mein JPG ist unscharf. Wenn ich es als PNG speichere, ist es wieder scharf.“
Was die verlustbehaftete Kompression weggelassen hat, ist weg. Ein PNG speichert das unscharfe Bild jetzt nur ohne weiteren Verlust, und die Datei wird meist größer. Hebe darum von wichtigen Fotos das Original auf.
Zusammenfassung
Das Dateiformat legt fest, wie die Daten einer Datei aufgeschrieben sind. Die Endung verrät es.
Kompression schreibt Daten so auf, dass sie weniger Platz brauchen. Bei verlustfreier Kompression kommt nach dem Entpacken das Original heraus, bei verlustbehafteter nicht.
Texte, Tabellen und Programme brauchen verlustfreie Kompression. Bei Fotos, Musik und Videos ist Verlust oft vertretbar.
Die Kompressionsrate ist die Größe vor der Kompression geteilt durch die Größe danach.
Bei der Lauflängencodierung ersetzt man einen Lauf gleicher Zeichen durch Länge und Zeichen. Sie lohnt sich bei langen Läufen.
Ein Archiv wie ZIP fasst Dateien zusammen und komprimiert sie meist verlustfrei. Schon komprimierte Dateien schrumpfen kaum.
Beim Streaming läuft ein Video schon, während es ankommt. Der Puffer gleicht Schwankungen aus, und die Kompression hält die Datenrate niedrig.
Übungen
Eine Datei hat 6000 kB. Nach der Kompression hat sie 1500 kB. Wie hoch ist die Kompressionsrate?
Bei welcher Datei darf die Kompression nichts verändern?
Eine Pixelzeile besteht aus 12 W, dann 5 S, dann 3 W. Ausgeschrieben sind das 20 Zeichen. Mit Lauflängencodierung schreibt man 12W5S3W. Wie viele Zeichen spart man?
Warum wird eine JPG-Datei in einer ZIP-Datei kaum kleiner?
Ein Lied dauert 3 Minuten und hat eine Datenrate von 160 kbit/s. Wie groß ist die Datei in kB? Schreibe die Zahl ohne Punkt.
Erkläre in zwei bis drei Sätzen, was Streaming ist und wozu der Puffer dient.