Técnicas avanzadas de codificación de vídeo

Motivación

Es de sobra conocido que el streaming de vídeo a través de redes ad hoc móviles (MANETs) presenta muchos desafíos. La propia definición de MANET, que implica redes inalámbricas, rutas multisalto y movilidad de los nodos, es la principal razón de sus grandes problemas: una reducción considerable del ancho de banda disponible y una topología dinámica con frecuentes caídas de rutas. Todo esto provoca pérdidas de paquetes y efectos negativos en el rendimiento de la red.

Es por ello por lo que se han propuesto diferentes soluciones para afrontar estos desafíos en las redes MANETs. Algunas de estas soluciones están basadas en mecanismos cross-layer, en mejoras en la capa MAC o en nuevos protocolos de enrutamiento diseñados para considerar desconexiones de los nodos y la eficiencia en el consumo de la potencia. Además, otras opciones incluyen el uso de una red troncal (backbone) estático, como Redes Mesh Inalámbricas (WMN), reduciendo la movilidad de algunos nodos de enrutamiento. Adicionalmente, se han propuesto otras soluciones en la capa de aplicación, desde algoritmos de diferenciación de pérdidas, que permiten a las aplicaciones adaptar el tipo de pérdidas (congestión, rotura de rutas, etc.), hasta nuevas técnicas de codificación de vídeo, como Layered Coding (LC) [1] o Multiple Description Coding (MDC) [2]. MDC es una técnica de codificación de vídeo capaz de mejorar la resiliencia a errores de un sistema de envío de vídeo a través de múltiples flujos de vídeo con información redundante. Esta técnica de codificación es especialmente útil en transmisiones multipunto-a-punto debido a la disyunción de las rutas de paquetes. Este esquema hace que las pérdidas de paquetes sean más independientes y mejoran la probabilidad de envío de paquete. Entre las soluciones existentes, MDC es una de las soluciones más adecuadas en redes multisalto debido a la posibilidad de utilizar rutas disyuntivas hacia el destino.

Otro mecanismo interesante utilizado para minimizar el efecto de las ráfagas y de la impredictibilidad de las pérdidas es el mecanismo de protección frente a errores Forward Error Correction (FEC) [3]. Esta técnica consiste en la adición de información redundante a una señal previamente comprimida, lo que permite al receptor corregir algunos errores sin necesidad de ninguna retransmisión. Sin embargo, el uso de redundancia hace incrementar la cantidad total de bits requeridos para transmitir un contenido específico y, consecuentemente, reduce la eficiencia de compresión.

Resumen

Existen diversos procedimientos para generar las descripciones en MDC. Normalmente un stream del vídeo fuente se divide en diferentes grupos o substreams. Estos substreams se codifican por separado y se utilizan como descripciones individuales en el sistema. Otros métodos utilizan descripciones interdependientes con información correlada para mejorar la eficiencia de la compresión [4]. La segmentación de una secuencia de vídeo se puede realizar en el dominio temporal, espacial o de frecuencia. La Figura 1 muestra el proceso de decodificación en una secuencia real de vídeo utilizando SDC y MDC temporal con dos descripciones, donde existen pérdidas de tramas. En la figura se muestra multidescripción en el dominio temporal. El símbolo O representa una trama recibida correctamente, mientras que el símbolo X indica que la trama se ha perdido o no se ha decodificado correctamente. En SDC, el flujo de vídeo se interrumpe y la mayoría de players congelan o repiten la última trama decodificada (en otro caso, se muestra una pantalla en negro). Por otro lado, en MDC, cuando se pierden tramas, el player replica la última trama recibida correctamente desde la otra descripción, resultando un stream de vídeo con la mitad de tasa de tramas pero sin interrupciones y, por tanto, se mejora la Calidad de Experiencia (QoE). Si existen pérdidas en cada descripción al mismo tiempo, no será posible la reconstrucción. Así, las descripciones se deben enviar a través de caminos diferentes para intentar independizar las pérdidas en cada descripción.

Figura 1. Ejemplo de decodificación con SDC y MDC

