[Tremor] Help required to compute mips for tremor (int ogg-vorbis decoder)

Ripinder Singh ripinder.singh at gmail.com
Thu Mar 3 20:13:40 PST 2005


Hi,

The MIPS calculation is correct but I think there are some points that
need to be considered:-

1. The first call to ov_read always will be more than that for an
actual worst case. In such a case, what I suggest is the first call to
ov_read be placed outside the loop and counted as the static cycles
required for header initialization and not in the MCPS calculation.
Anyways only difference as you may have seen is that in the first
frame the memory initialization and table generation for huffman(I
suppose) are done.

2. For an audio signal, the method of calculating MCPS as you describe
can not be justified. A simplistic approach is to have the cycles
taken to decode fs*nChannel number of samples. This can be achieved by
adding up the cycles for each call to ov_read until the total number
of samples just exceeds or is equal to the product fs*nChannel.

Eg. For the situation you present nChannel*fs = 44100*1 = 44100 samples.

say cycles for 44192 samples is got as x cycles, so MCPS is now given by :-

MCPS = (x/44192)*0.044100

The worst case needs to be evaluated for such a case now.

You may need to evaluate the criterion on a large test set as such a
measure is highly dependent on the test vector used.

3. Another highly lose way to evaluate the MCPS is the average method.
You may add up cycles for the entire song length. And then evaluate
the MCPS by the same logic. This method may not be a recomended one.

Hope this helps...
Rip

On Thu, 03 Mar 2005 12:12:56 +0530, madhav kulkarni
<mpk_india at hotmail.com> wrote:
> Hi all,
> 
> I have some problem regarding the mips calculation of the tremor-fixed point
> version of ogg-vorbis audio decoder. Can any one look in to this?
> 
> I have done the profiling for the ogg-vorbis decoder for 1st 10 frames and
> observed that cycles taken by ov_read function is as follows:
> 1. 1 st frame takes 5,498,613 cycles on the arm9 platform.
> 2. 2nd frame onwards this code takes 555,647 cycles on the arm9 platform.
> 
> I have few questions related to this. I want to compute the mips for these
> cycles I get.
> 
> MIPS taken by ov_read function = ((cycles taken by ov_read function / 4096)
> * 44100) / 1,000,000
> 
> 1. for 1st frame MIPS = ((5,498,613/4096) * 44100) / 1,000,000 = 59.2 MIPS
> 2. for 2nd frame onward MIPS = ((555,647/4096) * 44100) / 1,000,000 = 5.98
> MIPS
> 
> 1st thing
> 
> Now i don't understand is this mips calculation correct? According my
> klnowledge i think i have applied the correct formulae for mips comutation.
> Is there any mistake in this formulae? Can anyone tell me?
> 
> 2nd thing
> 
> 1st frame takes much cycles due to
> 1. _make_decode_ready () which is memroy initialization and alocation &
> 2.  mdct_backward is called 4 times.
> 
> 2nd frame onward mdct is called 2 times and length of mdct for these call is
> 256 or sometime 2048.
> Why it is so?
> 
> MIPS for any codec is estimated as the worst case. So here worst case is 1st
> frame. Can anyone tell, Is this assumption correct to consider the 1st frame
> cycles to estimate tremor ogg-vorbis decoder worst count?
> 
> With Best Regards,
> 
> Madhav Kulkarni
> 
--


More information about the Tremor mailing list