μ-law algoritmus - μ-law algorithm
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í.
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ů .
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
- ^ a b „Techniky kódování křivek - Cisco“ . 02.02.06 . Citováno 2020-12-07 .
- ^ „Doporučení ITU-T G.711“ .
Tento článek obsahuje public domain materiál z dokumentu General Services Administration : „Federal Standard 1037C“ .