μ-law algoritmus - μ-law algorithm


Kompilace algoritmů μ-law a A-law

Algoritmus μ-law (někdy psáno mu -law , často se přiblížil jak u-Law ) je companding algoritmus, který se používá především v 8-bitových PCM digitálních telekomunikačních systémů v Severní Americe a Japonsku . Je to jedna ze dvou verzí standardu G.711 od ITU-T , druhou verzí je podobný A-zákon . Zákon A se používá v regionech, kde jsou digitální telekomunikační signály přenášeny v obvodech E-1, např. V Evropě.

Kompilační algoritmy snižují dynamický rozsah zvukového signálu . V analogových systémech to může zvýšit poměr signálu k šumu (SNR) dosažený během přenosu; v digitální doméně může snížit chybu kvantování (tedy zvýšit poměr signál-kvantování-šum). Tato zvýšení SNR lze místo toho obchodovat za sníženou šířku pásma pro ekvivalentní SNR.

Typy algoritmů

Algoritmus μ-zákona může být popsán v analogové formě a v kvantované digitální formě.

Kontinuální

Pro daný vstup x je rovnice pro kódování podle zákona μ

kde μ = 255 v severoamerických a japonských standardech a sgn ( x ) je znaková funkce . Je důležité si uvědomit, že rozsah této funkce je −1 až 1.

μ-law expanze je pak dána inverzní rovnicí:

Oddělený

Diskrétní forma je definována v doporučení ITU-T G.711 .

G.711 není jasné, jak kódovat hodnoty na hranici rozsahu (např. Zda +31 kóduje na 0xEF nebo 0xF0). G.191 však poskytuje ukázkový kód v jazyce C pro kodér μ-law. Rozdíl mezi kladným a záporným rozsahem, např. Záporný rozsah odpovídající +30 až +1, je −31 až −2. To je vysvětleno použitím doplňku 1 (jednoduchá bitová inverze) spíše než doplňku 2 pro převod záporné hodnoty na kladnou hodnotu během kódování.

Kvantovaný algoritmus μ-law
14bitový binární lineární vstupní kód 8bitový komprimovaný kód
+8158 až +4063 v 16 intervalech po 256 0x80 + číslo intervalu
+4062 až +2015 v 16 intervalech po 128 0x90 + číslo intervalu
+2014 až +991 v 16 intervalech po 64 0xA0 + číslo intervalu
+990 až +479 v 16 intervalech po 32 0xB0 + číslo intervalu
+478 až +223 v 16 intervalech po 16 0xC0 + číslo intervalu
+222 až +95 v 16 intervalech po 8 0xD0 + číslo intervalu
+94 až +31 v 16 intervalech po 4 0xE0 + číslo intervalu
+30 až +1 v 15 intervalech po 2 0xF0 + číslo intervalu
0 0xFF
-1 0x7F
−31 až −2 v 15 intervalech po 2 0x70 + číslo intervalu
−95 až −32 v 16 intervalech po 4 0x60 + číslo intervalu
−223 až −96 v 16 intervalech po 8 0x50 + číslo intervalu
−479 až −224 v 16 intervalech po 16 0x40 + číslo intervalu
−991 až −480 v 16 intervalech po 32 0x30 + číslo intervalu
−2015 až −992 v 16 intervalech po 64 0x20 + číslo intervalu
−4063 až −2016 v 16 intervalech po 128 0x10 + číslo intervalu
−8159 až −4064 v 16 intervalech po 256 0x00 + číslo intervalu

Implementace

Algoritmus μ-law může být implementován několika způsoby:

Analogový
Použijte zesilovač s nelineárním ziskem, abyste dosáhli úplného komponování v analogové doméně.
Nelineární ADC
Použijte analogově-digitální převodník s úrovněmi kvantování, které jsou nerovnoměrně rozmístěny tak, aby odpovídaly algoritmu μ-law.
Digitální
K převodu dat, jakmile jsou v digitální doméně, použijte kvantovanou digitální verzi algoritmu μ-law.
Software / DSP
K výpočtu komandovaných hodnot použijte kontinuální verzi algoritmu μ-law.

Odůvodnění použití

Používá se kódování μ-law, protože řeč má široký dynamický rozsah . Při přenosu analogového signálu se za přítomnosti relativně konstantního šumu pozadí ztratí jemnější detaily. Vzhledem k tomu, že přesnost detailu je stejně narušena, a za předpokladu, že má být signál vnímán člověkem jako zvuk, lze využít výhody skutečnosti, že vnímaná úroveň nebo hlasitost akustické intenzity je logaritmická komprimací signálu pomocí logaritmické - operační operační zesilovač ( Weber-Fechnerův zákon ). V telekomunikačních obvodech je většina šumu přiváděna na vedení, takže po kompresoru je zamýšlený signál vnímán jako výrazně hlasitější než statický ve srovnání s nekomprimovaným zdrojem. Toto se stalo běžným řešením, a tak před běžným digitálním použitím byla vyvinuta specifikace μ-law, která definuje interoperabilní standard.

V digitálních systémech měl tento již existující algoritmus účinek významného snížení počtu bitů potřebných k zakódování rozpoznatelného lidského hlasu. Pomocí μ-law lze vzorek efektivně kódovat za pouhých 8 bitů, což je velikost vzorku, která se pohodlně shoduje s velikostí symbolu většiny standardních počítačů.

Kódování μ-law účinně snížilo dynamický rozsah signálu, čímž se zvýšila účinnost kódování při předpětí signálu způsobem, který vede k poměru signál- zkreslení, který je větší než poměr získaný lineárním kódováním pro daný počet bitů .

Dekódování μ-law vygenerované rutinou Sun Microsystems jazyka C g711.c běžně dostupnou na internetu.

Algoritmus μ-law se také používá ve formátu .au , který sahá přinejmenším do SPARCstation 1 od Sun Microsystems jako nativní metoda používaná v / dev / audio rozhraní, široce používaná jako de facto standard pro zvuk na Unixu systémy. Formát au se používá také v různých běžných zvukových rozhraních API , jako jsou třídy v balíčku Java sun.audio v jazyce Java 1.1 a v některých metodách C # .

Tento graf ukazuje, jak μ-law koncentruje vzorkování v menších (měkčích) hodnotách. Vodorovná osa představuje hodnoty bajtů 0-255 a svislá osa je 16bitová lineární dekódovaná hodnota kódování μ-law.

Srovnání s A-zákonem

Algoritmus μ-law poskytuje o něco větší dynamický rozsah než A-law za cenu horších proporcionálních zkreslení pro malé signály. Podle konvence se zákon A používá pro mezinárodní spojení, pokud jej používá alespoň jedna země.

Viz také

Reference

  1. ^ a b „Techniky kódování křivek - Cisco“ . 02.02.06 . Citováno 2020-12-07 .
  2. ^ „Doporučení ITU-T G.711“ .

 Tento článek obsahuje  public domain materiál z dokumentu General Services Administration : „Federal Standard 1037C“ .

externí odkazy