Opus (lydformat)

opus
logo
Filutvidelse : .opus
MIME-type : lyd / ogg, lyd / opus
Utviklet av: IETF Codec arbeidsgruppe
Første utgivelse: 11. september 2012
Type: Lyd
Oppbevart i: Ogg , WebM
Utvidet av: CELT , SILK
Standard (er) : RFC 6716 (september 2012)

RFC 8251 (oktober 2017)

Nettsted : opus-codec.org

Opus er et dataformat for lossy audio data komprimering med spesiell egnethet for interaktiv sanntidsoverføringer over Internett.

Det er beskrevet som en internasjonal åpen standard i RFC 6716 . Frekvensomforming og lineær prediktiv koding (LPC) brukes som grunnleggende metoder . Det muliggjør spesielt høy lydkvalitet og spesielt lav forsinkelse i sendinger.

funksjoner

Utvalg av mulige bithastigheter og algoritmiske forsinkelser i sammenligning

Opus har en spesielt lav kodeklatens for å forårsake så liten forsinkelse ( latens ) som mulig i sanntidsapplikasjoner når det behandles signalet som vanligvis genereres umiddelbart før den komprimerte overføringen . Opus fungerer med blokklengder på 2,5 til 20 (60) ms med dynamisk, gjenstandsfri veksling mellom forskjellige blokklengder. Avhengig av modus er det også 2,5 til 5 ms lookahead. Det tillater konstante og variable bithastigheter over et veldig bredt område fra 6 kbit / s til 510 kbit / s og kartlegging av hele menneskets hørselsområde . Bare to kanaler (stereo) kan kobles . Flere kanaler kan vises ved å multipleksere dem (uavhengig eller muligens koblet parvis) sammen i en containerfil. EBU-anbefaling R 128 støttes for justering av lydstyrke i mottakerenden .

Prosedyren er åpent dokumentert som en åpen standard, og en referanseimplementering er publisert i kildekoden. Deler av prosessen er beheftet med programvarepatenter , der rettighetshaverne har gitt samtykke til ubegrenset bruk av patenter innenfor rammen av bruken av kodeken, inkludert fremtidige versjoner av standarden. Imidlertid forbeholder alle dem seg retten til å bruke patenter for å forsvare seg mot patentsøksmål fra tredjeparter.

Opus er en hybridprosess av CELT og en sterkt modifisert, inkompatibel versjon av SILK . Metoden kjenner til tre slags moduser, to for rene talesignaler og en uspesialisert for eksempel for musikk. I talemodusene er en modus tilgjengelig der hele menneskets hørselsområde er kartlagt, med CELT-algoritmene, som i det vesentlige er basert på frekvensomforming (MDCT), for en øvre frekvenskomponent fra 8 kHz, som i det vesentlige er basert på Lineær Predictive Coding (LPC) -baserte SILK-algoritmer er ansvarlige for den nedre. For lave bithastigheter (som betyr under ca. 30 kbit / s) kan frekvensområdet begrenses og CELT-laget kan utelates. For andre typer signaler kan SILK-laget, som spesialiserer seg i talesignaler, slås av, og bare den uspesialiserte CELT kan brukes. Fra versjon 0.9.2 (mars 2011) kan du bytte sømløst mellom disse modusene under drift, og koderen velger automatisk modus som standard.

Opus-data kan pakkes i Ogg- containere. Innholdet i slike Ogg-Opus-datastrømmer blir deretter audio/ogg; codecs=opusspesifisert, og filtypen .opusanbefales for Ogg-Opus-filer . Det jobbes med støtte for innkapslingen av Opus i Matroska container-format .

Lydkvalitet

Kodningseffektivitetskurve i sammenligning

I komparative lyttetester til Opus viser lave bithastigheter til dags dato ved bruk av proprietær spektralbåndsreplikasjon, dominerende HE-AAC overlegen i kvalitetskoder. Ved bithastigheter på 12 kbit / s og derunder var en versjon av kodeken fra midten av februar 2011 underlagt AMR- kodene fra GSM for talesignaler , som representerer toppmoderne når det gjelder kvalitet. For stemmesignaler viste hybridmodus seg å være overlegen internt ved bithastigheter mellom 20 og 48 kbit / s - over den rent MDCT-baserte og under den rent LPC-baserte modusen. I motsetning til andre vanlige transformasjonsmetoder er sterkt tonale signaler spesielt vanskelig for Opus, og komplekse passasjer kan representeres relativt sparsomt.

teknologi

Spektrogram for et Opus-kodet musikkopptak med forskjellige gjennomsnittlige bithastigheter (≈32 til ≈160 kbit / s) viser tydelig lavpass-oppførselen til koderen og den relativt gode bevaringen av båndenergien ved CELT (sammenlign original, Vorbis, MP3, AAC ).

Opus er en hybrid kodek som kombinerer to forskjellige, opprinnelig separate prosesser. Et transformasjonslag (opprinnelig CELT) fungerer på grunnlag av den modifiserte diskrete cosinustransformasjonen (MDCT) og nærmer seg fra CELP ( kodebok for eksitasjon, men i frekvensdomenet). Et lag som spesialiserer seg på talesignaler (opprinnelig SILK) er basert på Linear Predictive Coding (LPC). Den originale SILK er modifisert og blant annet støtte for 10 millisekunder blokker er lagt til. Fellesartskodingen for de to delene av en hybrid datastrøm ble overtatt av CELT. LPC-delen fungerer internt med en samplingsfrekvens på 16 kHz. Koderen har en innebygd samplingsfrekvensomformer . For å kompensere for den nedre utseendet på CELT-signalet, blir det forsinket tilsvarende. SILK har en større algoritmisk forsinkelse for å minimere de administrative dataene som oppstår fra overføringsprotokollene i sitt typiske applikasjonsscenario. For eksempel er lavere ventetid mulig i ren CELT-operasjon.

Transformation Layer (CELT)

Se også artikkel CELT, seksjonsteknologi

Teknisk sett fungerer transformasjonslaget til Opus stort sett på samme måte som den forlatte uavhengige CELT. Den ble imidlertid modifisert og videreutviklet for integrering med SILK. Lagt til støtte for blokker på 20 millisekunder og signaliserbare avvik fra den definerte tildelingen av tilgjengelige biter til (Bark) -båndene med en såkalt "allocation tilt" og en såkalt "band boost".

Involverte personer og organisasjoner

Opus anbefales av Internet Engineering Task Force (IETF) som Request for Comments (RFC) 6716 som den internasjonale åpne standarden for tap av komprimering av lyddata på Internett. Den ble utviklet i standardiseringsprosessen ved IETF av codec-arbeidsgruppen med ansatte fra og på grunnlag av opprinnelig separate forslag fra Xiph.Org Foundation og Skype Technologies SA (nå Microsoft ). Hovedutviklerne er Jean-Marc Valin (Xiph.Org, Octasic, Mozilla Corporation ), Koen Vos (Skype) og Timothy B. Terriberry (Mozilla Corporation). Raymond Chen ( Broadcom ), Gregory Maxwell (Xiph.Org) og Christopher Montgomery (Xiph.Org) var også involvert.

Mozilla betaler hovedutvikler Valin en lønn for sitt utviklingsarbeid på Opus som en del av en lønnet jobb. Nettleserprodusenten Opera Software støtter også eksplisitt Opus som en ny, åpen standard. Google Inc. er forpliktet til å etablere Opus som et lisensfritt standardformat på Internett. Microsofts Skype-avdeling er fortsatt aktivt involvert i standardiseringsprosessen som (med) initiativtaker. Broadcoms Juin-Hwey (Raymond) Chen bidro med et pre- og post-filter for pitch prediction i CELT. Andre deltakere i standardiseringsprosessen ved IETF var representanter for lederen for kommunikasjonsnettverk ved Universitetet i Tübingen og dets kommersielle spin-off Symonics, Polycom og Cisco Systems .

Broadcom og Xiph.Org Foundation har patenter knyttet til CELT, og Skype / Microsoft-patenter er relevante for SILK-delen. Påståtte patentkrav fra Qualcomm og Huawei viste seg å være feil.

historie

