Infos über FLAC

Geschichte des Audio Codecs FLAC

FLAC wird seit dem Jahr 2000 entwickelt, wobei am 15.01.2001 erst die Version 0.5 veröffentlicht wurde. Am 20.07.2001 wurde Version 1 veröffentlicht. Im Februar 2002 gab der Hersteller PhatNoise bekannt, dass FLAC in seinen Audiosystemen unterstützt wird. Im Jahre 2003 kündigte Xiph.org an, dass FLAC als verlustfreier Codec in ihr Containerformat integriert werden sollte und so neben Vorbis genutzt werden könne. Die Band Metallica gab 2004 bekannt, dass sie ihre Konzertmitschnitte nicht nur als MP3, sondern auch als FLAC anbieten. Ein alternativer Encoder namens Falke existiert seit 2006 im FFmpeg Projekt.

Grundlegende Informationen zum Audio Codec FLAC

FLAC besteht insgesamt aus mehreren Teilen: Dem Streaming Format, libFLAC (Bibliothek mit Encoder und Decoder), libFLAC++ (Objekt Wrapper für libFLAC), flac (Kommandozeilentoll zu coden und encoden von *.flac Dateien mittels libFLAC), metaflac (Kommandozeilentool zum Editieren der Metadaten), sowie verschiedene Eingabefilter als Plugins für verschiedene Player.

FLAC Dateien liegen standardmäßig im eigenen Container *.flac vor. Wird FLAC in Ogg- oder Matroskacontainer verwendet, so können auch mehrere FLAC Audiodaten nebeneinander in einer Datei gespeichert werden. Dies geschieht zum Beispiel bei mehrsprachigen Filmen. FLAC zeichnet sich durch eine verlustfreie Komprimierung aus. Des Weiteren lässt sich FLAC streamen, es unterstützt Mehrkanal-, Replay-Gain und Cuesheets. Die Kompressionsstärke von FLAC ist nicht überragend, dennoch ausreichend gut. FLAC ist des Weiteren ein asymmetrischer Codec. Der Rechenaufwand für Coding ist deutlicher höher als Decoding. Das liegt daran, dass eine Datei normalerweise nur einmal codiert wird, jedoch mehrfach decodiert wird. Somit wird an die abspielende Hardware keine große Rechenanforderung gestellt. Das ist auch der Grund, wieso FLAC ein durchaus relevantes Verbreitungsgebiet erreicht hat.

Technische Informationen zum Audio Codec FLAC

FLAC erreicht im Durchschnitt eine Komprimierungsrate von 50%. Unterschiedliche Tests haben jedoch ergeben, dass die Komprimierungsrate eher bei 60% liegt. Die Musikart ist dabei relevant für die Kompressionsrate: Ein ruhiges Stück mit wenigen Instrumenten kann auch bis zu 30% der eigentlichen Größe komprimiert werden. Ein umfangreiches Stück kann auf 75% kommen. zur Codierung und Decodierung nutzt FLAC Festkommazahlen. Eingangssignale mit Auflösungen von 4 bis 32 Bit pro Sample, Abtastfrequenzen von 1 Hz bis zu rund 655 kHz und eine Kanalanzahl von 1 bis 8 werden unterstützt.


FLAC codiert in unterschiedlichen Schritten:
Blocking: FLAC unterteilt Signaldaten eines Kanals in Blöcke von jeweils 1000 bis 6000 Samples.
Inter-Channel Decorrelation: Liegt ein Stereo-Signal an, kann aus der Links-Rechts-Kodierung eine Mid-Side-Kodierung erzeugt werde.
Modeling: Der Werteverlauf eines Blocks wird durch Polynomfunktion oder mit Linear Predictive Coding angenähert. Resultierende Koeffizienten werden in einen Frame gespeichert.
Residual Coding: Das Fehlersignal wird mittels Rice-Kodierung verlustfrei in einem Frame gespeichert. Framing: Die entstandenen Frames werden mit Header und Footer versehen, die z.B. für Fehlererkennung mittels CRC und Synchronisierbarkeit sorgen.

FLAC ermöglicht sehr viele Einstellmöglichkeiten und bietet gleichzeitig neun Kompressionsstufen an (0–8, wobei die Standardstufe die 5 ist).br> Die Stufen 0 bis 2 arbeiten mit kleinen Blöcken und fixen LPC-Koeffizienten, um die Kodiergeschwindigkeit zu erhöhen. Die Stufen 3 bis 6 benutzen größere Blöcke und einen LPC-Grad bis zu acht, um platzsparender zu komprimieren. Die Stufen 7 und 8 versuchen zusätzlich die Zieldatei auf eine minimale Größe zu schrumpfen, mit dem Nachteil einer niedrigen Kodiergeschwindigkeit.