Free Lossless Audio Codec (FLAC) is an open source codec first released in the year 2001. It is a lossless audio codec i.e., the decoder output signal is  exactly the same as the encoder input signal. It operates on up to 8 channel, 4  32 bit PCM audio signals sampled at 8 KHz  655.35 KHz and provides a typical compression ratio in the range of 30% – 60%. The compression strategy is to exploit the temporal correlation and encode the residue using Rice coding algorithm. The bit-stream includes CRC information to detect corrupted frames, and also supports tagging, cue sheets and fast seeking. FLAC is a popular lossless audio codec and is used in audio playback, streaming and archival applications.

  • Based on the open source standard.
  • Optimized ASM/C implementation.
  • Re-entrant implementation
  • C-callable APIs
  • Support for 4 32 bit PCM output audio signals with sampling frequency 8 KHz 655.35 KHz.
  • Support for up to 5.1 audio channels.
  • Support for block lengths ranging from 16 to 65535 samples.
  • Support for subset and non-subset formats.
  • Supports downmixing to mono or stereo output.
  • Supports Interleaved and de-interleaved output.
  • Optimized for low memory foot print.
  • Supports Little-Endian implementation on ARM
  • Optional support for OGG container format.
  • Optional support for xDM API’s.
  • Tested for bit-compliance using a large database of audio test vectors
  • Tested for mono, 2-channel, and 5-channel stereo test vectors
  • Tested for graceful exit in case of bit-stream related errors or exception.
  • Tested for illegal memory access by the module on ARM platform.
  • Module is fully interruptible.
  • Tested for compliance with register preservation requirements
  • Tested for Input buffer corruption
  • Tested for I/O buffer alignment requirements
  • Tested for multi-instance implementation.
  • Tested with scratch contamination at frame boundaries
  • Tested for 100% code coverage
  • Range validation of all API parameters
  • ARM implementation is validated on OMAP3530 (Cortex-A8) and DM6446/DM6467 (ARM926EJ-S) platforms.

ARM9E, ARM11, Cortex-A8, and Cortex-A9

For resource requirements & other details