[opus] 1.1 Much slower on Raspberry Pi
Stuart Marsden
stuartmarsden at finmars.co.uk
Mon Dec 16 05:03:05 PST 2013
I have just started trying Opus with a view to using it in a project. I am
interested in embedded hardware and tried it on the Raspberry Pi using the
raspbian distro.
The version of libopus in the repos is 0.9.14. I installed this and tried
encoding 2 minutes of speech from a librevox recording. It managed this at
a respectable pace for complexity 10:
Skipping chunk of type "LIST", length 76
Encoding using libopus 0.9.14 (audio)
-----------------------------------------------------
Input: 44.1kHz 1 channel
Output: 1 channel (1 uncoupled)
20ms packets, 6kbit/sec VBR
Preskip: 356
Encoding complete
-----------------------------------------------------
Encoded: 2 minutes and 0.02 seconds
Runtime: 50.9 seconds
(2.358x realtime)
Wrote: 111194 bytes, 6001 packets, 123 pages
Bitrate: 6.78414kbit/s (without overhead)
Rate range: 2.8kbit/s to 12kbit/s
(7 to 30 bytes per packet)
Overhead: 8.47% (container+metadata)
And even faster on complexity 0:
Skipping chunk of type "LIST", length 76
Encoding using libopus 0.9.14 (audio)
-----------------------------------------------------
Input: 44.1kHz 1 channel
Output: 1 channel (1 uncoupled)
20ms packets, 6kbit/sec VBR
Preskip: 316
Encoding complete
-----------------------------------------------------
Encoded: 2 minutes and 0.02 seconds
Runtime: 23.72 seconds
(5.059x realtime)
Wrote: 106598 bytes, 6001 packets, 123 pages
Bitrate: 6.47779kbit/s (without overhead)
Rate range: 2.4kbit/s to 13.6kbit/s
(6 to 34 bytes per packet)
Overhead: 8.83% (container+metadata)
I saw the 1.1 release notes and it said speed improvements on ARM so
thought I would try. I downloaded from opus-codec.org and compiled directly
on the Pi. It has however turned out a lot slower. Complexity 10 barely can
encode in realtime:
Skipping chunk of type "LIST", length 76
Encoding using libopus 1.1 (audio)
-----------------------------------------------------
Input: 44.1kHz 1 channel
Output: 1 channel (1 uncoupled)
20ms packets, 6kbit/sec VBR
Preskip: 356
Encoding complete
-----------------------------------------------------
Encoded: 2 minutes and 0.02 seconds
Runtime: 1 minute and 53 seconds
(1.062x realtime)
Wrote: 110743 bytes, 6001 packets, 123 pages
Bitrate: 6.70782kbit/s (without overhead)
Instant rates: 2.8kbit/s to 11.6kbit/s
(7 to 29 bytes per packet)
Overhead: 9.13% (container+metadata)
And is also much slower at complexity 0:
Skipping chunk of type "LIST", length 76
Notice: Using resampling with complexity<10.
Opusenc is fastest with 48, 24, 16, 12, or 8kHz input.
Encoding using libopus 1.1 (audio)
-----------------------------------------------------
Input: 44.1kHz 1 channel
Output: 1 channel (1 uncoupled)
20ms packets, 6kbit/sec VBR
Preskip: 316
Encoding complete
-----------------------------------------------------
Encoded: 2 minutes and 0.02 seconds
Runtime: 36 seconds
(3.334x realtime)
Wrote: 106945 bytes, 6001 packets, 123 pages
Bitrate: 6.45466kbit/s (without overhead)
Instant rates: 2.4kbit/s to 12.8kbit/s
(6 to 32 bytes per packet)
Overhead: 9.45% (container+metadata)
I tried compiling it as fixed point and it is slightly faster but no where
near the older version. At complexity 10:
Skipping chunk of type "LIST", length 76
Encoding using libopus 1.1-fixed (audio)
-----------------------------------------------------
Input: 44.1kHz 1 channel
Output: 1 channel (1 uncoupled)
20ms packets, 6kbit/sec VBR
Preskip: 356
Encoding complete
-----------------------------------------------------
Encoded: 2 minutes and 0.02 seconds
Runtime: 1 minute and 42 seconds
(1.177x realtime)
Wrote: 110686 bytes, 6001 packets, 123 pages
Bitrate: 6.70402kbit/s (without overhead)
Instant rates: 2.4kbit/s to 11.2kbit/s
(6 to 28 bytes per packet)
Overhead: 9.13% (container+metadata)
I have tried different compiler options but nothing has brought the speed
back up.
Any advice on the compiler flags or why I should be seeing such a big speed
regression?
Stuart Marsden
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.xiph.org/pipermail/opus/attachments/20131216/73197108/attachment-0001.htm
More information about the opus
mailing list