FLAC

FLAC
Free Lossless Audio Codec
Datei:Flac_logo_vector.svg
Logo des Free Lossless Audio Codecs (FLAC)
Basisdaten
Entwickler: Xiph.Org Foundation
Aktuelle Version: 1.2.1
(17. September 2007)
Betriebssystem: plattformunabhängig
Kategorie: Audioformat
Lizenz: BSD/GPL
Deutschsprachig: nein
flac.sf.net

Free Lossless Audio Codec (FLAC), zu Deutsch Freier verlustfreier Audio-Kodierer-Dekodierer, ist ein Codec zur verlustfreien Audiodatenkompression, der im Rahmen der Xiph.Org Foundation entwickelt wird. Er ist frei verfügbar und in seiner Nutzung nicht durch Softwarepatente beschränkt.

Inhaltsverzeichnis

Geschichte

FLAC wurde in der Version 1.0 am 20. Juli 2001 veröffentlicht. Im Februar 2002 gab der erste Hersteller, PhatNoise, Unterstützung für FLAC in seinem Audio-System bekannt.

2003 kündigte die Xiph.Org Foundation an, FLAC in ihr Container-Format zu integrieren, um so neben Vorbis auch verlustfreie Kompression zu ermöglichen. 2004 wurde die interessierte Öffentlichkeit verstärkt auf FLAC aufmerksam, als die Band Metallica bekanntgab, ihre Konzertmitschnitte künftig neben MP3 für Musikliebhaber auch im FLAC-Format zu verkaufen.[1]

Das Projekt

Das Projekt besteht aus folgenden Teilen:

libFLAC und libFLAC++ sind unter einer angepassten Version der BSD-Lizenz, flac, metaflac und die Plugins unter der GPL verfügbar.

Formate

Als Metadatenformat wird Vorbis comment benutzt. FLAC-Dateien werden in Ogg-Containern oder in FLAC-eigenen Containern gespeichert. Dabei kann bei FLAC-Containern nur ein Datenstrom gespeichert werden, während FLAC-komprimierte Audiodaten bei Ogg-Containern in Videos eingebettet oder mit anderen Audio-Strömen überlagert werden können.

Vergleich mit anderen Formaten

Im Gegensatz zu verlustbehafteten Audiodatenkompressionsverfahren wie MP3 oder Ogg Vorbis ist die Komprimierung bei FLAC verlustfrei, es gibt also keine Qualitätseinbußen. Die komprimierten Dateien sind jedoch um ein Vielfaches größer als bei verlustbehafteter Komprimierung. Technisch gesehen zeichnet sich FLAC vor allen Dingen dadurch aus, dass es gestreamt werden kann und Mehrkanal-, Replay-Gain- sowie Cuesheet-Unterstützung mit sich bringt. Außerdem können RIFF‐ und AIFFMetadaten in FLAC-Dateien eingebettet werden, welche beim Dekodieren wiederhergestellt werden. Die Kompressionsstärke liegt, verglichen mit anderen verlustfreien Audio-Codecs, im Mittelfeld.[2]

Bei FLAC handelt es sich außerdem um einen sogenannten asymmetrischen Codec: Der Rechenaufwand für das Kodieren ist deutlich höher als der für das Dekodieren. Hintergrund ist die Überlegung, dass eine Datei im Allgemeinen nur einmal kodiert, aber mehrfach (meist zum Abspielen) dekodiert wird. Dadurch stellt das Format vergleichsweise geringe Anforderungen an die Rechenleistung von Abspielhardware. Da es nur eine Komplexitätsstufe gibt, bleibt der Aufwand beim Dekodieren immer derselbe – unabhängig von der Encodereinstellung. Dies ist einer der Gründe, warum FLAC neben Apple Lossless, dem verlustfreien Kompressionsformat von Apple, auf Abspielgeräten eine gewisse Verbreitung erlangt hat.

Kompression

