DSPRelated.com
Forums

Why specifying MIPS for speech encoding performance..?

Started by Khubaib February 25, 2004
hi
I have seen at many places (e.g. commercial audio products employing
standard audio codecs) that this algorithm takes that many MIPS on
this processor. e.g. MELP 2.4kbps takes 66 MIPS on TMSxxxxx etc.
(this is just an example). However, should it not be encoding time
(taken in msec) for one frame of MELP (for 22.5 msec speech).
although, i think, there are (time taken and MIPS) are equivalent to
each other..?. thanx..
Khubaib



Hello,

It is more convienient and intutive to use MIPS as a metric when comparing
the performance of the algorithm on different DSPs or embedded procesors
(like ARM, MIPS). e.g. if a DSP processor offers 50 MIPS and a speech
codec takes around 10 MIPS, one can quickly how many channels of speech can
be processed in real time or what other algorithms like Line Echo
Cancellation can be executed.

Alternatively you can also think in terms of time e.g. how many speech
samples or speech frames are buffered in 10 msec and for a specific
processor you can calculate the number of instructions available based on
its architecture and clock speed.

However a word of caution when using MIPS as a metric, especially when using
VLIW processors or other packed arithmetic processors. These DSP claim a
MIP count based on the instruction count per cycle. However not all
algorithms can exploit parallelism of these DSP. As a result, the effective
MIPS of processor is much lower than its theoretical maximum.

Kind Regards,
Faisal Mateen.
(GIKI, Pakistan) >From: "Khubaib" <>
>To:
>Subject: [speechcoding] Why specifying MIPS for speech encoding
>performance..?
>Date: Wed, 25 Feb 2004 12:31:19 -0000
>
>hi
>I have seen at many places (e.g. commercial audio products employing
>standard audio codecs) that this algorithm takes that many MIPS on
>this processor. e.g. MELP 2.4kbps takes 66 MIPS on TMSxxxxx etc.
>(this is just an example). However, should it not be encoding time
>(taken in msec) for one frame of MELP (for 22.5 msec speech).
>although, i think, there are (time taken and MIPS) are equivalent to
>each other..?. thanx..
>Khubaib

_________________________________________________________________
Tired of spam? Get advanced junk mail protection with MSN 8.
http://join.msn.com/?pageatures/junkmail


Khubaib-

> I have seen at many places (e.g. commercial audio products employing
> standard audio codecs) that this algorithm takes that many MIPS on
> this processor. e.g. MELP 2.4kbps takes 66 MIPS on TMSxxxxx etc.
> (this is just an example). However, should it not be encoding time
> (taken in msec) for one frame of MELP (for 22.5 msec speech).
> although, i think, there are (time taken and MIPS) are equivalent to
> each other..?. thanx..

MIPS is a "rate" -- to show u how powerful a processor u need, or show u how
much is
left over to fit other algorithms. It has nothing to with framesize.

Using your example above, if you want to know how many instructions the
algorithm
requires in one frame, then:

66 mil inst 22.5 msec
----------- x = 1.485 mil inst
sec

-Jeff


Hello Khubaib,

I think MIPS is such a unit which judges performance of a
codec 'independent of the clock frequency' of a given processor. Just
to explain what i mean...

- MIPS stands for Million Instructions Per Second (of
speech/audio/video). It means if it is speech then for 20 msec frame
there are 50 frames in a second.

- Now when we say that a speech codec takes some 15 MIPS to execute
encoding. It means to process 50 frames it takes 50 million basic
assembly instructions.

- Accordingly we can decide how many cycles it takes for this
execution. If it executes one instruction per cycle then MIPS is same
as MCPS.

- Once we find number of cycles to process the frames(samples) with
the help of clock period we can decide how much time (say in msec) it
takes to process this.

- So in effect we can always find time required to process frames
from MIPS. But vice-versa is not true. Means if you specify the
performance as time required to execute these frames in msec it
depends on how much is your clock frequency.

