Opus Interactive Audio Codec

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Opus
Image illustrative de l'article Opus Interactive Audio Codec

Extension .opus
Type MIME audio/opus[1]
Développé par Groupe de travail IETF codec
Type de format Audio
Contenu par Ogg, Matroska
Extension du SILK, CELT
Standard(s) Oui, RFC 6716[2]
Spécification Format ouvert
libopus
Développeur Xiph.org
Première version 26 août 2012
Dernière version 1.1 (5 décembre 2013)
É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 10 septembre 2012[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 si 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 environnement 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 ses membres 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 office de brevets.

Prise en charge[modifier | modifier le code]

VoIP[modifier | modifier le code]

  • Teamspeak 3.0.10 devrait ajouter le codec Opus [25].
  • En juin 2013 Mumble 1.2.4 à ajouté le codec Opus [26],[27].
  • Le logiciel client SFLphone ( SIP et IAX2) travaille sur l'intégration du codec[28].
  • En mars 2013 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]

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[45].
  • 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[46],[47].

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 [48].
  • Pour libavcodec (de FFmpeg ou Libav), il existe des rustines pour utilisation de la bibliothèque libopus[49],[50]. La version 1.1 de FFmpeg lit opus avec une bibliothèque associée par défaut[51]
  • SteamOS utilise Opus ou Vorbis pour le streaming

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

Lecteurs multimédia[modifier | modifier le code]

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

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,‎ July 4, 2011 (consulté le October 26, 2011)
  2. (en) Request for comments no 6716.
  3. (en) « Harmony became Opus »,‎ 2010-10-15 (consulté le 2011-06-19)
  4. (en) Koen Vos, « Skype Limited's Statement about IPR related to draft-ietf-codec-opus-07 », IETF,‎ July 23, 2011 (consulté le October 26, 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. https://www.ietf.org/mail-archive/web/rtcweb/current/msg04953.html
  35. https://www.mozilla.org/en-US/firefox/15.0/releasenotes/
  36. https://bugzilla.mozilla.org/show_bug.cgi?id=674225
  37. https://developer.mozilla.org/en-US/docs/Media_formats_supported_by_the_audio_and_video_elements#Ogg_Opus
  38. http://my.opera.com/community/forums/topic.dml?id=1491802
  39. « Google intègre Opus à Chrome 27 », sur developpez.com,‎ 4 avril 2013
  40. http://www.html5audio.org/2012/07/safari-6-arrives-bringing-web-audio-api-to-apples-browser.html
  41. https://developer.apple.com/technologies/safari/html5.html
  42. http://lists.xiph.org/pipermail/icecast/2012-July/012237.html
  43. https://github.com/krad-radio/krad_radio
  44. http://linuxfr.org/news/airtime-2-4-l-automate-de-diffusion-pour-radio-et-webradio-est-disponible
  45. http://packages.debian.org/wheezy/opus-tools
  46. http://reino.degeelebosch.nl/dc-bsm/main.htm
  47. https://code.google.com/p/lavfilters/
  48. http://gstreamer.freedesktop.org/news/#2012-02-21T14:00:00Z
  49. http://ffmpeg.org/trac/ffmpeg/ticket/1343
  50. http://patches.libav.org/patch/24558/
  51. http://linuxfr.org/news/cube-2-sauerbraten-ffmpeg-1-1
  52. http://www.rockbox.org/mail/archive/rockbox-dev-archive-2012-08/0007.shtml
  53. http://www.rockbox.org/wiki/RockboxAsAnApplication2010
  54. 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
  55. http://www.hydrogenaudio.org/forums/?showtopic=96057