stringtranslate.com

Algoritmo de la ley μ

Comparación de la compresión de ley A (azul) y ley μ (roja) en una señal de entrada (verde). Ambos ejes utilizan escalas logarítmicas en decibeles .

El algoritmo μ-law (a veces escrito mu -law , a menudo abreviado como u-law ) es un algoritmo de compresión-expansión , utilizado principalmente en sistemas de telecomunicaciones digitales PCM de 8 bits en América del Norte y Japón . Es uno de los dos algoritmos de compresión-expansión del estándar G.711 de ITU-T , el otro es el similar A-law . A-law se utiliza en regiones donde las señales de telecomunicaciones digitales se transportan en circuitos E-1, por ejemplo, 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 los sistemas analógicos, esto puede aumentar la relación señal-ruido (SNR) lograda 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 la SNR se pueden intercambiar por un ancho de banda reducido para una SNR equivalente.

A costa de una relación señal-ruido pico reducida, se puede demostrar matemáticamente que la cuantificación no lineal de la ley μ aumenta efectivamente el rango dinámico en 33 dB o 5+12 bits sobre una señal cuantificada linealmente, por lo tanto 13,5 bits (que se redondean a 14 bits) es la resolución máxima requerida para comprimir una señal digital de entrada para una ley μ de 8 bits. [2]

Tipos de algoritmos

El algoritmo de la ley μ se puede describir en forma analógica y en forma digital cuantificada.

Continuo

Función de ley μ
Función de ley μ inversa

Para una entrada dada x , la ecuación para la codificación de la ley μ es [3]

donde μ = 255 en los estándares norteamericanos y japoneses, y sgn( x ) es la función de signo . El rango de esta función es de −1 a 1.

La expansión de la ley μ se da entonces mediante la ecuación inversa: [3]

Discreto

La forma discreta se define en la Recomendación UIT-T G.711 . [4]

G.711 no es claro acerca de cómo codificar los valores en el límite de un rango (por ejemplo, si +31 codifica a 0xEF o 0xF0). [ cita requerida ] Sin embargo, G.191 proporciona un código de ejemplo en el lenguaje C para un codificador de ley μ. [5] La diferencia entre los rangos positivos y negativos, por ejemplo, el rango negativo correspondiente a +30 a +1 es −31 a −2. Esto se explica por el uso del complemento a 1 (inversión de bits simple) en lugar del complemento a 2 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-expansión completamente en el dominio analógico.
Convertidor analógico-digital no lineal
Utilice un convertidor analógico a digital con niveles de cuantificación espaciados de manera desigual para que coincidan con el algoritmo de la ley μ.
Digital
Utilice la versión digital cuantificada del algoritmo de la ley μ para convertir 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 del uso

La codificación de la ley μ se utiliza porque 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 del detalle se ve comprometida de todos modos, y suponiendo que la señal debe ser percibida como audio por un humano, se puede aprovechar el hecho de que el nivel de intensidad acústica percibido o la sonoridad es logarítmica comprimiendo la señal utilizando 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. Esto se convirtió en una solución común y, por lo tanto, antes del uso digital común, se desarrolló la especificación de la ley μ para definir un estándar interoperable.

Este algoritmo preexistente tuvo el efecto de reducir significativamente la cantidad de bits necesarios para codificar una voz humana reconocible en sistemas digitales. Una muestra podía codificarse de manera efectiva utilizando la ley μ en tan solo 8 bits, lo que coincidía convenientemente con el tamaño de símbolo de la mayoría de las computadoras comunes.

La codificación de ley μ redujo efectivamente el rango dinámico de la señal, aumentando así la eficiencia de codificación mientras polariza la señal de una manera que da como resultado una relación señal- distorsión que es mayor que la obtenida con la codificación lineal para un número dado de bits.

Descodificación de la ley μ generada con la rutina g711.c en lenguaje C de Sun Microsystems, disponible comúnmente en Internet

El algoritmo μ-law también se utiliza en el formato .au , que se remonta al menos a SPARCstation 1 de Sun Microsystems como el método nativo utilizado por 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 sun.audio de Java 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 bytes de 0 a 255 y el eje vertical es el valor decodificado lineal de 16 bits de la codificación de la ley μ.

Comparación con la ley A

El algoritmo μ-law proporciona un rango dinámico ligeramente mayor que el algoritmo A-law, pero a costa de generar distorsiones proporcionales peores para señales pequeñas. Por convención, el algoritmo A-law se utiliza para una conexión internacional si al menos un país lo utiliza.

Véase también

Referencias

  1. ^ "Códecs de video/voz/discurso". Grandstream . Consultado el 19 de julio de 2020 .
  2. ^ Ess, David Van (29 de diciembre de 2014) [2007-10-09]. "Cypress Semiconductor AN2095: Algoritmo - Companding de señal logarítmica - No es solo una buena idea - Es una ley μ" (PDF) . Infineon Technologies . Archivado (PDF) del original el 6 de octubre de 2022 . Consultado el 28 de junio de 2023 .
  3. ^ ab "Técnicas de codificación de formas de onda - Cisco". 2 de febrero de 2006. Consultado el 7 de diciembre de 2020 .
  4. ^ "Recomendación UIT-T G.711".
  5. ^ "G.191: Herramientas de software para la normalización de la codificación de voz y audio". www.itu.int .

Dominio público Este artículo incorpora material de dominio público de la Norma Federal 1037C. Administración de Servicios Generales . Archivado desde el original el 22 de enero de 2022.

Enlaces externos