[opus] 1.1 Much slower on Raspberry Pi
Christian Hoene
christian.hoene at symonics.com
Tue Dec 17 01:04:52 PST 2013
Hi Stuart,
you are compressing it at 6kbit/s. Then, then SILK mode is probability used
and the Silk mode is much faster than CELT. Do you also some figures at
64kbit/s?
It is strange that Opus 1.1 got slower in the Silk mode - may the
speech/voice selection adds some overhead. I would be interested in seeing
the performance of the 64 kbit/s in both Opus 1.0 and Opus 1.1.
With best regards,
Christian Hoene
PS:
I also though on using Raspberry PI as a reference platform for testing the
speech of Opus on a ARM processor. For measuring the speech of
Opus on Intel CPUs, the MARSS86.org simulator might be appropriate.
Von: opus-bounces at xiph.org [mailto:opus-bounces at xiph.org] Im Auftrag von
Stuart Marsden
Gesendet: Montag, 16. Dezember 2013 14:03
An: opus at xiph.org
Betreff: [opus] 1.1 Much slower on Raspberry Pi
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/20131217/025dcb2e/attachment-0001.htm
More information about the opus
mailing list