stringtranslate.com

G.711

G.711 es un códec de audio de banda estrecha diseñado originalmente para su uso en telefonía que proporciona audio con calidad de llamada a 64 kbit/s. Es una norma ITU-T (Recomendación) para codificación de audio , denominada Modulación por impulsos codificados (PCM) de frecuencias de voz, publicada para su uso en 1972.

G.711 pasa señales de audio en la banda de frecuencia de 300–3400 Hz y las muestrea a una velocidad de 8000 Hz, con una tolerancia en esa velocidad de 50 partes por millón (ppm).

Utiliza uno de dos algoritmos de compresión logarítmica diferentes: μ-law , que se utiliza principalmente en Norteamérica y Japón, y A-law , que se utiliza en la mayoría de los demás países fuera de Norteamérica. Cada muestra comprimida se cuantifica como 8 bits, lo que da como resultado una velocidad de bits de 64 kbit/s .

G.711 es un estándar obligatorio en muchas tecnologías, como por ejemplo en los estándares H.320 y H.323 . [1] También se puede utilizar para la comunicación por fax a través de redes IP (como se define en la especificación T.38 ).

Se han publicado dos mejoras de G.711: G.711.0 utiliza compresión de datos sin pérdida para reducir el uso del ancho de banda y G.711.1 aumenta la calidad del audio al aumentar el ancho de banda.

Características

Tipos

G.711 define dos algoritmos de compresión/expansión principales, el algoritmo de ley μ y el algoritmo de ley A. Ambos son logarítmicos , pero el algoritmo de ley A fue diseñado específicamente para que una computadora lo pudiera procesar con mayor facilidad [ cita requerida ] . La norma también define una secuencia de valores de código repetidos que define el nivel de potencia de 0 dB .

Los algoritmos μ-law y A-law codifican muestras PCM lineales con signo de 14 y 13 bits (respectivamente) en muestras logarítmicas de 8 bits. Por lo tanto, el codificador G.711 creará un flujo de bits de 64 kbit/s para una señal muestreada a 8 kHz. [1]

La ley μ de G.711 tiende a brindar más resolución a señales de rango más alto, mientras que la ley A de G.711 proporciona más niveles de cuantificación a niveles de señal más bajos.

Los términos PCMU , G711u y G711MU también se utilizan para G.711 μ-law, y PCMA y G711A para G.711 A-law. [2]

Ley A

La codificación A-law toma una muestra de audio lineal con signo de 13 bits como entrada y la convierte en un valor de 8 bits de la siguiente manera:

  1. ^ Este valor se produce tomando la representación del complemento a dos del valor de entrada e invirtiendo todos los bits después del bit de signo si el valor es negativo.
  2. ^ Representación de magnitud con signo

Donde ses el bit de signo, ses su inverso (es decir, los valores positivos se codifican con MSB  =  s  = 1), y los bits marcados xse descartan. Tenga en cuenta que la primera columna de la tabla utiliza una representación diferente de los valores negativos que la tercera columna. Entonces, por ejemplo, el valor decimal de entrada −21 se representa en binario después de la inversión de bits como 1000000010100, que se asigna a 00001010 (según la primera fila de la tabla). Al decodificar, esto se asigna de nuevo a 1000000010101, que se interpreta como el valor de salida −21 en decimal. El valor de entrada +52 (0000000110100 en binario) se asigna a 10011010 (según la segunda fila), que se asigna de nuevo a 0000000110101 (+53 en decimal).

Esto puede verse como un número de punto flotante con 4 bits de mantisa m (equivalente a una precisión de 5 bits), 3 bits de exponente e y 1 bit de signo s , formateado como seeemmmmcon el valor lineal decodificado y dado por la fórmula

que es un entero con signo de 13 bits en el rango ±1 a ±(2 12  − 2 6 ). Tenga en cuenta que ningún código comprimido se decodifica a cero debido a la adición de 0,5 (la mitad de un paso de cuantificación).

Además, el estándar especifica que todos los bits pares resultantes ( LSB es par) se invierten antes de transmitir el octeto. Esto es para proporcionar muchas transiciones 0/1 para facilitar el proceso de recuperación del reloj en los receptores PCM. Por lo tanto, un canal PCM codificado con ley A silencioso tiene las muestras de 8 bits codificadas 0xD5 en lugar de 0x80 en los octetos.

Cuando se envían datos a través de E0 ( G.703 ), el MSB (signo) se envía primero y el LSB se envía por último.

ITU-T STL [3] define el algoritmo de decodificación de la siguiente manera (coloca los valores decodificados en los 13 bits más significativos del tipo de datos de salida de 16 bits).

void alaw_expand ( lseg , logbuf , linbuf ) largo lseg ; corto * linbuf ; corto * logbuf ; { corto ix , mant , iexp ; largo n ;                para ( n = 0 ; n < lseg ; n ++ ) { ix = logbuf [ n ] ^ ( 0x0055 ); /* volver a alternar los bits alternados */              ix &= ( 0x007F ); /* eliminar bit de signo */ iexp = ix >> 4 ; /* extraer exponente */ mant = ix & ( 0x000F ); /* ahora obtener mantisa */ if ( iexp > 0 ) mant = mant + 16 ; /* agregar '1' inicial, si exponente > 0 */                      mant = ( mant << 4 ) + ( 0x0008 ); /* ahora la mantisa está justificada a la izquierda y */ /* 1/2 paso de cuantificación añadido */ if ( iexp > 1 ) /* ahora desplazamiento a la izquierda según el exponente */ mant = mant << ( iexp - 1 );                   linbuf [ n ] = logbuf [ n ] > 127 /* invertir, si la muestra es negativa */ ? mant : - mant ; } }         

