Jean-Marc Valin
2007-Dec-09 10:25 UTC
[theora-dev] Experimental release of Ghost/CELT 0.0.1
Hi everyone, 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 into this. 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 (http://people.xiph.org/~tterribe/cwrs.html). The full source for CELT is available at: http://downloads.us.xiph.org/releases/celt/celt-0.0.1.tar.gz 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 improvement. 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), Jean-Marc
David Kuehling
2007-Dec-10 14:36 UTC
[theora-dev] Experimental release of Ghost/CELT 0.0.1
>>>>> "Jean-Marc" == Jean-Marc Valin <jean-marc.valin@usherbrooke.ca> writes:> Hi everyone, 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.I just wanted to complain about your codec using (patent-encumbered) arithmetic encoding, but now I noticed you're actually using range compression, all of this wrapped in a neat reusable library. Not bad. I somewhat had the impression that the non-adaptive huffman coding was one thing holding patent free codecs (ie Vorbis, Theora) back. So any chance we're also going to see upgrades to Vorbis, Theora? :) Personally I would be more interested in listening to a 32kbit sample. This is a bitrate I never managed Vorbis to output any decent quality at. Compared to some 32kbit realaudio webcasts I've listened to which were almost artifact free. Hmm, your code compiles, but I don't seem to find the bitrate knob. I guess this is because it's not yet implemented? cheers, David PS: the URLs to papers in 'bitree.c' are broken and need to be updated... -- GnuPG public key: http://user.cs.tu-berlin.de/~dvdkhlng/dk.gpg Fingerprint: B17A DC95 D293 657B 4205 D016 7DEF 5323 C174 7D40