PDFMove
Wie kann FLAC-Kompression verlustfrei sein? Eine kontraintuitive Erklärung
Ratgeber

Wie kann FLAC-Kompression verlustfrei sein? Eine kontraintuitive Erklärung

6 Min. Lesezeit

Die kontraintuitive Frage

Der Satz „Die Datei wird halbiert, aber nichts geht verloren" klingt beim ersten Hören unlogisch. Wenn man etwas halbiert, muss doch etwas verschwunden sein, oder?

Tatsächlich nicht. Und um zu verstehen, warum, muss man zuerst sehen, wie verschwenderisch unkomprimierte Daten sind.

Warum ist WAV so verschwenderisch?

Eine WAV-Datei enthält die momentanen Amplitudenwerte einer Schallwelle, gemessen 44.100 Mal pro Sekunde. Jede Messung wird als 16-Bit-Zahl geschrieben – ein Wert zwischen -32768 und +32767.

Nun der entscheidende Punkt: Benachbarte Messungen unterscheiden sich kaum voneinander.

Eine Schallwelle ist ein physikalisches Phänomen; der Luftdruck springt nicht in einem Augenblick von -30000 auf +30000. Aufeinanderfolgende Abtastwerte liegen meist nahe beieinander. Doch WAV kümmert das nicht – es schreibt jeden Abtastwert mit vollen 16 Bit, als wäre er eine völlig eigenständige Zahl.

Genau hier liegt der komprimierbare Raum. Die Daten belegen weit mehr Platz als die Information, die sie tragen.

Die Grundidee von FLAC: die Differenz speichern

Beginnen wir mit einem einfachen Beispiel. Angenommen, Sie haben diese aufeinanderfolgenden Abtastwerte:

1000, 1005, 1009, 1012, 1014, 1015

Schreiben Sie sie unverändert, müssen Sie für jeden einen vollen 16-Bit-Platz aufwenden. Schreiben Sie aber die Differenzen dazwischen:

1000, +5, +4, +3, +2, +1

Abgesehen vom ersten Wert sind alle einstellig. Für diese Zahlen braucht man keine 16 Bit – 4 oder 5 reichen völlig. Und es ging keine Information verloren: Kennen Sie den ersten Wert und die Differenzen, rekonstruieren Sie die ursprüngliche Folge exakt.

Was FLAC macht, ist eine weit ausgefeiltere Version dieses Prinzips.

Lineare Prädiktion: vorhersagen und die Differenz schreiben

FLAC nimmt nicht einfach die Differenz zum Nachbarn. Stattdessen baut es für jeden Audioblock ein Vorhersagemodell auf.

Das Modell beantwortet die Frage: „Wie sage ich anhand der wenigen vorangehenden Abtastwerte den nächsten am besten voraus?" Das nennt man lineare Prädiktion. Der Encoder berechnet die für diesen Block am besten funktionierenden Koeffizienten.

Anschließend speichert er:

  1. Die Modellkoeffizienten (einige Zahlen pro Block – sehr wenig Platz).
  2. Die Residuen: die Differenz zwischen Modellvorhersage und tatsächlichem Abtastwert.

Funktioniert das Modell gut, sind die Residuen kleine Zahlen. Und kleine Zahlen benötigen wenige Bits.

Warum entsteht kein Verlust?

Die Antwort lautet: Der Vorgang erfolgt mit exakter Arithmetik.

Der Decoder liest die in der Datei gespeicherten Modellkoeffizienten und trifft exakt dieselbe Vorhersage wie der Encoder. Dann addiert er das gespeicherte Residuum zu dieser Vorhersage:

tatsächlicher Abtastwert = Vorhersage + Residuum

Keine Rundung, keine Näherung, kein „nahe genug". Da Ganzzahlarithmetik verwendet wird, ist das Ergebnis der ursprüngliche Abtastwert selbst. Jedes Mal, für jeden Abtastwert.

Genau darin liegt der Unterschied zu verlustbehafteten Formaten. MP3 sagt „wenn ich diese Information verwerfe, merkt es niemand" – und verwirft sie tatsächlich. FLAC sagt „diese Information kann ich kürzer schreiben" – und verwirft nichts.

