MLow: Audio kodek Meta s nízkou bitovou rychlostí

MLow: Audio kodek Meta s nízkou bitovou rychlostí
  • Ve společnosti Meta podporujeme komunikaci v reálném čase (RTC) pro miliardy lidí prostřednictvím našich aplikací, včetně WhatsApp, Instagramu a Messengeru.
  • Pracujeme na zpřístupnění RTC poskytováním vysoce kvalitního zážitku pro každého – dokonce i pro ty, kteří nemají nejrychlejší připojení nebo nejnovější telefony.
  • Vzhledem k tomu, že se v průběhu let na naše produkty při telefonování spoléhalo stále více lidí, pracovali jsme na hledání nových způsobů, jak zajistit, aby všechny hovory měly solidní kvalitu zvuku.
  • Vytvořili jsme kodek Meta Low Bitrate (MLow): nový nástroj, který zlepšuje kvalitu zvuku zejména pro uživatele s pomalým připojením.
Obrázek 1: Zvýšení složitosti nebo datového toku obvykle zlepšuje kvalitu, ale dobré kodeky dosahují vyšší kvality a zároveň vyvažují ostatní dva.

Produkty RTC používají několik klíčových prvků k zajištění plného zážitku a jednou důležitou součástí jsou audio/video kodeky. Tyto kodeky pomáhají komprimovat zachycená audio/video data, aby je bylo možné efektivně odesílat přes internet příjemci, a přitom zachovat zážitek v reálném čase. Například nezpracovaný zvuk zachycený pro typický hovor je 768 kbps (mono, vzorkování na 48 kHz, bitová hloubka 16), které moderní kodeky dokážou komprimovat na 25-30 kbps. Tato komprese je často za cenu určité kvality (ztráta informací), ale dobré kodeky mohou vyvážit trifektu kvality, datového toku a složitosti využitím hlubokých znalostí o povaze zvukového signálu a také pomocí psychoakustiky. .

Vytvořit dobrý kodek je velmi obtížné, a proto nové kodeky nevidíme příliš často. Dalším dobrým, široce známým kodekem s otevřeným zdrojovým kódem je Opus, vydaný v roce 2012, který se stal preferovaným kodekem pro širokou škálu aplikací na internetu. Meta používá Opus pro všechny své RTC potřeby a zatím nám dobře sloužil – pomáhá poskytovat vysoce kvalitní hovory miliardám uživatelů po celém světě.

Naše motivace vytvořit nový kodek

Vzhledem k obrovskému rozsahu použití RTC v produktech Meta můžeme vidět, jak si kodek vede v řadě síťových scénářů a jak ovlivňuje zkušenost koncového uživatele. Zejména jsme pozorovali, že značná část hovorů měla během hovoru nebo jeho části špatná síťová připojení. Bandwidth Estimator (BWE) obvykle detekuje kvalitu sítě, a když se kvalita sítě zhoršuje, musíme snížit přenosovou rychlost přehrávání kodeku, abychom se vyhnuli zahlcení sítě a udrželi tok zvuku – což ovlivňuje trojí vyvážení uvedenou výše. Abychom to ještě zkomplikovali, uskutečnění videohovoru i přes špatnou kvalitu sítě neponechává mnoho prostoru pro zvuk a vede k ještě většímu poklesu přenosové rychlosti zvuku. Nejnižší pracovní bod Opusu je 6 kbps, protože pracuje v režimu NarrowBand (0 – 4 kHz) a nezachycuje adekvátně všechny zvukové frekvence, které produkují lidské hlasy – a proto nezní čistě ani přirozeně. Níže je uveden příklad, jak zní 6kbps zvuk Opus a odpovídající referenční soubor pro srovnání.

READ  Google vydává Android 14 Beta 5 pro Pixel

Surová záložka:

Opus @ 6 kbps NarrowBand (NB):

V posledních několika letech jsme byli svědky vývoje některých nových zvukových kodeků založených na strojovém učení (ML), které poskytují vysoce kvalitní zvuk při velmi nízkých přenosových rychlostech. V říjnu 2022 byla vydána Meta Kódování, který dosahuje úžasně čisté kvality zvuku při velmi nízkých přenosových rychlostech. Ačkoli jsou kodeky založené na AI/ML schopny dosáhnout skvělé kvality při nízkých přenosových rychlostech, je to často za cenu neúměrných nákladů na výpočetní výkon. Proto pouze špičkové (drahé) mobilní telefony jsou schopny spolehlivě přehrát tyto kodeky, zatímco uživatelé běžící na zařízeních nižší třídy mají i nadále problémy s kvalitou zvuku v podmínkách nízkého datového toku. Čistý efekt těchto novějších, výpočetně drahých kodeků je tedy ve skutečnosti omezen na malou část uživatelů.

