- Free Lossless Audio Codec
-
Free Lossless Audio Codec Dateiendung: .flac
MIME-Type: audio/x-flac
Magische Zahl: fLaC
Entwickelt von: Josh Coalson (Xiph.Org Foundation) Art: Audio Standard(s): Formatspezifikation Website: flac.sf.net FLAC-Referenzimplementierung 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
Die Entwicklung von FLAC begann im Jahr 2000. Das Format wurde zu Beginn des Beta-Stadiums durch Veröffentlichung von Version 0.5 der Referenz-Implementierung am 15. Januar 2001 festgelegt. Am 20. Juli 2001 wurde Version 1.0 veröffentlicht. Im Februar 2002 gab der erste Hersteller, PhatNoise, die Unterstützung von 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. Im Jahr 2004 wurde eine größere Öffentlichkeit auf FLAC aufmerksam, als die Band Metallica bekanntgab, ihre Konzertmitschnitte künftig nicht nur im verlust- und patentbehafteten Format MP3 zu verkaufen, sondern für Musikliebhaber die Aufzeichnungen auch im FLAC-Format anzubieten.[1]
Seit Mai 2006 existiert neben der Referenzimplementierung von Xiph/Coalson ein alternativer Encoder namens Flake von Justin Ruggles, der in FFmpeg aufgenommen wurde.[2]
Das Projekt
Das Projekt besteht aus folgenden Teilen:
- dem Streaming-Format,
- libFLAC, einer Bibliothek mit Referenz-Encoder und -Decoder und einer Metadaten-Schnittstelle,
- libFLAC++, einem Objekt-Wrapper für libFLAC,
- flac, einem Kommandozeilentool zum Kodieren und Dekodieren von .flac-Dateien mit libFLAC,
- metaflac, einem Kommandozeilentool zum Editieren der Metadaten von .flac-Dateien, und
- Eingabefilter als Plugins für verschiedene Musik-Player (Winamp, XMMS, …).
libFLAC und libFLAC++ sind unter einer angepassten Version der BSD-Lizenz, flac, metaflac und die Plugins unter der GPL verfügbar.
Formate
FLAC-Dateien werden standardmäßig im FLAC-eigenen Container gespeichert und können einen Datenstrom enthalten. Als Metadatenformat wird Vorbis comment verwendet. In Ogg- und Matroska-Containern können mehrere FLAC-komprimierte Audiodaten nebeneinander in eine Datei gespeichert werden, meistens zusammen mit einem Videodatenstrom in Form von mehrsprachigen Filmen.
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; dafür sind die komprimierten Dateien aber um ein Vielfaches größer. 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 AIFF-Metadaten in FLAC-Dateien eingebettet werden, welche beim Dekodieren wiederhergestellt werden. Die Kompressionsstärke liegt, verglichen mit anderen verlustfreien Audio-Codecs, im Mittelfeld.[3]
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 Audio-Kompressionsverfahren liegt demnach in einem Bereich einiger Prozentpunkte.[4] Verschiedene andere Tests legen aber eher eine Komprimierung auf etwa 60 % nahe.[5][6] Die Art der Musik ist dabei ausschlaggebend für die mögliche Kompressionsrate: Ein ruhiges Stück mit wenigen Instrumenten kann auf 30 % der ursprünglichen Größe komprimiert werden, ein sehr vielschichtiges Stück dagegen nur auf 75 % kommen. Die Kompressionsrate hängt sehr stark von Abtastrate und Wortbreite ab.
Verfahren
FLAC nutzt für Kodierung und Dekodierung ausschließlich Festkommaarithmetik, 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.[7] Das verwendete Dateiformat 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[8]:
- 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-Kodierung (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 Polynomfunktion 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.[9] 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.
- 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.[10] 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, Songbird, Winamp, AIMP, The KMPlayer 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. Für Mobiltelefone mit Android sind verschiedene Programme zum Abspielen von FLAC verfügbar. Seit der Version 3.1 bietet Android native FLAC-Unterstützung.[11] Unter Symbian kann beispielsweise die Freeware OggPlay[12] verwendet werden..
Siehe auch
Weblinks
- Projektseite bei Sourceforge (englisch)
- FLAC im Wiki der Xiph.Org Foundation (englisch)
- FLAC im Wiki von Hydrogenaudio (englisch)
Einzelnachweise
- ↑ Hajo Schulz: Metallica bietet Konzertmitschnitte zum Download auf Heise online, 7. März 2004
- ↑ http://flake-enc.sourceforge.net/
- ↑ Lossless comparison (englisch) im hydrogenaudio.org-Wiki, 4. Januar 2006
- ↑ flac-Homepage: Comparison, abgerufen am 8. April 2009
- ↑ Performance comparison of lossless audio compressors, vom 7. Februar 2005, abgerufen am 8. April 2009
- ↑ SqueezeChart: Lossless Audio Compression, vom 14. Februar 2009, abgerufen am 8. April 2009
- ↑ flac-Homepage: FAQ, abgerufen am 8. April 2009
- ↑ flac-Homepage: Documentation, abgerufen am 8. April 2009
- ↑ gemäß der Parameterbeschreibung des FLAC-Referenzencoders in Version 1.2.1
- ↑ flac-Homepage: License
- ↑ Android Developer - Supported Media Formats
- ↑ OggPlay-Homepage auf Sourceforge.net
Ogg-Projekte: Vorbis | Theora | FLAC | Speex | OggUVS | OggPCM | Ogg Writ | CELT
Andere Projekte: Vorbis comment | Tremor | XSPF | cdparanoia | Icecast | Cortado | Tarkin
Zugehörige Artikel: Christopher Montgomery
Wikimedia Foundation.
Schlagen Sie auch in anderen Wörterbüchern nach:
Free Lossless Audio Codec — Développeur Xiph.org Dernière version … Wikipédia en Français
Free Lossless Audio Codec — Infobox file format name = Free Lossless Audio Codec icon = extension = .flac mime = audio/x flac [Registration being sought as audio/flac] type code = uniform type = magic = owner = genre = Audio container for = contained by = extended from =… … Wikipedia
Free Lossless Audio Codec — En este artículo sobre informática se detectaron los siguientes problemas: Necesita mejorar su estructura. Carece de fuentes o referencias que aparezcan en una fuente acreditada. Requiere una revisión ortográfica y gramatical … Wikipedia Español
Audio-Codec — Als Codec (Kunstwort aus engl. coder und decoder) bezeichnet man ein Verfahren bzw. Programm, das Daten oder Signale digital kodiert und dekodiert. Beim direkten Umwandeln von einem Format in ein anderes (bspw. MPEG 2 zu MPEG 4 oder MP3 zu WMA)… … Deutsch Wikipedia
Lossless data compression — is a class of data compression algorithms that allows the exact original data to be reconstructed from the compressed data. The term lossless is in contrast to lossy data compression, which only allows an approximation of the original data to be… … Wikipedia
Lossless Predictive Audio Compression — (LPAC) is an improved lossless audio compression algorithm developed by Tilman Liebchen, Marcus Purat and Peter Noll at [http://www.nue.tu berlin.de/index e.html Institute for Telecommunications] , Technical University Berlin (TU Berlin), to… … Wikipedia
Audio file format — An audio file format is a file format for storing digital audio data on a computer system. This data can be stored uncompressed, or compressed to reduce the file size. It can be a raw bitstream, but it is usually a container format or an audio… … Wikipedia
Audio compression (data) — For processes which reduce the amount of time it takes to listen to and understand a recording, see time compressed speech. Audio compression is a form of data compression designed to reduce the size of audio files. Audio compression algorithms… … Wikipedia
Códec de audio — Un códec de audio es un códec que incluye un conjunto de algoritmos que permiten codificar y decodificar los datos auditivos, lo cual significa reducir la cantidad de bits que ocupa el fichero de audio. Sirve para comprimir señales o ficheros de… … Wikipedia Español
Audio format — An audio format is a medium for storing sound and music. The term is applied to both the physical recording media and the recording formats of the audio content – in computer science it is often limited to the audio file format, but its wider use … Wikipedia