FLAC
CODEC OVERVIEW
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.
SALIENT FEATURES
- 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.
TESTING FEATURES
- 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.
AVAILABLE PLATFORM(S)
ARM9E, ARM11, Cortex-A8, and Cortex-A9