CUETools FLAC encoders comparison

From CUETools wiki
Jump to: navigation, search

Contents

CUETools FLAC encoders comparison
Cuetools-flacencoders.png

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

libFLAC

libFLAC is a reference FLAC 1.2.1 implementation from http://flac.sourceforge.net/. 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

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)

FlaCuda uses hardware acceleration to achieve faster compression. It requires CUDA-capable GPU, i.e. modern NVIDIA video-card.

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.

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox