<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
--></style>
</head>
<body class='hmmessage'>
Hi.<div><br></div><div><br></div><div>Over at rockbox.org, we have written a fixed point MDCT for our embedded targets that is faster then any we have so far come across (Tremor, libfaad, ffmpeg pre 2008). We have used it with libtremor and found it to be ~40% faster then stock libtremor mdct on ARM7TDMI and generally about 30%+ faster on ARM9/ARM11. It is also faster on Coldfire CPUs and we think there is still room for more improvement. </div><div><br></div><div><br></div><div>The speed up comes mainly from using a split radix fft that significantly reduces the number of add/mul operations required. Additionally, we have provided some ASM segments to improve performance further. However, even without ASM, we are still significantly faster then stock Tremor. Some information:</div><div><br></div><div><br></div><div><a href="http://www.rockbox.org/wiki/FasterMDCT">http://www.rockbox.org/wiki/FasterMDCT</a></div><div><br></div><div><br></div><div><br></div><div>We have licensed it under BSD and would like to see it used in libtremor.</div><div><br></div><div><br></div><div><br></div><div>One concern I have though is the <span class="Apple-style-span" style="font-family: monospace; font-size: 16px; white-space: pre-wrap; ">_LOW_ACCURACY_<span class="Apple-style-span" style="font-family: Verdana; white-space: normal; font-size: 13px; "> mode in Tremor. This seems to allow 32 bit only multiplies for targets with no hardware 32x32->64 bit instruction. We do not support this in our new MDCT because we are faster in full accuracy mode then current SVN in low accuracy mode on ARM.</span></span></div><div><span class="Apple-style-span" style="font-family: monospace; font-size: 16px; white-space: pre-wrap; "><span class="Apple-style-span" style="font-family: Verdana; white-space: normal; font-size: 13px; "><br></span></span></div><div><span class="Apple-style-span" style="font-family: monospace; font-size: 16px; white-space: pre-wrap; "><span class="Apple-style-span" style="font-family: Verdana; white-space: normal; font-size: 13px; "><br></span></span></div><div><span class="Apple-style-span" style="font-family: monospace; font-size: 16px; white-space: pre-wrap; "><span class="Apple-style-span" style="font-family: Verdana; white-space: normal; font-size: 13px; ">Is this a problem? I am of the opinion that it is not (in Tremor-main at least) as it has minimal advantage on arm/coldfire/x86 which constitute nearly all FOSS and commercial users of Tremor's main branch. It also seems to confuse some hardware vendors who have used it on high end ARM cores that do not benefit significantly from it. </span></span></div><div><br></div><div><br></div><div><span class="Apple-style-span" style="font-family: monospace; font-size: 16px; white-space: pre-wrap; "><span class="Apple-style-span" style="font-family: Verdana; white-space: normal; font-size: 13px; ">Thanks,</span></span></div><div><span class="Apple-style-span" style="font-family: monospace; font-size: 16px; white-space: pre-wrap; "><span class="Apple-style-span" style="font-family: Verdana; white-space: normal; font-size: 13px; ">Mike</span></span></div>                                            <br /><hr />The New Busy is not the old busy. Search, chat and e-mail from your inbox. <a href='http://www.windowslive.com/campaign/thenewbusy?ocid=PID27925::T:WLMTAGL:ON:WL:en-US:WM_HMP:032010_3' target='_new'>Get started.</a></body>
</html>