Page tree

Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.
Sv translation

Opus is a data format for lossy audio data compression with special suitability for interactive real-time transmissions over the Internet.

It is described as an international open standard in RFC 6716. A frequency transformation and Linear Predictive Coding (LPC) are used as basic methods. It enables particularly high sound quality and particularly low delay in transmissions.


Image Added

Range of possible bit rates and algorithmic delays in comparison

Opus has a particularly low codec latency to minimize latency in real-time applications when processing the signal typically generated just before the compressed transmission. Opus works with block lengths of 2.5 to 20 (60) ms with dynamic, artifact-free switching between different block lengths. Depending on the mode, there are also 2.5 to 5 ms at Lookahead. It allows constant and variable bit rates over a very wide range of 6 kbit/s to 510 kbit/s and the imaging of the entire human auditory range. Only two channels (stereo) can be coupled at a time. More channels can be displayed by multiplexing them (independently or in pairs) together into a container file. EBU recommendation R 128 is supported for receiver-side loudness adjustments.

The procedure is openly documented as an open standard and a reference implementation is published in source code. Parts of the procedure are encumbered with software patents, whereby the right holders have agreed to unlimited use of their patents in the context of the use of the codec including future versions of the standard. However, all reserve the right to use their patents to defend against patent claims by third parties.

Opus is a hybrid process of CELT and a heavily modified, incompatible version of SILK. The method has three modes, two for pure speech signals and one for music, for example. The speech modes provide a mode in which the entire human auditory range is mapped, whereby the algorithms of CELT, which are essentially based on frequency transformation (MDCT), are responsible for an upper frequency component from 8 kHz, which are essentially based on Linear Predictive Coding (LPC) SILK algorithms for the lower one. For low bit rates (below about 30 kBit/s) the frequency range can be limited and the CELT layer can be omitted. For other signal types, the SILK layer specializing in speech signals can be switched off and only the unspecialized CELT can be used. Starting with version 0.9.2 (March 2011), it is possible to switch seamlessly between these modes during operation and the encoder automatically selects the mode by default.

Opus data can be packed in Ogg containers. The content of such Ogg-Opus data streams is then specified with audio/ogg; codecs=opus and for Ogg-Opus files the file name extension .opus is recommended. Support for encapsulating Opus in the Matroska container format is being worked on.

Audio quality

Image Added

Comparison of coding efficiency characteristics

In comparative hearing tests, Opus at low bit rates is superior in quality to the HE-AAC codecs previously dominated by the use of proprietary spectral band replication. At bit rates of 12 kbit/s and below, a version of the codec from mid-February 2011 was subject to the AMR codecs from GSM for voice signals, which qualitatively mark the state of the art here. Opus-internally, the hybrid mode was superior for speech signals at bit rates between about 20 and 48 kbit/s - above that the purely MDCT-based mode and below that the purely LPC-based mode. In contrast to other common transformation methods, strong tonal signals are particularly difficult for Opus and complex passages can be displayed relatively sparingly.


Opus is a hybrid codec that combines two different, originally separate processes. A transformation layer (originally CELT) works on the basis of the modified discrete cosine transformation (MDCT) and approaches of CELP (codebook for excitation, but in the frequency domain). A layer specializing in speech signals (originally SILK) is based on Linear Predictive Coding (LPC). The original SILK has been modified, including support for 10 millisecond blocks. The common area coding of the two parts of a hybrid data stream was taken over by CELT. The LPC part operates internally at a sampling frequency of 16 kHz. The encoder has a built-in sample rate converter. To compensate for the lower lookahead of the CELT signal, it is delayed accordingly. SILK has a greater algorithmic delay to minimize the administrative data generated by the transmission protocols in its typical application scenario. For example, lower latencies are possible in pure CELT operation.

Transformation Layer (CELT)

The transformation layer of Opus functions technically largely the same as the abandoned independent CELT. However, it has been modified and further developed for integration with SILK. Support for 20 millisecond blocks and signalizable deviations from the fixed allocation of available bits to the (bar) bands with a so-called "allocation tilt" and a so-called "band boost" have been added.

Persons and organisations involved

Opus is recommended by the Internet Engineering Task Force (IETF) as Request for Comments (RFC) 6716 as an international open standard for lossy audio data compression on the Internet and was developed by the codec working group at IETF using personnel from and based on initially separate proposals from Xiph.Org Foundation and Skype Technologies S.A. (today Microsoft). Main developers are Jean-Marc Valin (Xiph.Org, Octasic, Mozilla Corporation), Koen Vos (Skype) and Timothy B. Terriberry (Mozilla Corporation). Also involved were Raymond Chen (Broadcom), Gregory Maxwell (Xiph.Org) and Christopher Montgomery (Xiph.Org).

Mozilla pays the main developer Valin a salary for his development work on Opus as part of a paid job. The browser manufacturer Opera Software also explicitly supports Opus as a new, open standard. Google Inc. is committed to establishing Opus as a license-free standard format on the Internet. Microsoft's Skype department continues to be actively involved in the standardisation process as the (co-)initiator. Juin-Hwey (Raymond) Chen from Broadcom contributed a pre and post filter to pitch prediction in CELT. Other participants in the standardisation process at the IETF were representatives of the Chair of Communication Networks at the University of Tübingen and its commercial spin-off Symonics, Polycom and Cisco Systems.

Broadcom and the Xiph.Org Foundation hold patents relating to CELT, Skype/Microsoft patents are relevant to the SILK part. Alleged patent claims by Qualcomm and Huawei proved incorrect.

Version 1.1

Meanwhile, an experimental development branch of the reference coder has started to work towards a version 1.1 with significantly better sound quality. On December 21, 2012, after more than a year of development, the first alpha version of the 1.1 series was released. On July 11, 2013, the beta phase for version 1.1 began and version 1.0.3 was released, which fixes some bugs and adopts the surround sound API of the 1.1 series. The finished version 1.1 was released on December 5, 2013.

Version 1.1 of the reference coder has reportedly achieved significantly better sound quality and efficiency, especially with particularly tonal sequences, by taking advantage of more possibilities of the format and improved coding decisions. Among other things, it exploits the possibilities of the bit rate variability (VBR) format by dynamically distributing the available bit rate between frequency bands ("dynalloc" - "band boost", "allocation tilt"). It has an unlimited VBR mode and adapts the bit rate more aggressively to the complexity of the source material. The new VBR mode now tries to achieve a constant quality across all files and no longer to reach the specified target bit rate per file. The encoder has been calibrated to approach the specified target bit rate on average for a large quantity of encoded material with a wide mix of different, typical useful signals. Several new analysis steps investigate signal characteristics and inform coding decisions. Among other things, the bit rate is now increased by assessing the tonality of particularly tonal passages and automatically switched between the integrated LPC-based speech codec, MDCT-based coding and hybrid mode by recognizing speech signals. For spatial sound formats with more than two channels, dynamic bit rate assignment to the individual channels is now performed using masking effects between the channels and there have been quality improvements for the LFE channel. Due to initial code optimizations, the entire reference codec now has a significantly higher operating speed, especially on ARM devices.

Other new features include the possibility of predictive detection of signal characteristics for operating scenarios where time delays are not critical, the more efficient display of strongly correlated stereo signals, the rejection of DC components (3 Hz high pass), the temporal variation of the bit rate based on the volume and a level limiter to prevent hard clipping.

On November 26, 2015, version 1.1.1 with assembler optimizations for x86 (SSE, SSE2, SSE4.1), MIPS and ARM (NEON) was released.


Include Page
Howto Footer - uni-en
Howto Footer - uni-en

Content by Label
cqllabel = "codec"

Sv translation

Opus ist ein Datenformat zur verlustbehafteten Audiodatenkompression mit spezieller Eignung für interaktive Echtzeitübertragungen über das Internet.

