You are here

Elegir un códec de vídeo para Asterisk

Todos sabemos que Asterisk puede trabajar con diferentes códecs, lo que no está tan claro es cuál es el mejor para cada ocasión.

Para empezar vamos a ver que códecs soporta Asterisk y su ancho de banda necesario:

  • H.261 (entre 40 Kbits/s y 2 Mbits/s)
  • H.263 (desde menos de 64 Kbits/s hasta 583.9 Mbits/s sin compresión)
  • H.263p (Asterisk 1.4) (desde menos de 64 Kbits/s hasta 583.9 Mbits/s sin compresión)
  • H.264 (Asterisk 1.4) (entre 64 Kbits/s y 960 Mbit/s)

Una cosa muy importante a tener en cuenta a la hora de elegir un códec de vídeo es el hecho que Asterisk no soporta ningún tipo de transcodificación de vídeo. También recordar que la negociación de códecs de vídeo aún tiene algunos bugs, y si queremos activar el soporte de vídeo en Asterisk (sin parchear) debemos asegurarnos de activar tan solo un códec de vídeo en sip.conf

Dicho esto, vamos ahora a ver algunos detalles sobre cada códec. Así podemos hacernos una pequeña idea de cual es el códec más apropiado para cada ocasión.

H.261:

H.261 fue el primer estándar de codificación de vídeo, originalmente diseñado para la transmisión sobre líneas RDSI en las cuales los bitrates (ratio de bits) son múltiplos de 64 Kbits/s. El diseño de H.261 fue un esfuerzo pionero, y todos los subsiguientes estándares de codificación de vídeo internacionales (MPEG-1, MPEG-2/H.262, H.263, e incluso H.264 estan basados en su diseño). El algoritmo de codificación utiliza un híbrido de predicción inter-imagen compensada por el movimiento y codificación de transformaciones espaciales con cuantización escalar, escaneado en zig-zag y codificación entrópica.

La unidad de procesamiento básica del diseño se llama macrobloque, y H.261 fue el primer estándar donde apareció el concepto de macrobloque. Cada macrobloque consiste en un array de 16x16 con samples luma y dos arrays correspondientes de 8x8 con samples chroma, utilizando un sampleado 4:1:1 con un espacio de color YCbCr.

H.263:

H.263 es un codec de vídeo diseñado por la ITU-T como solución de codificación de bajo bitrate para videoconferencia. Se diseñó primero para ser utilizado en sistemas basados en H.324 (RTC y otras redes conmutadas de videoconferencia y videotelefonía) pero desde entonces se encontraron también usos en soluciones H.323 (videoconferencia basada en IP/RTP), H.320 (videoconferencia basada en RDSI), RTSP (streaming de medios) y SIP (conferencia en Internet).

H.263 fue desarrollado como una revolucionaria mejora basada en la experiencia de H.261, el estándar ITU-T previo para compresión de vídeo, y los estándares MPEG-1 y MPEG-2. La primera versión se completó en 1995 y proporcionó un conveniente reemplazo para H.261 en todos sus bitrates.

El H.263 original especificaba los siguientes anexos:

  • Anexo A - Especificación de precisión de transformación inversa
  • Anexo B - Decodificador de referencias hipotéticas
  • Anexo C - Consideraciones para multipunto
  • Anexo D - Modo vector de movimiento sin restricciones
  • Anexo E - Modo de codificación aritmética basado en sintaxis
  • Anexo F - Modo de predicción avanzado
  • Anexo G - Modo PB-frames
  • Anexo H - Correción del "Forward Error" para la señal de vídeo codificada

H.263p:

También conocido como H.263+/h263p o H.263v2 es básicamente una mejora de H.263 soportada por el Eyebeam de Xten proporcionando una mejora de la calidad de vídeo.

Fue diseñado reteniendo completamente el contenido técnico de la primera versión (H.263) del estándar, pero mejorando las capacidades de H.263 añadiendo varios anexos que pueden mejorar substancialmente la eficiencia de la codificación y proporcionar otras capacidades (tales como una robustez mejorada frente la pérdida de datos en el canal de transmisión). El proyecto H.263+ fué ratificado por la ITU en Febrero de 1998. Añadió los siguientes anexos:

  • Anexo I - Modo de codificación avanzado INTRA
  • Anexo J - Modo filtro desbloqueante
  • Anexo K - Modo estructurado en partes
  • Anexo L - Especificación de información de mejoras suplementarias
  • Anexo M - Modo PB-frames mejorado
  • Anexo N - Modo selección de imagen de referencia
  • Anexo O - Modo de escalabilidad temporal, SNR, y espacial
  • Anexo P - Resampling de imagen de referencia
  • Anexo Q - Modo actualización de resolución reducida
  • Anexo R - Modo de decodificación de segmentos independiente
  • Anexo S - Modo alternativo INTER VLC
  • Anexo T - Modo de cuantización modificada
  • Anexo X - Definición de perfiles y niveles

H.263v2 también añadió soporte para formatos flexibles de imágenes personalizadas y con frecuencias de reloj de imagen personalizadas. Previamente los únicos formatos de imagen soportados en H.263 habían sido Sub-QCIF, QCIF, CIF, 4CIF, y 16CIF, y la única frecuencia de reloj de imagen había sido 30000/1001 (aproximadamente 29.97) tics de reloj por segundo.

H.264:

H.264 es un estándar para compresión de vídeo también conocido como MPEG-4 Part 10, o MPEG-4 AVC (para Advanced Video Coding).

La finalidad del proyecto H.264/AVC era crear un estándar capaz de proporcionar buena calidad de vídeo a bitrates sustancialmente inferiores que los estándares previos (por ejemplo menos de la mitad del bitrate de MPEG-2, H.263, o MPEG-4 Part 2), sin incrementar demasiado la complejidad del diseño para que no fuera impracticable o excesivamente caro de implementar. Un objetivo adicional era proporcionar suficiente flexibilidad para permitir aplicar el estándar en una amplia variedad de aplicaciones y una amplia variedad de redes y sistemas, incluyendo bajos y altos bitrates, vídeo de alta y baja resolución, multidifusión, almacenamiento en DVD, redes de paquetes RTP/IP y sistemas de telefonía multimedia ITU-T.

Conclusión:

Por lo que hemos podido observar, cada nuevo estándar (o códec) es substancialmente mejor a la anterior versión, aunque a pesar de ello la elección no es tan obvia. Debemos tener en cuenta otros aspectos relacionados con el uso de códecs como tipos de licencias.

También pueden existir otros factores como la necesidad de interconectar con otros sistemas de videoconferencia, la infraestructura actual, los videoteléfonos que vamos a utilizar (como en el caso de Eyebeam y H.263p). Aunque cabe decir que la mayoría de los sistemas de videoconferencia soportan tanto H.261 como H.263 y H.264

Fuentes:

Voip Info

Wikipedia

Mobile Multimedia Networking

Asterisk: 
Debian: 
Qué te parece: