Opus (ljudformat) -
Opus (audio format)

Från Wikipedia, den fria encyklopedin
Opus logo2.svg
Filnamnstillägg
.opus
Internetmedietyp audio/ogg
audio/opus (RTP)
Utvecklad av IETF codec arbetsgrupp
Initial release 11 september 2012
 (
2012-09-11
)
Typ av format Audio
Innehållet av Ogg , Matroska , WebM , MPEG-TS
Förlängd från SILK , CELT
Standard RFC 6716
Ja
Hemsida
libopus
Libopus 1.3.1 screenshot.png
Utvecklare Xiph.Org Foundation
Initial release 26 augusti 2012
 (
2012-08-26
)
Stabil frisättning
1.3.1 / 12 april 2019
; 2 år sedan
 (
2019-04-12
)
Skrivet i C89
Plattform Plattformsoberoende
Typ Ljudkod , referensimplementering
Licens 3-klausul BSD-licens
Hemsida

Opus är ett förlorande ljudkodningsformat utvecklat av Xiph.Org Foundation och standardiserat av Internet Engineering Task Force , utformat för att effektivt koda tal och allmänt ljud i ett enda format, samtidigt som den förblir låg latens nog för interaktiv kommunikation i realtid och låg -komplexitet nog för low-end inbäddade processorer. Opus ersätter både Vorbis och Speex för nya applikationer, och flera blindlyssningstester har rankat det högre kvalitet än något annat standardljudformat vid en given bitrate tills transparens uppnås, inklusive MP3 , AAC och HE-AAC .

; genom avvägningskvalitet eller bithastighet kan fördröjningen reduceras till 5 ms. Dess fördröjning är exceptionellt låg jämfört med konkurrerande codecs, som kräver långt över 100 ms, men Opus presterar mycket konkurrenskraftigt med dessa format när det gäller kvalitet per bitrate.

Som ett öppet format standardiserat genom RFC 6716 är en referensimplementering som kallas libopus tillgänglig under den nya BSD -licensen . Referensen har både fastpunkts- och flytpunktsoptimeringar för låg- och avancerade enheter, med SIMD- optimeringar på plattformar som stöder dem. Alla kända programvarupatent som täcker Opus är licensierade enligt royaltyfria villkor. Opus används ofta som voice-over-IP (VoIP) codec i applikationer som WhatsApp och PlayStation 4 .

Funktioner

Möjliga bitrate- och latenskombinationer jämfört med andra ljudformat

Opus stöder konstant och variabel bithastighetskodning från 6  kbit /s till 510 kbit/s (eller upp till 256 kbit/s per kanal för flerkanalsspår), bildstorlekar från 2,5 ms till 60 ms och fem samplingshastigheter från 8 kHz (med 4 kHz bandbredd) till 48 kHz (med 20 kHz bandbredd, det mänskliga hörselområdet ). En Opus-ström kan stödja upp till 255 ljudkanaler , och den tillåter kanalkoppling mellan kanaler i grupper om två med kodning på mellansidan.

Opus har mycket kort latens (26,5 ms med standardramarna på 20 ms och standardapplikationen), vilket gör den lämplig för realtidsapplikationer som telefoni , Voice over IP och videokonferenser ; forskning från Xiph ledde till CELT -codec, som tillåter högsta kvalitet samtidigt som låg fördröjning bibehålls. I vilken Opus -ström som helst kan bithastigheten, bandbredden och fördröjningen ständigt varieras utan att det införs någon förvrängning eller diskontinuitet; även blandning av paket från olika strömmar kommer att orsaka en smidig förändring, snarare än den distorsion som är vanlig i andra codecs. Till skillnad från Vorbis kräver Opus inte stora kodböcker för varje enskild fil, vilket gör den mer effektiv för korta ljudklipp och mer motståndskraftig.

Som en öppen standard dokumenteras algoritmerna öppet och en referensimplementering (inklusive källkoden ) publiceras. Broadcom och Xiph.Org Foundation äger programvarupatent på några av CELT -algoritmerna, och Skype Technologies /Microsoft äger några på SILK -algoritmerna. var och en erbjuder en royaltyfri perpetual för användning med Opus, och förbehåller sig bara rätten att använda sina patent för att försvara sig mot tredje parts överträdelse. Qualcomm , Huawei , France Telecom och Ericsson har hävdat att deras patent kan gälla, vilket Xiphs advokat förnekar, och ingen har vidtagit några rättsliga åtgärder. Opus -licensen upphör automatiskt och retroaktivt för alla enheter som försöker lämna in patentansökan.

Spektrogram för Opus-kodat ljud när bithastigheten stiger (~ 32 till ~ 160 kbit/s) visar tydligt lågpassbeteende och bättre bevarande av bandenergin med CELT (jämför original, Vorbis, MP3, AAC ).

Opus-formatet är baserat på en kombination av CELT- formatet med full bandbredd och det talorienterade SILK- formatet, båda kraftigt modifierade: CELT är baserat på den modifierade diskreta cosinustransformen (MDCT) som de flesta musikkodek använder, med CELP- tekniker i frekvensdomän för bättre förutsägelse, medan SILK använder linjär prediktiv kodning (LPC) och ett valfritt Long-Term Prediction-filter för att modellera tal. I Opus modifierades båda för att stödja fler bildstorlekar, liksom ytterligare algoritmiska förbättringar och integration, till exempel att använda CELT: s intervallkodare för båda typerna. För att minimera overhead vid låga bithastigheter, om latensen inte är lika pressande, har SILK stöd för att packa ihop flera 20 ms ramar, dela sammanhang och rubriker; SILK tillåter också ramar för låg bithastighetsredundans (LBRR), vilket möjliggör återhämtning av paketförlust av låg kvalitet. CELT inkluderar både spektralreplikation och brusgenerering, liknande AAC: s SBR och PNS, och kan ytterligare spara bitar genom att filtrera bort alla övertoner av tonljud helt och sedan replikera dem i avkodaren. Bättre tondetektering är ett pågående projekt för att förbättra kvaliteten.

Formatet har tre olika lägen: tal, hybrid och CELT. Vid komprimering av tal används SILK för ljudfrekvenser upp till 8 kHz. Om bredare bandbredd önskas använder ett hybridläge CELT för att koda frekvensområdet över 8 kHz. Det tredje läget är ren-CELT, utformat för allmänt ljud. SILK är i sig VBR och kan inte träffa ett bitrate -mål, medan CELT alltid kan kodas till ett visst antal byte, vilket möjliggör hybrid- och CELT -läge när CBR krävs.

SILK stöder ramstorlekar på 10, 20, 40 och 60 ms. CELT stöder ramstorlekar på 2,5, 5, 10 och 20 ms. Således stöder hybridläget endast bildstorlekar på 10 och 20 ms; ramar kortare än 10 ms använder alltid CELT -läge. Ett typiskt Opus -paket innehåller en enda ram, men paket på upp till 120 ms produceras genom att kombinera flera bildrutor per paket. Opus kan transparent växla mellan lägen, bildstorlekar, bandbredder och kanaltal per paket, även om specifika applikationer kan välja att begränsa detta.

Referensimplementeringen är skriven i C och sammanställs på hårdvaruarkitekturer med eller utan en floating-point-enhet , även om floating-point för närvarande krävs för detektering av ljudbandbredd (dynamisk växling mellan SILK, CELT och hybridkodning) och de flesta hastighetsoptimeringar.

Behållare

Opus-paket är inte självavgränsande, utan är utformade för att användas i en behållare av något slag som förser avkodaren med varje pakets längd. Opus specificerades ursprungligen för inkapsling i Ogg -behållare, angavs som audio/ogg; codecs=opusoch för Ogg Opus -filer .opusrekommenderas filnamnstillägget. Opus-strömmar stöds också i Matroska , WebM , MPEG-TS och MP4 .

Alternativt kan varje Opus -paket förpackas i ett nätverkspaket som levererar paketlängden. Opus -paket kan skickas över ett beställt datagramprotokoll som RTP .

Ett valfritt självavgränsat paketformat definieras i en bilaga till specifikationen. Detta använder en eller två ytterligare byte per paket för att koda paketlängden, så att paket kan sammanfogas utan inkapsling.

Bandbredd och samplingshastighet

Opus tillåter följande bandbredder under kodning. Opus -komprimering beror inte på inmatningsprovhastigheten; tidsstämplar mäts i 48 kHz -enheter även om hela bandbredden inte används. På samma sätt kan utgående samplingshastighet väljas fritt. Till exempel kan ljud matas in vid 16 kHz men ändå ställas in för att koda endast smalbandsljud.

