Estado del Arte

Anuncio
2. VOZ SOBRE IP: PROTOCOLOS Y
CÓDECS
2.1. Introducción
En este apartado se presenta una breve descripción de VoIP junto
con el conjunto de funcionalidades que hacen su uso ventajoso con respecto
a la telefonía conmutada. Además, se presentan los distintos estándares
sobre los que se sustenta la solución estudiada y el conjunto de códecs que
van a ser utilizados en la codificación de las señales de audio.
2.2. Definición de VoIP
Voz sobre IP [3] es una tecnología que permite realizar una
conversación oral haciendo uso de la red de conmutación de paquetes
mediante el empleo del protocolo IP y conjugándolo con el protocolo RTP
[4], el cual permite ejecutar aplicaciones en tiempo real. Los pasos básicos
para la generación de una llamada telefónica a través de Internet consisten
en la conversión de la voz analógica a un formato digital y la compresión y
empaquetamiento de la señal obtenida para su transmisión. En el extremo
opuesto se realiza el proceso inverso para recuperar la señal vocal. En
cuanto a los dispositivos necesarios para llevar a cabo este proceso pueden
ser tanto un ordenador, un teléfono VoIP como un teléfono tradicional con
o sin adaptador, dependiendo del tipo de servicio deseado.
Entre las funcionalidades aportadas podemos destacar la posibilidad
de realizar varias llamadas de forma simultánea, la
inclusión
de
protocolos que permiten cifrar y autenticar la trama de datos (Secure RTP)
[5], la integración con otros servicios disponibles en la red de Internet o el
hecho de que la movilidad es completamente transparente. Además, desde
el enfoque empresarial, se ha verificado que el uso de la telefonía sobre IP
aumenta la productividad y ocasiona costes operacionales más bajos,
14
debido a que es necesaria una única red para la transmisión de voz y datos.
Tal es así, que según el informe de Cisco [6], el gasto de realización de
videoconferencias se reducen un 30% con respecto a la telefonía
tradicional.
Como ventajas añadidas, mencionar la capacidad de usar protocolos
de encaminamientos dinámicos, que permiten que los paquetes converjan
hacia la mejor ruta, y aplicaciones de monitorización, cualidad añadida que
permite a los administradores de red controlar el uso de la misma.
2.3. Estándares
El hecho de usar una red de conmutación de paquetes hace necesario
solventar ciertos problemas, que surgen de la naturaleza inherente de la
misma, relativos a la comunicación en tiempo real. Tal es así, que la red ha
ido optimizándose para eliminar, dentro de lo posible, la congestión de la
red y la pérdida de paquetes asociada. Sin embargo, todavía se está
trabajando en la robustez de la misma y la calidad del sonido transportado.
Es por ello, que los estándares establecidos se centran en tres pilares
básicamente: los códecs de audio, los protocolos de transporte y los
servicios de directorio.
Así, en el año 1996, la ITU definió la especificación H.323, la cual
se basaba en el uso de RTP/RTCP, que determinaba cómo el tráfico de voz,
datos y video debe ser transportado sobre una red local basada en IP.
Dentro del conjunto de recomendaciones que compone H.323, se halla el
estándar G.729 para códec de audio. No obstante, más adelante se llega al
acuerdo de sacrificar parte de la calidad del sonido en beneficio del ancho
de banda usado. Tal es así que se implanta G.723.1, el cual requiere 6.3
kbps frente a los 8 kbps necesarios anteriormente.
En cuanto a RTP, es un protocolo que permite sincronizar diferentes
flujos de datos pertenecientes a aplicaciones en tiempo real. Sin embargo,
no incluye mecanismos para entregar los paquetes a tiempo, para recuperar
paquetes perdidos o para asegurar la calidad de servicio (QoS). Finalmente,
15
el protocolo LDAP prevalece como candidato para los servicios de
directorios.
2.4. Codificación de la voz
Las redes de datos, como es el caso de la red IP sobre la que se
soporta este tipo de telefonía, son redes digitales. Esto significa que el caso
de transportar señales vocales, originalmente analógicas, requiere que en
algún punto de la red se realice la digitalización de la señal de audio. De
esta forma, una señal continua en el tiempo y que toma infinidad de valores
es convertida y cuantificada a una secuencia de números discretos. Esta
tarea suele realizarse, generalmente, en los propios terminales y el
elemento vital involucrado de forma directa es el códec.
Inicialmente, los códecs se basaron en codificar de la manera más
eficiente posible la forma de onda de la señal de entrada, haciendo uso de
características de la voz y el oído humano (por ejemplo, ha sido
comprobado que el oído es más sensible a ruidos y distorsiones en señales
de baja amplitud que en aquellas de mayor amplitud). Con el paso del
tiempo, con el objetivo de reducir el ancho de banda consumido en la
transmisión, se comenzaron a utilizar técnicas predictivas. Estas técnicas
consisten en predecir los valores de las muestras en función de la
extrapolación obtenidas de las muestras previas, y codificar exclusivamente
la diferencia entre el valor predicho y el valor real de la muestra.
Posteriormente, se añade una nueva idea en la codificación de la voz. Se
trata de generar voz sintética la cual emula la producción de voz en el
aparato fonador humano. En este tema se han diseñado modelos válidos
basados en un generador de impulsos y un filtro lineal ambos variables con
el tiempo.
La voz humana puede incluir tonos que alcancen hasta los 20 KHz,
que está directamente relacionado con el límite de frecuencias que es capaz
de percibir el oído. Sin embargo, la mayor parte de la energía se concentra
en las frecuencias más bajas, por debajo de los 4 KHz. Es por ello que la
mayor parte de los códecs utilizados, considerados de banda estrecha, se
centran en el tratamiento de la voz en ese intervalo. No obstante, se han
16
desarrollados códecs que cubren un espectro más amplio a cambio de
ocupar un mayor ancho de banda en la transmisión de los datos a través de
la red.
2.4.1. Digitalización y codificación
La digitalización es el primer paso en el proceso de la transmisión de
voz a través de la red de paquetes. Esta tarea consiste en la conversión de
una señal de naturaleza analógica en una señal que toma valores discretos.
Para conseguir tal efecto se divide este proceso en dos etapas: muestreo y
cuantificación.
La tarea de codificación es la pieza clave donde toma relevancia el
códec de voz. Se basa en la traducción de los valores discretos a numéricos
para su transmisión.
2.4.1.1. Muestreo
La finalidad del muestreo consiste en tomar muestras de la señal
vocal de manera periódica. La periodicidad de las muestras debe satisfacer
el Teorema de Nyquist. Teorema fundamental de la teoría de la
información que establece que la mínima frecuencia a la que puede ser
muestreada una señal para que pueda ser reconstruida sin perder
información debe duplicar la frecuencia máxima de la señal.
Debido a lo expuesto anteriormente, es plausible filtrar la voz
humana a 3,4 KHz sin dejar de ser entendible por el receptor. De tal
manera, y basándose en el mencionado teorema, para que sea posible
reconstruir esta señal a partir de sus muestras, la tasa de muestreo debe ser,
como mínimo, de 6,8 KHz. Teniendo en cuenta que los filtros reales no
pueden implementar cortes abruptos tal cual los teóricos, se ha establecido
de manera extendida en la telefonía una frecuencia de muestreo de 8 KHz,
lo que equivale a tomar una muestra de voz cada 125 microsegundos.
17
En la siguiente ilustración se representa una porción de una señal
analógica que posee una frecuencia máxima
, que al ser combinada
con un tren de pulsos de una periodicidad
, donde
designa
la frecuencia de muestreo, se consigue una señal muestreada válida para su
posterior reconstrucción en el extremo receptor de la comunicación.
Figura 2. Muestreo de una señal analógica.
2.4.1.2. Cuantificación
Una vez se ha obtenido las muestras a partir de la señal original, el
siguiente paso consiste en la cuantificación. Este proceso consiste en
convertir las muestras analógicas en muestras que tomen un conjunto de
valores discretos. Así, se completa el proceso de la digitalización. En la
siguiente figura se muestra un sencillo ejemplo del resultado de este
proceso.
18
Figura 3. Cuantificación de una señal muestreada.
Como es de esperar, al transformar los infinitos valores que puede
tomar una señal analógica a un conjunto discreto, se produce una distorsión
conocida como ruido de cuantificación. A pesar de su nombre, esta
distorsión no es propiamente un ruido, pues no proviene de factores
externos, sino que es intrínseco a esta tarea. Existe una relación directa
entre la cantidad de valores discretos, la distorsión asociada y el ancho de
banda necesario. Esta relación se basa en que cuanto más valores discretos
se usen en el proceso de la cuantificación, menor será la distorsión pero
mayor la cantidad de información que es necesaria transmitir.
A modo de ejemplo, se representa en la siguiente ilustración el error
cometido en la cuantificación de una muestra. De modo que se puede
observar la diferencia existente entre el valor tomado por la señal analógica
y el nivel de cuantificación correspondiente para su muestra.
Figura 4. Error de cuantificación.
19
2.4.1.3. Codificación
A pesar de ya disponer de una señal digital es necesario codificar los
valores discretos, es decir, asignarles valores numéricos, para que sea
posible su empaquetamiento y posterior transmisión. Para llevar a cabo
esta operación y su inversa se utilizan los códecs (codificadores /
decodificadores).
2.4.2. Códecs
Los códecs pueden ser clasificados en base a distintos factores que
los caracterizan, como pueden ser su tasa de bits, la calidad del audio
codificado, su complejidad, el tipo de tecnología que usan o el retardo que
introducen.
Originariamente, los códecs fueron diseñados para ser usados en el
rango de frecuencias donde se concentra la mayor parte de energía, entre
los 300 Hz y los 3,4 KHz. Estos códecs se conocen como de banda estrecha
(NB, NarrowBand). Con posterioridad, se han incluido códecs capaces de
trabajar en rangos más amplios, entre 50 Hz y 7 KHz, considerados de
banda ancha (WB, WideBand). Actualmente, la ITU-T ha estandarizado
códecs de banda “superancha” (SWB, SuperWideBand), para el rango
comprendido entre 50 Hz y 14 KHz, y de banda completa (FB, FullBand),
para el intervalo de frecuencias de 50 Hz a 20 KHz [7].
Un conjunto de códecs de banda estrecha se detallan con mayor
profundidad en los siguientes epígrafes, pues son los que se utilizan en la
codificación de los ficheros de audio usados en este proyecto. Este tipo de
códecs son los más usados hoy en día en la telefonía móvil y fija.
En cuanto a los de banda ancha se presentan los códecs más
representativos en el ámbito de la transmisión de audio. La mayor parte
derivan de los códecs de banda estrecha, aunque se presentan nuevas
alternativas en función de su utilización. Se están haciendo más presentes
20
debido al hecho de que los operadores móviles están desarrollando nuevos
servicios en sus redes como el denominado “voz en alta definición”.
Los códecs de banda superancha no son muy numerosos debido a su
reciente inclusión en la transmisión de audio de alta calidad. En general,
son extensiones incluidas en los anexos de códecs de banda ancha
estandarizados por la ITU-T, a excepción de SILK desarrollado por Skype.
Por último se han desarrollado los códecs de banda completa. Estos
presentan una nueva experiencia en la transmisión del audio que no sólo
busca proporcionar una alta calidad en la voz humana sino que pretende
captar el sonido ambiental. Los dos más recientes son las extensiones de
G.711.1 y G.722 [8].
En la tabla 1 se recoge una comparativa de la calidad de audio
esperada para los distintos tipos de códec, atendiendo a la banda de
frecuencias de funcionamiento. Estas conclusiones junto con las gráficas
comparativas presentadas a continuación han sido extraídas por el equipo
de investigación de Nokia [9].
Tipo de códec
NB
WB
SWB
FB
Banda de frecuencias
(Hz)
300 - 3400
50 - 7000
50 - 14000
20 - 20000
Calidad esperada
Teléfono
Radio AM
Radio FM
CD
Tabla 1. Calidad esperada según el tipo de códec.
El siguiente conjunto de tablas muestran los códecs de voz más
representativos pertenecientes a cada tipo de códec, según la clasificación
establecida. En ellas se recoge las tasas de bit y el retraso generado en la
codificación, y su aplicación básica en las comunicaciones.
21
Códec
Nombre
Tasa de
bit
(Kbps)
G.711
PCM: Pulse Code
Modulation
64 / 56
0,125
G.723.1
Hybrid MPC-MLQ
and ACELP
6,3 / 5,3
37,5
40 / 16 /
12,8 / 9,6
1,25
G.728
G.729
AMR
iLBC
LD-CELP:
LowDelay Code Excited
Linear Prediction
CS-ACELP:
Conjugate Structure
Algebraic Codebook
Excited
Linear
Prediction
Adaptative
Multi
Rate
internet Low Bitrate
Códec
Retardo
(ms)
11,8 / 8 /
6,4
15
12,2 a
4,75
20
15,2 /
13,33
20 / 30
Comentarios
Utiliza dos posibles leyes de
compresión: µ-law y A-law
[10]
Desarrollado
inicialmente
para videoconferencias en la
PSTN. Se utiliza actualmente
en VoIP [11]
Diseñado para aplicaciones
DCME
(Digital
Circuit
Multiplex Encoding) [12]
Ampliamente utilizado en
aplicaciones de VoIP, a 8
KHz [13]
Utilizado en redes celulares
GSM [14]
Utilizado en VoIP por su
robustez ante pérdida de
paquetes [15]
Tabla 2. Códecs de banda estrecha.
Figura 5. Comparación entre AMR y códecs de la serie G de la ITU-T.
22
La comparación entre AMR y la serie G de la ITU-T (figura 5),
revela que el primero de ellos es ligeramente mejor, en cuanto a calidad del
sonido, para tasa de bits similares.
Códec
Tasa de
bit
(Kbps)
Nombre
Retardo
(ms)
64 / 56 /
48
3
G.722.1 Transform Coder
32 / 24
40
G.711.1 WideBand G.711
96 / 80 /
64
11,875
G.729.1 WideBand G.729
8 a 32
49
G.722.2 AMR-WB
23,85 a
6,6
25,9375
G.722
Sub-band ADPCM
Comentarios
Originalmente creado para
audio y videoconferencias.
Actualmente utilizado en
servicios de telefonía de
banda ancha en VoIP [16]
Usado
en
audio
y
videoconferencias [17]
Amplía el ancho de banda del
códec G.711, optimizando su
uso para VoIP [18]
Amplía el ancho de banda del
códec G.729, optimizando su
uso para VoIP con audio de
alta calidad [19]
Estándar en común con 3GPP
[20]
Tabla 3. Códecs de banda ancha.
Figura 6. Comparativa entre códecs de banda ancha.
23
De nuevo, puede apreciarse que, en la mayor parte de los casos, el
códec AMR de banda ancha sigue proporcionando mejor calidad de audio
que el resto de los códecs analizados.
Códec
G.711.1
SWB
G.722
SWB
Nombre
G.711.1
Superwideband
G.722
Superwideband
G.722.1C Anexo C de G.722.1
SILK
SILK
Tasa de
bit
(Kbps)
Retardo
(ms)
128 a 96
12,8125
96 / 80 /
64
48 / 32 /
24
8 a 24
12,3125
40
25
Comentarios
Extensión interoperable con
G711 y G711.1 [21]
Extensión interoperable con
G.722 [22]
Optimizado para su uso en
tiempo real [23]
Utilizado por Skype [24]
Tabla 4. Códecs de banda superancha.
Figura 7. Comparativa de códecs de banda superancha.
En la anterior gráfica se comprueba que AMR de banda ancha
extendido, AMR-WB+ [25], continúa siendo el códec que aporta mayor
calidad a la comunicación. No obstante, no se ha incluido en la tabla 4
24
como una opción válida pues presenta un alto retardo para la telefonía en
tiempo real.
Códec
G.719
Nombre
Low-complexity,
full-band
Tasa de
bit
(Kbps)
Retardo
(ms)
Comentarios
32 a 128
40
Primer
códec
fullband
estandarizado por la ITU-T
[26]
Tabla 5. Códec de banda completa.
2.4.2.1. G711
La recomendación G.711 [10] recoge el códec básico en telefonía
estandarizado por la ITU-T. Conocido formalmente como Pulse Code
Modulation (PCM) es un códec del tipo de “forma de onda”.
G.711 es un estándar para la representación de señales de audio en la
banda de frecuencias conocida como banda estrecha a partir de una señal
muestreada a una tasa de 8000 muestras por segundo. Teniendo en cuenta
que en la cuantificación logarítmica no uniforme se utilizan 8 bits para
representar cada muestra, se obtiene una tasa de bit de 64 kbit/s.
Por otro lado, el proceso de cuantificación está implementado
mediante un algoritmo no lineal, debido al comportamiento del oído
humano, minimizando la cantidad de niveles de cuantificación. Este
algoritmo se basa en aportar pequeñas distorsiones para amplitudes
pequeñas de señal y un aumento de las mimas con respecto a la amplitud de
la señal.
Se distinguen dos algoritmos principales, la ley µ, usada en Norte
América y Japón, y la ley A, usada en Europa y el resto del mundo. Ambas
leyes están compuestas de 256 niveles no lineales de cuantificación,
correspondiente a los 8 bits disponibles. El primero de ellos permite una
mayor resolución para elevados rango de señal y hace uso de 15 segmentos
de recta para aproximarse a la curva real, mientras que la segunda
25
proporciona más niveles de cuantificación para amplitudes de señal más
reducidas y sólo utiliza 13 segmentos de recta.
2.4.2.2. G.729
El códec G.729 [13] es un estándar de codificación de señales
vocales desarrollado por la ITU-T. Está caracterizado por generar una tasa
de bit de 8 kbit/s utilizando el algoritmo CS-ACELP (Conjugate-Structure
Algebraic-Code-Excited Linear-Prediction).
Se enmarca dentro de los códecs basados en el modelo de síntesis de
voz. Utiliza un mecanismo consistente en dos generadores de impulsos
combinados que se seleccionan de una lista predeterminada (codebook).
Esta técnica se conoce como CELP. En ella se utilizan ventanas de audio
de 10 ms con una cabida para 80 muestras, puesto que la frecuencia de
muestreo coincide con el caso anterior (8000 muestras por segundo). De tal
manera que cada 10 ms se extraen los parámetros del modelo CELP:
coeficientes del filtro lineal predictivo (LPC), punteros a la tabla de
impulsos adaptativos y fijos (codebook) y ganancias. A partir de los
mencionados coeficientes se obtienen parámetros equivalentes, llamados
LSP (Line Spectrum Pairs), y se cuantifican utilizando vectores predictivos
de dos etapas (VQ).
G.729 es comúnmente utilizado en aplicaciones de VoIP debido que
presenta unos requerimientos de ancho de banda considerablemente
inferiores a otros códecs pertenecientes a la misma familia, veáse tabla 2.
Tal como ha sido comentado anteriormente, este estándar opera a una tasa
de bit de 8 kbit/s y genera tramas de 10 ms, por lo que se necesitan de 80
bits para codificar cada ventana de audio. No obstante, existen extensiones
que permiten incrementar o disminuir la calidad de la conversación pues
éstas ofrecen tasas de bit de 11,8 kbit/s y 6,4 kbit/s, respectivamente.
El anexo A de esta recomendación define un nuevo algoritmo
denominado G.729a con una complejidad menor que G.729 y totalmente
interoperable. Esta reducción de la complejidad se consigue mediante
simplificaciones en los algoritmos empleados con respecto a la versión
original, que implican la sustitución de algunos bloques de procesamiento
26
por otros más sencillos y la fijación de ciertos parámetros que en la versión
completa varían en base al audio a codificar. En contraposición, la calidad
de la conversación es empeorada.
En el anexo B se proporciona un esquema para la detección de
actividad vocal (VAD, Voice Activity Detection) y supresión de silencios
mediante el uso de las conocidas tramas SID. Gracias a este modelo es
posible realizar una “transmisión discontinua” (DTX) en la cual se decide
si se transmite voz o se genera ruido de confort (CNG). En caso de generar
ruido de confort, la actualización de los parámetros de ruido de fondo es
empaquetada en las mencionadas tramas SID. De tal forma que en el
extremo receptor se distinguen si las tramas recibidas son activas o de
silencio. Esta nueva implementación permite la reducción del ancho de
banda total utilizado, ya que no se transmiten muestras durante los períodos
de silencio, excepto la información de actualización del ruido de confort.
2.4.2.3. AMR
El códec AMR (Adaptative Multi Rate) [14], a diferencia de los
anteriores, está estandarizado por el organismo 3GPP y es utilizado
típicamente en redes celulares GSM. En común con el códec G.729
presenta la capacidad de hacer uso de las tecnologías DTX, VAD y CNG,
descritos anteriormente.
El nombre adoptado por este códec proviene de la variedad de
posibilidades de tasa de bit a las que puede operar. Estos regímenes
binarios son los siguientes 12,20; 10,20; 7,95; 6,70; 5,90; 5,15 y 4,75
kbit/s. De forma similar a G.729, su funcionamiento también se basa en el
modelo CELP, pero en este caso las ventanas de audio son de 20 ms. De
nuevo la frecuencia de muestreo es de 8000 muestras por segundo por lo
que en cada ventana de audio caben una cantidad de 160 muestras. Cada
ventana, a su vez, se divide en cuatro de 5 ms (40 muestras) cada una.
En base a las velocidades de transmisión el tamaño de las tramas
pueden tomar los siguientes valores: 244, 204, 159, 148, 134, 118, 103 ó 95
bits, respectivamente.
27
2.4.2.4. iLBC
iLBC (internet Low Bitrate Códec) es un códec de voz desarrollado
por Global IP Solutions [15]. Es muy adecuado para aplicaciones de voz
sobre IP, sobre todo en condiciones de pérdida de tramas elevada. Las
causas principales de la existencia de tramas perdidas suelen ser la pérdida
o el retraso de los paquetes IP. La mayor parte de los códecs aprovechan las
dependencias entre tramas de voz, lo que conlleva una propagación del
error cuando ocurren estos fenómenos. En cambio, las tramas codificadas
mediante el códec iLBC son totalmente independientes, erradicando el
problema presentado.
En la siguiente figura se muestra una comparación entre la calidad de
voz en la escala MOS codificada mediante el códec iLBC frente a dos
códecs de la ITU-T, G.729 y G.723.1, en función de la pérdida de paquetes.
En ella se demuestra que al aumentar la pérdida de paquetes la calidad
ofrecida por iLBC supera ampliamente a las otras dos alternativas.
Figura 8. Comparativa de calidad de iLBC frente a G.729 y G.723.1.
28
Está diseñado para la voz en banda estrecha y permite trabajar a dos
tasas de bit que generan dos tamaños de trama distintos, 30 ms para una
tasa de 13,33 kbit/s y 20 ms para 15,20 kbit/s. De tal manera que una trama
de 20 ms contiene 304 bits, mientras que una de 30 ms está formada por
400 bits. La frecuencia de muestreo sigue siendo de 8000 muestras por
segundo por lo que se codifican 160 muestras para tramas de 20 ms y 240
muestras para tramas de 30 ms.
29
Descargar