https://wiki.xiph.org/api.php?action=feedcontributions&user=Ipse&feedformat=atomXiphWiki - User contributions [en]2024-03-28T15:34:46ZUser contributionsMediaWiki 1.40.1https://wiki.xiph.org/index.php?title=Speex_hardware&diff=9080Speex hardware2008-05-23T15:38:05Z<p>Ipse: /* Performance results for Cirrus Logic EDB9315A @ 200MHz */ Added info about gcc version and optimization level</p>
<hr />
<div>Please list any experience/knowledge you've had with Speex on the following hardware, including model, minimum speed required for real-time or other observations. When providing benchmarks, please specify: <br />
* CPU speed<br />
* Speex version<br />
* Sampling rate (narrowband vs wideband)<br />
* Bit-rate<br />
* Complexity setting<br />
* Any other option that isn't the default<br />
* Compiler (and version)<br />
<br />
See also supported CPU and optimization flags here - http://www.speex.org/docs/manual/speex-manual/node5.html<br />
<br />
<br />
= x86 =<br />
<br />
* SSE optimisations (intrinsics)<br />
<br />
= Power =<br />
<br />
* No Altivec support yet<br />
<br />
= ARM =<br />
<br />
* Port with gcc inline assembly.<br />
<br />
== Performance results for Cirrus Logic EDB9315A @ 200MHz ==<br />
<br />
Tests were run with following configuration:<br />
* '''Speex svn rev''': 13928<br />
* '''Fixed point''' (though this CPU have hardware floating-point, we were interested in fixed point operation at that moment).<br />
* '''Narrow-Band'''<br />
* '''Complexity''' set either to defailt (2) or to 1, I do not recall exactly now :( But I think results will not differ considerably.<br />
* '''DTX''': no<br />
* '''Preprocessing''': no, just bare encoding/decoding<br />
* '''OS''': Linux, shipped with development board<br />
* '''Compiler''': gcc-4.1.2 with -O2<br />
* '''CPU info''':<br />
<pre><br />
# cat /proc/cpuinfo<br />
Processor : ARM920Tid(wb) rev 0 (v4l)<br />
BogoMIPS : 192.92<br />
Features : swp half thumb<br />
CPU implementer : 0x41<br />
CPU architecture: 4T<br />
CPU variant : 0x1<br />
CPU part : 0x920<br />
CPU revision : 0<br />
Cache type : write-back<br />
Cache clean : cp15 c7 ops<br />
Cache lockdown : format A<br />
Cache format : Harvard<br />
I size : 16384<br />
I assoc : 64<br />
I line length : 32<br />
I sets : 8<br />
D size : 16384<br />
D assoc : 64<br />
D line length : 32<br />
D sets : 8<br />
<br />
Hardware : Cirrus Logic edb9315a<br />
Revision : 0000<br />
Serial : 0000000000000000<br />
</pre><br />
<br />
{| border="1"<br />
|+ Speex NB performance on Cirrus EDB9315A @ 200MHz<br />
! !! mode=2 !! mode=3 !! mode=4 !! mode=5 !! mode=6 !! mode=7 !! mode=8<br />
|-<br />
! encoding 1 frame (20ms of auido)<br />
| 3.7ms || 3.3ms || 4.5ms || 3.7ms || 5.8ms || 4.7ms || 3.2ms<br />
|-<br />
! decoding 1 frame (20ms of auido)<br />
| 0.45ms || 0.5ms || 0.5ms || 0.5ms || 0.5ms || 0.55ms || 0.45ms<br />
|}<br />
<br />
Please, note, that these values may be inaccurate and may be different in your system. E.g. different version of gcc produce different results. These values should rather give you rough idea on how Speex performance looks like.<br />
<br />
==PocketPC 2003, Intel PXA270 312 MHz ==<br />
Benny Prijono on speex-dev mailing list said:<br />
<pre><br />
I can get good quality voice call on my PDA (PocketPC 2003, Intel PXA270 312 MHz).<br />
So my settings now (I use embeded Visual C++ 4 latest SP):<br />
- plain C (not ARM assembly), fixed point version of speex (r12832)<br />
- quality/complexity set to 5 (previously it was 0-1). 3-4 is also okay, but obviously quality is not as good.<br />
- compiler set to optimize for maximum speed (/Oxt flag, previously it was default, which is mapped to /O2).<br />
<br />
I tried with narrowband only, and audio is good. I also tried with<br />
adding compiler flags which I thought would be appropriate for my<br />
processor ("/QRarch5T /QRdsp /QRxscale" options), but lacking a good<br />
CPU monitor I don't how much improvement I got. My task manager showed<br />
that the CPU usage for my app is 3%, obviously this is wrong.<br />
</pre><br />
<br />
= Blackfin =<br />
<br />
* Port with gcc inline assembly.<br />
<br />
= TI C5x =<br />
<br />
* Known to run<br />
<br />
= TI C6x =<br />
<br />
* Known to run<br />
<br />
= Coldfire =<br />
<br />
* Used by Rockbox<br />
<br />
= Trimedia =<br />
<br />
* Someone did some optimisations for that but it never got fully merged.<br />
<br />
= Symbian phones model =<br />
<br />
* In order to make life easier for developer, let's also publish on which Symbian based phones speex works <br />
<br />
* Here's a list of all Nokia phones / CPU - http://www.nokia-tuning.net/index.php?s=processor<br />
* Here's a list of CPU used on UIQ 3 Sonyericcsson phones - http://my-symbian.com/uiq3/faq/showquestion.php?fldAuto=10&faq=1<br />
<br />
* Here's a list of all S60 phone models - http://www.s60.com/life/s60phones/browseDevices.do<br />
<br />
= Windows Mobile Phones =<br />
<br />
* In order to make life easier for developer, let's also publish on which Pocket PC / Windows Mobile based phones speex works<br />
<br />
* Here's a list of all HTC Windows Mobile and Pocket PC devices with CPU speed - http://en.wikipedia.org/wiki/High_Tech_Computer_Corporation<br />
<br />
= CPU monitoring software =<br />
<br />
* Microsoft Windows Mobile CPU monitoring software - http://msdn.microsoft.com/en-us/library/aa934745.aspx<br />
* Freeware Windows MObile CPU monitoring software - http://www.mobiletopsoft.com/software-tools/getproduct.php?pname=RhinoStats+CPU+Monitor+1.2 <br />
* Here's a freeware cpu monitor for Symbian - http://www.symbian-freeware.com/download-cpumonitor-v1-10.html<br />
<br />
= Links collection of past experience =<br />
<br />
* In order to make such hardware support task more easier in the beginning let's collect all the links to experience on running speex on specific phones model<br />
<br />
* Does not work on TI OMAP 195mhz WM6 even overclocked to 173mhz only recording - http://wiki.xda-developers.com/index.php?pagename=Review%3A%20decent%20phone%20call%20(!)%20%2B%20note%20%2B%20MP3%20recorder%20VITO%20AudioNotes%201.3%20out!<br />
<br />
[[Category:Speex]]</div>Ipsehttps://wiki.xiph.org/index.php?title=Speex_hardware&diff=9079Speex hardware2008-05-23T15:14:00Z<p>Ipse: /* PocketPC 2003, Intel PXA270 312 MHz */ Fix formatting</p>
<hr />
<div>Please list any experience/knowledge you've had with Speex on the following hardware, including model, minimum speed required for real-time or other observations. When providing benchmarks, please specify: <br />
* CPU speed<br />
* Speex version<br />
* Sampling rate (narrowband vs wideband)<br />
* Bit-rate<br />
* Complexity setting<br />
* Any other option that isn't the default<br />
* Compiler (and version)<br />
<br />
See also supported CPU and optimization flags here - http://www.speex.org/docs/manual/speex-manual/node5.html<br />
<br />
<br />
= x86 =<br />
<br />
* SSE optimisations (intrinsics)<br />
<br />
= Power =<br />
<br />
* No Altivec support yet<br />
<br />
= ARM =<br />
<br />
* Port with gcc inline assembly.<br />
<br />
== Performance results for Cirrus Logic EDB9315A @ 200MHz ==<br />
<br />
Tests were run with following configuration:<br />
* '''Speex svn rev''': 13928<br />
* '''Fixed point''' (though this CPU have hardware floating-point, we were interested in fixed point operation at that moment).<br />
* '''Narrow-Band'''<br />
* '''Complexity''' set either to defailt (2) or to 1, I do not recall exactly now :( But I think results will not differ considerably.<br />
* '''DTX''': no<br />
* '''Preprocessing''': no, just bare encoding/decoding<br />
* '''OS''': Linux, shipped with development board<br />
* '''Compiler''': gcc<br />
* '''CPU info''':<br />
<pre><br />
# cat /proc/cpuinfo<br />
Processor : ARM920Tid(wb) rev 0 (v4l)<br />
BogoMIPS : 192.92<br />
Features : swp half thumb<br />
CPU implementer : 0x41<br />
CPU architecture: 4T<br />
CPU variant : 0x1<br />
CPU part : 0x920<br />
CPU revision : 0<br />
Cache type : write-back<br />
Cache clean : cp15 c7 ops<br />
Cache lockdown : format A<br />
Cache format : Harvard<br />
I size : 16384<br />
I assoc : 64<br />
I line length : 32<br />
I sets : 8<br />
D size : 16384<br />
D assoc : 64<br />
D line length : 32<br />
D sets : 8<br />
<br />
Hardware : Cirrus Logic edb9315a<br />
Revision : 0000<br />
Serial : 0000000000000000<br />
</pre><br />
<br />
{| border="1"<br />
|+ Speex NB performance on Cirrus EDB9315A @ 200MHz<br />
! !! mode=2 !! mode=3 !! mode=4 !! mode=5 !! mode=6 !! mode=7 !! mode=8<br />
|-<br />
! encoding 1 frame (20ms of auido)<br />
| 3.7ms || 3.3ms || 4.5ms || 3.7ms || 5.8ms || 4.7ms || 3.2ms<br />
|-<br />
! decoding 1 frame (20ms of auido)<br />
| 0.45ms || 0.5ms || 0.5ms || 0.5ms || 0.5ms || 0.55ms || 0.45ms<br />
|}<br />
<br />
Please, note, that these values may be inaccurate and may be different in your system. E.g. different version of gcc produce different results. These values should rather give you rough idea on how Speex performance looks like.<br />
<br />
==PocketPC 2003, Intel PXA270 312 MHz ==<br />
Benny Prijono on speex-dev mailing list said:<br />
<pre><br />
I can get good quality voice call on my PDA (PocketPC 2003, Intel PXA270 312 MHz).<br />
So my settings now (I use embeded Visual C++ 4 latest SP):<br />
- plain C (not ARM assembly), fixed point version of speex (r12832)<br />
- quality/complexity set to 5 (previously it was 0-1). 3-4 is also okay, but obviously quality is not as good.<br />
- compiler set to optimize for maximum speed (/Oxt flag, previously it was default, which is mapped to /O2).<br />
<br />
I tried with narrowband only, and audio is good. I also tried with<br />
adding compiler flags which I thought would be appropriate for my<br />
processor ("/QRarch5T /QRdsp /QRxscale" options), but lacking a good<br />
CPU monitor I don't how much improvement I got. My task manager showed<br />
that the CPU usage for my app is 3%, obviously this is wrong.<br />
</pre><br />
<br />
= Blackfin =<br />
<br />
* Port with gcc inline assembly.<br />
<br />
= TI C5x =<br />
<br />
* Known to run<br />
<br />
= TI C6x =<br />
<br />
* Known to run<br />
<br />
= Coldfire =<br />
<br />
* Used by Rockbox<br />
<br />
= Trimedia =<br />
<br />
* Someone did some optimisations for that but it never got fully merged.<br />
<br />
= Symbian phones model =<br />
<br />
* In order to make life easier for developer, let's also publish on which Symbian based phones speex works <br />
<br />
* Here's a list of all Nokia phones / CPU - http://www.nokia-tuning.net/index.php?s=processor<br />
* Here's a list of CPU used on UIQ 3 Sonyericcsson phones - http://my-symbian.com/uiq3/faq/showquestion.php?fldAuto=10&faq=1<br />
<br />
* Here's a list of all S60 phone models - http://www.s60.com/life/s60phones/browseDevices.do<br />
<br />
= Windows Mobile Phones =<br />
<br />
* In order to make life easier for developer, let's also publish on which Pocket PC / Windows Mobile based phones speex works<br />
<br />
* Here's a list of all HTC Windows Mobile and Pocket PC devices with CPU speed - http://en.wikipedia.org/wiki/High_Tech_Computer_Corporation<br />
<br />
= CPU monitoring software =<br />
<br />
* Microsoft Windows Mobile CPU monitoring software - http://msdn.microsoft.com/en-us/library/aa934745.aspx<br />
* Freeware Windows MObile CPU monitoring software - http://www.mobiletopsoft.com/software-tools/getproduct.php?pname=RhinoStats+CPU+Monitor+1.2 <br />
* Here's a freeware cpu monitor for Symbian - http://www.symbian-freeware.com/download-cpumonitor-v1-10.html<br />
<br />
= Links collection of past experience =<br />
<br />
* In order to make such hardware support task more easier in the beginning let's collect all the links to experience on running speex on specific phones model<br />
<br />
* Does not work on TI OMAP 195mhz WM6 even overclocked to 173mhz only recording - http://wiki.xda-developers.com/index.php?pagename=Review%3A%20decent%20phone%20call%20(!)%20%2B%20note%20%2B%20MP3%20recorder%20VITO%20AudioNotes%201.3%20out!<br />
<br />
[[Category:Speex]]</div>Ipsehttps://wiki.xiph.org/index.php?title=Speex_hardware&diff=9078Speex hardware2008-05-23T15:06:26Z<p>Ipse: /* Performance results for Cirrus Logic EDB9315A @ 200MHz */ Better formatting, put info that Linux was used as OS.</p>
<hr />
<div>Please list any experience/knowledge you've had with Speex on the following hardware, including model, minimum speed required for real-time or other observations. When providing benchmarks, please specify: <br />
* CPU speed<br />
* Speex version<br />
* Sampling rate (narrowband vs wideband)<br />
* Bit-rate<br />
* Complexity setting<br />
* Any other option that isn't the default<br />
* Compiler (and version)<br />
<br />
See also supported CPU and optimization flags here - http://www.speex.org/docs/manual/speex-manual/node5.html<br />
<br />
<br />
= x86 =<br />
<br />
* SSE optimisations (intrinsics)<br />
<br />
= Power =<br />
<br />
* No Altivec support yet<br />
<br />
= ARM =<br />
<br />
* Port with gcc inline assembly.<br />
<br />
== Performance results for Cirrus Logic EDB9315A @ 200MHz ==<br />
<br />
Tests were run with following configuration:<br />
* '''Speex svn rev''': 13928<br />
* '''Fixed point''' (though this CPU have hardware floating-point, we were interested in fixed point operation at that moment).<br />
* '''Narrow-Band'''<br />
* '''Complexity''' set either to defailt (2) or to 1, I do not recall exactly now :( But I think results will not differ considerably.<br />
* '''DTX''': no<br />
* '''Preprocessing''': no, just bare encoding/decoding<br />
* '''OS''': Linux, shipped with development board<br />
* '''Compiler''': gcc<br />
* '''CPU info''':<br />
<pre><br />
# cat /proc/cpuinfo<br />
Processor : ARM920Tid(wb) rev 0 (v4l)<br />
BogoMIPS : 192.92<br />
Features : swp half thumb<br />
CPU implementer : 0x41<br />
CPU architecture: 4T<br />
CPU variant : 0x1<br />
CPU part : 0x920<br />
CPU revision : 0<br />
Cache type : write-back<br />
Cache clean : cp15 c7 ops<br />
Cache lockdown : format A<br />
Cache format : Harvard<br />
I size : 16384<br />
I assoc : 64<br />
I line length : 32<br />
I sets : 8<br />
D size : 16384<br />
D assoc : 64<br />
D line length : 32<br />
D sets : 8<br />
<br />
Hardware : Cirrus Logic edb9315a<br />
Revision : 0000<br />
Serial : 0000000000000000<br />
</pre><br />
<br />
{| border="1"<br />
|+ Speex NB performance on Cirrus EDB9315A @ 200MHz<br />
! !! mode=2 !! mode=3 !! mode=4 !! mode=5 !! mode=6 !! mode=7 !! mode=8<br />
|-<br />
! encoding 1 frame (20ms of auido)<br />
| 3.7ms || 3.3ms || 4.5ms || 3.7ms || 5.8ms || 4.7ms || 3.2ms<br />
|-<br />
! decoding 1 frame (20ms of auido)<br />
| 0.45ms || 0.5ms || 0.5ms || 0.5ms || 0.5ms || 0.55ms || 0.45ms<br />
|}<br />
<br />
Please, note, that these values may be inaccurate and may be different in your system. E.g. different version of gcc produce different results. These values should rather give you rough idea on how Speex performance looks like.<br />
<br />
==PocketPC 2003, Intel PXA270 312 MHz ==<br />
Benny Prijono on speex-dev mailing list said:<br />
�{<br />
I can get good quality voice call on my PDA (PocketPC 2003, Intel PXA270 312 MHz).<br />
So my settings now (I use embeded Visual C++ 4 latest SP):<br />
- plain C (not ARM assembly), fixed point version of speex (r12832)<br />
- quality/complexity set to 5 (previously it was 0-1). 3-4 is also okay, but obviously quality is not as good.<br />
- compiler set to optimize for maximum speed (/Oxt flag, previously it was default, which is mapped to /O2).<br />
<br />
I tried with narrowband only, and audio is good. I also tried with<br />
adding compiler flags which I thought would be appropriate for my<br />
processor ("/QRarch5T /QRdsp /QRxscale" options), but lacking a good<br />
CPU monitor I don't how much improvement I got. My task manager showed<br />
that the CPU usage for my app is 3%, obviously this is wrong.<br />
}<br />
<br />
= Blackfin =<br />
<br />
* Port with gcc inline assembly.<br />
<br />
= TI C5x =<br />
<br />
* Known to run<br />
<br />
= TI C6x =<br />
<br />
* Known to run<br />
<br />
= Coldfire =<br />
<br />
* Used by Rockbox<br />
<br />
= Trimedia =<br />
<br />
* Someone did some optimisations for that but it never got fully merged.<br />
<br />
= Symbian phones model =<br />
<br />
* In order to make life easier for developer, let's also publish on which Symbian based phones speex works <br />
<br />
* Here's a list of all Nokia phones / CPU - http://www.nokia-tuning.net/index.php?s=processor<br />
* Here's a list of CPU used on UIQ 3 Sonyericcsson phones - http://my-symbian.com/uiq3/faq/showquestion.php?fldAuto=10&faq=1<br />
<br />
* Here's a list of all S60 phone models - http://www.s60.com/life/s60phones/browseDevices.do<br />
<br />
= Windows Mobile Phones =<br />
<br />
* In order to make life easier for developer, let's also publish on which Pocket PC / Windows Mobile based phones speex works<br />
<br />
* Here's a list of all HTC Windows Mobile and Pocket PC devices with CPU speed - http://en.wikipedia.org/wiki/High_Tech_Computer_Corporation<br />
<br />
= CPU monitoring software =<br />
<br />
* Microsoft Windows Mobile CPU monitoring software - http://msdn.microsoft.com/en-us/library/aa934745.aspx<br />
* Freeware Windows MObile CPU monitoring software - http://www.mobiletopsoft.com/software-tools/getproduct.php?pname=RhinoStats+CPU+Monitor+1.2 <br />
* Here's a freeware cpu monitor for Symbian - http://www.symbian-freeware.com/download-cpumonitor-v1-10.html<br />
<br />
= Links collection of past experience =<br />
<br />
* In order to make such hardware support task more easier in the beginning let's collect all the links to experience on running speex on specific phones model<br />
<br />
* Does not work on TI OMAP 195mhz WM6 even overclocked to 173mhz only recording - http://wiki.xda-developers.com/index.php?pagename=Review%3A%20decent%20phone%20call%20(!)%20%2B%20note%20%2B%20MP3%20recorder%20VITO%20AudioNotes%201.3%20out!<br />
<br />
[[Category:Speex]]</div>Ipsehttps://wiki.xiph.org/index.php?title=Speex_hardware&diff=9065Speex hardware2008-05-23T12:11:12Z<p>Ipse: /* ARM */ Added info about our experiments on Cirrus ARM EDB9315A</p>
<hr />
<div>Please list any experience/knowledge you've had with Speex on the following hardware, including model, minimum speed required for real-time or other observations. When providing benchmarks, please specify: <br />
* CPU speed<br />
* Speex version<br />
* Sampling rate (narrowband vs wideband)<br />
* Bit-rate<br />
* Complexity setting<br />
* Any other option that isn't the default<br />
* Compiler (and version)<br />
<br />
= x86 =<br />
<br />
* SSE optimisations (intrinsics)<br />
<br />
= Power =<br />
<br />
* No Altivec support yet<br />
<br />
= ARM =<br />
<br />
* Port with gcc inline assembly.<br />
<br />
== Performance results for Cirrus Logic EDB9315A @ 200MHz ==<br />
<br />
Tests were run with following configuration:<br />
* Speex svn rev.13928<br />
* fixed point (though this CPU have hardware floating-point, we were interested in fixed point operation at that moment).<br />
* Narrow-Band<br />
* complexity set either to defailt or to minimum value, I do not recall exactly now :( But I think results will not differ considerably.<br />
* no DTX<br />
* no preprocessing, just bare encoding/decoding<br />
<br />
<pre><br />
# cat /proc/cpuinfo<br />
Processor : ARM920Tid(wb) rev 0 (v4l)<br />
BogoMIPS : 192.92<br />
Features : swp half thumb<br />
CPU implementer : 0x41<br />
CPU architecture: 4T<br />
CPU variant : 0x1<br />
CPU part : 0x920<br />
CPU revision : 0<br />
Cache type : write-back<br />
Cache clean : cp15 c7 ops<br />
Cache lockdown : format A<br />
Cache format : Harvard<br />
I size : 16384<br />
I assoc : 64<br />
I line length : 32<br />
I sets : 8<br />
D size : 16384<br />
D assoc : 64<br />
D line length : 32<br />
D sets : 8<br />
<br />
Hardware : Cirrus Logic edb9315a<br />
Revision : 0000<br />
Serial : 0000000000000000<br />
</pre><br />
<br />
{| border="1"<br />
|+ Speex NB performance on Cirrus EDB9315A @ 200MHz<br />
! !! mode=2 !! mode=3 !! mode=4 !! mode=5 !! mode=6 !! mode=7 !! mode=8<br />
|-<br />
! encoding<br />
| 3.7ms || 3.3ms || 4.5ms || 3.7ms || 5.8ms || 4.7ms || 3.2ms<br />
|-<br />
! decoding<br />
| 0.45ms || 0.5ms || 0.5ms || 0.5ms || 0.5ms || 0.55ms || 0.45ms<br />
|}<br />
<br />
Please, note, that these values may be inaccurate and may be different in your system. E.g. different version of gcc produce different results. These values should rather give you rough idea on how Speex performance looks like.<br />
<br />
= Blackfin =<br />
<br />
* Port with gcc inline assembly.<br />
<br />
= TI C5x =<br />
<br />
* Known to run<br />
<br />
= TI C6x =<br />
<br />
* Known to run<br />
<br />
= Coldfire =<br />
<br />
* Used by Rockbox<br />
<br />
= Trimedia =<br />
<br />
* Someone did some optimisations for that but it never got fully merged.<br />
<br />
= Symbian phones model =<br />
<br />
* In order to make life easier for developer, let's also publish on which Symbian based phones speex works <br />
* Here's a list of all Nokia phones / CPU - http://www.nokia-tuning.net/index.php?s=processor<br />
* Here's a list of all S60 phone models - http://www.s60.com/life/s60phones/browseDevices.do<br />
<br />
= Windows Mobile Phones =<br />
<br />
* In order to make life easier for developer, let's also publish on which Pocket PC / Windows Mobile based phones speex works<br />
<br />
* Here's a list of all HTC Windows Mobile and Pocket PC devices with CPU speed - http://en.wikipedia.org/wiki/High_Tech_Computer_Corporation<br />
<br />
= Links collection of past experience =<br />
<br />
* In order to make such hardware support task more easier in the beginning let's collect all the links to experience on running speex on specific phones model</div>Ipse