We are very happy that Opus, an exciting new open audio codec, is now officially standardized by the Internet Engineering Task Force (IETF). Opus is particularly interesting for podcasts, radio books and internet audio in general due to its suitability for both, music and speech, and its outstanding sound quality at also very low bitrates.
In this article, we will listen to some examples of the Opus codec in action and have a closer look at the codec and how audio producers can benefit from it.

Opus Logo

Why Opus?

Opus is a lossy audio codec that has some significant advantages over other lossy codecs such as MP3 or AAC. First, Opus is an open standard, and as such is royalty-free. Another advantage of Opus is its remarkable audio quality, especially at low bitrates. Moreover, this quality is achieved at very low latencies, which makes Opus a logical choice for interactive music and speech transmission. However, it is also very well suited for storage and streaming applications.
In fact, its developers call Opus the swiss army knife of audio codecs and propose it as a suitable replacement for almost all other audio codecs, with the exceptions of the lossless FLAC codec and the ultra-low-bitrate Codec2, which was designed for ham radio.

Sound Examples

Let's listen to some examples of the Opus codec in action! Jean-Marc Valin, one of the Opus developers, notes that for music, the quality of Opus at 64 kb/s compares to that of MP3 at 96 kb/s. For speech, the difference is even more pronounced.
Consider the following sound example:

Uncompressed speech (download):

At Auphonic, we offer 48 kb/s as the default value for Opus encoding, as opposed to 64 kb/s for AAC and 96 kb/s for MP3. For speech, this works rather well (note that all examples have been decoded back to .wav to ensure browser compatibility):

Opus at 48 kb/s (download):

For lower bitrates, the advantages of Opus become increasingly apparent. Consider the following examples, which compare Opus to MP3 at 24 kb/s:
MP3 at 24 kb/s (download):
Opus at 24 kb/s (download):
At 16 kb/s, MP3 really starts to struggle, whereas Opus still features excellent speech intelligibility (that's about 7MB per hour!):
MP3 at 16 kb/s (download):
Opus at 16 kb/s (download):
At even lower bitrates, the differences become even more pronounced – here is an example of Opus at the extremely low bitrate of 6 kb/s. Of course this sounds somewhat tinny (as you would expect at 6 kb/s), but compare it with an 8 kb/s MP3 file:
MP3 at 8 kb/s (download):
Opus at 6 kb/s (download):
Because of its convincing low-bitrate performance, Auphonic will offer Opus encoding all the way down to 6 kb/s, which is the lowest bitrate that Opus supports. Our hope is that this will allow media producers to reach additional audiences in low-bandwidth areas, giving these people access to content that they would otherwise be excluded from.

History

The Opus codec is based on two originally independent development efforts:
Xiph.org started work on a codec called CELT in 2007, with the intention of bridging the gap between Vorbis (their high-bitrate audio codec) and Speex (their speech codec) for applications where both high quality audio and low delay are desired. At the same time, Skype was working on SILK, the next-generation speech codec for their VoIP software.
After forces had eventually been joined in 2010, the Internet Engineering Task Force (IEFT) approved Opus for standardization as RFC 6716 two years later, and on 11 September 2012, the first stable versions were officially released.

How does Opus work?

What makes Opus particularly attractive for podcasting is the fact that it unites the benefits of music- and speech-specific audio codecs. This is made possible by running two encoders in parallel, one based on a modified CELT encoder, and the other one on an extended SILK.

Opus encoding and decoding process The Opus encoding and decoding process.
Figure from Opus, the Swiss Army Knife of Audio codecs (p.7).

The SILK codec, which is based on linear predictive coding (LPC), is primarily designed for speech transmission at low latencies, at the expense of not being very suitable for music. The CELT codec, on the other hand, is a fullband general-purpose codec based on the modified discrete cosine transform (MDCT) and targets both, speech and music, at higher bitrates.

To get the best of both worlds, Opus combines these two codecs in three different modes, which Jean-Marc Valin describes as follows:

  • The SILK only mode is particularly suitable for speech from lowband to wideband.
  • The CELT only mode is the logical choice for encoding music.
  • Opus also provides a hybrid mode that uses CELT for high frequencies (> 8kHz) and SILK for low frequencies (< 8kHz). This mode can be used to encode speech at a higher quality than the SILK-only mode can provide.

Which mode is actually used is determined implicitly through the chosen bitrate (which, by the way, can be changed on-the-fly). Future versions of the encoder will allow music/speech detection algorithms to automatically inform the choice of mode. At Auphonic, we already concern ourselves a lot with automatic music and speech detection, so our users should be able to benefit directly from such developments.

How does Opus compare to other Codecs?

The Opus codec has been subjected to a number of independent listening tests, conducted by Hydrogen Audio, Google (documentation available here and here), and Nokia, all with very convincing results regarding the performance of Opus compared to other codecs.

Codec quality comparison Opus quality compared to other codecs. Figure from the Opus website.

Hydrogen Audio test results Results of the Hydrogen Audio listening test comparing Opus to other codecs.
Figure from the Xiph website.

How can I try Opus?

Having been released only very recently, Opus is not yet widely supported. Considering its qualities, one can expect support to eventually spread quite rapidly, but let's have a look at what's already available today:

  • If you are merely interested in listening to further examples of what the codec sounds like, the Opus website provides some excellent and easy-to-compare samples and interactive demos of Opus-encoded speech and music at different bitrates.
  • If you have some Opus-encoded material that you need to play, the popular audio player foobar2000 for Windows includes an Opus decoder in its latest stable release. The cross-platform VLC player will decode Opus files in its upcoming 2.0.4 release, Android users can already listen to Opus using VLC Beta for Android (Version 0.0.4 or higher). Firefox (and Thunderbird) supports Opus from version 15, as all WebRTC-compatible browsers will eventually have to.
  • If you actually want to encode some of your own audio material, we suggest you try Opus with your next Auphonic production. Experimentally minded folks can also try the command-line program opusenc in the opus-tools package. Opus-encoded audio can be encapsulated in Ogg containers, using the .opus file extension. The encapsulation of Opus data in Matroska containers is currently under development.

Summary

Opus is an outstanding codec for lossy audio compression regarding a wide range of applications:
  • Because it is suitable for music and speech, it is particularly interesting for podcasts, audio books, radio shows and internet audio.
  • It performs really well also at very low bitrates, allowing producers to reach audiences also in areas with low connectivity.
  • Because Opus is an open standard, producers will benefit directly from further developments of the codec. Widespread support for Opus among music players and other audio applications can be expected for the near future.
At Auphonic, we are excited to adopt Opus already at this early stage and hope to contribute to its acceptance as the versatile and wonderful codec that it is.


Recent entries