Laut Angaben der Entwickler erreicht FLAC durchschnittlich eine Komprimierung auf rund 50 % der Ausgangsgröße, der Unterschied zu anderen verlustfreien Verfahren liegt demnach in einem Bereich einiger Prozentpunkte.[3] Verschiedene andere Tests legen aber eher eine Komprimierung auf etwa 60 % nahe.[4][5]. Die Art der Musik ist dabei massiv ausschlaggebend für die mögliche Komprimierung: Ein ruhiges Stück mit wenigen Instrumenten kann sogar auf 30 % der ursprünglichen Größe komprimiert werden, ein sehr vielschichtiges Stück dagegen nur auf 75 % kommen.

Verfahren

FLAC nutzt für Kodierung und Dekodierung ausschließlich Ganzzahlarithmetik, wodurch insbesondere Hardwareimplementierungen vereinfacht werden. Hinsichtlich des Eingangssignals ist der Codec sehr flexibel: Auflösungen zwischen vier und 32 Bit pro Sample, Abtastfrequenzen zwischen 1 Hz und rund 655 kHz und einer Kanalanzahl zwischen eins und acht werden unterstützt.[6] Das Dateiformat, das eingesetzt wird, unterstützt die Speicherung von Metadaten mittels Vorbis comment und kann auch Replay-Gain-Daten hinterlegen. Bei der Komprimierung verarbeitet FLAC die Eingangsdaten in mehreren Schritten[7]:

  • Blocking: FLAC unterteilt die Daten jedes Kanals stets in Blöcke zu je 1000 bis 6000 Samples. Die Blöcke aller Kanäle zu einem bestimmten Zeitpunkt werden gemeinsam in einem Frame untergebracht.
  • Inter-Channel Decorrelation: Sofern ein Stereo-Signal anliegt, kann es aus der vorliegenden Links-Rechts-Kodiering (d. h. jeder Kanal ist separat codiert) in eine Mid-Side-Kodierung überführt werden. Die geschieht entweder fest (also immer bei L/R belassen bzw. immer in M/S umwandeln) oder adaptiv in jedem Frame (der Encoder wählt die günstigere Kodierung). Im Falle von Signalen mit mehr Kanälen (z. B. 5.1-Surround) kann dieser Schritt analog angewandt werden.
  • Modeling: Der Werteverlauf jedes Blocks wird entweder mittels einer Polynomfunkion oder mit dem Verfahren Linear Predictive Coding angenähert. Die resultierenden Koeffizienten werden im Frame gespeichert.
  • Residual Coding: Das Fehlersignal, also der Unterschied zwischen dem tatsächlichen Signal und dem modellierten Signal, wird mittels Rice-Kodierung verlustfrei im Frame gespeichert.
  • Framing: Zuletzt werden die entstandenen Frames mit Header und Footer versehen, die unter Anderem für Fehlererkennung mittels CRC und Synchronisierbarkeit sorgen.

Kompressionsstufen

Die einzelnen Parameter der FLAC-Kodierung sind im Referenzencoder alle manuell einstellbar, unter Anderem die Blockgröße, der Grad der Linear-Predictive-Kodierung oder der Einsatz der Mid-Side-Kodierung. Um die Handhabung aber zu vereinfachen, bietet der Referenzencoder auch insgesamt neun Kompressionsstufen an (0–8, Standardstufe ist 5), die jeweils für eine bestimmte voreingestellte Parameterkombination stehen.[8] Die Kodierung in höheren Stufen wirkt sich zwar nur wenig auf die erreichbare Dateigröße aus, dafür steigt aber die benötigte Rechenzeit überproportional an; die Dekodiergeschwindigkeit bleibt dagegen nahezu konstant, weswegen FLAC zu den asymmetrischen Codecs zählt.

  • Die Stufen 0 bis 2 arbeiten mit recht 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, durch ausgiebige Suche nach den optimalen Kodierungsparametern (exhaustive model search) die Zieldatei auf eine minimale Größe zu bekommen, mit dem Nachteil einer wesentlich niedrigeren Kodiergeschwindigkeit.

Verbreitung

Da FLAC auch zum Ogg-Framework der Xiph.Org Foundation gehört, kommt die Bekanntheit anderer Formate der Stiftung, wie zum Beispiel Vorbis, auch FLAC zugute. Zusätzlich gibt es entsprechende Bemühungen, den Codec auf alle Plattformen zu portieren, die Ogg unterstützen.

