Hello Greg If money isn't a problem Intel has an optimized compiler for eVC and XScale processors http://www.intel.com/software/products/compilers/techtopics/PCA_Optimization_WP.pdf If you have any luck getting the eVC compiler closer to realtime I'd really like to know. I'm still far from realtime when using Speex 1.1.3 on a HP iPAQ (Intel pxa255). Best regards Bjoern D. Rasmussen <p>>From: "Greg Cockroft" <greg@agog.com>>Reply-To: speex-dev@xiph.org >To: <speex-dev@xiph.org> >Subject: [speex-dev] SmartPhone ARM >Date: Wed, 17 Dec 2003 14:14:19 -0500 > >Target is Spv & Nokia phones ARM and also ipaq ARM. > >With the generic fixed point at complexity 0 I am still about 1.6x realtime >for narrowband. > >The MS eVC compiler does not support inline assembler, only separate >assembler functions. > >Does anyone have a feeling on whether a 2x speedup is possible if I hand >tune a few functions? > > -greg. > >--- >8 ---- >List archives: http://www.xiph.org/archives/ >Ogg project homepage: http://www.xiph.org/ogg/ >To unsubscribe from this list, send a message to >'speex-dev-request@xiph.org' >containing only the word 'unsubscribe' in the body. No subject is needed. >Unsubscribe messages sent to the list will be ignored/filtered._________________________________________________________________ Få alle de nye og sjove ikoner med MSN Messenger http://messenger.msn.dk --- >8 ---- List archives: http://www.xiph.org/archives/ Ogg project homepage: http://www.xiph.org/ogg/ To unsubscribe from this list, send a message to 'speex-dev-request@xiph.org' containing only the word 'unsubscribe' in the body. No subject is needed. Unsubscribe messages sent to the list will be ignored/filtered.
I don't think a compiler is going to be enough. I tried perl scripting the output of a linux gcc cross-compiler to convert into something the assembler under eVC would consume. It errors on all the MAC type of instructions. I looked at www.arm.com (I never knew there could be so many arms) It does not look like the ARM720 has the MAC instructions. It also lists 75Mhz and 100Mhz as possible frequencies. (I'm still hoping for 100 :-) I have started to look at reducing complexity by removing all perceptual filters in the encoder. It sounds ugly but my fallback is GSM 610. I'm open to any other ideas to cut CPU at the expense of quality. -greg. <p>----- Original Message ----- From: "Bjoern Rasmussen" <bjoern_rasmussen@hotmail.com> To: <speex-dev@xiph.org> Sent: Thursday, December 18, 2003 5:19 PM Subject: RE: [speex-dev] SmartPhone ARM <p>> Hello Greg> > If money isn't a problem Intel has an optimized compiler for eVC andXScale> processors > >http://www.intel.com/software/products/compilers/techtopics/PCA_Optimization_WP.pdf> > If you have any luck getting the eVC compiler closer to realtime I'dreally> like to know. I'm still far from realtime when using Speex 1.1.3 on a HP > iPAQ (Intel pxa255). > > Best regards > > Bjoern D. Rasmussen > > > >From: "Greg Cockroft" <greg@agog.com> > >Reply-To: speex-dev@xiph.org > >To: <speex-dev@xiph.org> > >Subject: [speex-dev] SmartPhone ARM > >Date: Wed, 17 Dec 2003 14:14:19 -0500 > > > >Target is Spv & Nokia phones ARM and also ipaq ARM. > > > >With the generic fixed point at complexity 0 I am still about 1.6xrealtime> >for narrowband. > > > >The MS eVC compiler does not support inline assembler, only separate > >assembler functions. > > > >Does anyone have a feeling on whether a 2x speedup is possible if I hand > >tune a few functions? > > > > -greg. > > > >--- >8 ---- > >List archives: http://www.xiph.org/archives/ > >Ogg project homepage: http://www.xiph.org/ogg/ > >To unsubscribe from this list, send a message to > >'speex-dev-request@xiph.org' > >containing only the word 'unsubscribe' in the body. No subject isneeded.> >Unsubscribe messages sent to the list will be ignored/filtered. > > _________________________________________________________________ > Få alle de nye og sjove ikoner med MSN Messenger http://messenger.msn.dk > > --- >8 ---- > List archives: http://www.xiph.org/archives/ > Ogg project homepage: http://www.xiph.org/ogg/ > To unsubscribe from this list, send a message to'speex-dev-request@xiph.org'> containing only the word 'unsubscribe' in the body. No subject is needed. > Unsubscribe messages sent to the list will be ignored/filtered. >--- >8 ---- List archives: http://www.xiph.org/archives/ Ogg project homepage: http://www.xiph.org/ogg/ To unsubscribe from this list, send a message to 'speex-dev-request@xiph.org' containing only the word 'unsubscribe' in the body. No subject is needed. Unsubscribe messages sent to the list will be ignored/filtered.
Le jeu 18/12/2003 à 18:49, Greg Cockroft a écrit :> I don't think a compiler is going to be enough. > I tried perl scripting the output of a linux gcc cross-compiler to convert > into something the assembler under eVC would consume. > It errors on all the MAC type of instructions. I looked at www.arm.com (I > never knew there could be so many arms) > It does not look like the ARM720 has the MAC instructions. It also lists > 75Mhz and 100Mhz as possible frequencies. > (I'm still hoping for 100 :-)I still it should be feasible. About the instruction set, there are a couple things that could help: - MAC instructions - did you check for both smlabb and smlawb. - SIMD instructions - worth checking - 16 bit x 32 bit multiplies (e.g. smulwb) could help because they can replace 2 mul and 1 add. Of course, hand-tuned assembly always helps. Perhaps the first step would be to profile the code. I've tried that on an iPaq on handhelds.org but never succeeded :(> I have started to look at reducing complexity by removing all perceptual > filters in the encoder. > It sounds ugly but my fallback is GSM 610. > > I'm open to any other ideas to cut CPU at the expense of quality.While removing perceptual enhancement can help, there are probably a couple things that can be done before that. There are algorithmic changes that could make open_loop_nbest_pitch less computationally intensive by calculating only every second delay and then only refining when needed. Also, for modes like 8 kbps, it's probably possible to decrease precision on some (all) filters without a significant difference in quality. Jean-Marc -- Jean-Marc Valin, M.Sc.A., ing. jr. LABORIUS (http://www.gel.usherb.ca/laborius) Université de Sherbrooke, Québec, Canada -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 190 bytes Desc: Ceci est une partie de message numériquement signée. Url : http://lists.xiph.org/pipermail/speex-dev/attachments/20031218/c5d4cb91/signature-0001.pgp
> If you have any luck getting the eVC compiler closer to realtime I'd really > like to know. I'm still far from realtime when using Speex 1.1.3 on a HP > iPAQ (Intel pxa255).That's odd. I've been able to do real-time with about 20% CPU on an ARM 400 MHz. Here are the settings I used: - Compiled with FIXED_POINT (--enable-fixed-point) and ARM_ASM (--enable-arm-asm) - Compiled with gcc 3.3. (if you don't have gcc, you won't be able to use ARM_ASM) - Running in narrowband, 8 kbps with complexity 1. Hope this helps. Jean-Marc -- Jean-Marc Valin, M.Sc.A., ing. jr. LABORIUS (http://www.gel.usherb.ca/laborius) Université de Sherbrooke, Québec, Canada -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 190 bytes Desc: Ceci est une partie de message numériquement signée. Url : http://lists.xiph.org/pipermail/speex-dev/attachments/20031218/ee5a8bfc/signature-0001.pgp
Is that encodeing? Jean-Marc Valin wrote:>That's odd. I've been able to do real-time with about 20% CPU on an ARM >400 MHz. Here are the settings I used: >- Compiled with FIXED_POINT (--enable-fixed-point) and ARM_ASM >(--enable-arm-asm) >- Compiled with gcc 3.3. (if you don't have gcc, you won't be able to >use ARM_ASM) >- Running in narrowband, 8 kbps with complexity 1. > >Hope this helps. > > Jean-Marc > > ><p>--- >8 ---- List archives: http://www.xiph.org/archives/ Ogg project homepage: http://www.xiph.org/ogg/ To unsubscribe from this list, send a message to 'speex-dev-request@xiph.org' containing only the word 'unsubscribe' in the body. No subject is needed. Unsubscribe messages sent to the list will be ignored/filtered.