FLAC

FLAC is an open format with royalty-free licensing and a reference implementation which is free software.

FLAC supports metadata tagging, album cover art, and fast seeking.

[11] The encoded audio is divided into frames, each of which consists of a header, a data block, and a CRC16 checksum.

The encoder then tries to find a good mathematical approximation of the block, either by fitting a simple polynomial, or through general linear predictive coding.

Finally, the difference between the approximation and the input, called residual, is encoded using Rice coding.

The amount of compression is determined by various parameters, including the order of the linear prediction model and the block size.

For the user's convenience, the reference implementation defines 9 compression levels, which are presets of the more technical parameters to the encoding algorithm.

libFLAC++, an object-oriented wrapper around libFLAC for C++, and the command-line programs flac and metaflac, are also part of the reference implementation.

FLAC is specifically designed for efficient packing of audio data, unlike general-purpose lossless algorithms such as DEFLATE, which are used in ZIP and gzip.

[citation needed] The technical strengths of FLAC compared to other lossless formats lie in its ability to be streamed and decoded quickly, independent of compression level.

[citation needed] Since FLAC is a lossless scheme, it is suitable as an archive format for owners of CDs and other media who wish to preserve their audio collections.

There is currently no multicore support in libFLAC, but utilities such as GNU parallel and various graphical frontends can be used to spin up multiple instances of the encoder.

The standardization process of the FLAC format into RFC 9639 was driven by the specific use case of archival and preservation in mind.

[28] The National Archives and Records Administration has FLAC listed as a preferred format for digital audio.