Cabe señalar que, al codificar cada substream de forma independiente, el ancho de banda global requerido para las transmisiones multidescripción es mayor que el requerido con SDC. Este inconveniente se debe a que los substreams se generan desde tramas no consecutivas, provocando una menor eficiencia de compresión. Cuanto más dinámica sea la secuencia de vídeo, mayor será el tamaño medio de trama. Además, FEC también introduce sobrecarga en el tráfico. El grado de protección proporcionado por FEC depende de la cantidad de redundancia añadida a la información para ser transmitida. A mayor porcentaje de redundancia, mejor resistencia frente a errores pero, a su vez, mayor tráfico en la red.

El esquema de codificación FEC se basa en codificación por bloques, es decir, los paquetes de datos se agrupan en bloques designados por (nk), donde es el número de paquetes de vídeo originales y n es la cantidad total de paquetes generados. Por lo tanto, se generan n-k paquetes con información FEC desde los k paquetes de vídeo que forman el bloque. Estos paquetes FEC se generan a partir de combinaciones linealmente independientes de paquetes de datos e, idealmente, los paquetes de datos se pueden reconstruir completamente si y sólo si se reciban cualesquiera k paquetes del bloque. Como FEC trabaja con bloques de paquetes, el tamaño del bloque afecta de forma directa a la habilidad de corregir errores relativos a pérdidas de ráfagas, lo que provoca la pérdida de múltiples paquetes consecutivos. Esto resulta importante ya que en redes ad hoc las pérdidas a menudo ocurren en ráfagas, por lo que el algoritmo FEC tiene que ser resistente a esta clase de pérdidas. Para la misma protección FEC, se obtienen mejores resultados (es decir, se recuperan un mayor número de paquetes) utilizando bloques con tamaño grande. A su vez, el tamaño del bloque afecta al retraso en la reproducción del vídeo, ya que el receptor tiene que esperar a recibir un bloque completo para reconstruirlo y reproducirlo. Esto implica que el receptor tiene que tener un búfer con capacidad suficiente para almacenar todos los paquetes del bloque, es decir, los paquetes de vídeo más los paquetes FEC. Así, el retraso de renderización está directamente relacionado con el tamaño del bloque, ya que cuando se pierden algunos paquetes de vídeo, el receptor tiene que esperar a recibir los paquetes FEC, los cuales se envían después del bloque de vídeo entero.

El servicio de streaming propuesto por el grupo de investigación, basado en MDC y FEC, funciona como se muestra en la Figura 2. Un vídeo se codifica en formato YUV con dos descripciones. Esto se consigue dividiendo las tramas del vídeo original en subconjuntos dependiendo de su posición temporal. Por tanto, el vídeo original se separa en dos descripciones con la mitad del frame rate que el frame rate original. Por tanto, el contenido del vídeo se codifica en varias descripciones que se pueden enviar separadamente. El servidor de streaming envía la descripción del vídeo y los flujos FEC al nodo que los solicita. Los nodos de acceso son nodos ad hoc conectados al servidor de contenidos a través de una red cableada. A diferencia de otros nodos, los nodos de acceso tienen dos interfaces para retransmitir los paquetes del servidor en la red cableada a los nodos inalámbricos en la red ad hoc. Los nodos inalámbricos se mueven de forma arbitraria en una zona de cobertura delimitada. Cualquier nodo de la red puede solicitar un vídeo desde el servidor, por lo que el protocolo de enrutamiento tiene que asegurarse de que los paquetes de vídeo y de FEC se envían al nodo destino. Los dispositivos que no participan en la comunicación pueden actuar como routers para el tráfico de otras conexiones. El protocolo de enrutamiento utilizado es OLSR (Optimized Link State Routing) [5].

Figura 2. Esquema del servicio de streaming