Utviklingen av CELT- delen går tilbake til hensynet til en etterfølger for Vorbis , som hvis etterfølger den også kan betraktes med hensyn til funksjoner. Videre, som den nye talekodeken til Xiph Foundation , erstatter Opus sin eldre talekodek Speex , som også er forløperprosjektet til hovedutvikleren Jean-Marc Valin, som han fikk erfaring med i utformingen av lydkodeker. Praktisk arbeid har pågått på CELT siden november 2007. SILK- delen, som er utviklet av Skype siden januar 2007, er oppfølgingsprosjektet til SVOPC , som, som en intern utvikling, skal gjøre selskapet uavhengig av de eksterne, gebyrbaserte , lisensierte løsningene iSAC og iLBC .

Se også artikkel CELT , historikseksjon og artikkel SILK , historikseksjon

I mars 2009 oppfordret Skype IETF til å utvikle og standardisere en bredbånds lydkodek. Nesten et år gikk da med lange og heftige debatter om dannelsen av en arbeidsgruppe. Representanter for forskjellige selskaper som var involvert i standardiseringen av patenterte konkurrerende formater uttrykte innvendinger mot starten av standardiseringsarbeidet for en kodek uten lisensavgifter. Representanter for selskapene Polycom og Ericsson - produsenter og lisensselgere av G.719 - samt France Télécom , Huawei og Orange Labs (departementet France Télécom), som var involvert i G.718 , dukket opp. I februar 2010 ble endelig arbeidsgruppen til stede, som til og med var sikret støtte fra tilsvarende studiegruppe 16 i ITU-T .

I juli ble en første prototype av et hybridformat publisert som kombinerte de to kodekandidatene SILK og CELT sendte inn - den originale versjonen av Opus. Formatet ble sendt til IETF for standardisering i september 2010. I mellomtiden ble det kjent som "Harmony" en kort stund før det fikk sitt nåværende navn i oktober 2010. Den bitstrøm format er foreløpig satt siden begynnelsen av februar 2011, med forbehold om endelige endringer. I slutten av juli 2011 fikk Jean-Marc Valin en lønnet jobb hos Mozilla Corporation for å jobbe (mer) på Opus. IETF-arbeidsgruppens siste innkalling til endringer i bitstrømformatet ble utgitt i november 2011. 2. juli 2012 ble formatet akseptert av IETF. Programvaren hadde vært i utgivelseskandidatfasen siden 8. august . Den endelige spesifikasjonen og versjon 1.0 og 1.0.1 av referanseprogramvaren ble offisielt publisert 11. september 2012.

Støtte for formatet ble relativt raskt innebygd i en rekke programvare. Samme år var det mange tilsvarende utviklingsversjoner tilgjengelig, inkludert innflytelsesrike og populære prosjekter som Firefox -nettleseren , Debian- operativsystemet og VLC-mediaspilleren .

Versjon 1.1

I mellomtiden har en eksperimentell utviklingsgren av referansekoderen begynt å jobbe mot en versjon 1.1 med betydelig bedre lydkvalitet. 21. desember 2012, etter mer enn et års utvikling, ble den første alfaversjonen av 1.1-serien utgitt. Betafasen for versjon 1.1 begynte 11. juli 2013, og versjon 1.0.3 ble utgitt, som fikser noen feil og tar over surround-lyd-API i 1.1-serien. Den ferdige versjonen 1.1 ble publisert 5. desember 2013.

Versjon 1.1 av referansekoderen har angivelig oppnådd betydelig bedre lydkvalitet og effektivitet, spesielt med spesielt tonesekvenser, ved å bruke flere alternativer i formatet og forbedrede kodingsbeslutninger. Blant annet bruker den mulighetene for formatet for bithastighetsvariabilitet (VBR) i større grad med en dynamisk fordeling av den tilgjengelige bithastigheten mellom frekvensbånd ("dynalloc" - "band boost", "allocation tilt") . Den har en ubegrenset VBR-modus og tilpasser bithastigheten mer aggressivt til kildematerialets kompleksitet. Med den nye VBR-modusen blir det nå forsøkt å oppnå en konstant kvalitet på tvers av filer og ikke lenger å oppnå den spesifiserte målbithastigheten per fil. Koderen ble kalibrert for å tilnærme den spesifiserte målbithastigheten i gjennomsnitt med en stor mengde kodet materiale med en bred blanding av forskjellige, typiske nyttige signaler. Flere nye analysetrinn undersøker signalegenskaper og informerer kodingsbeslutninger. Basert på en vurdering av tonaliteten til spesielt tonale passasjer, økes bithastigheten blant annet på en målrettet måte, og gjennom gjenkjenning av talesignaler bytter systemet automatisk mellom den integrerte LPC-baserte talekodeken, MDCT-basert koding og hybridmodus. For surroundlydformater med mer enn to kanaler, er det nå en dynamisk bithastighetsallokering til de enkelte kanalene ved bruk av maskeringseffekter mellom kanalene, og det har vært kvalitetsforbedringer for LFE-kanalen. På grunn av de første kodeoptimaliseringene har hele referansekodeken nå en betydelig høyere driftshastighet, spesielt på ARM-enheter.

