[ 转至:http://www.celt-codec.org/ ]
The CELT ultra-low delay audio codec
Overview
The CELT codec is a compression algorithm for audio. Like MP3, Vorbis, and AAC it is suitable for transmitting music with high quality. Unlike these formats CELT imposes very little delay on the signal, even less than is typical for speech centric formats like Speex, GSM, or G.729.
Using CELT application developers can build software that allows musicians to perform together across the Internet, or simply build great sounding telephony systems. Why shouldn't your telephone sound as good as your stereo?
Like other open and unencumbered technology from the Xiph.Org Foundation CELT requires no royalties and no complicated licensing.
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 5 to 22.5 ms)
- Full audio bandwidth (≥20kHz; sample rates from 8 kHz to 48 kHz)
- Support for both speech and music
- A quality/bitrate trade-off competitive with widely used high delay codecs
- 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 bridge the gap between Vorbis and Speex for applications where both high quality audio and low delay are desired.
Getting Involved
CELT is still in an early state of development. At this point, two ways of getting involved are: helping design the algorithm (requires strong DSP knowledge) or building applications using CELT. Your feedback can help define the future direction the codec will take.
Since CELT is still in development, most new releases (even minor ones) change the bit-stream, so compatibility is not preserved. This instability is why CELT is currently called experimental. The ability to change the format is important in allowing us to make quality improvements while we develop CELT. Once version 1.0 is released the bitstream will be frozen and future revisions will be compatible.
If you are interested in using CELT privately, among people who can coordinate CELT versions, in non-interoperable embedded applications, or are doing software development in preparation for the final version then the instability of the bitstream should not be a problem for you and we'd like your feedback. However, for major public adoption CELT will need to reach 1.0.
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.11.0 and 0.11.1 released
15 February, 2011
CELT 0.11.0 (originally not announced) and 0.11.1 has been released with a focus on freezing the bit-stream and updating the API. The bit-stream is now in "soft-freeze" state meaning there is an attempt to keep it fixed, but some bugs may force changes. Version 0.11 includes some minor quality improvements, mostly at high bit-rate. In version 0.11.1, some minor changes to the bit-stream were necessary to address two minor bugs in 0.11. The quality should improve (very) slightly, but not enough to be noticeable in most cases. Several Opus-related bugs have also been fixed.
-
Version 0.10.0 released
21 December, 2010
CELT 0.10.0 has been released with a focus on quality improvements. The bit-stream is not compatible with version 0.9.x. See Monty's CELT demo page for more details on recent (and less recent) CELT development.
-
Version 0.9.1 released
8 November, 2010
CELT 0.9.1 greatly improves the packet loss concealment. This change is especially dramatic in fixed point mode. The bit-stream is compatible with 0.9.0.
The Xiph OSC logos are trademarks (™) of Xiph.Org.
These pages © 2008-2011 Xiph.Org. All rights reserved.
Downloads
Keep in mind that CELT is still a work in progress. Neither the API/ABI, nor the bit-stream are stable. Since CELT is still in development, most new releases (even minor ones) change the bit-stream, so compatibility is not preserved. Once version 1.0 is released the bitstream will be frozen and future revisions will be compatible. Also, while we do not expect it to set your house on fire, we cannot guarantee that it won't. So be warned! That being said, we're interested in feedback (bug reports, feature requests, comments) from people trying to use it.
Source code repository
CELT is hosted in Git and you can grab the latest code by typing:
git clone git://git.xiph.org/celt.git or git clone http://git.xiph.org/celt.git
The repository can be viewed online at http://git.xiph.org/?p=celt.git.
Latest development releases
0.11.1
CELT 0.11.1 fixes two minor bugs with 0.11 that affect the bit-stream. The quality should improve (very) slightly, but not enough to be noticeable in most cases. Several Opus-related bugs have also been fixed.
- Source code: celt-0.11.1.tar.gz
0.11.0
CELT 0.11 introduces API changes that should be close to the final API. The bit-stream is also in "soft-freeze" meaning there is an attempt to keep it fixed, but some bugs may force changes. There are also some minor quality improvements, mostly at high bit-rate.
- Source code: celt-0.11.0.tar.gz
0.10.0
CELT 0.10.0 again brings many quality improvements, mostly through better bit allocation. It also fixes many bugs and regressions, most notably with VBR support. The bit-stream is not compatible with version 0.9.x. See Monty's CELT demo page for more details on recent (and less recent) CELT development.
- Source code: celt-0.10.0.tar.gz
0.9.1
CELT 0.9.1 greatly improves the packet loss concealment. This change is especially dramatic in fixed point mode. The 0.9.1 bit-stream is compatible with 0.9.0.
- Source code: celt-0.9.1.tar.gz
Older development releases
These are older releases, provided mainly for historical reasons.
- celt-0.0.1.tar.gz
- celt-0.0.2.tar.gz
- celt-0.1.0.tar.gz
- celt-0.2.0.tar.gz
- celt-0.3.0.tar.gz
- celt-0.3.1.tar.gz
- celt-0.3.2.tar.gz
- celt-0.4.0.tar.gz
- celt-0.5.0.tar.gz
- celt-0.5.1.tar.gz
- celt-0.5.1.3.tar.gz
- celt-0.5.2.tar.gz
- celt-0.6.0.tar.gz
- celt-0.6.1.tar.gz
- celt-0.7.0.tar.gz
- celt-0.7.1.tar.gz
- celt-0.8.0.tar.gz
- celt-0.8.1.tar.gz
- celt-0.9.0.tar.gz