[Speex-dev] SPEEX tech specs
Jean-Marc Valin
jean-marc.valin at usherbrooke.ca
Thu May 3 05:09:59 PDT 2007
B. Mitchell Loebel a écrit :
> Thank you Jean-Marc.
> My understanding is that G.729 is a telephone codec, so there must have
> been some reason why its developers went to 10ms/frame. Do you know why
> that might be?
AFAIK G.729 had lower delay requirements because it was also meant to be
used on circuit-switched network. For VoIP, what most people do is just
put two frames per packet.
> From a recent post on this list I saw somebody talking about your
> decoded sample rate being 8KHZ/sec. and then he mentioned that being 160
> bytes at 20ms/frame.
No, it's 160 *samples* per frame. Speex doesn't care what the samples
are as long as you convert them to either float or short before sending
them.
> That said, I take it that your decoded samples are
> 1 byte wide ... is that correct?
No. See above.
> We're using G.729 and we'd like to
> consider SPEEX at sometime in the future. That's why I asked you about
> the quality comparison. Of course, G.729's decoded samples are 16 bits
> wide so that's another quality consideration.
No, it happens that your implementation of G.729 has an API that gives
you 16-bit samples. Fundamentally, a codec compresses *samples*.
Jean-Marc
>
> At 09:30 PM 5/3/2007 +1000, Jean-Marc Valin wrote:
>> B. Mitchell Loebel a écrit :
>> > Thank you. You're right ... my error ... I meant to say 12 bytes
>> > (including the 2 bytes for VAD). And it is 10ms/frame. No matter ...
>> > thank you for the SPEEX specs. In terms of quality, what SPEEX bit rate
>> > compares with G.729 at 8kbps data rate please?
>>
>> Haven't done formal testing and it depends on whether it's G.729 or
>> G.729A. I'd say probably 8 kbps or 11 kbps.
>>
>> > Is there some reason why
>> > you chose the 20ms frame rate?
>>
>> It's a good value I think. Speex is designed for VoIP, so 10 ms is
>> pretty much useless because you'd be sending about 32 kbps worth of
>> overhead (each packet has 40 bytes for IP+UDP+RTP headers).
>>
>> > Do you keep that same frame rate for the
>> > different bit rates?
>>
>> Yes.
>>
>> > The faster frame rate would seem to better adapt to
>> > multiple speakers cutting in and out ... yes/no?
>>
>> I don't think we should really worry about speakers interrupting each
>> other at 10 ms interval. If that happens, you've got much more important
>> problems than the codec :-)
>>
>> > Btw, 6 bytes/frame at 50 frames/second seems to be 2.4kbps so I'm
>> > guessing that the lower rate you mentioned is because of some overhead
>> > for VAD in your 6 bytes.
>>
>> Well, technically 2.15 kbps would mean 5.375 bytes/frame, but then you
>> need to round up to the next whole byte -- unless you put multiple
>> frames in a packet, in which case it matters.
>>
>> Jean-Marc
>>
>> > At 07:11 PM 5/3/2007 +1000, Jean-Marc Valin wrote:
>> >> B. Mitchell Loebel a écrit :
>> >> > How many bits do you have in a frame please and what is your frame
>> >> rate?
>> >> > For example, G.729 (ACELP) has 12 bits/frame including VAD and the
>> >> frame
>> >> > rate is 100/second ... I'm looking for the comparable figures for
>> >> SPEEX.
>> >>
>> >> I'm sorry but if G.729 used 12 bits/frame at 100 frames/second, it
>> would
>> >> have a bit-rate of 1.2 kbps. G.729 actually uses 10 *bytes* (i.e. 80
>> >> bits) per frame. Speex has 20 ms frames (50 frames per second) and
>> >> supports bit-rates that range from 2.15 kbps (6 bytes per frame) to 44
>> >> kbps (110 bytes per frame).
>> >>
>> >> Jean-Marc
>> >
>> >
>> > ---
>> > B. Mitchell Loebel, CEO, VP Engineering
>> 408
>> > 425-9920
>> > InstaFlash International Corporation
>> > (formerly Minute-Tape International Corporation)
>> >
>
> ---
> B. Mitchell Loebel, Executive Director 408
> 425-9920
>
> The Tech Startup Connection
> (formerly The PARALLEL Processing Connection)
>
>
More information about the Speex-dev
mailing list