Residuen effizient codieren

Im letzten Schritt schreibt FLAC die Residuenwerte mit einer Entropiecodierung. Diese ist für eine Verteilung optimiert, in der kleine Werte häufig und große selten sind – und genau so verteilen sich Audioresiduen.

Häufige kleine Werte werden also mit sehr wenigen Bits geschrieben, seltene große mit mehr. Die durchschnittliche Bitzahl sinkt erheblich.

Was bewirkt die Kompressionsstufe?

Die Kompressionsstufe 0-8 von FLAC bestimmt, wie viel Aufwand der Encoder betreibt:

  • Wie viele Vorhersagemodelle probiert er aus?
  • Wie wählt er die Blockgrößen?
  • Nutzt er die Beziehung zwischen den Kanälen (bei Stereo komprimiert Mitte-Seite-Codierung meist besser als Links-Rechts)?

Auf einer hohen Stufe probiert der Encoder mehr Möglichkeiten und wählt die beste. Das dauert länger und ergibt eine etwas kleinere Datei.

Doch die Qualität ändert sich nie. Auf Stufe 0 und Stufe 8 erzeugte Dateien liefern beim Decodieren bitgenau identische PCM-Daten. Die Stufe ist keine Qualitätseinstellung, sondern eine Einstellung des Rechenbudgets.

Auf der Decodierseite ist der Stufenunterschied praktisch nicht spürbar; eine Datei jeder Stufe wird schnell decodiert.

Warum schwankt das Kompressionsverhältnis?

Sie kennen die Antwort inzwischen: Vorhersagbarkeit.

  • Sprache, akustische Soli, leise Passagen: gleichmäßige Wellenform, treffsichere Vorhersage, kleine Residuen. Komprimieren sehr gut.
  • Klassik, Raumaufnahmen: große Dynamik, aber regelmäßige Struktur. Komprimieren gut.
  • Dichte Rock-/Elektronikmixe, aggressives Mastering: gesättigtes, komplexes Signal, die Vorhersage kommt an ihre Grenzen. Der Gewinn sinkt.
  • Weißes Rauschen: definitionsgemäß unvorhersagbar. Komprimiert praktisch gar nicht.

Wenn Ihre Aufnahme schlecht komprimiert hat, heißt das nicht, dass Sie die falsche Einstellung gewählt haben – so ist schlicht ihre Natur.

Der grundlegende Unterschied zur verlustbehafteten Kompression

Es lohnt sich, das Gesagte einmal vergleichend zusammenzuführen, denn hier entsteht die Verwirrung meist.

Ein verlustbehafteter Encoder wie MP3 fragt: „Wenn ich diese Information verwerfe, merkt es der Hörer?" Gestützt auf Modelle des menschlichen Hörens identifiziert er Komponenten, die vermutlich nicht gehört werden, und löscht sie wirklich. Der Gewinn ist groß – die Datei schrumpft um ein Vielfaches –, doch die gelöschten Daten bleiben nirgends in der Datei erhalten. Selbst wenn Sie diese MP3 später nach FLAC wandeln, kehrt die Information nicht zurück, denn es gibt nichts zurückzuholen.

Ein verlustfreier Encoder wie FLAC stellt eine andere Frage: „Wie kann ich diese Information kürzer schreiben?" Er verwirft nichts, sondern macht die Darstellung nur effizienter. Der Gewinn ist bescheidener – etwa die halbe Größe –, dafür ist der Hin- und Rückweg vollständig.

Beide Ansätze sind legitim, sie dienen nur unterschiedlichen Zwecken. Für mobiles Hören ist ein verlustbehaftetes Format sinnvoll; für Archiv und Produktion ist ein verlustfreies unerlässlich. Was man nicht verwechseln darf: Der Wechsel zu einem verlustfreien Format holt keine Daten zurück, die zuvor in einem verlustbehafteten Format verloren gingen. Er schützt nur alles, was danach kommt.

Der Unterschied zwischen FLAC und ZIP

Wenn Sie eine WAV-Datei in ZIP packen, haben Sie ebenfalls verlustfrei komprimiert. Doch der Gewinn ist meist sehr gering.