Soft- und Hardwareunterstützung

Da FLAC freie Software ist, darf jedes beliebige Programm und jedes Gerät es nutzen.[9] So wird es standardmäßig von den meisten Linux-Distributionen unterstützt. Für viele weitere Betriebssysteme stehen FLAC-Plugins sowie Abspielprogramme zur Verfügung, die FLAC unterstützen (wie z. B. VLC media player, Winamp, AIMP oder foobar2000).

Seit etwa 2003 gibt es Geräte auf dem Markt, auch zunehmend tragbare Player, die das freie Audioformat abspielen können. Für viele Player, bei denen die Firmware aktualisiert werden kann, gibt es zusätzlich Open-Source-Projekte, die FLAC-Wiedergabe unterstützen, beispielsweise Rockbox.

Siehe auch

Weblinks

Einzelnachweise

  1. Hajo Schulz: Metallica bietet Konzertmitschnitte zum Download auf Heise online, 7. März 2004
  2. Lossless comparison (englisch) im hydrogenaudio.org-Wiki, 4. Januar 2006
  3. flac-Homepage: Comparison, abgerufen am 8. April 2009
  4. Performance comparison of lossless audio compressors, vom 7. Februar 2005, abgerufen am 8. April 2009
  5. SqueezeChart: Lossless Audio Compression, vom 14. Februar 2009, abgerufen am 8. April 2009
  6. flac-Homepage: FAQ, abgerufen am 8. April 2009
  7. flac-Homepage: Documentation, abgerufen am 8. April 2009
  8. gemäß der Parameterbeschreibung des FLAC-Referenzencoders in Version 1.2.1, abrufbar mit dem Befehl: flac --help
  9. flac-Homepage: License

Wikimedia Foundation.

Игры ⚽ Поможем написать курсовую

Schlagen Sie auch in anderen Wörterbüchern nach:

  • flac — flac …   Dictionnaire des rimes

  • FLAC — redirects here. For anti aircraft fire, see Flak. For other uses, see FLAC (disambiguation). Free Lossless Audio Codec Developer(s) Xiph.Org Foundation, Josh Coalson Initial release …   Wikipedia

  • flac — [ flak ] interj. • XVIe; var. de flic ♦ Onomatopée imitant le bruit de l eau qui tombe, de ce qui tombe dans l eau (⇒ floc ), ou à plat. ⊗ HOM. Flaque. ⇒FLAC, onomatopée et subst. I. Onomatopée A. [S emploie pour transcrire le bruit de l eau qui… …   Encyclopédie Universelle

  • flac — flac·cid; flac·cid·i·ty; flac·on; flic·flac; flac·cid·ly; flac·cid·ness; …   English syllables

  • flac — Flac, Nomen est fictum a sono. De grand vilain grand flac. Il en fit beau flac, Applosam fregit seriam, Ouum applosum ad terram fregit. B. ex Spartiano …   Thresor de la langue françoyse

  • Flac — bezeichnet: Free Lossless Audio Codec, ein Codec zur verlustfreien Audiodatenkompression Flac (Automarke), ehemaliges dänisches Unternehmen Diese Seite ist eine Begriffsklärung zur Unterscheidung mehrerer mit demselben Wort be …   Deutsch Wikipedia

  • flac ! — ● flac ! interjection (onomatopée) Imite le bruit d un liquide qui tombe ou de la chute d un objet dans un liquide, d un claquement, etc. ● flac ! (homonymes) interjection (onomatopée) flaque nom féminin …   Encyclopédie Universelle

  • flac! — Interj. Onomatopée imitant le bruit d un choc à plat ou sur une surface liquide …   Encyclopédie Universelle

  • flac — Mot Monosíl·lab Nom masculí …   Diccionari Català-Català

  • .flac — Free Lossless Audio Codec Logo des Free Lossless Audio Codecs (FLAC) Basisdaten Entwickler: Xiph.Org Foundation Aktuell …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”