μ-Gesetz-Algorithmus - μ-law algorithm
Der μ-law - Algorithmus (manchmal geschrieben mu -law , oft angenähert als u-law ) ist eine Kompandierung Algorithmus verwendet , in erster Linie in 8-Bit - PCM - digitalen Telekommunikationssystemen in Nordamerika und Japan . Es ist eine von zwei Versionen des G.711- Standards von ITU-T , die andere Version ist die ähnliche A-Law . A-Law wird in Regionen verwendet, in denen digitale Telekommunikationssignale auf E-1-Leitungen übertragen werden, z. B. in Europa.
Kompandierend Algorithmen reduziert den Dynamikbereich eines Audiosignals . In analogen Systemen kann dies das bei der Übertragung erreichte Signal-Rausch-Verhältnis (SNR) erhöhen ; im digitalen Bereich kann es den Quantisierungsfehler reduzieren (und somit das Signal-Quantisierungs-Rausch-Verhältnis erhöhen). Diese SNR-Erhöhungen können stattdessen gegen reduzierte Bandbreite für äquivalentes SNR eingetauscht werden.
Algorithmustypen
Der µ-law-Algorithmus kann in analoger Form und in quantisierter digitaler Form beschrieben werden.
Kontinuierlich
Für eine gegebene Eingabe x lautet die Gleichung für die μ-Gesetz-Codierung
wobei μ = 255 in den nordamerikanischen und japanischen Standards und sgn( x ) die Vorzeichenfunktion ist . Es ist wichtig zu beachten, dass der Bereich dieser Funktion –1 bis 1 beträgt.
Die μ-Gesetz-Entwicklung ist dann durch die inverse Gleichung gegeben:
Diskret
Die diskrete Form ist in der ITU-T-Empfehlung G.711 definiert .
G.711 ist unklar, wie die Werte an der Grenze eines Bereichs zu codieren sind (zB ob +31 auf 0xEF oder 0xF0) codiert. G.191 bietet jedoch Beispielcode in der Sprache C für einen µ-Law-Encoder. Die Differenz zwischen positivem und negativem Bereich, zB der negative Bereich, der +30 bis +1 entspricht, beträgt –31 bis –2. Dies wird durch die Verwendung des 1er-Komplements (einfache Bit-Inversion) anstelle des 2er-Komplements berücksichtigt , um einen negativen Wert während der Codierung in einen positiven Wert umzuwandeln.
14-Bit-Binär-Linear-Eingangscode | Komprimierter 8-Bit-Code |
---|---|
+8158 bis +4063 in 16 Intervallen von 256 | 0x80 + Intervallnummer |
+4062 bis +2015 in 16 Intervallen von 128 | 0x90 + Intervallnummer |
+2014 bis +991 in 16 Intervallen von 64 | 0xA0 + Intervallnummer |
+990 bis +479 in 16 Intervallen von 32 | 0xB0 + Intervallnummer |
+478 bis +223 in 16 Intervallen von 16 | 0xC0 + Intervallnummer |
+222 bis +95 in 16 Intervallen von 8 | 0xD0 + Intervallnummer |
+94 bis +31 in 16 Intervallen von 4 | 0xE0 + Intervallnummer |
+30 bis +1 in 15 Intervallen von 2 | 0xF0 + Intervallnummer |
0 | 0xFF |
-1 | 0x7F |
−31 bis −2 in 15 Intervallen von 2 | 0x70 + Intervallnummer |
−95 bis −32 in 16 Intervallen von 4 | 0x60 + Intervallnummer |
−223 bis −96 in 16 Intervallen von 8 | 0x50 + Intervallnummer |
−479 bis −224 in 16 Intervallen von 16 | 0x40 + Intervallnummer |
−991 bis −480 in 16 Intervallen von 32 | 0x30 + Intervallnummer |
−2015 bis −992 in 16 Intervallen von 64 | 0x20 + Intervallnummer |
−4063 bis −2016 in 16 Intervallen von 128 | 0x10 + Intervallnummer |
−8159 bis −4064 in 16 Intervallen von 256 | 0x00 + Intervallnummer |
Implementierung
Der μ-law-Algorithmus kann auf verschiedene Weise implementiert werden:
- Analog
- Verwenden Sie einen Verstärker mit nichtlinearer Verstärkung, um die Kompandierung vollständig im analogen Bereich zu erreichen.
- Nichtlinearer ADC
- Verwenden Sie einen Analog-Digital-Wandler mit Quantisierungspegeln, die ungleichmäßig beabstandet sind, um dem μ-law-Algorithmus zu entsprechen.
- Digital
- Verwenden Sie die quantisierte digitale Version des μ-law-Algorithmus, um Daten zu konvertieren, sobald sie sich im digitalen Bereich befinden.
- Software/DSP
- Verwenden Sie die kontinuierliche Version des μ-law-Algorithmus, um die kompandierten Werte zu berechnen.
Nutzungsbegründung
Die µ-Gesetz-Codierung wird verwendet, weil Sprache einen großen Dynamikbereich hat . Bei der analogen Signalübertragung gehen bei relativ konstantem Hintergrundrauschen die feineren Details verloren. Da die Detailgenauigkeit ohnehin beeinträchtigt ist und das Signal von einem Menschen als Audio wahrgenommen werden soll, kann man sich die Tatsache zunutze machen, dass die wahrgenommene akustische Intensität oder Lautstärke logarithmisch ist, indem man das Signal mit einem logarithmischen compress komprimiert -Ansprech-Operationsverstärker ( Weber-Fechner-Gesetz ). In Telekommunikationsschaltungen wird das meiste Rauschen in die Leitungen eingespeist, so dass das beabsichtigte Signal nach dem Kompressor im Vergleich zu einer unkomprimierten Quelle als deutlich lauter als das statische Signal wahrgenommen wird. Dies wurde zu einer gängigen Lösung, und so wurde vor der gemeinsamen digitalen Verwendung die μ-law-Spezifikation entwickelt, um einen interoperablen Standard zu definieren.
In digitalen Systemen hatte dieser bereits vorhandene Algorithmus den Effekt, die Anzahl der Bits, die zum Kodieren einer erkennbaren menschlichen Stimme erforderlich sind, erheblich zu reduzieren. Unter Verwendung des μ-Gesetzes konnte ein Sample in nur 8 Bit effektiv codiert werden, eine Samplegröße, die praktischerweise der Symbolgröße der meisten Standardcomputer entsprach.
Die μ-Gesetz-Codierung reduziert effektiv den Dynamikbereich des Signals, wodurch die Codiereffizienz erhöht wird, während das Signal so vorgespannt wird, dass ein Signal-zu- Verzerrungsverhältnis resultiert , das größer ist als das durch lineare Codierung für eine gegebene Anzahl von Bits erhaltene .
Der μ-law-Algorithmus wird auch im .au-Format verwendet , das mindestens auf die SPARCstation 1 von Sun Microsystems als native Methode zurückgeht, die von der /dev/audio-Schnittstelle verwendet wird, die als De-facto-Standard für Sound unter Unix weit verbreitet ist Systeme. Das au-Format wird auch in verschiedenen gängigen Audio- APIs wie den Klassen im Java-Paket sun.audio in Java 1.1 und in einigen C# -Methoden verwendet.
Dieses Diagramm veranschaulicht, wie das μ-law die Abtastung auf die kleineren (weicheren) Werte konzentriert. Die horizontale Achse repräsentiert die Byte-Werte 0-255 und die vertikale Achse ist der linear decodierte 16-Bit-Wert der µ-Law-Codierung.
Vergleich mit A-Gesetz
Der μ-law-Algorithmus bietet einen etwas größeren Dynamikbereich als der A-law auf Kosten schlechterer proportionaler Verzerrungen für kleine Signale. A-law wird vereinbarungsgemäß für eine internationale Verbindung verwendet, wenn es von mindestens einem Land verwendet wird.
Siehe auch
Verweise
- ^ a b "Waveform Coding Techniques - Cisco" . 2006-02-02 . Abgerufen 2020-12-07 .
- ^ "ITU-T-Empfehlung G.711" .
Dieser Artikel enthält gemeinfreies Material aus dem Dokument General Services Administration : "Federal Standard 1037C" .