Förkortning Audio
bandbredd
Effektiv
provhastighet
NB (smalband)
0
4 kHz
0
8 kHz
MB (mellanband)
0
6 kHz
12 kHz
WB (bredband)
0
8 kHz
16 kHz
SWB (superbredband) 12 kHz 24 kHz
FB (helband) 20 kHz 48 kHz

Historia

Opus föreslogs för standardisering av ett nytt ljudformat vid IETF, vilket så småningom accepterades och beviljades av codec -arbetsgruppen . Den är baserad på två initialt separata standardförslag från Xiph.Org Foundation och Skype Technologies SA (nu Microsoft ). Dess främsta utvecklare är Jean-Marc Valin (Xiph.Org, Octasic, Mozilla Corporation ), Koen Vos (Skype) och Timothy B. Terriberry (Xiph.Org, Mozilla Corporation). Bland andra Juin-Hwey (Raymond) Chen ( Broadcom ), Gregory Maxwell (Xiph.Org, Wikimedia ) och Christopher Montgomery (Xiph.Org) var också inblandade.

Utvecklingen av CELT -delen av formatet går tillbaka till tankar om en efterträdare för Vorbis under arbetsnamnet Ghost . Som en nyare talkodec från Xiph.Org Foundation ersätter Opus Xiphs äldre talkodec Speex , ett tidigare projekt av Jean-Marc Valin. CELT har arbetats med sedan november 2007.

SILK-delen har utvecklats på Skype sedan januari 2007 som efterträdare till deras SVOPC , ett internt projekt för att göra företaget oberoende av tredjeparts codecs som iSAC och iLBC och respektive licensbetalningar.

I mars 2009 föreslog Skype utveckling och standardisering av ett bredbandigt ljudformat inom IETF. Nästan ett år gick med mycket debatt om bildandet av en lämplig arbetsgrupp . Representanter för flera företag som deltog i standardiseringen av patentskyddade konkurrerande format, inklusive Polycom och Ericsson- skaparna och licensgivarna av G.719- liksom France Télécom , Huawei och Orange Labs (avdelning för France Télécom), som var inblandade i skapandet av G.718 , uttalade invändningar mot starten av standardiseringsprocessen för ett royaltyfritt format. (Några av motståndarna skulle senare hävda patenträttigheter som Xiph avfärdade; se ovan.) Arbetsgruppen bildades slutligen i februari 2010, och till och med motsvarande studiegrupp 16 från ITU-T lovade att stödja sitt arbete.

I juli 2010 presenterades en prototyp av ett hybridformat som kombinerade de två föreslagna formatkandidaterna SILK och CELT. I september 2010 överlämnades Opus till IETF som förslag på standardisering. Under en kort tid gick formatet under namnet Harmony innan det fick sitt nuvarande namn i oktober 2010. I början av februari 2011 frystes bitströmformatet preliminärt, med förbehåll för de senaste ändringarna. I slutet av juli 2011 anställdes Jean-Marc Valin av Mozilla Corporation för att fortsätta arbeta med Opus.

Finalisering (1.0)

I november 2011 utfärdade arbetsgruppen den sista uppmaningen till ändringar av bitströmformatet. Bitströmmen har frysts sedan 8 januari 2012. Den 2 juli 2012 godkändes Opus av IETF för standardisering. Referensprogramvaran gick in i kandidatläget för release den 8 augusti 2012. Den slutliga specifikationen släpptes som RFC 6716 den 10 september 2012. och version 1.0 och 1.0.1 av referensimplementeringsbiblioteket släpptes dagen efter.

Den 11 juli 2013 kom libopus 1.0.3 med buggfixar och ett nytt Surround -ljud -API som förbättrar kanaltilldelning och kvalitet, särskilt för LFE .

1.1

Den 5 december 2013 släpptes libopus 1.1, med övergripande hastighetsförbättringar och betydande förbättringar av kodarens kvalitet: Tonalitetsuppskattning ökar bithastigheten och kvaliteten för tidigare problematiska prover , som cembalo; automatiserad tal-/musikdetektering förbättrar kvaliteten i blandat ljud; stereo på mellansidan minskar bithastighetsbehovet för många låtar; bandprecisionsförstärkning för förbättrade transienter; och DC -avvisning under 3 Hz. Två nya VBR -lägen har lagts till: obegränsad för mer konsekvent kvalitet och tidsmässig VBR som ökar högre ramar och generellt förbättrar kvaliteten.

libopus 1.1.1 släpptes den 26 november 2015 och 1.1.2 den 12 januari 2016, både med hastighetsoptimeringar och buggfixar. Den 15 juli 2016 släpptes version 1.1.3 och innehåller buggfixar, optimeringar, dokumentationsuppdateringar och experimentellt Ambisonics -arbete .

1.2

libopus 1.2 Beta släpptes den 24 maj 2017. libopus 1.2 släpptes den 20 juni 2017. Förbättringar införda 1.2 gör det möjligt att skapa fullbandsmusik med bithastigheter så låga som 32 kbit/s och bredbandstal på bara 12 kbit/ s.

libopus 1.2 inkluderar valfritt stöd för de avkodare specifikationsändringar som görs i utkast till RFC 8251, vilket förbättrar kvaliteten på utmatningen från sådana låghastighetsströmmar.

1.3

libopus 1.3 släpptes den 18 oktober 2018. Den stora versionen av Opus 1.3 ger igen kvalitetsförbättringar, nya funktioner och buggfixar. Ändringar sedan 1.2.x inkluderar:

  • Förbättringar av röstaktivitetsdetektering (VAD) och tal-/musikklassificering med hjälp av ett återkommande neuralt nätverk (RNN)
  • Stöd för ambisonics -kodning med hjälp av kanalmappningsfamiljer 2 och 3
  • Förbättringar av stereotalskodning med låg bithastighet
  • Använda bredbands -talkodning ner till 9 kb/s (mediumband används inte längre)
  • Gör det möjligt att använda SILK till bitrates runt 5 kb/s
  • Mindre kvalitetsförbättring på toner
  • Aktiverar speciella fixar i RFC 8251 som standard
  • Säkerhets-/härdningsförbättringar

Anmärkningsvärda buggfixar inkluderar:

  • Fixar till CELT PLC
  • Bandbreddsdetektering fixar

1.3.1

libopus 1.3.1 släpptes den 12 april 2019. Denna mindre version av Opus 1.3.1 löser ett problem med analysen av filer med digital tystnad (alla nollor), särskilt på x87- builds (påverkar mestadels 32-bitars builds). Den innehåller också två nya funktioner:

  • En ny OPUS_GET_IN_DTX -fråga för att veta om kodaren är i DTX -läge (sista ramen var antingen en komfortbrusram eller inte alls kodad)
  • Ett nytt (och fortfarande experimentellt) CMake -baserat byggsystem som så småningom är tänkt att ersätta VS2015 -byggsystemet (autotools ett kommer att stanna)

Kvalitetsjämförelse och prestanda med låg latens

Jämförelse av kodningseffektivitet mellan Opus och andra populära ljudformat

Opus presterar bra med både låga och höga bithastigheter .

I lyssningstester runt 64 kbit/s visar Opus överlägsen kvalitet jämfört med HE-AAC- codecs, som tidigare var dominerande på grund av deras användning av den patenterade tekniken för spektralbandreplikation (SBR). I lyssningstester runt 96 kbit/s visar Opus något överlägsen kvalitet jämfört med AAC och betydligt bättre kvalitet jämfört med Vorbis och MP3 .

Opus har mycket låg algoritmisk fördröjning, en nödvändighet för att användas som en del av en låg audio latens kommunikationslänk, som kan tillåta naturlig konversation, nätverksmusikföreställningar eller läppsynk på live-evenemang. Total algoritmisk fördröjning för ett ljudformat är summan av fördröjningar som måste uppstå i kodaren och avkodaren för en levande ljudström oberoende av bearbetningshastighet och överföringshastighet, till exempel buffring av ljudprover i block eller ramar, vilket möjliggör fönsteröverlappning och möjligen möjliggör brusformande blick framåt i en avkodare och andra former av blick framåt, eller för en MP3-kodare, användning av bitreservoar .

