Codecs de Voz y su Impacto en la Calidad
El códec es un elemento crítico en el efecto que el Acuerdo de Nivel de Servicio (SLA) tiene sobre la calidad de la voz. Los códecs varían en complejidad, ancho de banda requerido y calidad de sonido ofrecida. Los más complejos ofrecen una mayor calidad percibida y menor bitrate, pero con mayores tiempos de procesado.
Ejemplos de Codecs
- G.711: Basado en Modulación por Impulsos Codificados (PCM), simplemente muestreando a intervalos regulares.
- G.726: Modulación por Impulsos Codificados Diferencial Adaptativa (ADPCM), usa predicción de la siguiente muestra y cuantiza la diferencia.
- G.723 y G.729: Trabajan con bloques de muestras (frame-based) para las que aplican técnicas de compresión como la Predicción Lineal Excitada por Código Algebraico (ACELP).
Componentes del Retardo en VoIP
Retardos Constantes
Retardo de Paquetización
- Tiempo necesario para acumular las muestras.
- Depende del tamaño en muestras que se busque.
- En general, no excede los 30 ms de muestras (240 bytes PCM).
- A menor tamaño, mayor tasa de llegadas de paquetes de voz.
t Retardo de paquetización
Retardo de Procesado del Codificador
- Tiempo que lleva al Procesador Digital de Señales (DSP) comprimir las muestras.
- También afecta en la descompresión (menor, se suelen juntar al calcular).
- Depende del códec y de su implementación (fabricante, en torno a 2-20ms).
t Retardo de paquetización + Compresión
Retardo Algorítmico (look-ahead)
- Los algoritmos de compresión suelen necesitar conocer muestras siguientes a las del bloque a comprimir.
- Eso implica que hay que esperar a que se generen.
- Para G.726 es de 0 ms, para G.729 de 5 ms, para G.723.1 de 7.5 ms.
t Retardo de paquetización + Look-ahead + Compresión
Retardo de Serialización
- Tiempo de transmisión.
- Solo se mejora aumentando la velocidad de transmisión.
- Despreciable por encima de 100Mbps.
t Transmisión
Retardo de Propagación
- Coaxial terrestre, radio: 4µs por Km (250.000 Km/s).
- Fibra: 5µs por Km (200.000 Km/s).
- Coaxial submarino: 6µs/Km.
- Siendo D la distancia en línea recta geográfica (a vuelo de pájaro).
- Los enlaces no siguen una línea recta.
- ITU-T G.826 hace una estimación (R).
D R D 1200 km 1.25 x D
G.826 “Parámetros y objetivos de rendimiento de error de extremo a extremo para rutas y conexiones digitales internacionales de velocidad de bits constante
G.114 “Tiempo de transmisión unidireccional”
t Transmisión + Propagación + distancia
Tiempo de Procesado/Conmutación
- En función del hardware.
- Típicamente 10-20µs.
- Router software 2-3ms.
Retardos Variables
Retardo de Jitter (De-jitter delay)
- “De-jitter buffer” o “play-out buffer”.
- Introducen un play-out delay.
- Variación en el retardo ≠ retardo constante en el receptor.
- Obliga a la red a tener menor retardo.
- Si el búfer es demasiado pequeño, obliga a la red a garantizar un jitter bajo.
Ejemplo de búfer muy grande:
Ejemplo de búfer demasiado pequeño:
Play-out delay
Play-out delay
Paquetes transmitidos
Paquetes transmitidos
tiempo
tiempo
Envío Recepción Reproducción
Envío Recepción Reproducción
De-jitter delay
Ejemplo de búfer óptimo:
Paquetes transmitidos
Play-out delay
tiempo
Envío Recepción Reproducción
De-jitter delay
- Valor óptimo: el del retardo variable extremo a extremo.
- Valores de play-out delay en torno a los 40 ms.
- Se emplea búfer adaptativo (con un valor máximo).
- Si se vacía el búfer, entonces la próxima llegada se retiene durante el play-out delay para reiniciar el búfer.
- Si se produce un underflow, lo intenta “cubrir” (packet loss concealment) y aumenta el play-out delay.
- Si pueden reducir el búfer, lo hace de forma lenta.
Retardo en Cola (scheduling delay)
- Tiempo entre que el paquete se dirige al interfaz de salida y que empieza a transmitirse.
- Depende de la carga.
- Depende del planificador.
Otros Retardos
- La llamada puede pasar por recodificadores, con lo que implica un nuevo tiempo de codificación.
- Sedes remotas podrían conmutar llamadas en sede central.
- Conmutación en PBX digital.
- Requiere convertir a PCM para pasar a la PBX (de-jitter, decodificación).
- Requiere volver a comprimir para enviar a la segunda sede.
- Mayores retardos de procesado.
- Más de dos compresiones CS-ACELP degrada la calidad de voz.
- PDD = Post Dial Delay
- Entre marcar el último número y que suene el otro teléfono.
- 1-2 seg para llamadas nacionales, 4+ seg para internacionales.
PBX Sede central PBX Sede remota 2 Red multiservicio PBX S
QoS: Transporte de Voz
Área de Ingeniería Telemática http://www.tlm.unavarra.es Grado en Ingeniería en Tecnologías de Telecomunicación, 3º
Voz y el
throughput – Throughput • Generalmente los codecs producen un flujo a bitrate constante • Esto puede no ser así si se emplea supresión de silencios (VAD, Voice Activation Detection) – Una conversación suele contener aproximadamente un 50% de silencios – VAD reduce el ancho de banda medio pero no el de pico • La capacidad suele estar dimensionada para soportar la tasa de pico • Esto no quita para que se haga sobresubscripción – Throughput y encapsulado • A la hora de asegurar un throughput hay que tener en cuenta que: – El servicio genera un bitrate a nivel de aplicación – Habrá al menos encapsulado IP (más transporte UDP?) – El encapsulado de nivel de enlace va a depender de cómo se haga el transporte de red – Throughput y encapsulado • Hay que tener en cuenta en qué nivel se está asegurando el throughput • Esto afecta a cualquier servicio • Si se asegura un bitrate o pkts/s a nivel IP hay que tener en cuenta que al enviar se añade la cabecera de nivel de enlace • Ejemplo: – Flujo A paquetes de 100 bytes, flujo B paquetes de 1000 bytes (a nivel IP) – Se asegura un reparto del 50:50 % de la capacidad del enlace a nivel IP – Enlace Ethernet – En un cierto periodo se enviarán 10 paquetes de A por cada paquete de B – Se han enviado 10x(100+18) bytes de A y 1000+18 bytes de B – Eso son 1180 bytes de A y 1018 de B – Eso es un 54:46 % – Encapsulado: Ejemplo • Cada paquete suele llevar unos 20-30ms de muestras • En el cálculo del BW hay que tener en cuenta la encapsulación – X bytes de payload (muestras de voz) – +12 de cabecera RTP – + 8 de cabecera UDP – +20 de cabecera IP (mínima sin opciones) – + Y bytes de cabecera de enlace • Ejemplo: G.711 (64 Kbps, Con paquetes cada 20ms, 50 pps) – 8 muestras/ms, 1 byte/muestra, 20 ms/paquete ⇒ 160 bytes/paquete – 160+12+8+20 = 200 bytes de paquete IP ⇒ 10.000 Bps (80 Kbps) – Enlace PPP (+6 Bytes) ⇒ 206 bytes/trama ⇒ 82.4 Kbps – o enlace Ethernet (+18 Bytes) ⇒ 218 bytes/trama ⇒ 87.2 Kbps – o enlace Frame Relay (+4 Bytes) ⇒ 204 bytes/trama ⇒ 81.6 Kbps – o ATM/AAL5-LLC/SNAP ⇒ 5 celdas = 265 bytes/paquete ⇒ 106 Kbps • Ejemplo: G.729a (8 Kbps, con paquetes cada 20ms, 50 pps) – PPP = 26.4 Kbps, Ethernet = 29.6 Kbps, FR = 25.6 Kbps, ATM = 42.2 Kbps – Voz y pérdidas – Pérdidas • Packet Loss Concealment (PLC) • Permite enmascarar el efecto de pérdida de paquetes de VoIP • En codecs tipo G.711 se repite la última muestra – Se basa en que la onda cambia despacio – Se puede cubrir así hasta en torno a 20ms de muestras – La paquetización en el codec determina cuántas muestras hay en un paquete – Si se crean los paquetes conteniendo 20ms de muestras entonces dos o más pérdidas consecutivas degradan la calidad – Paquetes más grandes reducen la sobrecarga de cabeceras y por lo tanto el ancho de banda consumido – Sin embargo, si los paquetes contienen más de 20ms de muestras, puede que con PLC no se puedan mitigas las pérdidas – Pérdidas • Codecs frame-based (G.729 y G.723) usan técnicas más sofisticadas, cubriendo pérdidas de hasta 30-40ms si no son fonemas cortos • Se puede recuperar una pérdida pero mejor diseñar la red para pérdidas cercanas a 0 para el tráfico de voz – Codecs – Retardos y voz: Ejemplo – Ejemplo de retardo VoIP • Llamada transatlántica • Estimación de caso peor • Haciendo prioritario el tráfico de voz • Solo 1 llamada de voz es tráfico prioritario