HOME
        TheInfoList






Opus is a lossy audio coding format developed by the Xiph.Org Foundation and standardized by the Internet Engineering Task Force, designed to efficiently code speech and general audio in a single format, while remaining low-latency enough for real-time interactive communication and low-complexity enough for low-end embedded processors.[4][5] Opus replaces both Vorbis and Speex for new applications, and several blind listening tests have ranked it higher-quality than any other standard audio format at any given bitrate until transparency is reached, including MP3, AAC, and HE-AAC.[6][7]

Opus combines the speech-oriented LPC-based SILK algorithm and the lower-latency MDCT-based CELT algorithm, switching between or combining them as needed for maximal efficiency.[4] Bitrate, audio bandwidth, complexity, and algorithm can all be adjusted seamlessly in each frame. Opus has the low algorithmic delay (26.5 ms by default)[8] necessary for use as part of a real-time communication link, networked music performances, and live lip sync; by trading-off quality or bitrate, the delay can be reduced down to 5 ms. Its delay is exceptionally low compared to competing codecs, which require well over 100 ms, yet Opus performs very competitively with these formats in terms of quality per bitrate.[9]

As an open format standardized through RFC 6716, a reference implementation called libopus is available under the New BSD License. The reference has both fixed-point and floating-point optimizations for low- and high-end devices, with SIMD optimizations on platforms that support them. All known software patents that cover Opus are licensed under royalty-free terms.[10] Opus is widely used as the voice-over-IP (VoIP) codec in applications such as WhatsApp[11][12][13] and the PlayStation 4.[14]

Spectrogram of Opus-encoded audio as bitrate rises (~32 to ~160 kbit/s) clearly shows lowpass behavior and better preservation of the band energy with CELT (compare original, Vorbis, MP3, AAC).

The Opus format is based on a combination of the full-bandwidth CELT format and the speech-oriented SILK format, both heavily modified: CELT is based on the modified discrete cosine transform (MDCT) that most music codecs use, using CELP techniques in the frequency domain for better prediction, while SILK uses linear predictive coding (LPC) and an optional Long-Term Prediction filter to model speech. In Opus, both were modified to support more frame sizes, as wel

Opus has very short latency (26.5 ms using the default 20 ms frames and default application setting), which makes it suitable for real-time applications such as telephony, Voice over IP and videoconferencing; research by Xiph led to the CELT codec, which allows the highest quality while maintaining low delay. In any Opus stream, the bitrate, bandwidth, and delay can be continually varied without introducing any distortion or discontinuity; even mixing packets from different streams will cause a smooth change, rather than the distortion common in other codecs. Unlike Vorbis, Opus does not require large codebooks for each individual file, making it more efficient for short clips of audio and more resilient.

As an open standard, the algorithms are openly documented, and a reference implementation (including the source code) is published. Broadcom and the Xiph.Org Foundation own software patents on some of the CELT algorithms, and Skype Technologies/Microsoft own some on the SILK algorithms; each offers a royalty-free perpetual for use with Opus, reserving only the right to make use of their patents to defend against infringement suits of third parties. Qualcomm, Huawei, France Telecom, and Ericsson have claimed that their patents may apply, which Xiph's legal counsel denies, and none have pursued any legal action.[10][15] The Opus license automatically and retroactively terminates for any entity that attempts to file a patent suit.

The Opus format is based on a combination of the full-bandwidth CELT format and the speech-oriented SILK format, both heavily modified: CELT is based on the modified discrete cosine transform (MDCT) that most music codecs use, using CELP techniques in the frequency domain for better prediction, while SILK uses linear predictive coding (LPC) and an optional Long-Term Prediction filter to model speech. In Opus, both were modified to support more frame sizes, as well as further algorithmic improvements and integration, such as using CELT's range encoder for both types. To minimize overhead at low bitrates, if latency is not as pressing, SILK has support for packing multiple 20 ms frames together, sharing context and headers; SILK also allows Low Bit-Rate Redundancy (LBRR) frames, allowing low-quality packet loss recovery. CELT includes both spectral replication and noise generation, similar to AAC's SBR and PNS, and can further save bits by filtering out all harmonics of tonal sounds entirely, then replicating them in the decoder.[16] Better tone detection is an ongoing project to improve quality.

The format has three different modes: speech, hybrid, and CELT. When compressing speech, SILK is used for audio frequencies up to 8 kHz. If wider bandwidth is desired, a hybrid mode uses CELT to encode the frequency range above 8 kHz. The third mode is pure-CELT, designed for general audio. SILK is inherently VBR and cannot hit a bitrate target, while CELT can always be encoded to any specific number of bytes, enabling hybrid and CELT mode when CBR is required.

SILK supports frame sizes of 10, 20, 40 and 60 ms. CELT supports frame sizes of 2.5, 5, 10 and 20 ms. Thus, hybrid mode only supports frame sizes of 10 and 20 ms; frames shorter than 10 ms will always use CELT mode. A typical Opus packet contains a single frame, but packets of up to 120 ms are produced by combining multiple frames per packet. Opus can transparently switch between modes, frame sizes, bandwidths, and channel counts on a per-packet basis, although specific applications may choose to limit this.

