Xiph logo

The CELT ultra-low delay audio codec

Overview

The CELT codec is an experimental audio codec for use in low-delay speech and audio communication.

The Technology

CELT stands for "Constrained Energy Lapped Transform". It applies some of the CELP principles, but does everything in the frequency domain, which removes some of the limitations of CELP. CELT is suitable for both speech and music and currently features:

  • Ultra-low latency (typically from 3 to 9 ms)
  • Full audio bandwidth (44.1 kHz and 48 kHz)
  • Support for both voice and music
  • Stereo support
  • Packet loss concealment
  • Constant bit-rates from 32 kbps to 128 kbps and above
  • A fixed-point version of the encoder and decoder

The CELT codec is meant to close the gap between Vorbis and Speex for applications where both high quality audio and low delay are desired.

Getting Involved

CELT is still in very early phase. At this point, two ways of getting involved are: helping design the algorithm (requires strong DSP knowledge) or building applications using CELT and maybe help define future directions the codec will take.

If you have questions or are interested in contributing to the project, you can join the mailing list. You can also contact the Project Lead, Jean-Marc Valin (the mailing list is usually preferable).

Headlines

  • Version 0.5.1 released

    17 December, 2008

    Version 0.5.1 is out. This release fixes a number of issues with 0.5.0. Several cases where the encoder could fail have been fixed, including one that could cause memory corruption (and possibly a segfault). In addition, the VQ search has been improved, which results in a small CPU reduction, while fixing some quality problems with low frequency tones. Other than that, there should be no significant quality changes.

  • Version 0.5.0 released

    10 October, 2008

    Version 0.5.0 is out. This release includes simplifications to the bit allocation code and includes a new low-complexity mode that can be enabled (without breaking compatibility) on the encoder side. There are several other optimisations and bug fixes included. The API has also been slightly modified, so code using CELT will have to be updated (minor).

  • Version 0.4.0 released

    26 July, 2008

    Version 0.4.0 is out. This release should greatly improve the handling of transients and reduce the amount of pre-echo, especially for larger frame sizes. There is now support for frame sizes up to 512 samples for those who don't have extreme delay requirements. The release also brings improved tuning for stereo and a variety of frame sizes and higher bit-rates. The API has been changed slightly to remove the overlap parameter, which is now automatically selected based on the frame size.

  • Version 0.3.2 released

    16 May, 2008

    Version 0.3.2 is out. This consists mainly of quality tuning. We've also completed some listening tests based on that version for the Comparison page.