CUETools FLAC encoders comparison

From CUETools wiki
Jump to: navigation, search
CUETools FLAC encoders comparison

CUETools has three builtin FLAC encoders, and supports additional external encoders.


libFLAC is a reference FLAC 1.3.1 implementation from It's main advantage is that it's a standard implementation that almost everybody else uses, so it's less likely to cause any problems, but it's less efficient than other.


libFlake is written specially for CUETools and is loosely based on Justin Ruggles' flake encoder. It's faster than libFLAC and can achieve slightly better compression ratios.

FLACCL (former FlaCuda)

FLACCL uses hardware acceleration to achieve faster compression. It requires OpenCL-capable GPU.

Compression levels

libFLAC has compression levels 0..8, where 0 is the fastest and 8 provides the best compression ratio. libFlake and FlaCuda are tuned differently, so libFlake -5 might in fact compress better than libFLAC -8. They also support additional compression levels 9-11, however their use is not recommended, because those levels produce so called non-subset files, which might not be supported by certain e.g. hardware implementations.

FLAC specifies a subset of itself as the Subset format. The purpose of this is to ensure that any streams encoded according to the Subset are truly "streamable", meaning that a decoder that cannot seek within the stream can still pick up in the middle of the stream and start decoding. It also makes hardware decoder implementations more practical by limiting the encoding parameters such that decoder buffer sizes and other resource requirements can be easily determined. flac generates Subset streams by default unless the "--lax" command-line option is used.