[Asterisk-Dev] G.729 MIPS calculation

Steve Underwood steveu at coppice.org
Fri Nov 26 05:51:22 MST 2004


Hi,

After posting my previous last message, I tried looking up the MIPs 
requirements for some commercial G.729 implementations from decent DSP 
vendors. It is anyone's guess how much that have modified the ITU 
reference code to optimise it, but they all seem to quote similar 
figures. Spirit's are typical:

            P4          C55x      C54x (peak/average)
Encode      55          8.75      11.3/8.1
Decode      30.8        2.13      2.7/2.5

This is rather surprising. The basic ratio between the work in encode 
and decode is about 4:1 to 5:1, and the MIPs for the DSP chips reflects 
this. Something seems to break down for the P4, and its ratio is much 
smaller. However, if I run lots of instances of encode only and lots of 
instances of decode only on a P4, I get a ratio of speeds much greater 
than 55:30.8. I wonder what determines those figures?

Steve


in the basic encode:decode rate seems to break down on the P4.

Steve Underwood wrote:

> Hi,
>
> MIPs is not always a very meaningful figure with processors like a 
> Pentium. Cache pressure can have a huge impact. The figure ot 
> 80-100MIPs per instance suggests a 3GHz Pentium will do far more than 
> an E1. When I tested by running many instances of the IPP G.729 I 
> think I had about 40 per processor, doing nothing by G.729 coding of 
> audio buffered memory.
>
> The ratio of 6:1 you quote for compression:decompression time sounds a 
> bit high. 4:1 or 5:1 sounds more likely. I doubt the measurement 
> accuracy of that recalc is very good.
>
> Regards,
> Steve
>
>
> Daniel Pocock wrote:
>
>>
>> I just tried the IPP stuff on a HP DL140, dual 3.0GHz, the codec 
>> compile is optimized for Xeon and statically linked.
>>
>> 'show translation recalc 200' showed me that compress from slinear to 
>> G729 was 6ms and decompress was 1ms or less.
>> That's a total of 7ms to handle 1000ms of audio full duplex.
>>
>> Does that mean that 1000ms / 7ms = 142 is the number of channels this 
>> server could handle simultaneously, or is there other overhead to 
>> consider?
>>
>>
>>
>>
>>
>> Steve Underwood wrote:
>>
>>> Miroslav Nachev wrote:
>>>
>>>>   Hi,
>>>>
>>>>   I would like to meter the MIPS for G.729 implementation using Intel
>>>> IPP. Can you help me how to do that?
>>>>  
>>>>   Best Regards,
>>>>   Miroslav Nachev
>>>>  
>>>>
>>> For 1 Rx channel + 1 Tx channel, G.729 typically takes 10 to 20MIPs 
>>> on a DSP, depending how you count MIPs, and what the DSP chip is. It 
>>> typically takes 80 to 100MIPs on a Pentium, depending on the 
>>> implementation. The IPP stuff doesn't make a huge difference, as it 
>>> doesn't seem to speed things up a great deal. On a 3GHz Pentium you 
>>> can typically run about an E1's worth of G.729 channels. A really 
>>> efficient version might get you to 2 E1s, but I haven't seem one 
>>> that quite gets that far.
>>




More information about the asterisk-dev mailing list