# Opus (codec audio)

Opus è un formato audio lossy aperto e royalty-free sviluppato dall'Internet Engineering Task Force in collaborazione con molte organizzazioni, tra cui IETF, Mozilla, Microsoft (per Skype), Xiph.Org, Octasic, Broadcom e Google. È stato sviluppato per avere un formato adatto sia ad applicazioni interattive in tempo reale via Internet, sia all'archiviazione di file audio. Opus incorpora tecnologie provenienti dal codec per il parlato SILK e da quello a bassa latenza CELT.
Opus può perfettamente adattarsi a velocità di trasmissione alte e basse e può essere impiegato sia come codec per il parlato sia per suoni naturali. Ha inoltre un ritardo algoritmico molto basso rispetto ai formati musicali più popolari come MP3, Vorbis e HE-AAC e si è rivelato spesso migliore sia in termini di rapporto tra qualità sia come velocità di trasmissione.

## Caratteristiche

Opus supporta velocità di trasmissione costanti e variabili da 6 kb/s a 510 kb/s, lunghezza dei frame da 2,5 ms a 60 ms e varie frequenze di campionamento da 8 kHz (con 4 kHz di larghezza di banda) a 48 kHz (con 20 kHz di larghezza di banda). Alla massima larghezza di banda l'intera gamma di audizione del sistema uditivo umano può essere riprodotta. Un flusso Opus è in grado di supportare fino a 255 canali audio.
Opus usa un ritardo di default di 20 ms, che è tipico del Voice over IP. La capacità di fare ciò in alta qualità per un audio con un'elevata velocità di trasmissione è resa possibile dalle ricerche fatte dalla Xiph.Org Foundation per il codec CELT. Il ridotto ritardo permette l'uso di Opus nelle stesse operazioni in tempo reale richieste dalla telefonia, tra cui la conversazione e la videoconferenza. Inoltre è in grado, nelle trasmissioni in tempo reale, di cambiare velocità di trasmissione, larghezza di banda e ritardo rapidamente e senza alcuna distorsione del suono.
Essendo Opus uno standard aperto, gli algoritmi sono documentati pubblicamente ed è stato rilasciato il codice sorgente. Broadcom e la Xiph.Org Foundation detengono i brevetti software su alcuni degli algoritmi del CELT, mentre Skype e Huawei possiedono alcuni degli algoritmi del SILK, tuttavia tutte quante si sono impegnate a rendere gli algoritmi disponibili liberamente per l'uso all'interno di Opus quando il codec diventerà uno standard dell'IETF.
Il codec ha tre differenti modi: due per il solo parlato e uno per qualunque tipo di audio inclusa la musica. Uno dei codec per il parlato può riprodurre l'intero spettro udibile dall'uomo. In questo caso il CELT è utilizzato per la parte superiore della frequenza dagli 8 kHz in su, mentre il SILK è usato per la parte inferiore. Per velocità di trasmissione più basse (approssimativamente inferiori a 30 kb/s) il campo di frequenze viene ristretto e la parte destinata al CELT eliminata. Per altri tipi di segnale viene eliminata la parte del SILK (specializzato nel parlato) e rimane solo quella generica del CELT.
Il codec Opus può essere inserito all'interno del contenitore Ogg. In questo caso il file dovrebbe avere estensione .opus e non .ogg come si usa invece con il codec Vorbis. È in corso l'adattamento dell'Opus al contenitore Matroska.

## Storia

Opus è stato proposto per la standardizzazione come nuovo codec dall'IETF. È basato su due precedenti standard proposti dalla Xiph.Org Foundation e da Skype.
Lo sviluppo della parte del codec derivata dal CELT deriva da studi fatti per creare un successore del Vorbis che veniva chiamato Ghost. Come nuovo codec per la voce della Xiph.Org Foundation, Opus rimpiazza il vecchio codec per il parlato della Xiph Speex. Lo sviluppo del CELT è iniziato nel novembre 2007.
La parte del codec derivata dal SILK è stata sviluppata da Skype a partire da gennaio 2007 come successore dello SVOPC, un progetto interno avviato per rendere indipendente Skype da codec di terze parti come iSAC e iLBC ed evitare il pagamento delle licenze.
Nel marzo 2009 Skype ha proposto lo sviluppo e la standardizzazione di un codec audio da parte dell'IETF. Seguì un anno di dibattiti e obiezioni alla proposta, principalmente da parte di compagnie che detenevano le licenze di altri codec. Tra queste le principali erano Polycom ed Ericsson – che possedevano i diritti sul codec G.719 – e France Télécom, Huawei e Orange, che invece avevano contribuito a creare il G.718. Il gruppo di lavoro si formò finalmente nel febbraio 2010 con la collaborazione dell'ITU-T.
In luglio fu presentato un prototipo di un formato ibrido che combinava i due codec SILK e CELT. Nel settembre 2010 Opus è stato sottoposto alla procedura di standardizzazione dell'IETF. Per un breve periodo il formato è stato chiamato Harmony, per poi prendere il nome attuale nell'ottobre 2010. Il 2 luglio 2012 l'IETF ha approvato la standardizzazione di Opus. Le specifiche finali sono state rilasciate come RFC 6716 il 10 settembre 2012.

## Supporto software

* Il browser Firefox e il client di posta elettronica Thunderbird supportano Opus a partire dalla versione 15.
* Il browser Google Chrome supporta il codec dalla versione 25.
* Il browser Safari supporta il codec dalla versione destinata su iOS 11 e macOS High Sierra..
* Il supporto a Opus è un requisito necessario per i browser compatibili con WebRTC.
* L'applicazione di messaggistica istantanea WhatsApp supporta il codec Opus.
* L'applicazione di messaggistica istantanea Telegram supporta il codec Opus.
* L'applicazione di messaggistica istantanea Wire supporta il codec Opus.
* L'applicazione VoIP open-source Jitsi supporta il codec Opus.
* L'applicazione VoIP TeamSpeak supporta il codec Opus.
* L'applicazione VoIP Discord supporta il codec Opus.
* L'applicazione VoIP Mumble usa Opus come codec principale.
* L'applicazione VoIP multipiattaforma Linphone supporta il codec Opus.
* L'applicazione VoIP Uppertel supporta il codec Opus.
* Il lettore multimediale VLC media player supporta Opus dalla versione 2.0.4.
* Il software per streaming audio DarkIce supporta Opus dalla versione 1.2.
* I lettori musicali Amarok (KDE), AIMP e Winamp supportano il codec Opus.