<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<style>
<!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
        {mso-style-priority:99;
        mso-style-link:"Balloon Text Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:8.0pt;
        font-family:"Tahoma","sans-serif";}
span.BalloonTextChar
        {mso-style-name:"Balloon Text Char";
        mso-style-priority:99;
        mso-style-link:"Balloon Text";
        font-family:"Tahoma","sans-serif";}
span.EmailStyle19
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.EmailStyle20
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.Section1
        {page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=EN-US link=blue vlink=purple>
<div class=Section1>
<p class=MsoNormal><span style='color:#1F497D'>(Resending since the archive
seems to have eaten the text.)</span><o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>I’m working on getting Speex running on a TI Davinci (6441),
on both the ARM and the DSP. My immediate goal is to understand the processing
requirements on different architectures so that I can properly specific an
engineering project.<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>I have it up and running on the ARM, and I just wanted to
see if anyone could sanity-check my results before I continue.<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>Brief version:<o:p></o:p></p>
<p class=MsoNormal>WB decode takes ~24MIPS, encode takes ~243MIPS.<o:p></o:p></p>
<p class=MsoNormal>NB decode takes ~10MIPS, encode takes ~102MIPS.<o:p></o:p></p>
<p class=MsoNormal>(And by MIPS, I mean ARM CPU cycles, not Dhrystone MIPS)<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>If I manually (because I couldn’t figure out how to make
configure do it) add “-mpcu=arm926ej_s” and “-DSHORTCUTS”, the wideband numbers
drop to 22MIPS and 219MIPS, respectively.<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>More Details:<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>The commands/options I used to config Speex:<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal># export ARM_INSTALL_TREE=/extern/toddk/workdir/filesys<o:p></o:p></p>
<p class=MsoNormal>export CC=arm_v5t_le-gcc<o:p></o:p></p>
<p class=MsoNormal>export CXX=arm_v5t_le-g++<o:p></o:p></p>
<p class=MsoNormal>export AR=arm_v5t_le-ar<o:p></o:p></p>
<p class=MsoNormal>export RANLIB=arm_v5t_le-ranlib<o:p></o:p></p>
<p class=MsoNormal>export NM=arm_v5t_le-nm<o:p></o:p></p>
<p class=MsoNormal>export ac_cv_path_NM=arm_v5t_le-nm<o:p></o:p></p>
<p class=MsoNormal>export ac_cv_func_setpgrp_void=yes<o:p></o:p></p>
<p class=MsoNormal>export host=arm_v5t_le<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>./configure --prefix /extern/toddk/workdir/filesys/usr/local
--host=arm-linux --disable-float-api --disable-vbr --enable-fixed-point
--enable-arm5e-asm<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>The source data is from MP3 audio books that have been
resampled to 16K and written out as .WAV files by NCH’s Switch software. (It’s
hard to get good wideband audio samples…)<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>For decode, I run the command “time speexdec sample.spx”,
and then take sum of the “user” and “sys” times the speed of the processor
(297MHz), and divide it by the “real” (or clock) time. That should give me the
average processing power requirements. (And the number is matched by the
results of “top”.)<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>For encode, I run the command “time speexenc sample.wav -
> /dev/null”. Since it consumes 99% of the cpu, and runs faster than real
time, the MIPS requirement is calculated by taking sum of the “user” and “sys”
times the speed of the processor (297MHz), and dividing by the playback time
determined by the decode step.<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>Does this seem like a reasonable way to test the code?<o:p></o:p></p>
<p class=MsoNormal>Are the results in line with what people would expect?<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>Thanks!<o:p></o:p></p>
<p class=MsoNormal>---------------------------<o:p></o:p></p>
<p class=MsoNormal>Todd Krein<o:p></o:p></p>
<p class=MsoNormal>Director of Architecture<span style='color:#1F497D'><o:p></o:p></span></p>
<p class=MsoNormal>650-566-6657<o:p></o:p></p>
<p class=MsoNormal><a href="mailto:todd.krein@ooma.com">todd.krein@ooma.com</a><o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
</div>
</body>
</html>