[Asterisk-Users] Open G.729A codec
Steve Underwood
steveu at coppice.org
Tue Aug 12 23:49:10 MST 2003
Steve Underwood wrote:
> The ITU G.729 code is pretty much useless for real world use. It is
> very slow. It gets the right answers, but not by efficient means. All
> the voice codec reference code I have seen is like this. The people
> who develop these things *have* to write an efficient version, as
> standards bodies demand to know the approximate MIPS a good
> implementation will require. The implementors do not release this
> version as the reference model. I've been through this from the codec
> developer's side. The reference model may be 10 or more times slower
> than a commercial grade implementation. I've no idea what the ratio
> might be for G.729.
After writing this I got curious about how fast/slow the ITU reference
code really is. I built and ran the G.729A reference code on a 2.4GHz
Xeon machine, running RedHat 9. Its actually a dual Xeon, but the test
is only able to use 1 CPU.
G.729A is the fixed point reduced complexity version of G.729. Reduced
complexity means it needs about half the MIPs of the more complex
version. I compressed and decompressed a 3.5 minute file of 16 bit
linear speech. It took 25 seconds to compress and about 5 seconds to
decompress. That ratio seems about right for a codec of this type. So,
using this code you can only do 7 bidirectional channels, using 100% of
a 2.4GHz Xeon. Not exactly great, huh?
Perhaps I should try the floating point version. That might perform
somewhat better on an x86 machine, as any scaling and saturation steps
need not be performed.
For comparison, can anyone tell me how fast the VoiceAge codec runs? If
is isn't a *lot* faster than that I would be rather surprised. It should
be algorithmically more efficient, and I assume as a commercial product
it should be using MMX, SSE and/or SSE2.
Regards,
Steve
More information about the asterisk-users
mailing list