Ytterligere innovasjoner er muligheten for prediktiv deteksjon av signalkarakteristikker for driftsscenarier når tidsforsinkelser ikke er kritiske, jo mer effektiv visning av sterkt korrelerte stereosignaler, kassering av likestrømskomponenter (3 Hz høypass ), bitens tidsvariasjon hastighet basert på volum og en nivåbegrenser for å forhindre hard klipping .

Versjon 1.1.1 med assembleroptimaliseringer for x86 (SSE, SSE2, SSE4.1), MIPS og ARM (NEON) ble utgitt 26. november 2015 .

programvare

libopus

Opus logo2.svg
Libopus 1.3 screenshot.png
Grunnleggende data

utvikler Xiph.Org Foundation
Forlagsår 2010
Gjeldende  versjon 1.3.1
(12. april 2019)
operativsystem plattformuavhengig
programmeringsspråk C.
kategori Lydkomprimering
Tillatelse BSD-lisens
Github

Opus er åpent dokumentert, og med libopus er et gratis programbibliotek tilgjengelig. Den er skrevet i C og kan kompileres for arkitekturer med og uten flytende enheter.

FFmpeg har hatt sin egen innfødte Opus-koder og dekoder siden 2017 .

Det medfølgende diagnostiske verktøyet "opusinfo" rapporterer detaljert teknisk informasjon om Opus-filer, inkludert riktigheten av bitstrømformatet. Det er en spin-off av ogginfo fra vorbis-tools og er derfor tilgjengelig under versjon 2 av GPL, i motsetning til kodere og dekodere .

Formater støtte

Det er omfattende støtte i programvare for enkel fil- eller streamavspilling, IP-telefoni eller lydstreaming, i nettlesere, operativsystemer og andre. Viktige eksempler:

Støtte er tilgjengelig på mange plattformer:

  • Referanseimplementeringen er tilgjengelig for et stort antall operativsystemer og maskinvareplattformer.
  • Tilsvarende DirectShow- filtre og er tilgjengelige for Windows
  • I viktige GNU / Linux-operativsystemer ( Debian og etterkommere som Ubuntu , Fedora ) kan programvare som referanseimplementeringer og multimedierammene GStreamer og libavcodec ( FFmpeg / Libav ) installeres direkte fra standardpakkkildene.
  • Den mobile plattformen Android støtter fra versjon 5 (Lollipop) Opus innebygd i Matroska - containerformat . Opus i Ogg- containere, som er den vanligste formen spesielt for podcaster, ble ikke støttet. Fra versjon 7 ble Opus også støttet i Ogg-containeren, men bare filer med utvidelsen * .ogg ble anerkjent som sådan, og ikke * .opus, noe som gjorde støtten bare veldig begrenset i praksis. Til slutt, fra Android 8 og utover, støttes Opus i alle vanlige varianter. Det finnes også en rekke programvarealternativer for Opus-avspilling.
  • Den alternative firmwaren Rockbox støtter en rekke bærbare avspillingsenheter (inkludert produkter fra iPod-serien fra Apple og iriver og Archos-enheter).

weblenker

Commons : Opus (lydkodek)  - album som inneholder bilder, videoer og lydfiler