Velká část našich uživatelů stále používá zařízení nižší třídy. Například více než 20 % našich hovorů se uskutečňuje na zařízeních ARMv7 a desítky milionů hovorů denně na WhatsApp se uskutečňují na zařízeních starších než 10 let. Vzhledem k snadno dostupným možnostem kodeků a našemu odhodlání zajistit, aby všichni uživatelé – bez ohledu na zařízení, které používají – měli vysoce kvalitní zážitek z volání, je jasné, že potřebujeme kodek s velmi nízkými výpočetními nároky, který stále poskytuje vysoce kvalitní zvuk. na těchto zařízeních s nejnižší bitovou rychlostí.

Kodek MLow

S vývojem nového kodeku jsme začali koncem roku 2021. Po téměř dvou letech aktivního vývoje a testování s hrdostí oznamujeme Meta trochu Bitrate audio kodek, také známý jako MLow, který dosahuje dvakrát lepší kvality než Opus (POLQA MOS 1,89 vs. 3,9 @ 6 kbps WB). A co je nejdůležitější, jsme schopni dosáhnout této skvělé kvality při zachování výpočetní náročnosti MLow o 10 procent méně než ten opus.

READ  Android Auto na nových uniklých obrázcích vypadá spíše jako CarPlay

Obrázek 2 níže ukazuje graf MOS (Mean Opinion Score) na stupnici od 1 do 5 a porovnává skóre POLQA mezi Opus a MLow při různých přenosových rychlostech. Jak ukazuje graf, MLow má oproti Opusu značnou výhodu při nejnižších bitratech, protože saturuje kvalitu rychleji než Opus.

Obrázek 2: Výsledek POLQA srovnávající Opus (WB) versus MLow při různých přenosových rychlostech napříč velkým souborem dat.

Již jsme plně spustili MLow pro všechny hovory na Instagramu a Messengeru a aktivně jej zavádíme na WhatsApp a již jsme zaznamenali neuvěřitelné zlepšení v zapojení uživatelů díky lepší kvalitě zvuku.

Zde je několik zvukových ukázek k poslechu. Doporučujeme vám použít svá oblíbená sluchátka, abyste ocenili úžasné rozdíly v kvalitě zvuku.

Poznámka Opus 6 kbps Mlow 6 kbps WB odkaz

Schopnost kódovat vysoce kvalitní zvuk při nižších přenosových rychlostech také otevírá účinnější strategie dopředné korekce chyb (FEC). Ve srovnání s Opus si s MLow můžeme dovolit FEC při mnohem nižších přenosových rychlostech, což výrazně pomáhá zlepšit kvalitu zvuku ve scénářích ztráty paketů.

Níže jsou uvedeny dva zvukové vzorky 14 kb/s s významnou ztrátou paketů na straně přijímače o 30 procent.

Autorství:

Všimněte si, že při těchto přenosových rychlostech není Opus schopen zakódovat žádnou vnitřní korekční korekci (FEC). Potřebuje alespoň 19 kbps pro zakódování jakéhokoli interního FEC při 10procentní ztrátě paketů, což je škodlivé pro obnovu zvuku.

Mlow interiér

MLow je založen na konceptech klasického kodeku CELP (lineární predikce kódové excitace) s pokroky v generování buzení, kvantování parametrů a schématech kódování. Obrázek 3 je vizuální pohled na vysokou úroveň toho, jak kodek interně funguje. Vlevo máme vstupní signál (raw PCM audio), který je přiveden do kodéru, který následně rozděluje signál na nízko a vysokofrekvenční pásma. Dále je každé pásmo individuálně šifrováno s využitím sdílených informací k dosažení lepší komprese. Všechny výstupy procházejí pásmovým kodérem pro další kompresi a vytvoření šifrovaného užitečného zatížení. Dekodér dělá přesný opak, když je dána zátěž, aby vytvořil audio signály pro výstup.

READ  Zde je 5 typů sezón, které můžete hrát jako v Elden Ring • Eurogamer.net
Obrázek 3: Architektura kodéru a dekodéru vysoké úrovně MLow.

S těmito vylepšeními v rozděleném pásmu jsme schopni zakódovat vysoké pásmo pomocí velmi malého počtu bitů, což umožňuje MLow poskytovat SuperWideBand (32 kHz vzorkování) s mnohem nižší přenosovou rychlostí.

Co pak?

MLow dramaticky zlepšila kvalitu zvuku na zařízeních nižší třídy a zároveň zajistila šifrování hovorů mezi koncovými body. Jsme opravdu nadšení z toho, co jsme za poslední dva roky dokázali – od vývoje nového kodeku až po jeho úspěšné odeslání miliardám uživatelů po celém světě. Pokračujeme v práci na zlepšení obnovy zvuku v sítích s velkou ztrátou paketů tím, že odčerpáváme více redundantního zvuku, což nám MLow umožňuje efektivně. Jsme rádi, že se můžeme podělit o další, protože stále pracujeme na tom, abychom všem našim uživatelům usnadnili vysoce kvalitní hlasové hovory.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *