G.711

Compartir Imprimir Citar

G.711 es un códec de audio de banda estrecha diseñado originalmente para su uso en telefonía que proporciona audio de calidad de pago a 64 kbit/s. G.711 pasa señales de audio en el rango de 300 a 3400 Hz y las muestrea a una velocidad de 8000 muestras por segundo, con una tolerancia a esa velocidad de 50 partes por millón (ppm). Se utiliza una cuantificación no uniforme (logarítmica) con 8 bits para representar cada muestra, lo que da como resultado una tasa de bits de 64 kbit/s. Hay dos versiones ligeramente diferentes: la ley μ, que se usa principalmente en América del Norte y Japón, y la ley A, que se usa en la mayoría de los demás países fuera de América del Norte.

G.711 es un estándar ITU-T (Recomendación) para compansión de audio, titulado Modulación de código de pulso (PCM) de frecuencias de voz lanzado para su uso en 1972. Es un estándar requerido en muchas tecnologías, como en los estándares H.320 y H.323. También se puede utilizar para la comunicación de fax a través de redes IP (como se define en la especificación T.38).

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

Características

Tipos

G.711 define dos algoritmos de compresión-compresión principales, el algoritmo de ley μ y el algoritmo de ley A. Ambos son logarítmicos, pero la ley A fue diseñada específicamente para ser más simple de procesar para una computadora. El estándar también define una secuencia de valores de código repetidos que define el nivel de potencia de 0 dB.

Los algoritmos de ley μ y ley A 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.

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

Se utilizan los términos PCMU, G711u o G711MU para G711 ley μ y PCMA o G711A para G711 ley A.

Ley A

La codificación de ley A 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:

Código de entrada lineal
Código comprimido
XOR 01010101
Código de salida lineal
s0000000abcdxs000abcds0000000abcd1
s0000001abcdxs001abcds0000001abcd1
s000001abcdxxs010abcds000001abcd10
s00001abcdxxxs011abcds00001abcd100
s0001abcdxxxxs100abcds0001abcd1000
s001abcdxxxxxs101abcds001abcd10000
s01abcdxxxxxxs110abcds01abcd100000
s1abcdxxxxxxxs111abcds1abcd1000000
  1. ^ Este valor se produce tomando la representación complementaria de los dos del valor de entrada, e invirtiendo todos los bits después del bit del signo si el valor es negativo.
  2. ^ Representación de magnitud firmada

Donde s es el bit de signo, < code>s es su inversa (es decir, los valores positivos se codifican con MSB = < span style="text-decoration:overline;">s = 1), y los bits marcados x se descartan. Tenga en cuenta que la primera columna de la tabla utiliza una representación diferente de 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 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 se puede ver 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, con el formato seeemmmm con el valor lineal decodificado y dado por la fórmula

que es un número entero de 13 bits con signo en el rango de ±1 a ±(212 − 26). 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 que se transmita 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 silencioso con codificación de ley A tiene las muestras de 8 bits codificadas 0xD5 en lugar de 0x80 en los octetos.

Cuando los datos se envían a través de E0 (G.703), MSB (signo) se envía primero y LSB se envía al final.

ITU-T STL define el algoritmo para la 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).

vacío 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);/* re-re-toggle toggled bits */ ix " ()0x007F);/* eliminar el bit de señal */ iexp = ix > 4;/* extracto exponente */ Mant = ix " ()0x000F);*Ahora consigue mantissa */ si ()iexp  0) Mant = Mant + 16;/* añadir el líder '1', si exponent 0 */ Mant = ()Mant .. 4) + ()0x0008);/* ahora Mantissa dejó justificado y */ /* 1/2 etapa de cuantificación añadida */ si ()iexp  1)/* ahora izquierda turno según exponente */ Mant = Mant .. ()iexp - 1); linbuf[n] = logbuf[n]  127/* invertido, si muestra negativa */ ? Mant : -Mant; }}

Véase también "Biblioteca de herramientas de software ITU-T 2009 Manual del usuario" que se puede encontrar en.

Μ-ley

La codificación de ley μ (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 signo bit si el valor es negativo, suma 33 (100001 binario) y lo convierte a un valor de 8 bits de la siguiente manera:

Valor de entrada lineal
Código comprimido
XOR 11111111
Valor de salida lineal
s00000001abcdxs000abcds00000001abcd1
s0000001abcdxxs001abcds0000001abcd10
s000001abcdxxxs010abcds000001abcd100
s00001abcdxxxxs011abcds00001abcd1000
s0001abcdxxxxxs100abcds0001abcd10000
s001abcdxxxxxxs101abcds001abcd100000
s01abcdxxxxxxxs110abcds01abcd1000000
s1abcdxxxxxxxxs111abcds1abcd10000000
  1. ^ Este valor se produce al tomar la representación complementaria de los dos del valor de entrada, invirtiendo todos los bits después del bit del signo si el valor es negativo, y añadiendo 33.
  2. ^ Representación de magnitud firmada. Resultado final se produce disminuyendo la magnitud de este valor en 33.

Donde s es el bit de signo, y los bits marcados como x se descartan.

Además, el estándar especifica que los bits codificados se invierten antes de que se transmita el octeto. Por lo tanto, un canal PCM silencioso con codificación de ley µ tiene muestras de 8 bits transmitidas 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 al decodificar.

Dividir el valor codificado formateado como seeemmmm en 4 bits de mantisa m, 3 bits de exponente e y 1 bit de signo s, el valor lineal decodificado y viene dado por la fórmula

que es un entero de 14 bits con signo en el rango de ±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 de ancho de banda hasta en un 50 por ciento. El estándar Compresión sin pérdida de modulación de código de pulso G.711 fue aprobado por ITU-T en septiembre de 2009.

G.711.1

G.711.1 "Extensión integrada de banda ancha para modulación de código de pulsos G.711" es una extensión de mayor fidelidad para G.711, ratificada en 2008 y ampliada aún más en 2012.

G.711.1 permite una serie de capas de mejora sobre un flujo principal 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 una banda ancha de 8 kHz mediante MDCT; cada uno utiliza 16 kbps fijos además del núcleo de 64 kbps. Se pueden usar juntos o individualmente, y cada uno codifica las diferencias con respecto a la capa anterior. Ratificada en 2012, la capa 3 amplía la capa 2 a 16kHz "banda superancha" permitiendo otros 16 kbps para las frecuencias más altas, manteniendo la independencia de capa. La tasa de bits máxima se convierte en 96 kbps en G.711.1 original, o 112 kbps con banda superancha. No se define ningún método interno para identificar o separar las capas, dejando a la implementación empaquetarlas o señalizarlas.

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

También se ratificó en 2012 el G.711.0 sin pérdidas extendido a las nuevas capas de fidelidad. Al igual que G.711.0, la compatibilidad con versiones anteriores de G.711 se sacrifica por la eficiencia, aunque un nodo compatible con G.711.0 aún puede ignorar o descartar paquetes de capa que no entiende.

Licencias

Las patentes de G.711, publicadas en 1972, han caducado, por lo que puede utilizarse sin necesidad de licencia.