Total envägs latens under 150 ms är det föredragna målet för de flesta VoIP- system, för att möjliggöra en naturlig konversation med svängning som påverkas lite av fördröjning. Musiker känner sig vanligtvis i tid med upp till cirka 30 ms ljudfördröjning, ungefär i överensstämmelse med fusionstiden för Haas-effekten , även om det kan hjälpa att matcha uppspelningsfördröjning av varje användares eget instrument med tur och retur-latens. Det föreslås för läppsynkronisering att cirka 45–100 ms ljudfördröjning kan vara acceptabel.

Opus tillåter byte av minskad kvalitet eller ökad bithastighet för att uppnå en ännu mindre algoritmisk fördröjning (minst 5,0 ms). Medan referensimplementeringens standard Opus -ram är 20,0 ms lång, kräver SILK -skiktet ytterligare 5,0 ms lookahead plus 1,5 ms för omsampling, vilket ger en standardfördröjning på 26,5 ms. När CELT -skiktet är aktivt kräver det 2,5 ms utseende för fönsteröverlappning som en matchande fördröjning på 4,0 ms som standard läggs till för att synkronisera med SILK -lagret. Om kodaren instantieras i det särskilda begränsade lägre fördröjningsläget , avlägsnas 4,0 ms matchningsfördröjning och SILK -skiktet inaktiveras, vilket möjliggör en minimal algoritmisk fördröjning på 5,0 ms.

Stöd

Formatet och algoritmerna är öppet dokumenterade och referensimplementeringen publiceras som gratis programvara . Xiphs referensimplementering kallas libopus och ett paket som heter opus-tools tillhandahåller kommandoradskodare och dekoderverktyg. Den publiceras under villkoren i en BSD-liknande licens . Det är skrivet i C och kan kompileras för hårdvaruarkitekturer med eller utan flytande enhet . Det medföljande diagnostikverktyget opusinfo rapporterar detaljerad teknisk information om Opus -filer, inklusive information om standardöverensstämmelse för bitströmformatet. Den är baserad på ogginfo från vorbis-verktygen och är därför, till skillnad från kodaren och avkodaren, tillgänglig under villkoren i version 2 av GPL .

Implementeringar

innehåller errata.

Den FFmpeg projektet kodare och avkodare implementeringar inte härrör från referensbiblioteket.

Libopus referensbibliotek har portats till både C# och Java som en del av ett projekt som heter Concentus. Dessa portar offrar prestanda för att enkelt integreras i plattformsoberoende applikationer.

programvara

Digital Radio Mondiale-  ett digitalt radioformat för AM-frekvenser-kan sända och ta emot Opus-ljud (om än inte erkänt i officiell standard) med hjälp av Dream- programvarudefinierad radio .

Den Wikimedia Foundation sponsrade en fri och öppen källkod på nätet JavaScript Opus kodare för webbläsare som stöder de nödvändiga HTML5 funktioner.

Sedan 2016 har WhatsApp använt Opus som ljudfilformat.

Signalen bytte från Speex till Opus ljudkodek för bättre ljudkvalitet i början av 2017.

Support för operativsystem

De flesta slutanvändarprogramvara är beroende av multimedia-ramverk som tillhandahålls av operativsystemet . Native Opus codec-stöd är implementerat i de flesta större multimediaramar för Unix-liknande operativsystem, inklusive GStreamer , FFmpeg och Libav- bibliotek.

Google har lagt till stöd för Opus ljuduppspelning i Android 5.0 "Lollipop" . Det var dock begränsat till Opus -ljud inkapslat i Matroska -behållare, till exempel .mkvoch .webmfiler. Android 7.0 "Nougat" introducerade stöd för Opus -ljud inkapslat i .oggbehållare. Android 10 har äntligen lagt till inbyggt stöd för .opus tillägg .

På grund av tillägget av WebRTC -stöd i Apples WebKit -återgivningsmotor, kommer macOS High Sierra och iOS 11 med inbyggt uppspelningsstöd för Opus -ljud inkapslat i Core Audio Format -behållare.

, tillgängliga för att ge stöd för formatet.

Opus -stöd från olika operativsystem
Windows Mac OS Linux Android iOS
Codec -stöd Ja
Delvis : Win 10 v1607, 1709, 1809
Full : Win 10 v1903
Ja
(begränsat behållarstöd)
Ja Ja
Delvis : Android 5, 6, 7
Full : Android 10
Ja
(begränsat behållarstöd)
Behållarstöd På Windows 10 årsdaguppdatering (1607) :
WebM (.webm känns inte igen; kräver pseudotillägg)
Matroska (.mka, .mkv)

