[CELT-dev] Variable frame size and API changes

Jean-Marc Valin jean-marc.valin at usherbrooke.ca
Mon May 17 20:17:17 PDT 2010

Hi everyone,

I've recently been making various changes to the way the modes work and 
the supported frame size. On new feature that may be of interest to some 
is that CELT should soon support changing the frame size dynamically 
within a stream. By that I mean varying the amount of audio (in time) 
transmitted at once, not the compressed size -- which has always been 
variable. That would allow dynamically trading compression efficiency 
for delay.

Now, one potential side effect of this work is that I may actually 
remove some of the flexibility in the frame size. So far, CELT has 
always been insanely flexible when it came to choosing the frame size. 
For example, you could encode with frames of (e.g. 494 samples if you 
wanted to). What I'm now considering is restricting the available frame 
sizes to 2.5 ms, 5 ms, 10 ms and 20 ms. Those could be supported at any 
sampling rate where 2.5 ms represents an even number of samples, e.g. 32 
kHz or 48 kHz. However, that would exclude 44.1 kHz, so I'd like to know 
if people are actually using CELT at that sampling rate? One other side 
effect is that you would no longer have frames that are a power of two 
in samples -- unless you use 51.2 kHz as the sampling rate (which would 
be supported).

Any comments on this? Anyone has major reasons not to do that?



More information about the celt-dev mailing list