Es ist als ein internationaler Offener Standard in RFC 6716 beschrieben. Als grundlegende Verfahren werden eine Frequenztransformation und Linear Predictive Coding (LPC) genutzt. Es ermöglicht besonders hohe Klangqualität und besonders geringe Verzögerung in Übertragungen.


Image Added
Spanne der möglichen Bitraten und algorithmischen Verzögerungen im Vergleich

Opus hat eine besonders niedrige Codec-Latenz, um bei Echtzeit-Anwendungen in der Verarbeitung des typischerweise unmittelbar vor der komprimierten Übertragung erzeugten Signales möglichst wenig Verzögerung (Latenzzeit) zu verursachen. Opus arbeitet mit Blocklängen von 2,5 bis 20 (60) ms mit dynamischem, artefaktfreiem Wechsel zwischen unterschiedlichen Blocklängen. Hinzu kommen je nach Modus noch 2,5 bis 5 ms an Lookahead. Es erlaubt konstante und variable Bitraten über einen sehr weiten Bereich von 6 kbit/s bis zu 510 kbit/s und die Abbildung des gesamten menschlichen Hörbereiches. Es können nur je zwei Kanäle (Stereo) gekoppelt werden. Mehr Kanäle können dargestellt werden, indem sie (unabhängig oder eben eventuell paarweise gekoppelt) zusammen in eine Containerdatei gemultiplext werden. Für empfängerseitige Lautheits-Anpassungen wird die EBU-Empfehlung R 128 unterstützt.

Das Verfahren ist als offener Standard offen dokumentiert und eine Referenzimplementierung im Quellcode veröffentlicht. Teile des Verfahrens sind mit Softwarepatenten belastet, wobei die Rechteinhaber unbeschränkter Verwendung ihrer Patente im Rahmen der Verwendung des Codecs einschließlich zukünftiger Versionen des Standards zugestimmt haben. Dabei behalten sich jedoch alle vor, ihre Patente zur Abwehr von Patentklagen Dritter einzusetzen.

Opus ist ein Hybrid-Verfahren aus CELT und einer stark modifizierten, inkompatiblen Version von SILK. Das Verfahren kennt dreierlei Modi, zwei für reine Sprachsignale und einen unspezialisierten für beispielsweise Musik. Bei den Sprach-Modi steht ein Modus zur Verfügung, in dem der gesamte menschliche Hörbereich abgebildet wird, wobei die im Wesentlichen auf Frequenztransformation (MDCT) basierenden Algorithmen von CELT für einen oberen Frequenzanteil ab 8 kHz, die im Wesentlichen auf Linear Predictive Coding (LPC) basierenden SILK-Algorithmen für den unteren zuständig sind. Für niedrige Bitraten (sinnvoll unterhalb etwa 30 kBit/s) kann der Frequenzbereich eingeschränkt werden und die CELT-Schicht ausgelassen werden. Für andere Signalarten kann die auf Sprachsignale spezialisierte SILK-Schicht abgeschaltet und ausschließlich das unspezialisierte CELT benutzt werden. Ab Version 0.9.2 (März 2011) kann im laufenden Betrieb nahtlos zwischen diesen Modi umgeschaltet werden und wählt der Encoder in Voreinstellung den Modus automatisch.

Opus-Daten können in Ogg-Container verpackt werden. Der Inhalt solcher Ogg-Opus-Datenströme wird dann mit audio/ogg; codecs=opus angegeben und für Ogg-Opus-Dateien wird die Dateinamenserweiterung .opus empfohlen. An Unterstützung zur Verkapselung von Opus in dem Container-Format Matroska wird gearbeitet.


Image Added
Kodierungseffizienz-Kennlinie im Vergleich

