[theora-dev] Experimental release of Ghost/CELT 0.0.1
jean-marc.valin at usherbrooke.ca
Sat Dec 8 07:32:50 PST 2007
I've just made the first public release of some new *experimental* codec
work I've been doing (part of the vague Ghost project) with help from
Monty and Timothy. This is mainly intended with developers with DSP
knowledge, not for doing anything useful with it (but it does encode and
decode already). Also, the main idea is *not* to replace either Speex or
Vorbis, but to code audio with really low latency -- currently 8 ms.
This is still very experimental and everything is still likely to
change, including the exact goals. The algorithm is called (temporary
name) Code-Excited Lapped Transform (CELT) and the main ideas are:
- Using an MDCT on very short frames
- Dividing into 15 bands and transmitting the energy for each band
- Using a pitch predictor (good for speech, but helps for music as well).
- The rest is coded using a unit-pulse codebook.
At this point, I'm still trying to figure out how to fit psychoacoustics
CELT is based on a paper I submitted to ICASSP and which I'm hoping will
be accepted so I can make it available to everyone. The only difference
is that the ICASSP paper was based on the FFT (non critically sampled),
whereas this version is based on the MDCT. One part that is already
published though is Tim's explanation of the pulse codebook encoding
The full source for CELT is available at:
or through git at http://git.xiph.org/celt.git
I've put some music samples at 56 kbps CBR at
http://people.xiph.org/~jm/comp_celt58cbr.wav with the original at
http://people.xiph.org/~jm/comp44.wav . As you can hear, it definitely
doesn't suck as much as Speex on music, but there's still room for
I'm open to interesting ideas, but don't bother complaining if it
doesn't work or if it explodes in your face :-) Oh, and don't expect a
final codec any time soon.
Have fun (for some definition of fun),
More information about the theora-dev