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.