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


_______________________________________________ Asterisk-Users mailing list [EMAIL PROTECTED] http://lists.digium.com/mailman/listinfo/asterisk-users

Reply via email to