Free Lossless Audio codec

Free Lossless Audio codec (FLAC) is a codec of compression audio without loss. Contrary to codecs such as MP3 or Vorbis, it does not remove any information of the audio stream.

Like other methods of compression, FLAC has as an main advantage reducing the flow or storage capacity necessary, without losing information of the audio source. For example, a numerical recording (such as CD) encodé in FLAC can be decompressed to obtain an identical copy of the audio data. The audio sources can be encodées in FLAC to allow a profit of size from 30 to 40%.

Flac is adapted for all filings of audio data, with the support of the metadata, image of cover, like for fast research. FLAC is free and open source, as it does not require the payment of royalties, it is well supported by many software. The support of the restitution of FLAC on the portable audio apparatuses, and the dedicated systems audios is limited but in progress. John Coalson is the first author of FLAC.

The January 29th 2003, Xiphophorus (called, In 2004, Xiph.org) announces the incorporation of FLAC under the banner of Xiph.org, thus joining Ogg Vorbis, Ogg Theora and Speex.

Project

Project FLAC consists of several elements:
  • the format of flow;

  • libFLAC, a library of coding and decoding as well as an interface with the metadata;
  • libFLAC++, an access object to libFLAC;
  • flac, an access in line of order to libFLAC to code and decode files .flac;
  • metaflac, an editor in line of order for the files .flac;
  • of the plugins of entry for several popular musical readers (Winamp, XMMS…).

The specifications of the format of flow are in the public domain (project FLAC reserves the rights as for the specifications and to certification of compatibility). The project also sticks so that no patent covers the format or the methods of coding/decoding. The libraries libFLAC and libFLAC++ are available under License BSD, the sources of flac, metaflac and of the plugins are under license LPG.

Comparisons

FLAC is distinguished from algorithms without loss (such as ZIP and Gzip) in what it was created specifically to compress of the audio data. Method ZIP reduces the size of an audio file of quality CD from 20 to 40%, whereas FLAC obtains rates from 30 to 70%. In addition, a file FLAC is composed of successive blocks of approximately 100ms of data, and can be decompressed with stolen during the reading, including by an autonomous system equipped with little memory (platinum CD FLAC, portable reader with hard drive or Flash memory, autonomous reader with hard drive for hi-fi system or car).

Although codecs at a loss can reach ratio of 80-90%, even more, they do it while eliminating from the data of original flow. FLAC uses a similar technique, but he also adds “residual” data making it possible to restore the original without deformation.

FLAC is available for practically all the operating systems.

Technical details

FLAC supports only the samples with Point fixes, not those with Floating decimal point. It can handle any data audios PCM with a Depth of sampling from 4 to 32 Bit S by sample, any Sampling rate of 1 Hz to 1,048,570 Hz with increments of 1 Hz, and any numbers of audio channels from 1 to 8. The channels can be grouped as in the case of stereophony and the channels 5.1 surround to benefit from the inter-channel correlation to increase compression. FLAC uses a CRC for indentifier the corrupted pieces in the case of the use in streaming, but also of hash complete MD5 of data PCM rough stored in their heading of metadata STREAMINFO .

FLAC supports a parameter of Golomb between 0 and 16 for the code of Rice, and to 8 channels audios and a broad frequency band of sampling up to 192 Khz, with variable depths of samplings. FLAC supports also the Replay Gain.

FLAC is implemented in libFLAC (a library for encoder & to decode). The program " flac" (usable in line of order), is the program of reference which uses the API libFLAC. This codec API is also available in C++ under the name of libFLAC++.

Implementation of reference of FLAC perhaps compiled on many platforms, including the majority of the Unix (such as Linux, * BSD, Solaris, and Mac OS X), Windows, BeOS, and OS/2.

For the metadata, FLAC uses the same system as the metadata of the format Vorbis.

Organization the API one

API libFLAC is organized around flows, flows separable and files to make it possible to improve the abstraction of the basic binary flow of FLAC. The majority of applications FLAC will be limited to the use of the encoding/decoding by using libFLAC to its level file.

The API one underwent fundamental changes in its version 1.1.3 which poses problem for the compilation of the readers using libFLAC. Nobody knows at which speed the developers will adapt to these changes.

References

Random links:Edsger Dijkstra | Midas | Initials of three letters | Undécimo enmienda a la constitución de Estados Unidos | Harald IV of Norway | Saint-Léomer | Archdiocese of Campo Large | Buttonwillow,_la_Californie