Individuelle bevis

  1. a b Timothy B. Terriberry, Ron Lee, Ralph Giles:  RFC 7845  - Ogg Encapsulation for Opus Audio Codec . April 2016. Seksjon 9: Innholdstype. (Oppdatert av RFC 8486  - Internet Engineering Task Force - engelsk).
  2. Network Working Group: RTP Payload Format og File Storage Format for Opus Speech and Audio Codec . I: Opus codec . IETF. 4. juli 2011. Hentet 26. oktober 2011.
  3. et b lydopptak ( minnesmerke av den opprinnelige datert 11 februar 2013 i Internet Archive ) Omtale: The arkivet koblingen ble satt inn automatisk og har ennå ikke blitt sjekket. Vennligst sjekk originalen og arkivlenken i henhold til instruksjonene, og fjern deretter denne meldingen. fra møtet til IETF Codec Working Group på IETF78-konferansen i Nagasaki, Japan (MP3, ~ 70 MiB)  @1@ 2Mal: Webachiv / IABot / nagasaki.bogus.com
  4. JM. Valin, K. Vos, T. Terriberry:  RFC 6716 . - Definisjon av Opus Audio Codec . [Errata: RFC 6716 ]. September 2012. (engelsk).
  5. wiki.xiph.org
  6. ^ Neste generasjons åpen latekodek slår HE-AAC , Slashdot kunngjøring 14. april 2011
  7. Anssi Ramo, Henri Toukomaa: Karakterisering av stemmekvalitet av IETF Opus Codec, Proceedings of Interspeech 2011, Firenze, Italia, august 2011.
  8. ^ Christian Hoene (redaktør), Jean-Marc Valin, Koen Vos, Jan Skoglund: Oppsummering av Opus lyttetestresultater. Internet Engineering Task Force, 17. mai 2013, åpnet 17. januar 2017 .
  9. ↑ Audio codec "Opus" er den nye Internett-standarden. I: heise.de. Hentet 12. september 2012 .
  10. lists.xiph.org
  11. hacks.mozilla.org
  12. ietf.org
  13. heise.de
  14. ietf.org
  15. ietf.org
  16. hydrogenaudio.org
  17. jmspeex.livejournal.com
  18. Volker Zota: Universal audio codec Opus på vei til Internett-standarden . heise.de; 5. juli 2012
  19. lists.xiph.org
  20. lists.xiph.org
  21. git.xiph.org
  22. hydrogenaudio.org
  23. lists.xiph.org
  24. Opus Codec (seksjon Nyheter )
  25. jmspeex.livejournal.com
  26. hydrogenaudio.org
  27. hydrogenaudio.org
  28. ^ Jean-Marc Valin: Opus Audio Codec . Red.: The Xiph.Org Foundation & The Mozilla Corporation. November 2012, Gjeldende utvikling, s. 50 (engelsk, jmvalin.ca [PDF]). jmvalin.ca ( Memento av den opprinnelige fra 5 mars 2016 i Internet Archive ) Omtale: The arkivet koblingen ble satt inn automatisk og har ennå ikke blitt sjekket. Vennligst sjekk originalen og arkivlenken i henhold til instruksjonene, og fjern deretter denne meldingen.  @1@ 2Mal: Webachiv / IABot / jmvalin.ca
  29. Christopher Montgomery : Opus-oppdatering 20130712: 1.1 Beta-utgivelse (demo 3). I: Montys demosider. Xiph.Org Foundation , 14. juli 2013, åpnet 17. juli 2013 .
  30. Volker Zota: Universal lydkodek Opus akselerert . heise, 28. november 2013
  31. opus-codec.org
  32. Lisens
  33. ^ Opus innfødt FFmpeg-koder under utvikling , HydrogenAudio
  34. FFmpeg Codecs-dokumentasjon
  35. trac.videolan.org
  36. hydrogenaudio.org
  37. Dekodingstøtte fra versjon 3.20 Build 1125 Beta 1 fra 2. september 2012, se aimp.ru
  38. Informasjon om implementeringen av Opus Codec i versjon 1.2. I: Discord Support. Hentet 6. januar 2019 (amerikansk engelsk).
  39. mumble.sourceforge.net ( Memento av den opprinnelige fra 09.07.2014 i Internet Archive ) Omtale: The arkivet koblingen ble automatisk satt inn og ennå ikke kontrollert. Vennligst sjekk originalen og arkivlenken i henhold til instruksjonene, og fjern deretter denne meldingen.  @1@ 2Mal: Webachiv / IABot / mumble.sourceforge.net
  40. phonerlite.de ( Memento av den opprinnelige fra 26 september 2012 i Internet Archive ) Omtale: The arkivet koblingen ble satt inn automatisk og har ennå ikke blitt sjekket. Vennligst sjekk originalen og arkivlenken i henhold til instruksjonene, og fjern deretter denne meldingen.  @1@ 2Mal: Webachiv / IABot / www.phonerlite.de
  41. projects.savoirfairelinux.com ( Minne til originalen fra 17. desember 2012 i webarkivet archive.today ) Info: Arkivlenken ble automatisk satt inn og ennå ikke sjekket. Vennligst sjekk originalen og arkivlenken i henhold til instruksjonene, og fjern deretter denne meldingen.  @1@ 2Mal: Webachiv / IABot / projects.savoirfairelinux.com
  42. jitsi.org ( Memento av den opprinnelige fra 20 mai 2012 i Internet Archive ) Omtale: The arkivet koblingen ble satt inn automatisk og har ennå ikke blitt sjekket. Vennligst sjekk originalen og arkivlenken i henhold til instruksjonene, og fjern deretter denne meldingen. jitsi.org ( Memento av den opprinnelige fra 27 oktober 2012 i Internet Archive ) Omtale: The arkivet koblingen ble satt inn automatisk og har ennå ikke blitt sjekket. Vennligst sjekk originalen og arkivlenken i henhold til instruksjonene, og fjern deretter denne meldingen.  @1@ 2Mal: Webachiv / IABot / jitsi.org  @1@ 2Mal: Webachiv / IABot / jitsi.org
  43. developer.mozilla.org ( Memento av den opprinnelige fra 27 juni 2010 i Internet Archive ) Omtale: The arkivet koblingen ble satt inn automatisk og har ennå ikke blitt sjekket. Vennligst sjekk originalen og arkivlenken i henhold til instruksjonene, og fjern deretter denne meldingen.  @1@ 2Mal: Webachiv / IABot / developer.mozilla.org
  44. heise online: To lydkodeker for sanntidskommunikasjon i nettleseren. I: heise online. Hentet 29. august 2016 .
  45. lists.xiph.org
  46. github.com  ( siden er ikke lenger tilgjengelig , søk i nettarkiverInfo: Linken ble automatisk merket som defekt. Vennligst sjekk lenken i henhold til instruksjonene, og fjern deretter denne meldingen. @1@ 2Mal: Dead Link / github.com  
  47. reino.degeelebosch.nl ( Memento av den opprinnelige fra 20 september 2012 i Internet Archive ) Omtale: The arkivet koblingen ble satt inn automatisk og har ennå ikke blitt sjekket. Vennligst sjekk originalen og arkivlenken i henhold til instruksjonene, og fjern deretter denne meldingen.  @1@ 2Mal: Webachiv / IABot / reino.degeelebosch.nl
  48. lavfilters.googlecode.com ( Memento av den opprinnelige fra 03.01.2013 i nettarkivet archive.today ) Omtale: The arkivet koblingen ble satt inn automatisk og har ennå ikke blitt sjekket. Vennligst sjekk originalen og arkivlenken i henhold til instruksjonene, og fjern deretter denne meldingen.  @1@ 2Mal: Webachiv / IABot / lavfilters.googlecode.com
  49. Packages.debian.org
  50. packages.ubuntu.com
  51. apps.fedoraproject.org
  52. gstreamer.freedesktop.org
  53. trac.ffmpeg.org
  54. patches.libav.org ( Minne til originalen datert 20. desember 2013 i Internet Archive ) Info: Arkivkoblingen ble satt inn automatisk og er ennå ikke sjekket. Vennligst sjekk originalen og arkivlenken i henhold til instruksjonene, og fjern deretter denne meldingen.  @1@ 2Mal: Webachiv / IABot / patches.libav.org
  55. Støttede medieformater. I: Android.com. Hentet 28. januar 2016 .
  56. Definisjon av Android 7-kompatibilitet. Hentet 3. september 2018 .
  57. VLC
  58. "Rockbox as an Application" (RaaA), rockbox.org
  59. Firefox
  60. GoneMAD Music Player (GMMP) for Android, versjon 1.4 eller nyere , se gonemadmusicplayer.blogspot.de
  61. Neutron Music Player for Android, versjon 1.63 eller høyere , se neutronmp.com
  62. forum.powerampapp.com
  63. BS.Player for Android, se forum.bsplayer.com
  64. rockbox.org