
El algoritmo μ-law (a veces escrito mu -law , a menudo abreviado como u-law ) es un algoritmo de compresión y expansión que se utiliza principalmente en sistemas de telecomunicaciones digitales PCM de ocho bits en Norteamérica y Japón . Es uno de los dos algoritmos de compresión y expansión del estándar G.711 de la UIT-T , siendo el otro el similar A-law . El algoritmo A-law se utiliza en regiones donde las señales de telecomunicaciones digitales se transmiten a través de circuitos E-1, como Europa.
Los términos PCMU , G711u o G711MU se utilizan para la ley μ G711. [ 1 ]
Los algoritmos de compresión reducen el rango dinámico de una señal de audio . En sistemas analógicos, esto puede aumentar la relación señal-ruido (SNR) durante la transmisión; en el dominio digital, puede reducir el error de cuantificación (aumentando así la relación señal-ruido de cuantificación). Estos aumentos de SNR pueden compensarse con una reducción del ancho de banda para obtener una SNR equivalente.
A costa de una reducción de la relación señal/ruido máxima, se puede demostrar matemáticamente que la cuantización no lineal de la ley μ aumenta efectivamente el rango dinámico en 33 dB o 5 + 1/2 bits con respecto a una señal cuantizada linealmente; por lo tanto, 13,5 bits (que se redondea a 14 bits) es la resolución máxima requerida para que una señal digital de entrada se comprima para la ley μ de 8 bits. [ 2 ]
Tipos de algoritmos
El algoritmo de la ley μ puede describirse en forma analógica y en forma digital cuantificada.
Continuo


Para una entrada dada x , la ecuación para la codificación de ley μ es [ 3 ].
donde μ = 255 en los estándares norteamericanos y japoneses, y sgn( x ) es la función signo . El rango de esta función es de −1 a 1.
La expansión de la ley μ viene dada entonces por la ecuación inversa: [ 3 ]
Discreto
La forma discreta se define en la Recomendación G.711 de la UIT-T . [ 4 ]
G.711 no aclara cómo codificar los valores en el límite de un rango (por ejemplo, si +31 se codifica como 0xEF o 0xF0). Sin embargo, G.191 proporciona código de ejemplo en lenguaje C para un codificador de ley μ. [ 5 ] La diferencia entre los rangos positivo y negativo, por ejemplo, el rango negativo correspondiente a +30 a +1 es de −31 a −2. Esto se explica por el uso del complemento a uno (inversión simple de bits) en lugar del complemento a dos para convertir un valor negativo en un valor positivo durante la codificación.
Implementación
El algoritmo de la ley μ se puede implementar de varias maneras:
- Cosa análoga
- Utilice un amplificador con ganancia no lineal para lograr la compresión y expansión completamente en el dominio analógico.
- Convertidor analógico-digital no lineal
- Utilice un convertidor analógico-digital con niveles de cuantificación espaciados de forma desigual para que coincida con el algoritmo de la ley μ.
- Digital
- Utilice la versión digital cuantificada del algoritmo de la ley μ para convertir los datos una vez que estén en el dominio digital.
- Software/DSP
- Utilice la versión continua del algoritmo de la ley μ para calcular los valores comprimidos.
Justificación de uso
La codificación μ-law se utiliza debido a que el habla tiene un amplio rango dinámico . En la transmisión de señales analógicas, en presencia de ruido de fondo relativamente constante, se pierden los detalles más finos. Dado que la precisión de los detalles se ve comprometida de todos modos, y suponiendo que la señal debe ser percibida como audio por un ser humano, se puede aprovechar el hecho de que el nivel de intensidad acústica percibida o sonoridad es logarítmico comprimiendo la señal mediante un amplificador operacional de respuesta logarítmica ( ley de Weber-Fechner ). En los circuitos de telecomunicaciones, la mayor parte del ruido se inyecta en las líneas, por lo que, después del compresor, la señal deseada se percibe como significativamente más fuerte que la estática, en comparación con una fuente sin comprimir. Esta se convirtió en una solución común y, por lo tanto, antes del uso generalizado de la tecnología digital, se desarrolló la especificación μ-law para definir un estándar interoperable.
Este algoritmo preexistente redujo significativamente la cantidad de bits necesarios para codificar una voz humana reconocible en sistemas digitales. Una muestra podía codificarse eficazmente mediante la ley μ con tan solo 8 bits, lo que coincidía con el tamaño de símbolo de la mayoría de los ordenadores comunes.
La codificación μ-law redujo eficazmente el rango dinámico de la señal, aumentando así la eficiencia de codificación y sesgando la señal de manera que se obtiene una relación señal- distorsión mayor que la obtenida mediante la codificación lineal para un número determinado de bits.
El algoritmo μ-law también se utiliza en el formato .au , que se remonta al menos a la SPARCstation 1 de Sun Microsystems como método nativo de la interfaz /dev/audio, ampliamente utilizada como estándar de facto para el sonido en sistemas Unix. El formato .au también se utiliza en varias API de audio comunes , como las clases del paquete Java sun.audio en Java 1.1 y en algunos métodos de C# .
Este gráfico ilustra cómo la ley μ concentra el muestreo en los valores más pequeños (más suaves). El eje horizontal representa los valores de byte del 0 al 255, y el eje vertical es el valor decodificado lineal de 16 bits de la codificación de ley μ.
Comparación con la ley A
El algoritmo de ley μ proporciona un rango dinámico ligeramente mayor que la ley A, a costa de mayores distorsiones proporcionales para señales débiles. Por convención, la ley A se utiliza para conexiones internacionales si al menos un país la utiliza.
Véase también
- compresión de rango dinámico
- Compresión de señal (desambiguación)
- G.711 , un codificador de voz de forma de onda que utiliza codificación A-law o μ-law.
- Punto flotante cónico
Referencias
- ↑ "Códecs de vídeo/voz/habla" . Grandstream . Consultado el 19 de julio de 2020 .
- ↑ Ess, David Van (29 de diciembre de 2014) [2007-10-09]. "Cypress Semiconductor AN2095: Algoritmo - Compresión y expansión de señal logarítmica - No es solo una buena idea - Es μ-Ley" (PDF) . Infineon Technologies . Archivado (PDF) del original el 6 de octubre de 2022. Recuperado el 28 de junio de 2023 .
- 1 2 "Técnicas de codificación de forma de onda - Cisco" . 2 de febrero de 2006. Consultado el 7 de diciembre de 2020 .
- ↑ "Recomendación G.711 de la UIT-T" .
- ↑ "G.191 : Herramientas de software para la estandarización de la codificación de voz y audio" . www.itu.int .
Este artículo incorpora material de dominio público de la Norma Federal 1037C . Administración de Servicios Generales . Archivado del original el 22 de enero de 2022.
Enlaces externos
- Técnicas de codificación de formas de onda : detalles de la implementación
- Implementaciones de compresión y expansión A-Law y mu-Law utilizando el TMS320C54x ( PDF )
- Compresión μ-Law y A-Law del TMS320C6000 con software o McBSP ( PDF )
- Realización de la ley A y la ley μ (en C)
- Implementación de u-law en lenguaje C con código de ejemplo
- Códecs de audio
- Recomendaciones de la UIT-T
- Compresión de datos