_ In that case to judge performance of one DSP with other for a given
codec you also have to specify how much is clock frequency of each.

That's why I think expressing perfornamce in MIPS is a better way... regards
Jaydeep
--- In , "Khubaib" <khabi_uet@y...> wrote:
> hi
> I have seen at many places (e.g. commercial audio products
employing
> standard audio codecs) that this algorithm takes that many MIPS on
> this processor. e.g. MELP 2.4kbps takes 66 MIPS on TMSxxxxx etc.
> (this is just an example). However, should it not be encoding time
> (taken in msec) for one frame of MELP (for 22.5 msec speech).
> although, i think, there are (time taken and MIPS) are equivalent
to
> each other..?. thanx..
> Khubaib



Hello Khubaib,

I would like to add a little bit more. I think two
terms MCPS and MIPS are used very commonly as per the
comfort of the person who is selling DSP.
Let us say I am selling my DSP XYZ. This DSP runs at
600 MHz clock frequency and can execute 8 basic
assembly instructions (like load, multiply, add etc)
in one cycle. I will tell to my customer that our
processor can take a load of 4800 MIPS. This single
figure of 4800 MIPS combines two things
1. clock frequency of our processor
2. parallelism of our DSP
Thus while telling the capacity of processor MIPS is
most attractive and suitable term. However interesting
point is that it is not always possible in all
apllications to utilize the whole instruction level
parallelism. So from customer point of view 4800 MIPS
figure can be a disguise. How much parallelism can be
used will depend upon two things
1. nature of application itself
2. architecture of DSP.

Now suppose customer asks me the performance of our
DSP for some standard DSP algorithm for example
suppose GSM-FR speech codec. Then I will use the term
MCPS.

Infact if I want to compare two DSPs in terms of speed
then I will give the DSP vendors a list of wide range
of DSP applications and will ask for MCPS figure for
each application. Probably this is done in
benchmarking bodies.

Best regards
manoj
--- Jaydeep Inamdar <> wrote:
> Hello Khubaib,
>
> I think MIPS is such a unit which judges
> performance of a
> codec 'independent of the clock frequency' of a
> given processor. Just
> to explain what i mean...
>
> - MIPS stands for Million Instructions Per Second
> (of
> speech/audio/video). It means if it is speech then
> for 20 msec frame
> there are 50 frames in a second.
>
> - Now when we say that a speech codec takes some 15
> MIPS to execute
> encoding. It means to process 50 frames it takes 50
> million basic
> assembly instructions.
>
> - Accordingly we can decide how many cycles it takes
> for this
> execution. If it executes one instruction per cycle
> then MIPS is same
> as MCPS.
>
> - Once we find number of cycles to process the
> frames(samples) with
> the help of clock period we can decide how much time
> (say in msec) it
> takes to process this.
>
> - So in effect we can always find time required to
> process frames
> from MIPS. But vice-versa is not true. Means if you
> specify the
> performance as time required to execute these frames
> in msec it
> depends on how much is your clock frequency.
>
> _ In that case to judge performance of one DSP with
> other for a given
> codec you also have to specify how much is clock
> frequency of each.
>
> That's why I think expressing perfornamce in MIPS
> is a better way... > regards
> Jaydeep >
> --- In , "Khubaib"
> <khabi_uet@y...> wrote:
> > hi
> > I have seen at many places (e.g. commercial audio
> products
> employing
> > standard audio codecs) that this algorithm takes
> that many MIPS on
> > this processor. e.g. MELP 2.4kbps takes 66 MIPS on
> TMSxxxxx etc.
> > (this is just an example). However, should it not
> be encoding time
> > (taken in msec) for one frame of MELP (for 22.5
> msec speech).
> > although, i think, there are (time taken and MIPS)
> are equivalent
> to
> > each other..?. thanx..
> > Khubaib >


__________________________________