På Windows 10 Fall Creators Update (1709) med tillägget Web Media Extensions :
Ogg (.opus känns inte igen; kräver pseudotillägg)

På Windows 10 oktober 2018 Update (1809) :
WebM (.webm erkänns officiellt)

På Windows 10 maj 2019 uppdatering (1903) :

Ogg (.opus erkänns officiellt)

macOS High Sierra :
Core Audio Format (.caf)
Ogg (.opus)
WebM (.webm)
Matroska (.mka, .mkv)
MPEG-TS (.ts)
Android 5 :
WebM (.webm)
Matroska (.mka, .mkv)

Android 7 :
Ogg (.opus känns inte igen; kräver pseudotillägg)

Android 10 :

Ogg (.opus erkänns officiellt)

iOS 11 :
Core Audio Format (.caf)
Anteckningar Windows 10 :
- På årsdagen uppdatering (1607) finns begränsat stöd tillgängligt i Microsoft Edge (endast via MSE ) och Universal Windows Platform -appar. Windows Media Player stöder inte Ogg; endast WebM och Matroska.
- On April 2018 Update (1803) med Web Media Extensions förinstallerat, Microsoft Edge (EdgeHTML 17) stöder Opus ljud inbäddat i <Ljud> taggar.
- Fram till oktober 2018 -uppdateringen (1809) kände filändelsen .opus inte igen. (ersätt med ett pseudo -filtillägg som .m4a)

Windows 8.1 och äldre :
- Kräver installation av ett tredjeparts multimedia -ramverk, LAV -filter .

Endast Opus -ljud i en CAF -behållare stöds. - - Fram till Android 9 känns filnamnstillägget .opus inte igen (ersätt med ett pseudofiltillägg som .ogg eller .m4a) Endast Opus -ljud i en CAF -behållare stöds.

Stöd för mediaspelare

använder Opus eller Vorbis för att strömma ljud.

Webbläsarstöd

Opus -stöd är obligatoriskt för WebRTC -implementeringar. Opus stöds i Mozilla Firefox , Chromium och Google Chrome , Blink -baserad Opera , samt alla webbläsare för Unix -liknande system som förlitar sig på GStreamer för stöd för multimediaformat. Även om Internet Explorer inte tillhandahåller Opus -uppspelning inbyggt, stöds formatet i Edge -webbläsaren , tillsammans med VP9 , för fullständigt WebM -stöd. Safari stöder Opus från iOS 11 och macOS High Sierra.

VoIP -stöd

På grund av sin förmåga fick Opus tidigt intresse från VoIP-programvaruleverantörer ( voice-over-IP ). Flera SIP- klienter, inklusive Acrobits Softphone , CSipSimple (via ytterligare plug-in), Empathy (via GStreamer), Jitsi , Tuenti , Line2 (för närvarande endast på iOS ), Linphone , Phoner och PhonerLite , SFLphone , Telefon , Mumble , Discord och TeamSpeak 3 röstchattprogramvara stöder också Opus. TrueConf stöder Opus i sina VoIP -produkter. Asterisk saknade inbyggt Opus-stöd av juridiska skäl, men en tredjeparts patch var tillgänglig för nedladdning och officiellt stöd via en binär blob lades till i september 2016. Tox P2P videokonferensprogram använder exklusivt Opus. Klassificerade annonser distribuerade meddelandeprogram skickar råa opusramar inuti TLS-uttaget i sin VoIP-implementering.

Opus används ofta som röstcodec i WhatsApp , som har över 1,5

 
miljarder användare över hela världen. WhatsApp använder Opus vid 8–16 kHz samplingsfrekvenser , med Real-Time Transport Protocol (RTP). Den PlayStation 4 spelkonsol använder också CELT / Opus codec för sitt PlayStation Network -systemet party chat. Det används också i Zoom -videokonferensappen.

Hårdvara

-telefoner stöder alla Opus. De senaste trådlösa BlueSound -högtalarna stöder Opus -uppspelning. Enheter som kör Hiby OS, liksom Hiby R3, kan avkoda Opus -filer på egen hand.

Många broadcast IP -codecs inkluderar Opus som de som tillverkas av Comrex , GatesAir och Tieline .

Anteckningar

Referenser

Citat

Källor

Se även