Sub-band Codec (SBC) was adopted as a mandatory codec by the Bluetooth Special Interest Group (SIG) in the year 2002. It operates on blocks of 4, 8, 12, or 16 16-bit PCM audio signals sampled at 16, 32, 44.1, or 48 KHz and generates a compressed bit-stream having bit-rates in the range of 56  512 kbps. The codec uses a cosine modulated filter bank for analysis and synthesis. The filter-bank can be configured for 4 or 8 bands. The sub-band signals are quantized using a dynamic bit-allocation scheme and block adaptive PCM quantization. The codec supports two bit allocation algorithms, loudness and SNR, and four channel modes: mono, stereo, joint stereo, and dual channel. The codec is primarily used in Bluetooth technology based short-range wireless applications.

  • Based on Bluetooth SIG A2DP Specification Revision V12
  • Optimized ASM/C implementation.
  • Re-entrant implementation
  • C-callable APIs
  • Generates 16-bit output audio signals sampled at 16, 32, 44.1, or 48 KHz.
  • Support for input block lengths of 4, 8, 12, or 16 samples.
  • Support for bit-rates ranging from 56 320 kbps for mono and 80 512 kbps for stereo.
  • Support for loudness and SNR bit allocation schemes.
  • Support for 4 or 8 sub-bands.
  • Support for mono, stereo, joint stereo, and dual channel modes.
  • Supports downmixing to mono output.
  • Supports Interleaved and de-interleaved output.
  • Supports Little-Endian implementation on ARM
  • Optional support for xDM API’s.
  • Tested for compliance using a large database of audio test vectors
  • Tested for loudness and SNR bit allocation schemes
  • Tested for 4 or 8 sub-band cases.
  • Tested for mono, stereo, joint-stereo, and dual channel 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