The reference implementation is written in C and compiles on hardware architectures with or without a C and compiles on hardware architectures with or without a floating-point unit, although floating-point is currently required for audio bandwidth detection (dynamic switching between SILK, CELT, and hybrid encoding) and most speed optimizations.

Opus packets are not self-delimiting, but are designed to be used inside a container of some sort which supplies the decoder with each packet's length. Opus was originally specified for encapsulation in Ogg containers, specified as audio/ogg; codecs=opus, and for Ogg Opus files the .opus filename extension is recommended.[2] Opus streams are also supported in Matroska,[17] WebM,[18] MPEG-TS,[19] and MP4.[20]

Alternatively, each Opus packet may be wrapped in a network packet which supplies the packet length. Opus packets may be sent over an ordered datagram protocol such as RTPAlternatively, each Opus packet may be wrapped in a network packet which supplies the packet length. Opus packets may be sent over an ordered datagram protocol such as RTP.[21]

An optional self-delimited packet format is defined in an appendix to the specification.[22] This uses one or two additional bytes per packet to encode the packet length, allowing packets to be concatenated without encapsulation.

Opus allows the following bandwidths during encoding. Opus compression does not depend on the input sample rate; timestamps are measured in 48 kHz units even if the full bandwidth is not used. Likewise, the output sample rate may be freely chosen. For example, audio can be input at 16 kHz yet be set to encode only narrowband audio.[23]

Media player support

While support in multimedia frameworks automatically enables Opus support in software which is built on top of such frameworks, several applications developers made additional efforts for supporting the Opus audio format in their software. Such support was added to AIMP,[65] Amarok,[66] cmus, Music Player

While support in multimedia frameworks automatically enables Opus support in software which is built on top of such frameworks, several applications developers made additional efforts for supporting the Opus audio format in their software. Such support was added to AIMP,[65] Amarok,[66] cmus, Music Player Daemon, foobar2000,[67] Mpxplay, MusicBee,[68] SMplayer, VLC media player,[69] Winamp[70] and Xmplay audio players; Icecast,[71] Airtime (software)[72] audio streaming software; and Asunder audio CD ripper, CDBurnerXP CD burner, FFmpeg, Libav and MediaCoder media encoding tools. Streaming Icecast radio trials are live since September 2012 and January 2013.[73][74] SteamOS uses Opus or Vorbis for streaming audio.[75]

Browser support

Opus support is mandatory for WebRTC implementations.[76] Opus is supported in Mozilla Firefox,[77] Chrom

Opus support is mandatory for WebRTC implementations.[76] Opus is supported in Mozilla Firefox,[77] Chromium and Google Chrome,[78] Blink-based Opera,[79][80] as well as all browsers for Unix-like systems relying on GStreamer for multimedia formats support. Although Internet Explorer will not provide Opus playback natively, support for the format is built into the Edge browser, along with VP9, for full WebM support.[81][82] Safari supports Opus as of iOS 11 and macOS High Sierra.[83]

VoIP support

Due to

Due to its abilities, Opus gained early interest from voice-over-IP (VoIP) software vendors. Several SIP clients, including Acrobits Softphone, CSipSimple (via additional plug-in), Empathy (via GStreamer), Jitsi,[84] Tuenti,[85] Line2 (currently only on iOS),[86] Linphone,[87] Phoner and PhonerLite,[88] SFLphone,[89] Telephone, Mumble, Discord[90] and TeamSpeak 3 voice chat software also support Opus.[91][92][93] TrueConf supports Opus in its VoIP products.[94] Asterisk lacked builtin Opus support for legal reasons,[95] but a third-party patch was available for download[96] and official support via a binary blob was added in September 2016.[97] Tox P2P videoconferencing software uses Opus exclusively.[98] Classified-ads distributed messaging app sends raw opus frames inside TLS socket in its VoIP implementation.[99]

Opus is widely used as the voice codec in WhatsApp,[11]voice codec in WhatsApp,[11][13][12] which has over 1.5 billion users worldwide.[100] WhatsApp uses Opus at 8–16 kHz sampling rates,[11][12] with the Real-time Transport Protocol (RTP).[13] The PlayStation 4 video game console also uses the CELT/Opus codec for its PlayStation Network system party chat.[14] It is also used in the Zoom videoconferencing app.[101]

Since version 3.13, Rockbox enables Opus playback on supported portable media players, including some products from the iPod series by Apple, devices made by iriver, Archos and Sandisk, and on Android devices using "Rockbox as an Application".[102][103] All recent Grandstream IP phones support Opus audio both for encoding and decoding. OBihai OBi1062, OBi1032 and OBi1022 IP phones all support Opus. Recent BlueSound wireless speakers support Opus playback.[104] Devices running Hiby OS, like the Hiby R3, are capable of decoding Opus files natively.

Many broadcast IP codecs include Opus such as those manufactured by Comrex, GatesAir and Tieline.Comrex, GatesAir and Tieline.[105]