Véase también el "Manual del usuario de la biblioteca de herramientas de software ITU-T 2009" que se puede encontrar en. [4]

ley μ

La codificación μ-law (a veces denominada ulaw, G.711Mu o G.711μ) toma una muestra de audio lineal con signo de 14 bits en representación de complemento a dos como entrada, invierte todos los bits después del bit de signo si el valor es negativo, suma 33 (binario 100001) y lo convierte en un valor de 8 bits de la siguiente manera:

  1. ^ Este valor se produce tomando la representación del complemento a dos del valor de entrada, invirtiendo todos los bits después del bit de signo si el valor es negativo y sumando 33.
  2. ^ Representación de magnitud con signo . El resultado final se obtiene al disminuir la magnitud de este valor en 33.

¿Dónde sestá el bit de signo y los bits marcados xse descartan?

Además, la norma especifica que los bits codificados se invierten antes de transmitir el octeto. Por lo tanto, en un canal PCM con codificación de ley μ silenciosa, las muestras de 8 bits se transmiten como 0xFF en lugar de 0x00 en los octetos.

Es necesario sumar 33 para que todos los valores caigan en un grupo de compresión y se reste durante la decodificación.

Al dividir el valor codificado formateado como seeemmmmen 4 bits de mantisa m , 3 bits de exponente e y 1 bit de signo s , el valor lineal decodificado y se obtiene mediante la fórmula

que es un entero con signo de 14 bits en el rango ±0 a ±8031.

Tenga en cuenta que 0 se transmite como 0xFF y −1 se transmite como 0x7F, pero cuando se recibe, el resultado es 0 en ambos casos.

G.711.0

G.711.0, también conocido como G.711 LLC, utiliza compresión de datos sin pérdida para reducir el uso del ancho de banda hasta en un 50 por ciento. [5] La compresión sin pérdida del estándar de modulación de código de pulso G.711 fue aprobada por la UIT-T en septiembre de 2009. [6] [7]

G.711.1

G.711.1 "Extensión integrada de banda ancha para modulación de código de pulso G.711" es una extensión de mayor fidelidad a G.711, ratificada en 2008 y ampliada en 2012. [8]

G.711.1 permite una serie de capas de mejora sobre un flujo de núcleo G.711 sin procesar (Capa 0): la Capa 1 codifica audio de 16 bits en la misma banda estrecha de 4 kHz, y la Capa 2 permite banda ancha de 8 kHz utilizando MDCT ; cada una utiliza 16 kbps fijos además del núcleo de 64 kbps. Pueden utilizarse juntas o individualmente, y cada una codifica las diferencias con respecto a la capa anterior. Ratificada en 2012, la Capa 3 extiende la Capa 2 a una "banda superancha" de 16 kHz, lo que permite otros 16 kbps para las frecuencias más altas, al tiempo que conserva la independencia de las capas. La tasa de bits máxima pasa a ser de 96 kbps en G.711.1 original, o de 112 kbps con banda superancha. No se define ningún método interno para identificar o separar las capas, lo que deja en manos de la implementación la tarea de empaquetarlas o señalizarlas. [9] [10]

Un decodificador que no entiende ningún conjunto de capas de fidelidad puede ignorar o descartar paquetes que no sean del núcleo sin afectarlo, lo que permite una degradación elegante en cualquier sistema de telefonía G.711 (o G.711.1 original) sin cambios.

En 2012 también se ratificó la extensión de la norma G.711.0 sin pérdida a las nuevas capas de fidelidad. Al igual que con G.711.0, se sacrifica la compatibilidad total con versiones anteriores de G.711 en aras de la eficiencia, aunque un nodo que tenga en cuenta G.711.0 puede ignorar o descartar paquetes de capa que no comprenda.

Licencias

Las patentes del G.711, publicadas en 1972, han expirado, por lo que puede utilizarse sin necesidad de licencia. [1]

Véase también

Referencias

  1. ^ abc «G.711: Modulación por impulsos codificados (PCM) de frecuencias de voz». www.itu.int . Archivado desde el original el 17 de junio de 2019 . Consultado el 11 de noviembre de 2019 .
  2. ^ "Códecs de video/voz/discurso". Grandstream= . Consultado el 19 de julio de 2020 .
  3. ^ G.191 : Herramientas de software para la normalización de la codificación de voz y audio. Función alaw_expanden el archivo Software/stl2009/g711/g711.c. Itu.int. Recuperado el 18 de septiembre de 2013.
  4. ^ G.191 : Manual del usuario de la biblioteca de herramientas de software ITU-T 2009. Itu.int (23 de julio de 2010). Recuperado el 18 de septiembre de 2013.
  5. ^ UIT-T (17 de julio de 2009). "Noticias de la UIT-T: el códec de voz obtiene una nueva compresión sin pérdida". Archivado desde el original el 3 de marzo de 2016. Consultado el 28 de febrero de 2010 .
  6. ^ UIT-T. «G.711.0: Compresión sin pérdida de la modulación por código de impulsos G.711» . Consultado el 28 de febrero de 2010 .
  7. ^ Desarrollos recientes de codificación de audio y voz en la UIT-T y tendencias futuras (PDF) , agosto de 2008 , consultado el 28 de febrero de 2010
  8. ^ G.711.1: Extensión integrada de banda ancha para modulación de código de pulso G.711, ITU-T, 2012 , consultado el 24 de diciembre de 2022
  9. ^ Lapierre; et al. (2008-08-25), Modelado de ruido en un códec integrado interoperable con ITU-T G.711 (PDF) , consultado el 2024-06-11
  10. ^ Hiwasaki; et al. (25 de agosto de 2008), G. 711.1: una extensión de banda ancha de ITU-T G. 711 (PDF) , consultado el 11 de junio de 2024

Enlaces externos