Der Grund: ZIP ist universell und sucht nach wiederkehrenden Byte-Folgen. Bei einer Textdatei, in der das Wort „the" hundertfach vorkommt, funktioniert das hervorragend. In Audiodaten gibt es identisch wiederkehrende Byte-Folgen so gut wie nicht.

FLAC dagegen weiß, worum es sich bei den Daten handelt. Es sucht nicht nach Byte-Mustern, sondern nach Wellenstruktur. Dieses Fachwissen erklärt den großen Leistungsunterschied.

Ein Bonus: die Integritätsprüfung

FLAC schreibt Prüfsummen für jeden Block und für die gesamte Datei. Das ist ein echter Vorteil, den WAV nicht bietet.

Wenn Sie Jahre später eine Archivfestplatte öffnen, können Sie eindeutig feststellen, ob Ihre FLAC-Dateien noch unversehrt sind. In einer WAV-Datei erzeugt ein beschädigter Bereich lautlos falschen Klang; um ihn zu bemerken, müssten Sie die Datei von Anfang bis Ende anhören.

Zusammenfassung

FLAC spart Platz, ohne etwas von den Audiodaten zu verwerfen, weil unkomprimiertes PCM ohnehin verschwenderisch ist: Es schreibt jeden Abtastwert in voller Größe, als wäre er unabhängig, obwohl benachbarte Abtastwerte eng zusammenhängen. FLAC erfasst diesen Zusammenhang mit einem Vorhersagemodell und speichert nur den Vorhersagefehler. Wenn beim Decodieren dieselbe Vorhersage wiederholt und der Fehler hinzuaddiert wird, kehren die Originaldaten exakt zurück. Deshalb können Sie unseren WAV-zu-FLAC-Konverter mit vollem Vertrauen nutzen: Das Einzige, was Sie verlieren, ist Speicherplatz.

Häufig gestellte Fragen

Unterscheidet sich die Klangqualität bei Kompressionsstufe 8 von Stufe 0?

Nein, der Klang ist vollkommen identisch. Die Kompressionsstufe bestimmt nur, wie viele Vorhersagemodelle der Encoder ausprobiert und wie er die Blockgrößen wählt. Welche Stufe Sie auch wählen, die beim Decodieren gewonnenen PCM-Daten sind bitgenau identisch mit dem Original. Der einzige Unterschied liegt in Dateigröße und Codierdauer.

Warum komprimieren manche Dateien kaum?

FLAC gewinnt beim vorhersagbaren Teil der Wellenform. Je regelmäßiger und vorhersagbarer die Struktur einer Aufnahme, desto treffsicherer das Vorhersagemodell und desto kleiner die zu speichernden Differenzen. Bei rauschhaltigen, sehr dichten oder stark gemasterten Aufnahmen wird die Vorhersage schwierig und der Gewinn sinkt. Weißes Rauschen komprimiert praktisch gar nicht, weil es definitionsgemäß unvorhersagbar ist.

Was ist der Unterschied zwischen FLAC und ZIP?

Beide sind verlustfrei, aber für unterschiedliche Datentypen optimiert. ZIP ist universell und sucht nach wiederkehrenden Byte-Folgen; solche Wiederholungen sind in Audiodaten selten, weshalb das ZIP-Packen einer WAV-Datei meist sehr wenig bringt. FLAC dagegen kennt die Wellenstruktur eines Audiosignals und erreicht eine weit höhere Kompression, indem es die mathematische Beziehung zwischen benachbarten Abtastwerten modelliert.

Wie erkenne ich, ob meine FLAC-Datei beschädigt wurde?

FLAC schreibt Prüfsummen für jeden Block und für die gesamte Datei, sodass Sie mit Werkzeugen zur Integritätsprüfung eindeutig feststellen können, ob Ihre Datei unversehrt ist. Das ist bei der Langzeitarchivierung ein wichtiger Vorteil gegenüber WAV, denn ein beschädigter Bereich in einer WAV-Datei erzeugt lautlos falschen Klang, und Sie müssten die ganze Datei anhören, um es zu bemerken.

Probieren Sie es gleich mit WAV → FLAC Dönüştür aus.

WAV → FLAC Dönüştür ausprobieren