What is FLAC? | FLAC - Free Lossless Audio Codec

What is FLAC?

Flac Info
FLAC is an acronym for Free Lossless Audio Codec, an open source free audio file format, which preserves the full quality of the original audio source. FLAC emerged in 2001 and continues to gain popularity and outshines competing formats, including MP3, and other lossless formats such as Apple Lossless (ALAC), and Microsoft’s WAV (Waveform Audio Format).

FLAC is far superior to MP3, because the MP3 format loses or shaves of parts of the audio recording to decrease the file size. This results in a lower quality recording and often distorts music from guitars and other instruments. In contrast, FLAC files are lossless, delivers high-quality audio and also save on space. FLAC files are also ideal for archiving audio collections as the exact duplicate is preserved in case the original media (e.g., CD) is destroyed.

Notable features of FLAC (derived from info on FLAC author’s web site):

* Lossless: The encoding of audio (PCM) data incurs no loss of information, and the decoded audio is bit-for-bit identical to what went into the encoder. Each frame contains a 16-bit CRC of the frame data for detecting transmission errors. The integrity of the audio data is further insured by storing an MD5 signature of the original unencoded audio data in the file header, which can be compared against later during decoding or testing.

* Fast: FLAC is asymmetric in favor of decode speed. Decoding requires only integer arithmetic, and is much less compute-intensive than for most perceptual codecs. Real-time decode performance is easily achievable on even modest hardware.

* Hardware support: Because of FLAC’s free reference implementation and low decoding complexity, FLAC is currently the only non-proprietary, free lossless codec that has any kind of hardware support.

* Streamable: Each FLAC frame contains enough data to decode that frame. FLAC does not even rely on previous or following frames. FLAC uses sync codes and CRCs (similar to MPEG and other formats), which, along with framing, allow decoders to pick up in the middle of a stream with a minimum of delay.

* Seekable: FLAC supports fast sample-accurate seeking. Not only is this useful for playback, it makes FLAC files suitable for use in editing applications.

* Flexible metadata: New metadata blocks can be defined and implemented in future versions of FLAC without breaking older streams or decoders. There are metadata types for tags, pictures, cue sheets, and seek tables. FLAC now supports embedded Album Art and Lyrics.

* Suitable for archiving: FLAC is an open format, and there is no generation loss if you need to convert your data to another format in the future. In addition to the frame CRCs and MD5 signature, flac has a verify option that decodes the encoded stream in parallel with the encoding process and compares the result to the original, aborting with an error if there is a mismatch.

* Convenient CD archiving: FLAC has a “cue sheet” metadata block for storing a CD table of contents and all track and index points. For instance, you can rip a CD to a single file, then import the CD’s extracted cue sheet while encoding to yield a single file representation of the entire CD. If your original CD is damaged, the cue sheet can be exported later in order to burn an exact copy.

* Error resistant: Because of FLAC’s framing, stream errors limit the damage to the frame in which the error occurred, typically a small fraction of a second worth of data. Contrast this with some other lossless codecs, in which a single error destroys the remainder of the stream.

One Comment

  • FLAC is great, no question about that.
    However, a new “extension” is coming up, MQA.
    The base is a FLAC section, playable by standard equipment. Additional data is included to increase resolution and sample rate.
    The additional data is decoded by the hardware DAC, if it has this capability.
    Now the question is, will the FLAC library allow this to happen? Will the extra data be transferred to the DAC? I assume not right away, unless the FLAC library is modified to include this data when needed.
    I hope you FLAC people will look in to this, to see what can be done.

Post a Comment

Your email address will not be published. Required fields are marked *