Hi All,
First time poster to this group, please ignore my ignorance?
I?m trying to use Opus 1.1 on a 400MHz MIPS 24k CPU (AR9331, specifically, like
in the Arduino Yun).
I?ve successfully built (I think) opus-1.1 and opus-tools-1.8 and they run, but
are dog slow.
opus-1.1 does have the ?enable-fixed-point option set, as this chip only has
soft-float.
My short test file (less than one second) encodes in 0.02 seconds on my Mac but
takes 20+ seconds on this device.
Anything obvious that I?ve missed or haven?t set up properly?
Thanks in advance,
Dean
Here it is in action:
root at ahoy6:/tmp# time opusenc /ahoy/sounds/whistle.wav whistle.opus
Skipping chunk of type "LIST", length 46
Encoding using libopus 1.1-fixed (audio)
-----------------------------------------------------
Input: 44.1kHz 2 channels
Output: 2 channels (2 coupled)
20ms packets, 96kbit/sec VBR
Preskip: 356
Encoding complete
-----------------------------------------------------
Encoded: 0.74 seconds
Runtime: 25 seconds
(0.0296x realtime)
Wrote: 10983 bytes, 37 packets, 3 pages
Bitrate: 108.746kbit/s (without overhead)
Instant rates: 76.8kbit/s to 182.8kbit/s
(192 to 457 bytes per packet)
Overhead: 8.41% (container+metadata)
real 0m 25.06s
user 0m 9.99s
sys 0m 0.07s
and
root at ahoy6:/tmp# time opusdec whistle.opus - > /dev/null
Decoding to 44100 Hz (2 channels)
Encoded with libopus 1.1-fixed
ENCODER=opusenc from opus-tools 0.1.8
Decoding complete.
real 0m 26.39s
user 0m 9.22s
sys 0m 0.04s
Make sure you don't run as complexity 10, since it would run some float ops even when compiled as fixed-point. If you don't have an FPU at all, you want complexity 9 or lower. Jean-Marc On 14/04/14 07:45 PM, Dean Blackketter wrote:> Hi All, > > First time poster to this group, please ignore my ignorance? > > I?m trying to use Opus 1.1 on a 400MHz MIPS 24k CPU (AR9331, specifically, like in the Arduino Yun). > > I?ve successfully built (I think) opus-1.1 and opus-tools-1.8 and they run, but are dog slow. > > opus-1.1 does have the ?enable-fixed-point option set, as this chip only has soft-float. > > My short test file (less than one second) encodes in 0.02 seconds on my Mac but takes 20+ seconds on this device. > > Anything obvious that I?ve missed or haven?t set up properly? > > Thanks in advance, > > Dean > > Here it is in action: > > root at ahoy6:/tmp# time opusenc /ahoy/sounds/whistle.wav whistle.opus > Skipping chunk of type "LIST", length 46 > Encoding using libopus 1.1-fixed (audio) > ----------------------------------------------------- > Input: 44.1kHz 2 channels > Output: 2 channels (2 coupled) > 20ms packets, 96kbit/sec VBR > Preskip: 356 > > Encoding complete > ----------------------------------------------------- > Encoded: 0.74 seconds > Runtime: 25 seconds > (0.0296x realtime) > Wrote: 10983 bytes, 37 packets, 3 pages > Bitrate: 108.746kbit/s (without overhead) > Instant rates: 76.8kbit/s to 182.8kbit/s > (192 to 457 bytes per packet) > Overhead: 8.41% (container+metadata) > > real 0m 25.06s > user 0m 9.99s > sys 0m 0.07s > > and > > root at ahoy6:/tmp# time opusdec whistle.opus - > /dev/null > Decoding to 44100 Hz (2 channels) > Encoded with libopus 1.1-fixed > ENCODER=opusenc from opus-tools 0.1.8 > Decoding complete. > real 0m 26.39s > user 0m 9.22s > sys 0m 0.04s > > > > > _______________________________________________ > opus mailing list > opus at xiph.org > http://lists.xiph.org/mailman/listinfo/opus >
An 80MHz MIPS R4K can encode a 48KHz stream at 64Kbps with CELT complexity 5 (IIRC) at just under realtime. A 400MHz MIPS 24K should fly. You shouldn't even need to wind the complexity down much. -a On 4/14/14, 4:45 PM, Dean Blackketter wrote:> Hi All, > > First time poster to this group, please ignore my ignorance? > > I?m trying to use Opus 1.1 on a 400MHz MIPS 24k CPU (AR9331, specifically, like in the Arduino Yun). > > I?ve successfully built (I think) opus-1.1 and opus-tools-1.8 and they run, but are dog slow. > > opus-1.1 does have the ?enable-fixed-point option set, as this chip only has soft-float. > > My short test file (less than one second) encodes in 0.02 seconds on my Mac but takes 20+ seconds on this device. > > Anything obvious that I?ve missed or haven?t set up properly? > > Thanks in advance, > > Dean > > Here it is in action: > > root at ahoy6:/tmp# time opusenc /ahoy/sounds/whistle.wav whistle.opus > Skipping chunk of type "LIST", length 46 > Encoding using libopus 1.1-fixed (audio) > ----------------------------------------------------- > Input: 44.1kHz 2 channels > Output: 2 channels (2 coupled) > 20ms packets, 96kbit/sec VBR > Preskip: 356 > > Encoding complete > ----------------------------------------------------- > Encoded: 0.74 seconds > Runtime: 25 seconds > (0.0296x realtime) > Wrote: 10983 bytes, 37 packets, 3 pages > Bitrate: 108.746kbit/s (without overhead) > Instant rates: 76.8kbit/s to 182.8kbit/s > (192 to 457 bytes per packet) > Overhead: 8.41% (container+metadata) > > real 0m 25.06s > user 0m 9.99s > sys 0m 0.07s > > and > > root at ahoy6:/tmp# time opusdec whistle.opus - > /dev/null > Decoding to 44100 Hz (2 channels) > Encoded with libopus 1.1-fixed > ENCODER=opusenc from opus-tools 0.1.8 > Decoding complete. > real 0m 26.39s > user 0m 9.22s > sys 0m 0.04s > > > > > _______________________________________________ > opus mailing list > opus at xiph.org > http://lists.xiph.org/mailman/listinfo/opus >-------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 538 bytes Desc: OpenPGP digital signature Url : http://lists.xiph.org/pipermail/opus/attachments/20140416/2ed26a4f/attachment.pgp
Dean Blackketter wrote:> Anything obvious that I?ve missed or haven?t set up properly?Keep in mind also that even with a fixed-point libopus, opusenc does a bunch of its front-end processing with floats instead. I.e., it uses the float API to libopus and does any resampling and its noise-shaping dither with floating point.