In vergleichenden Hörtests zeigt sich Opus bei niedrigen Bitraten den bisher durch die Verwendung der proprietären Spektralbandreplikation dominanten HE-AAC-Codecs qualitativ überlegen. Bei Bitraten von 12 kbit/s und darunter unterlag eine Version des Codecs von Mitte Februar 2011 bei Sprachsignalen den AMR-Codecs aus GSM, die hier qualitativ den Stand der Technik markieren. Für Sprachsignale zeigte sich Opus-intern der Hybrid-Modus bei Bitraten zwischen etwa 20 und 48 kbit/s überlegen – darüber der rein MDCT-basierte und darunter der rein LPC-basierte Modus. Im Unterschied zu anderen gängigen Transformationsverfahren sind für Opus stark tonale Signale besonders schwierig und komplexe Passagen hingegen relativ sparsam darstellbar.


Opus ist ein aus zwei verschiedenen, ursprünglich separaten Verfahren kombinierter Hybridcodec. Eine Transformations-Schicht (ursprünglich CELT) arbeitet auf Basis der modifizierten diskreten Kosinustransformation (MDCT) und Ansätzen von CELP (Codebuch zur Anregung, jedoch in der Frequenzdomäne). Eine auf Sprachsignale spezialisierte Schicht (ursprünglich SILK) basiert auf Linear Predictive Coding (LPC). Das ursprüngliche SILK wurde modifiziert und unter anderem Unterstützung für 10-Millisekunden-Blöcke hinzugefügt. Die gemeinsame Bereichskodierung der beiden Anteile eines Hybrid-Datenstromes wurde von CELT übernommen. Der LPC-Teil arbeitet intern mit einer Abtastfrequenz von 16 kHz. Der Kodierer besitzt einen eingebauten Abtastratenkonverter. Zur Kompensierung des geringeren Lookahead des CELT-Signales wird dieses entsprechend verzögert. SILK hat eine größere algorithmische Verzögerung, um in seinem typischen Einsatzszenario die durch die Übertragungsprotokolle anfallenden Verwaltungsdaten zu minimieren. So sind beispielsweise im reinen CELT-Betrieb niedrigere Latenzen möglich.

Transformations-Schicht (CELT)

Die Transformations-Schicht von Opus funktioniert technisch weitgehend gleich dem aufgegebenen eigenständigen CELT. Es wurde allerdings für die Integration mit SILK modifiziert und auch weiterentwickelt. Hinzugekommen sind Unterstützung für 20-Millisekunden-Blöcke und signalisierbare Abweichungen von der festgelegten Zuweisung verfügbarer Bits auf die (Bark-) Bänder mit einem sogenannten „allocation tilt“ und einem sogenannten „band boost“.

Beteiligte Personen und Organisationen

Opus wird von der Internet Engineering Task Force (IETF) als Request for Comments (RFC) 6716 als internationaler Offener Standard für verlustbehaftete Audiodatenkomprimierung im Internet empfohlen.Er wurde im Standardisierungsverfahren bei der IETF von der Codec-Arbeitsgruppe mit Personal von und auf Basis von zunächst separaten Vorschlägen der Xiph.Org Foundation und Skype Technologies S.A. (heute Microsoft) entwickelt. Hauptentwickler sind Jean-Marc Valin (Xiph.Org, Octasic, Mozilla Corporation), Koen Vos (Skype) und Timothy B. Terriberry (Mozilla Corporation). Weiterhin beteiligt waren Raymond Chen (Broadcom), Gregory Maxwell (Xiph.Org) und Christopher Montgomery (Xiph.Org).

Mozilla zahlt dem Hauptentwickler Valin im Rahmen einer bezahlten Anstellung ein Gehalt für seine Entwicklungsarbeit an Opus. Auch der Browser-Hersteller Opera Software unterstützt Opus explizit als neuen, offenen Standard. Google Inc. setzt sich für die Etablierung von Opus als lizenzkostenfreies Standardformat im Internet ein. Die Skype-Abteilung von Microsoft ist als (Mit-) Initiator des Standardisierungsprozesses weiterhin aktiv an diesem beteiligt. Juin-Hwey (Raymond) Chen von Broadcom steuerte einen Vor- und Nachfilter zur Tonhöhen-Vorhersage in CELT bei. Weitere Beteiligte im Standardisierungsverfahren bei der IETF waren Vertreter des Lehrstuhls für Kommunikationsnetze der Universität Tübingen beziehungsweise deren kommerzieller Unternehmensausgründung Symonics, von Polycom und von Cisco Systems.

