From XiphWiki
Revision as of 19:49, 24 May 2012 by Gmaxwell (Talk | contribs) (What is Opus Custom?: typo)

Jump to: navigation, search
Opus logo trans.png

What is Opus?

Opus is a format for compressing audio to efficiently transmit it across networks. Opus allows for music-grade high quality audio at low data rates while not delaying the signal much. Opus is distinguished from most formats for high quality audio (AAC, Vorbis, MP3) by having low delay and it is distinguished from most low delay formats (G.711, GSM, Speex) by supporting high audio quality.

Who created Opus?

Opus was created by combining Xiph.Org's CELT development codec and Skype's SILK codec as part of a public cooperation in the IETF codec working group. Opus has been in development since late 2007, and has been recommended by the working group for promotion as a proposed standard.

Is the SILK part of Opus compatible with the SILK implementation shipped in Skype?

No. The SILK codec, as submitted by Skype to the IETF, was heavily modified as part of its integration within Opus. The modifications are significant enough that it is not possible to just write a "translator" and even sharing code between Opus and the "old SILK" would be highly non-trivial.

What are the licensing requirements?

The reference Opus source code is released under the BSD license, which is a very permissive Open Source license. Commercial use and distribution (including in proprietary software) is permitted, provided that some conditions specified in the license are met.

Opus is also covered by some patents, for which royalty-free usage rights are granted, under conditions that the authors believe are compatible with most (all?) open source licenses, including the GPL (v2 and v3).

How does the quality of Opus compare to other codecs?

What is Opus Custom?

Opus Custom is an optional part of the Opus standard that allows for sampling rates other than 8, 12, 16, 24, or 48 kHz and frame sizes other than multiples of 2.5 ms. Opus Custom requires additional out-of-band signalling that Opus does not normally require and disables many of Opus' coding modes. Also, because it is an optional part of the specification, using Opus Custom may lead to compatibility problems. For these reasons, its use is discouraged outside of very specific applications, e.g.:

  • ultra low delay applications where synchronization with the soundcard buffer is important.
  • low-power embedded applications where compatibility with others is not important.

For almost all other types of applications, Opus Custom should not be used.

How do I use 44.1 kHz or some other sampling rate not directly supported by Opus?

Tools which read or write Opus should inter-work with other sampling rate by transparently performing sample rate conversion behind the scenes.

Software developers should not use Opus Custom for 44.1 kHz support, except in the very specific circumstances outlined above.

Which implementation should I get?

While the implementation in the latest IETF draft (and eventually RFC) of Opus is what defines the standard, it is likely not the best and most up-to-date implementation. The Opus website was set up for the purpose of continually improving the implementation while still conforming to the standard. All Opus implementations are compatible but better Opus encoders can deliver higher quality audio and some implementations may be faster or slower or work better on different platforms.