Efficient voice codecs? Speex?

215 views
Skip to first unread message

Martin AA6E

unread,
Mar 16, 2012, 4:35:15 PM3/16/12
to beagl...@googlegroups.com
I am using Ubuntu Oneiric libspeex as a voice codec.  For my application, it can use nearly all the BB XM CPU.  Is there an alternative that is optimized for the BB's DSP? While it might be good for my little gray cells, I am hoping not to have to code it myself.

Any pointers welcome!

Martin

Martin AA6E

unread,
Mar 22, 2012, 12:22:26 PM3/22/12
to beagl...@googlegroups.com
Replying to my own message, in case anyone is interested.

I was able to download Speex source and compile with NEON optimizations and -O3.  That cut cpu usage by ~50% compared with the Ubuntu Oneiric distribution library, relieving the crisis for now.  Speex has some support for C55 DSP, but that does not seem to work on the BB XM out of the box.  Someone should work on this, but I can't get into it for the time being.

Martin

Benjamin Henrion

unread,
Mar 22, 2012, 12:27:09 PM3/22/12
to beagl...@googlegroups.com
On Thu, Mar 22, 2012 at 5:22 PM, Martin AA6E <martin....@gmail.com> wrote:
> Replying to my own message, in case anyone is interested.
>
> I was able to download Speex source and compile with NEON optimizations and
> -O3.  That cut cpu usage by ~50% compared with the Ubuntu Oneiric
> distribution library, relieving the crisis for now.  Speex has some support
> for C55 DSP, but that does not seem to work on the BB XM out of the box.
> Someone should work on this, but I can't get into it for the time being.

I have compared speex with other voip codecs for android, speex is
definitely the most cpu hungry.

Prefer something like GSM8K or PCMU.

--
Benjamin Henrion <bhenrion at ffii.org>
FFII Brussels - +32-484-566109 - +32-2-3500762
"In July 2005, after several failed attempts to legalise software
patents in Europe, the patent establishment changed its strategy.
Instead of explicitly seeking to sanction the patentability of
software, they are now seeking to create a central European patent
court, which would establish and enforce patentability rules in their
favor, without any possibility of correction by competing courts or
democratically elected legislators."

Maxim Podbereznyy

unread,
Mar 22, 2012, 1:30:49 PM3/22/12
to beagl...@googlegroups.com
PCMU??? It uses tables for conversion and produces the highest
bitrate! Absolutely no resource consumption but huge traffic

2012/3/22 Benjamin Henrion <b...@udev.org>:

> -- To join: http://beagleboard.org/discuss
> To unsubscribe from this group, send email to:
> beagleboard...@googlegroups.com
> Frequently asked questions: http://beagleboard.org/faq

Martin Ewing

unread,
Mar 22, 2012, 2:01:44 PM3/22/12
to beagl...@googlegroups.com
Yes, I can send raw samples with zero cpu load.  I want best compression while retaining good speech intelligibility for shortwave (ham) communications, with noise, interference, etc.
--
Martin Ewing
Branford, Connecticut
martin....@gmail.com

Vladimir Pantelic

unread,
Mar 22, 2012, 2:18:57 PM3/22/12
to beagl...@googlegroups.com
Martin AA6E wrote:
> Replying to my own message, in case anyone is interested.
>
> I was able to download Speex source and compile with NEON optimizations and -O3. That cut cpu usage by ~50% compared
> with the Ubuntu Oneiric distribution library, relieving the crisis for now. Speex has some support for C55 DSP, but that
> does not seem to work on the BB XM out of the box.

most likely because the BB has no C55 DSP....

> Someone should work on this, but I can't get into it for the time being.
>
> Martin
>
> On Friday, March 16, 2012 4:35:15 PM UTC-4, Martin AA6E wrote:
>
> I am using Ubuntu Oneiric libspeex as a voice codec. For my application, it can use nearly all the BB XM CPU. Is
> there an alternative that is optimized for the BB's DSP? While it might be good for my little gray cells, I am
> hoping not to have to code it myself.
>
> Any pointers welcome!
>
> Martin
>

Martin AA6E

unread,
Mar 23, 2012, 11:28:25 AM3/23/12
to beagl...@googlegroups.com


On Thursday, March 22, 2012 2:18:57 PM UTC-4, vladimir wrote:
Martin AA6E wrote:
> Replying to my own message, in case anyone is interested.
>
> I was able to download Speex source and compile with NEON optimizations and -O3. That cut cpu usage by ~50% compared
> with the Ubuntu Oneiric distribution library, relieving the crisis for now. Speex has some support for C55 DSP, but that
> does not seem to work on the BB XM out of the box.

most likely because the BB has no C55 DSP....

Yes, of course.  They also have some support for C54 and C64.  You need the DSP toolchain, also. 
 

> Someone should work on this, but I can't get into it for the time being.
>
> Martin
>
> On Friday, March 16, 2012 4:35:15 PM UTC-4, Martin AA6E wrote:
>
>     I am using Ubuntu Oneiric libspeex as a voice codec. For my application, it can use nearly all the BB XM CPU. Is
>     there an alternative that is optimized for the BB's DSP? While it might be good for my little gray cells, I am
>     hoping not to have to code it myself.
>
>     Any pointers welcome!
>
>     Martin
>
> -- To join: http://beagleboard.org/discuss
> To unsubscribe from this group, send email to:

> beagleboard+unsubscribe@​googlegroups.com

syber...@gmail.com

unread,
Oct 1, 2013, 11:31:09 PM10/1/13
to beagl...@googlegroups.com
Any possibility I can get instructions for this?

Martin Ewing

unread,
Oct 3, 2013, 3:05:01 PM10/3/13
to beagl...@googlegroups.com
Looking back at my notes, I was working with speex-1.21rc1 source code on the BeagleBoard XM.  I used the following environment setting before make:

CFLAGS = -O3 -mfpu=neon -ftree-vectorize -ffast-math(?) -fsingle-precision-constant -mfloat-abi=hard (?) -mcpu=cortex-a8

[I probably experimented with -ffast-math and -mfloat-abi=hard but eventually left them out.]

The last (working) Makefile seems to have used

CFLAGS = -DFIXED_POINT -Ofast -mfpu=neon -mcpu=cortex-a8 -fsingle-precision-constant -fvisibility=hidden

I can't swear this is the very best way to compile, but it was good enough for my work.

If I was starting over, I would try http://www.opus-codec.org/ since Speex seems to be an orphan.

Cheers,
Martin



--
For more options, visit http://beagleboard.org/discuss
---
You received this message because you are subscribed to a topic in the Google Groups "BeagleBoard" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/beagleboard/JclOvO2EpKA/unsubscribe.
To unsubscribe from this group and all its topics, send an email to beagleboard...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
Reply all
Reply to author
Forward
0 new messages