Broadcom und die Xiph.Org Foundation halten Patente mit Bezug auf CELT, Patente von Skype/Microsoft sind für den SILK-Teil von Belang. Angebliche Patentansprüche von Qualcomm und Huawei erwiesen sich als unzutreffend.

Version 1.1

Mittlerweile wurde in einem experimentellen Entwicklungszweig des Referenz-Kodierers begonnen auf eine Version 1.1 mit deutlich besserer Klangqualität hinzuarbeiten. Am 21. Dezember 2012 erschien nach über einem Jahr Entwicklungszeit eine erste Alpha-Version der 1.1-Reihe. Am 11. Juli 2013 begann die Beta-Phase für Version 1.1 und wurde Version 1.0.3 veröffentlicht, die einige Fehler behebt und die Raumklang-API der 1.1-Serie übernimmt. Die fertige Version 1.1 wurde am 5. Dezember 2013 veröffentlicht.

Version 1.1 des Referenzkodierers erreicht durch Ausnutzung von mehr Möglichkeiten des Formates und verbesserte Kodierentscheidungen berichtetermaßen deutlich bessere Klangqualität bzw. Effizienz,insbesondere bei besonders tonalen Sequenzen. Er nutzt dazu unter anderem mit einer dynamischen Verteilung der verfügbaren Bitrate zwischen Frequenzbändern („dynalloc“ – „band boost“, „allocation tilt“) die Möglichkeiten des Formates für Variabilität der Bitrate (VBR) mehr aus. Er hat einen unbeschränkten VBR-Modus und passt die Bitrate aggressiver der Komplexität des Ausgangsmaterials an. Bei dem neuen VBR-Modus wird nunmehr versucht auch dateiübergreifend eine konstante Qualität zu erreichen und nicht mehr pro Datei die angegebene Zielbitrate zu erreichen. Der Kodierer wurde kalibriert, um sich bei einer größeren Menge kodierten Materials mit einer breiten Mischung unterschiedlicher, typischer Nutzsignale durchschnittlich der angegebenen Zielbitrate anzunähern. Mehrere neue Analyse-Schritte untersuchen Signalcharakteristiken und informieren Kodierentscheidungen. Unter anderem wird nun anhand einer Einschätzung der Tonalität bei besonders tonalen Passagen gezielt die Bitrate erhöht und durch eine Erkennung von Sprachsignalen automatisch zwischen dem integrierten LPC-basierten Sprachcodec, dem MDCT-basierten Kodierung und dem Hybrid-Modus gewechselt. Für Raumklang-Formate mit mehr als zwei Kanälen erfolgt nun eine dynamische Bitraten-Zuteilung auf die einzelnen Kanäle unter Ausnutzung von Maskierungseffekten zwischen den Kanälen und es gab Qualitätsverbesserungen für den LFE-Kanal. Durch erst anfängliche Code-Optimierungen hat der gesamte Referenz-Codec nun eine deutlich höhere Arbeitsgeschwindigkeit, besonders auf ARM-Geräten.

Weitere Neuerungen sind die Möglichkeit vorausschauender Erkennung von Signalcharakteristiken für Betriebsszenarien wenn zeitliche Verzögerungen unkritisch sind, die effizientere Darstellung stark korrelierter Stereo-Signale, das Verwerfen von Gleichstrom-Anteilen (3-Hz-Hochpass), das zeitliche Variieren der Bitrate anhand der Lautstärke und ein Pegelbegrenzer zur Verhinderung von hartem Clipping.

Am 26. November 2015 wurde die Version 1.1.1 mit Assembler-Optimierungen für x86 (SSE, SSE2, SSE4.1), MIPS und ARM (NEON) veröffentlicht.


Include Page
Howto Footer - de
Howto Footer - de

Content by Label
cqllabel = "codec"