Cuando algún dispositivo solicita un stream de vídeo, el servidor de contenido transmite las descripciones de vídeo y los flujos FEC a través de los puntos de acceso. Cada descripción se envía a través de un punto de acceso diferente, utilizando configuración de enrutamiento estática. Adicionalmente, el flujo FEC correspondiente de cada descripción se transmite a través del punto de acceso opuesto, es decir la descripción y el FEC también se envían a través de caminos disyuntivos. Cuando los paquetes de vídeo y FEC llegan al punto de acceso, se retransmiten a la red inalámbrica. Si el nodo requerido no está en el rango, los nodos intermedios actúan como routers. Los puntos de acceso se colocan en lugares opuestos en el escenario, por lo que las descripciones y los flujos FEC se pueden transmitir en caminos probablemente disyuntivos y no se requiere ninguna modificación en el protocolo de enrutamiento. Como consecuencia positiva de utilizar MDC, los dispositivos móviles con capacidad de procesamiento limitada podrían solicitar únicamente una descripción para reproducir el flujo a una tasa baja. Además, los dispositivos con ancho de banda restringido también podrían evitar la congestión con este método.

Algunas de las publicaciones del grupo de investigación en este campo se muestran en [6]-[12].

Referencias

[1] H. Schwarz, D. Marpe, and T. Wiegand, “Overview of the scalable video coding extension of the H.264/AVC standard,” IEEE Trans Circ Syst Video Tech, vol. 17, pp. 1103-1120, 2007.
[2] J. G. Apostolopoulos, T. Wong, W. Tan, and S. J. Wee, “On multiple description streaming with content delivery networks,” IEEE INFOCOM, 2002.
[3] Y. Xunqi, J. W. Modestino, I. V. Bajic, “Performance analysis of the efficacy of packet-level FEC in improving video transport over networks,” IEEE International Conference on Image Processing, vol. 2, pp. 177-180, 2005.
[4] S. Mao et al., “Video transport over ad hoc networks: multistream coding with multipath transport,” IEEE J. Sel Area Comm, vol. 21, pp. 1721-1737, 2003.
[5] T. Clausen and P. Jacquet, “Optimized link state routing protocol (OLSR),” IETF vol. RFC 3626, 2003.

Publicaciones

[6] P. Acelas, P. Arce, and J. C. Guerri, “Effect of the multiple description coding over a hybrid fixed-AdHoc video distribution network,” in 2nd International Workshop on Future Multimedia Networking, Coimbra (Portugal), Jun. 2009.
[7] J. C. Guerri, P. Arce, and P. Acelas, “Mechanisms for improving video streaming in mobile ad hoc networks,” Waves 2009 (iTEAM UPV Journal), vol. 1, pp. 24-34, 2009.
[8] W. Castellanos, P. Acelas, P. Arce, and J. C. Guerri, “Evaluation of a QoS-Aware Protocol with Adaptive Feedback Scheme for Mobile Ad Hoc Networks,” in Proc. of the Int. ICST Conference on Heterogeneous Networking for Quality, Reliability, Security and Robustness (QSHINE), Las Palmas (Spain), Nov. 2009, pp. 120-127.
[9] P. Acelas, P. Arce, W. Castellanos, and J. C. Guerri, “Estudio sobre el efecto de la codificación de vídeo por multidescripción en Redes MANET,” XV Simposium Nacional de la Unión Científica Internacional de Radio (URSI 2010), Bilbao (Spain), Sep. 2010.
[10] J. C. Guerri, P. Arce, P. Acelas, W. Castellanos, and F. Fraile, “Routing and Coding Enhancements to Improve QoS of Video Transmissions in Future Ad Hoc Networks,” Multimedia Services and Streaming for Mobile Devices: Challenges and Innovations, Ed. IGI Global, pp. 244-261, 2011.
[11] P. Guzmán, P. Acelas, T. R. Vargas, P. Arce, J. C. Guerri, E. Macías, and A. Suárez, “QoE evaluation and adaptive transport for 3D mobile services,” presented at the 2nd Workshop on Future Internet: Efficiency in High-Speed Networks (W-FIERRO), Cartagena, Murcia, Spain, Jul. 2012.
[12] P. Acelas, P. Arce, J. C. Guerri, and W. Castellanos, “Evaluation of the MDC and FEC over the quality of service and quality of experience for video distribution in ad hoc networks,” Multimedia Tools and Applications, vol. 68. no. 3, pp. 969-989, 2014.