Opus Interactive Audio Codec

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Opus
Opus logo2.svg
Caractéristiques
Extension
.opusVoir et modifier les données sur Wikidata
Type MIME
audio/opus[1]
PUID
Développé par
Groupe de travail IETF codec
Type de format
Audio
Contenu par
Extension du
Standard
Oui, RFC 6716[2]
Spécification
Site web
libopus
Image illustrative de l'article Opus Interactive Audio Codec

Développeur Xiph.org
Première version
Dernière version 1.1.3 ()
Écrit en C89
Environnement Multiplate-forme
Type Format audio, reference implementation
Licence Licence BSD 3 clauses
Site web opus-codec.org/downloads/

Opus (à l'origine Harmony[3]) est un format ouvert de compression audio avec pertes, libre de redevances, développé par l'Internet Engineering Task Force (IETF) dans le but d'être utilisé par des applications interactives sur Internet[4].

Opus est la proposition, en format standard, acceptée dans la compétition codec de l'IETF pour un « nouvel Internet à large bande audio », actuellement en développement par le groupe de travail IETF codec. Il est basé sur deux propositions standards, initialement séparées, de la Fondation Xiph.org et Skype Technologies : respectivement le codec CELT, à faible temps de latence, et le codec SILK, orienté sur la communication à distance.

Ses principaux développeurs sont Jean-Marc Valin (Xiph.org, Octasic, Mozilla Corporation), Koen Vos (Skype Technologies) et Timothy B. Terriberry (Mozilla Corporation). Raymond Chen (Broadcom), Gregory Maxwell (Xiph.org) et Christopher Montgomery (Xiph.org), entre autres, ont également participé.

Historique[modifier | modifier le code]

L'IETF a validé ce standard le [5],[6].

Technique[modifier | modifier le code]

Comparaison de la plage de latence en fonction du débit binaire pour différents formats.
La qualité en fonction du débit binaire pour différents formats.

Ce codec utilise deux algorithmes : celui utilisé dans SILK (créé par Skype), qui est plus orienté sur la voix humaine, et celui utilisé dans CELT (créé par la fondation Xiph.org), plus orienté sur la musique[7]. Opus choisit le plus adapté en fonction de la bande passante et du son qu'il doit transmettre. Il peut utiliser les deux de manière simultanée. De manière plus précise, Opus utilise soit la prédiction linéaire soit la transformation en cosinus discrète pour compresser le flux audio.

Selon ses concepteurs[8], ce codec est très adapté à Internet, où la question de la bande passante est cruciale, notamment pour les téléphones mobiles ou les utilisateurs ayant un faible débit de connexion. Google et Nokia ont fait des études qui confirmeraient ces affirmations[9],[10],[11].

Licence et brevets[modifier | modifier le code]

Opus étant un standard de l'IETF, il est publié sous licence BSD. Le texte descriptif peut donc être diffusé, réutilisé, modifié si et seulement s'il est marqué comme venant de l'IETF, avec un moyen de retrouver la documentation[12]. Petite incongruité dans les spécifications de l'IETF : on retrouve le code qui fait référence directement dans la spécification[13]. Ce code est publié sous licence BSD et une bibliothèque logicielle a été publiée par la fondation Xiph.org. Mozilla a proposé des fichiers binaires, servant au codage ou au décodage, pour les environnements Mac OSX et Windows.

Tout utilisateur du codec Opus ne peut engager de contentieux envers tout autre utilisateur d'Opus sur la technologie couverte par le brevet[14]. NB : ce genre de brevet est un brevet logiciel, valable uniquement aux États-Unis.

L'IETF demande, lors de la création d'une norme, si des organisations possèdent des brevets touchant le standard en création. Pour le codec Opus, plusieurs entreprises ont déposé des brevets[15]: Fondation Xiph.org (4)[16], Broadcom (3)[17],[18],[19], Skype Technologies (11)[20], Qualcomm (12)[21], Huawei Technologies (2)[22],[23].

Tous les propriétaires de ces brevets ont autorisé une utilisation ouverte sans redevance à l'IETF pour le codec Opus. L'autorisation s'étend aux brevets qui découleraient des premiers. Skype ayant été racheté par Microsoft entre temps, ce dernier a autorisé l'emploi des brevets venant de Skype Technologies[24]. Certains brevets sont aussi enregistrés auprès d'autres offices de brevets.

Prise en charge[modifier | modifier le code]

VoIP[modifier | modifier le code]

  • En février 2013, TeamSpeak 3.0.10 a ajouté le codec Opus [25].
  • En Mumble 1.2.4 a ajouté le codec Opus [26],[27].
  • Le logiciel client SFLphone ( SIP et IAX2) travaille sur l'intégration du codec[28].
  • En Jitsi 2.0 ajoute le VP8 et Opus parmi les codecs pris en charge[29],[30].
  • Le logiciel SIP csipsimple l'a intégré [31]
  • Skype: bien que les développeurs de Skype ont participé à l'élaboration[32] de ce codec (qui repose sur un algorithme utilisé dans SILK), il n'y a pour l'instant aucune date de l'utilisation de ce code dans Skype.
  • GNUnet l’utilise pour son système de VoIP[33].

Interface Web et navigateurs[modifier | modifier le code]

Le codec Opus a été proposé comme socle audio du standard WebRTC[34].

Flux de diffusion audio[modifier | modifier le code]

Systèmes d'exploitation[modifier | modifier le code]

  • Le système GNU/Linux Debian, dans sa version 7 stable appelée Wheezy, intègre les bibliothèques 'libopus' et 'opus-tool' installées par défaut[48].
  • Windows : grâce aux logiciels filtres DC-Bass Source Mod et LAV Filters, DirectShow devrait disposer de jeux de codecs permettant au système d'exploitation Windows de prendre en charge ce codec[49],[50].
  • Le système pour mobiles Android le prend en charge à partir de sa version 5[51].

Briques pour logiciels multimédia[modifier | modifier le code]

  • La brique GStreamer intègre le codec Opus dans gst-plugins-bad 0.10.36 en février 2012 [52].
  • Pour libavcodec (de FFmpeg ou Libav), il existe des rustines pour utilisation de la bibliothèque libopus[53],[54]. La version 1.1 de FFmpeg lit opus avec une bibliothèque associée par défaut[55]
  • SteamOS utilise Opus ou Vorbis pour le streaming
  • Le protocole Tox utilise Opus pour la transmission audio.

Intégration dans les firmwares[modifier | modifier le code]

Lecteurs multimédias[modifier | modifier le code]

  • VLC : le décodage est possible depuis la version 2.0.4 [58].
  • foobar2000 intègre le format natif depuis la version 1.1.14 beta[59]

Liens externes[modifier | modifier le code]

Références[modifier | modifier le code]

  1. (en) Network Working Group, « RTP Payload Format and File Storage Format for Opus Speech and Audio Codec », Opus codec, IETF, (consulté le 26 octobre 2011)
  2. (en) « Definition of the Opus Audio Codec », Request for comments no 6716, septembre 2012.
  3. (en) « Harmony became Opus », (consulté le 19 juin 2011)
  4. (en) Koen Vos, « Skype Limited's Statement about IPR related to draft-ietf-codec-opus-07 », IETF, (consulté le 26 octobre 2011)
  5. http://www.bortzmeyer.org/6716.html
  6. https://tools.ietf.org/html/rfc6716
  7. The innovation in Opus fuses SILK for voice with Xiph.Org's CELT codec for music
  8. http://opus-codec.org/comparison/
  9. http://opus-codec.org/comparison/GoogleTest1.pdf
  10. http://opus-codec.org/comparison/GoogleTest2.pdf
  11. http://research.nokia.com/files/public/%5B16%5D_InterSpeech2011_Voice_Quality_Characterization_of_IETF_Opus_Codec.pdf
  12. https://www.rfc-editor.org/rfc/rfc6716.txt
  13. et c'est elle qui fait autorité
  14. You may not do these things if you engage in Opus-related patent litigation against any user of Opus
  15. https://datatracker.ietf.org/ipr/search/?option=rfc_search&rfc_search=6716
  16. https://datatracker.ietf.org/ipr/1524/
  17. https://datatracker.ietf.org/ipr/1445/
  18. https://datatracker.ietf.org/ipr/1447/
  19. https://datatracker.ietf.org/ipr/1526/
  20. https://datatracker.ietf.org/ipr/1602/
  21. https://datatracker.ietf.org/ipr/1520/
  22. https://datatracker.ietf.org/ipr/1712/
  23. https://datatracker.ietf.org/ipr/1741/
  24. https://datatracker.ietf.org/ipr/1670/
  25. [1]
  26. Mumble-Server (Murmur) Opus-Codec
  27. Mumble (Client) Next generation audio codec
  28. Implement opus
  29. http://linuxfr.org/news/jitsi-2-0-est-sorti
  30. https://jitsi.org/index.php/GSOC/WidebandCodecs
  31. https://code.google.com/p/csipsimple/
  32. http://blogs.skype.com/en/2012/09/skype_and_a_new_audio_codec.html
  33. dépend de libopus : https://gnunet.org/dependencies
  34. (en) https://www.ietf.org/mail-archive/web/rtcweb/current/msg04953.html
  35. (en) https://www.mozilla.org/en-US/firefox/15.0/releasenotes/
  36. (en) https://bugzilla.mozilla.org/show_bug.cgi?id=674225
  37. « Formats Media supportés par les éléments HTML audio et vidéo », sur developer.mozilla.org
  38. (en) https://www.chromestatus.com/features/4891189287321600
  39. (en) « Opera 15 Changlog », sur opera.com,
  40. (en) « Opera 20 Changlog », sur opera.com,
  41. (en) « WebM, VP9 and Opus Support in Microsoft Edge », sur windows.com,
  42. (en) http://www.html5audio.org/2012/07/safari-6-arrives-bringing-web-audio-api-to-apples-browser.html
  43. (en) https://developer.apple.com/technologies/safari/html5.html
  44. (en) http://caniuse.com/opus
  45. http://lists.xiph.org/pipermail/icecast/2012-July/012237.html
  46. https://github.com/krad-radio/krad_radio
  47. http://linuxfr.org/news/airtime-2-4-l-automate-de-diffusion-pour-radio-et-webradio-est-disponible
  48. http://packages.debian.org/wheezy/opus-tools
  49. http://reino.degeelebosch.nl/dc-bsm/main.htm
  50. https://code.google.com/p/lavfilters/
  51. « MediaFormat »
  52. http://gstreamer.freedesktop.org/news/#2012-02-21T14:00:00Z
  53. http://ffmpeg.org/trac/ffmpeg/ticket/1343
  54. http://patches.libav.org/patch/24558/
  55. http://linuxfr.org/news/cube-2-sauerbraten-ffmpeg-1-1
  56. http://www.rockbox.org/mail/archive/rockbox-dev-archive-2012-08/0007.shtml
  57. http://www.rockbox.org/wiki/RockboxAsAnApplication2010
  58. http://www.clubic.com/telecharger/logiciel-lecteur-multimedia/vlc-media-player/actualite-517267-vlc-2-4-opus-blu-ray-youtube.html VLC: Add support for decoding new audio format: Opus
  59. http://www.hydrogenaudio.org/forums/?showtopic=96057