Source: http://docplayer.es/8648711-Fundamentos-de-video-streaming.html
Timestamp: 2018-07-21 08:24:49+00:00

Document:
Fundamentos de Video Streaming - PDF
Download "Fundamentos de Video Streaming"
Soledad Aranda Fidalgo
1 Fundamentos de Video Streaming Daniel Rijo Sciara Ingeniero Electricista Monografía para el curso de postgrado: Codificación de Imágenes y Video Instituto de Ingeniería Eléctrica Facultad de Ingeniería Universidad de la República Montevideo - Uruguay Diciembre de 2004 Extracto. La comunicación de video sobre redes de paquetes ha progresado mucho en los últimos años variando desde bajar un archivo para reproducirlo a tener varias técnicas adaptables al medio y desde el uso directo de la infraestructura de red, al diseño y uso de arquitecturas superpuestas. Los desarrollo en algoritmos y capacidad de cómputo así como en infraestructura de redes y comunicaciones continúan desafiando los límites del streaming de medios, simplificando los problemas actuales y planteando nuevas metas. La aparición de de la redes de envío de contenidos CDN para streaming presenta una oportunidad importante para el desarrollo de nuevas aplicaciones. La implementación de redes inalámbricas de banda ancha invita a la implementación de streaming no solo para usuarios inalámbricos sino también para usuarios móviles. Por otro lado, la posibilidad de implantación de QoS en Internet abre las puertas a la realización de aplicaciones de streaming mas predecibles, permitiendo convertir en realidad el streaming sobre IP con bajo ancho de banda y baja latencia. El streaming de video será sin dudas un área de investigación y desarrollo con grandes expectativas industriales y comerciales en un futuro cercano.
2 Fundamentos de Video Streaming 2 Índice Índice 2 1 Introducción 4 2 Descripción del video streaming y su aplicación en comunicaciones Comunicación punto a punto, multipunto y difusión Codificación en tiempo real versus precodificación Aplicaciones interactivas versus no interactivas Canales estáticos versus canales dinámicos Canales de Bit Rate constante (CBR) y variable (VBR) Redes de conmutación de paquetes y de conmutación de circuitos Soporte de la calidad de servicios (QoS) 7 3 Revisión sobre compresión de video Breve descripción de la compresión de video Estándares de compresión de video Qué especifican los estándares? 12 4 Codificación escalable del video Introducción Modos básicos de escalabilidad Escalabilidad de la calidad Escalabilidad espacial Escalabilidad temporal Escalabilidad en frecuencia Combinación de esquemas básicos Escalabilidad de granulado fino Escalabilidad basada en objetos Codificación basada en transformadas wavelet Codificación de imágenes fijas con wavelets Codificación de video con wavelets 30 5 Control de errores para superar pérdidas del canal Retransmisiones Corrección de errores hacia delante Ocultamiento del error Codificación de video resistente al error Problemas introducidos por los errores Como superar la pérdida de sincronización en la trama Como superar la propagación del error y de los estados incorrectos Codificación de video escalable para redes con muchas pérdidas Codificación de video con descripción múltiple 39
3 Fundamentos de Video Streaming Codificación de video con descripción múltiple y diversidad de caminos Codificación conjunta de canal y de fuente 40 6 Streaming de video sobre Internet y redes IP inalámbricas Arquitectura de los sistemas de video streaming Compresión de video Control de QoS en la capa de aplicación para streaming de video Control de congestionamiento Control de error 45 Ocultamiento del error Servicios de distribución de medios continuos Filtrado de red Multi-difusión a nivel de aplicación Replicación de contenido Servidores de streaming Sistemas operativos de tiempo real Sistema de almacenamiento Sincronización de medios Protocolos para Video streaming Protocolos de transporte Protocolo de control de sesión RTSP Streaming de video sobre redes IP inalámbricas Aplicaciones que toman en cuenta la red Servicios adaptables Control de admisión de llamadas y reserva de recursos 61 7 Referencias 62
4 Fundamentos de Video Streaming 4 1 Introducción La aparición de la Internet ha permitido desde hace tiempo bajar y reproducir archivos de audio y video de buena calidad. Sin embargo, la transferencia de archivos completos se traduce en tiempos de transferencia muy largos y la imposibilidad de ver y escuchar en tiempo real. El método ideal para enviar medios sería generar un flujo de video (video stream) a través de Internet desde el servidor al cliente en respuesta a una solicitud del mismo. El cliente reproduce el flujo entrante en tiempo real, a medida que va recibiendo los datos. El video transmitido sobre redes de paquetes funcionando al mejor esfuerzo tiene complicaciones debidas a factores como el desconocimiento y la variación en el tiempo del ancho de banda, demoras, pérdidas de datos y otros como el compartir los recursos de la red eficientemente y la realización eficiente de comunicación entre un punto y varios puntos. Estudiaré en este trabajo los desafíos que hacen a la complejidad del envío y la reproducción de video simultánea y exploraré los algoritmos y sistemas que permiten el flujo de video precodificado o video en vivo sobre redes de paquetes como la Internet. Comenzaré con un resumen de los distintos alcances del streaming de video y las aplicaciones en comunicación. Las diferentes clases de aplicación del video nos proveen diferentes conjuntos de restricciones y grados de libertad en el diseño. 2 Descripción del video streaming y su aplicación en comunicaciones Las diferentes aplicaciones para la comunicación y el streaming de video tienen diversidad de alcances. Una aplicación como la comunicación de video puede ser por ejemplo punto a punto o para la transmisión múltiple. Por otro lado el material puede ser video precodificado, en vivo o codificado en tiempo real (por ejemplo un video teléfono o video conferencia). Los canales para la comunicación pueden ser estáticos o dinámicos, con conmutación de paquetes o conmutación por circuitos, pueden soportar bitrate variable y alguna forma de calidad de servicio QoS 1 o simplemente trabajar al mejor esfuerzo. Las propiedades específicas de la aplicación de video tienen una fuerte influencia en el diseño del sistema. Por este motivo, continuaré con una breve discusión de alguna de estas propiedades y sus efectos en el diseño del sistema de comunicación de video. 1 QoS: Quality of Service
5 Fundamentos de Video Streaming Comunicación punto a punto, multipunto y difusión La forma mas popular de comunicación por video es desde un punto a muchos (o desde un punto a todos), llamada comunicación por difusión (broadcast communication) como por ejemplo la televisión. La difusión es una forma muy eficiente de comunicación para contenidos populares, ya que puede enviar estos contenidos a todos los receptores al mismo tiempo. Un aspecto importante de la comunicación por difusión es que el sistema debe ser diseñado para suministrar a cada potencial receptor la señal requerida. Esto se debe a que cada receptor puede presentar diferentes características de canal, por lo que el sistema se diseña para el peor caso. Un ejemplo es la televisión digital en donde la codificación del canal y la codificación de fuente fueron diseñadas para proveer una señal adecuada en el borde del área de recepción, sacrificando la calidad para los receptores en áreas mas cercanas al centro de transmisión. Una característica importante de la comunicación por difusión es que dado que involucra un número muy grande de receptores es casi imposible tener una interacción entre el receptor y transmisor, limitando la adaptabilidad del sistema. Otra forma de comunicación muy común es la punto a punto (point-to-point) como por ejemplo el video teléfono, o la video conferencia por Internet. Una propiedad importante de este tipo de comunicación es el hecho de que exista o no un canal de retorno entre el emisor y el receptor. Si este existe el receptor puede enviar información al emisor que puede ser usada para adaptar el procesamiento, de lo contrario habrá un conocimiento limitado por parte de este sobre el comportamiento del canal. Otra forma de comunicación con propiedades entre el punto a punto y la difusión es el multicast (multi-difusión). El multicast es una forma de comunicación entre uno y muchos puntos pero no entre uno y todos los puntos como la difusión. Un ejemplo es el IP- Multicast sobre la Internet [4]. Este sistema sin embargo no es muy popular todavía en la Internet y se están utilizando actualmente otras opciones desarrolladas sobre la capa de aplicación. El multicast es mas eficiente para poder comunicarse con múltiples receptores que el punto a punto y tiene ventajas y desventajas similares a la difusión. 2.2 Codificación en tiempo real versus precodificación El video puede ser capturado y codificado en tiempo real o puede ser codificado previamente y guardado para una visualización posterior. Las aplicaciones interactivas como el video teléfono, la video conferencia o los juegos interactivos son ejemplos de aplicaciones que requieren codificación en tiempo real, aunque otras no interactivas también pueden requerirlo (ejemplo: Transmisión de eventos deportivos). En muchas aplicaciones el contenido de video es codificado previamente y almacenado para su posterior visualización, lo que puede ser hecho en forma local o remota. Un ejemplo de almacenamiento local es el DVD y video CD y de almacenamiento remoto es el video bajo demanda (VOD: video on demand) y el video streaming (por ejemplo el que proporciona RealVideo de Real Networks [4] o Microsoft Netshow [1]).
6 Fundamentos de Video Streaming 6 El video codificado previamente tiene la ventaja de no poseer restricciones de tiempo real. Esto permite la implementación de una codificación mas eficiente, como la de múltiples pasadas utilizada en los DVD. Por el otro lado la flexibilidad es limitada, ya que el video previamente codificado no puede adaptarse a los canales de bit rate variable o a los clientes que tienen capacidad de visualización diferente a la originalmente codificada. 2.3 Aplicaciones interactivas versus no interactivas Las aplicaciones interactivas como el video teléfono o los juegos interactivos son sometidas a restricciones de tiempo real. Específicamente, la información tiene un tiempo acotado de utilidad, y si la misma llega, pero llega tarde es inútil. Esto es equivalente a decir que existe una latencia máxima aceptable entre las puntas del canal sobre la información transmitida que incluye la captura, la codificación, la transmisión, la recepción, la decodificación y la presentación en pantalla. Los valores máximos dependen de la aplicación pero típicamente andan en los 150 ms. Las aplicaciones no interactivas permiten latencias mas holgadas que rondan los segundos y pueden llegar a minutos. Como ejemplo están las transmisiones de eventos populares en vivo o discursos. Es interesante observar que tanto las aplicaciones interactivas como las no interactivas requieren codificación en tiempo real, pero poseen requerimientos distintos para la latencia entre las puntas lo que redunda en un diseño completamente diferente para el sistema de comunicación de video. 2.4 Canales estáticos versus canales dinámicos El diseño de un sistema de comunicación de video tiene variaciones significativas si las características del canal de comunicación como ser el ancho de banda, las demoras y las pérdidas son estáticas o dinámicas (variables en el tiempo). Un ejemplo de canales estáticos es ISDN 2 (provee bit rate y delay fijo y muy bajas pérdidas) y almacenamiento de video en DVD. Ejemplos de canales dinámicos son los inalámbricos o la Internet. La comunicación sobre un canal dinámico es mucho mas difícil y muchos de los desafíos del video streaming se relación con los atributos variables de estos canales. 2.5 Canales de Bit Rate constante (CBR) y variable (VBR) Algunos canales soportan CBR como ISDN o DTV 3 y otros VBR como el almacenamiento en DVD y la comunicación sobre redes de paquetes compartidas. Por otro lado las secuencias de video tienen complejidad variable en el tiempo, por lo que codificar una se- 2 Integrated Services Data Network (conocida como Red digital de servicios integrados ) 3 Digital Television
7 Fundamentos de Video Streaming 7 cuencia con una calidad fija en el tiempo requiere un bit rate variable y codificar con un bit rate fijo requiere una calidad variable. Es obviamente importante que coincidan el bit rate de video y la capacidad del canal, y para lograr esto se utilizan memorias intermedias para acoplar el codificador y el canal. Un sistema realimentado provee información sobre el espacio ocupado en las memorias para hacer la cuantización mas fina o mas tosca y por lo tanto variar el bit rate. 2.6 Redes de conmutación de paquetes y de conmutación de circuitos Un atributo fundamental que afecta el diseño del sistema de streaming es si la red es de conmutación de circuitos o de paquetes. Las de redes de conmutación de paquetes como Ethernet y la Internet son redes compartidas donde los paquetes de datos pueden presentar demoras variables, llegar fuera de orden o directamente no llegar. Por otro lado, las redes conmutación de circuitos como las PSTN 4 o ISDN reservan recursos y los datos tienen demoras fijas, llegan en orden, aunque pueden llegar corruptos. 2.7 Soporte de la calidad de servicios (QoS) La calidad de servicio (QoS) es un término que abarca varios conceptos utilizado para marcar el hecho de que la red provee algún sistema de envío preferencial o garantías de rendimiento, a modo de ejemplo, garantía de capacidad de procesamiento, de máxima tasa de pérdidas o de máximas demoras. El soporte de QoS en redes facilita la comunicación de video ya que habilita un número de capacidades como el prever los datos de video, el priorizar los datos sensibles de video contra otro tipo de datos y también el priorizar los diferentes tipos de datos de video. Desafortunadamente la QoS no es ampliamente soportada por las redes de conmutación de paquetes como la Internet aunque las de conmutación de circuitos como ISDN y las PSTN si proveen garantía sobre las demoras, ancho de banda y pérdidas. La Internet actualmente se comporta al mejor esfuerzo (BE: Best Effort) ya que su objetivo es solamente el proveer conectividad por entrega de paquetes. Existen diferentes formas de QoS que están siendo consideradas para la Internet incluyendo servicios diferenciados 5 y servicios integrados 6. Un sistema para comunicaciones que soporta calidad de servicio es ATM 7. 4 Public Switched Telephone Network (red pública de telefonía conmutada) 5 DiffServ: Differentiated Services 6 IntServ: Integrated Services 7 Aynchronous transfer mode:
8 Fundamentos de Video Streaming 8 3 Revisión sobre compresión de video Esta sección dará una visión general sobre la compresión de video y sus estándares incluyendo las prácticas y principios mas importantes de los algoritmos de compresión actuales y de los que están en desarrollo. Dado que ambos estándares de compresión (H.261/3/4, MPEG-1/2/4) así como las soluciones propietarias (Realnetworks 8 y Microsoft Windows Media 9 están basadas en los mismos principios básicos, el entender a estos nos permite tener un entendimiento básico de los sistemas de video estándares y propietarios. También es de interés describir que son los estándares mencionados y cuales son los mas relevantes para video streaming. 3.1 Breve descripción de la compresión de video La compresión de video se consigue mediante la explotación de las semejanzas o redundancias que existen en una señal de video típica. A modo de ejemplo, los cuadros consecutivos de una secuencia de video exhiben redundancia temporal dado que generalmente contienen los mismos objetos con algún pequeño movimiento entre cuadros. En un cuadro en particular encontraremos redundancia espacial, dado que las amplitudes de los píxeles cercanos generalmente están correlacionadas. De la misma forma, los componentes de color rojo, verde y azul de un píxel dado generalmente están también correlacionados. Otra meta de la compresión de video es reducir la información irrelevante en la señal de video. Esto significa que el sistema codificará características que tenga importancia perceptiva y no gastará valiosos bits en información que no pueda ser percibida o sea irrelevante. La identificación y la reducción de la redundancia en una señal de video es relativamente directa, pero la identificación de la información sin importancia perceptiva es muy difícil, por lo que la irrelevancia es un factor de difícil aprovechamiento. Para comenzar consideramos la compresión de imágenes como el estándar JPEG que está diseñado para explotar la redundancia espacial y de color que existe en una imagen sin movimiento individual. Los píxeles vecinos de esta imagen son generalmente similares y las imágenes naturales generalmente tienen su energía concentrada en las bajas frecuencias. El estándar JPEG explota estas características particionando la imagen en bloques de 8x8 píxeles y computando la Transformada Discreta del Coseno de 2 dimensiones (2D- DCT) para cada bloque. El motivo para dividir la imagen en bloques pequeños es que generalmente los píxeles en un bloque de esas características son mucho mas similares que para bloques mas grandes. La DCT compacta la mayoría de la energía de la señal en el bloque en una pequeña fracción de los coeficientes DCT, pero que aún permite reconstruir la imagen con precisión. Cada bloque 8x8 de coeficientes DCT es luego cuantizado y 8 9
9 Fundamentos de Video Streaming 9 procesado utilizando técnicas como el escaneo en zig-zag, el RLE 10 y la codificación de Huffman produciendo una versión comprimida de la información original. En el caso de una imagen color se realiza primero una conversión de la imagen RGB (Red, green, blue) al espacio luminancia/crominancia (YUV) en donde la diferente capacidad de percepción por parte del ojo humano de la crominancia (color) y la luminancia (intensidad) de la imagen puede ser mejor explotada. Una secuencia de video consiste en una secuencia de cuadros o imágenes. Cada cuadro puede ser codificado como una imagen separada aplicando por ejemplo una codificación JPEG para cada uno. Sin embargo, si consideramos que los cuadros vecinos son muy similares, podemos alcanzar una mayor compresión explotando la semejanza de cuadros sucesivos. La mejor forma de explotar esta característica en la actualidad, es codificando un cuadro dado de la siguiente forma: 1- Predecir este cuadro basándonos en un cuadro previamente codificado 2- Codificar el error de la predicción I 0 B 1 B 2 P 3 B 4 B 5 P 6 B 7 B 8 I 9 MPEG GOP Fig. 1. Ejemplo sobre las dependencias de predicción entre cuadros Los cuadros de video consecutivos generalmente contienen los mismos elementos pero posiblemente ubicados en diferentes posiciones, por lo que, para mejorar las predicciones, es importante estimar el movimiento entre cuadros y luego formar una predicción adecuada que compense el movimiento. El proceso de estimar el movimiento entre cuadros es 10 Run length coding
10 Fundamentos de Video Streaming 10 llamado estimación de movimiento ME 11, y el proceso de realizar una predicción mientras compensamos el movimiento relativo entre dos cuadros es llamado predicción con compensación de movimiento MC-P 12. Las compensaciones ME y MC-P basadas en bloques son actualmente las mas populares y se basan en que el cuadro actual a ser codificado es dividido en bloques de 16x16 píxeles. Luego se realiza una predicción para cada bloque buscando el bloque que mejor coincida del cuadro de referencia previamente codificado. El movimiento relativo para el bloque que mejor coincida es llamado vector de movimiento [7]. Hay tres tipos básicos comunes de cuadros codificados: (1) Cuadros intra codificados o cuadros I: Estos cuadros están codificados independientemente de los otros. (2) Cuadros codificados en forma predictiva o cuadros P: Estos cuadros se codifican basándose en un cuadro anterior. (3) Cuadros codificados en forma predictiva bidireccional o cuadros B: Estos cuadros están codificados basándose en cuadros anteriores y posteriores. La Fig. 1 muestra los diferentes cuadros codificados y las dependencias predictivas para un ejemplo de grupo de imágenes GOP 13 MPEG 14. La elección de las dependencias de predicción entre cuadros tiene un efecto importante en el rendimiento del video streaming en términos de eficiencia de compresión y rechazo al error. Los estándares actuales de video logran la compresión aplicando los mismos principios básicos. La redundancia temporal es aprovechada al aplicar la predicción MC mientras que la espacial se explota aplicando la DCT. La redundancia en el espacio de color se explota mediante la transformación de espacio de colores. Los coeficientes DCT resultantes son cuantizados y aquellos que no sean cero se codifican mediante RLE y Huffman para producir el flujo de bits comprimidos. 3.2 Estándares de compresión de video Los estándares de compresión de video nos brindan un gran número de beneficios entre los que destacan el aseguramiento de la interoperabilidad y la comunicación entre codificadores y decodificadores realizados por personas o compañías diferentes. De esta forma se disminuyen los riesgos para el consumidor y el fabricante, permitiendo una popularización mas rápida y mas extensa. A esto se agrega el hecho de que lo estándares son utilizados para una variedad extensa de aplicaciones las que redundan en economías de escala que disminuyen los costos al usuario final. 11 ME: Motion estimation 12 MC-P: motion-compensated prediction 13 Group of pictures 14 Motion picture expert group
11 Fundamentos de Video Streaming 11 En el momento hay dos grandes familias de estándares para la compresión de video desarrollados bajo el auspicio de la ITU-T 15 (antes la CCITT 16 ) y la ISO 17. El primer estándar de video en ganar popularidad fue el ITU H.261, diseñado para proveer videoconferencia sobre redes integradas de servicios digitales (ISDN) y se convirtió en un estándar en Fue diseñado para operar a p=1,2,,30 múltiplos de la tasa de bits base de ISDN o sea p x 64 kb/s. En 1993 la ITU-T comenzó un esfuerzo de estandarización con el objetivo primario de lograr videoconferencia por la red de telefonía pública conmutada (PSTN) (líneas de teléfono analógicas convencionales), donde la tasa de bits total disponible era de solamente 33.6 kb/s. La parte de compresión de video del estándar es la H.263 y su primera etapa fue adoptada en Una versión mejorada fue finalizada en 1997 como H.263 Version2 (V2). Un algoritmo completamente nuevo que originalmente se llamó H.26L se está actualmente terminando de desarrollar con el nombre de H.264/AVC. El grupo experto para imágenes en movimiento (MPEG) fue establecido por la ISO en 1988 con el objetivo de desarrollar un estándar para comprimir imágenes en movimiento (video) y su audio asociado en un medio digital de almacenamiento (CDROM). El estándar resultante conocido como MPEG-1 fue finalizado en 1991 y consigue una calidad de audio y video similar al VHS a 1.5 Mb/s. Una segunda fase de su trabajo conocida como MPEG-2 fue una extensión del MPEG-1 desarrollada para aplicaciones de televisión digital y bit rates mas altos. Un tercer estándar llamado MPEG-3 fue pensado para aplicaciones a aún mayores bit rates como HDTV, pero dado que estas aplicaciones podían lograrse con MPEG-2 se desestimó su realización. Actualmente la porción de video de la televisión digital DTV y de la televisión digital de alta definición HDTV es realizada bajo MPEG-2 para Norte América, Europa y Asia. Estándar de Aplicaciones primarias Bit Rate codificación de video H.261 Video telefonía y tele conferencias sobre ISDN p x 64 kb/s MPEG-1 Video en medios digitales de almacenamiento 1.5 Mb/s (CD-ROM) MPEG-2 Televisión digital 2-20 Mb/s H.263 Video telefonía sobre PSTN 33.6 kb/s y superiores MPEG-4 Codificación basada en objetos, contenido Variable H.264/MPEG-4 Parte 10 (AVC) sintético, interacción, streaming de video Compresión de video mejorada De 10 a 100 veces de kb/s 15 International Telecommunications Union 16 International Telegraph and Telephone Consultative Committee 17 International Organization for Standardization
12 Fundamentos de Video Streaming 12 Tabla 1. Estándares de compresión de video actuales y emergentes Luego fue diseñada una tercera parte del trabajo llamada MPEG-4 con los objetivos de lograr mejorar la compresión, la eficiencia y el rechazo al error. También se busco un incremento de funcionalidades que incluyen el procesamiento basado en objetos, la integración del contenido natural y el sintético (generado en computadores) y la interactividad basada en el contenido. El estándar H-26L está siendo finalizado por el Equipo Unido de Video (Joint Video Team) formado por el ITU y el ISO MPEG. Este estándar consigue una mejora significativa en la compresión sobre los estándares previos y será adoptado por el ITU y la ISO con el nombre de H.264 y MPEG-4 Parte 10, Advanced Video Coding (AVC). Los actuales estándares de compresión utilizados para comunicación de video son el H.263 V2 y MPEG-4, y se espera que los nuevos estándares vayan ganando mayor aceptación. 3.3 Qué especifican los estándares? Un sistema de compresión de video está compuesto de un codificador y un decodificador que interpretan de la misma forma las ráfagas de bits comprimidos. El codificador toma el video original y lo comprime en una secuencia de bits, la que es enviada al decodificador para que produzca el video reconstruido. Una posibilidad es que el estándar especifique tanto el codificador como el decodificador, pero esto hace que el estándar sea restrictivo. Lo que se hace en cambio es lograr que el estándar tenga un alcance limitado que permita asegurar la interoperabilidad permitiendo que existan diferencias. Los estándares no especifican ni el codificador ni el decodificador. Lo que si describen es la sintaxis para la secuencia de bits y el proceso de decodificación. La sintaxis de la secuencia de bits es el formato para representar los datos comprimidos. A modo de ejemplo, el estándar especifica que el decodificador usará una IDCT 18, pero no dice como implementarla. La IDCT se puede implementar en forma directa o utilizando un algoritmo rápido similar a la FFT 19, o utilizando instrucciones MMX 20. La implementación específica no está estandarizada lo que permite a los diferentes diseñadores y fabricantes proveer mejoras compatibles con el estándar y de esa forma diferenciar su trabajo. El proceso de codificación es no estandarizado en forma deliberada. A modo de ejemplo, los codificadores mas sofisticados pueden ser diseñados para proveer mejor rendimiento sobre los mas simples. Además se pueden incorporar mejoras aún después de publicado el estándar (por ejemplo, mejores algoritmos para estimación de movimiento o ubicación de bits). La única restricción es que el codificador produzca una secuencia de 18 Inverse discrete cosine transform (transformada inversa del coseno discreta) 19 Fast Fourier Transform (transformada rápida de Fourier) 20 Conjunto de instrucciones destinadas a aplicaciones multimedia de los procesadores Intel del modelo Pentium y superiores
13 Fundamentos de Video Streaming 13 bits con una sintaxis correcta y que pueda ser decodificado por una decodificador estándar compatible. En resumen es importante tener en cuenta que no todos los codificadores son creados iguales a pesar de corresponder al mismo estándar.
14 Fundamentos de Video Streaming 14 4 Codificación escalable del video 4.1 Introducción Los métodos de codificación basados en el contenido y en la forma de onda buscan optimizar la eficiencia del proceso de codificación para un bit rate fijo. Esto es un problema cuando múltiples usuarios intentan acceder al mismo material de video a través de diferentes conexiones. A modo de ejemplo, un video MPEG-1 codificado a 1.5 Mbps puede ser bajado en tiempo real para su visualización en una terminal conectada con banda ancha (por ejemplo, un módem ADSL), pero no una terminal conectada a 56 Kbps no podrá recibir suficientes bits a tiempo como para mostrar la secuencia en tiempo real. La escalabilidad se refiere a la capacidad de recuperar información desde imágenes o video que tengan un significado físico mediante la decodificación de secuencias de bits con información parcial. En el ejemplo anterior, si el video fuera escalable, el usuario conectado mediante banda ancha vería el video a la calidad completa mientras que el que se conecta a 56 Kbps podrá bajar un subconjunto de la secuencia y verá una presentación de menor calidad. Este ejemplo ilustra un aspecto de la escalabilidad que es la escalabilidad del ancho de banda. Un flujo escalable puede ofrecer la capacidad de adaptación para niveles de error variable en el canal y capacidad de procesamiento desigual en los receptores. Los avances hacia la convergencia de tecnología inalámbricas, Internet y multimedia le dan a la escalabilidad un rol preponderante para proporcionar acceso al medio sin importar desde donde, quien cuando, con qué o en qué forma. Los codificadores escalables pueden tener granulado grueso (2 o 3 capas, también llamados codificadores en capas) o granulado fino. En el caso extremo de granulado fino, el flujo de datos puede ser cortado en cualquier punto. Cuanto mas bits se retengan, mayor será la calidad de la imagen reconstruida. Ese tipo de flujo de bits es llamado embebido. Los codificadores embebidos permiten un control preciso del bit rate lo que es una cualidad deseable en muchas aplicaciones. A modo de ejemplo, los filtros de red pueden seleccionar el número de bits a transmitir desde el flujo de bits embebido de forma que coincida con el ancho de banda disponible. La codificación escalable se consigue usualmente suministrando versiones múltiples de un video en términos de su resolución de amplitud (llamada escalonamiento en calidad o escalamiento SNR 21 ), resolución espacial (escalabilidad espacial), resolución temporal 21 Signal noise ratio (Relación señal ruido)
15 Fundamentos de Video Streaming 15 (escalabilidad temporal), resolución en frecuencia (escalabilidad en frecuencia, mas conocida como partición de datos) o una combinación de estos tipos. Los contenidos escalables pueden accederse tanto a nivel de cuadros como a nivel de objetos (en MPEG4 es definida como escalabilidad basada en objetos). Analizaremos los cuatro esquemas básicos de escalabilidad (amplitud, espacial, temporal y en frecuencia) y luego veremos como realizar la escalabilidad a nivel de objetos. A pesar de que se aplican conceptos similares para los diferentes tipos de codificadores, nos enfocaremos en como modificar los codificadores híbridos basados en bloques para conseguir los diferentes modos de escalabilidad. Luego describiremos métodos de codificación basados en wavelets 22 los que, por la naturaleza de las transformadas wavelet, tienden a ser procesos de granulado fino. Es interesante notar que un método alternativo para manejar capacidades de entorno del canal y del receptor variables es el simulcast (difusión simultánea), el que codifica el mismo video muchas veces, cada una con una diferente calidad y resolución. A pesar de su simpleza es muy ineficiente, dado que un flujo de datos con mayor calidad y resolución repetirá esencialmente la misma información que se existe en un flujo de menor calidad, junto con información adicional. Por otra parte, para proveer funcionalidad de escalado, el codificador deberá sacrificar una cierta cantidad de eficiencia en la codificación en comparación con los codificadores no escalables actuales. La meta de diseño en la codificación escalable es minimizar la reducción de la eficiencia en la codificación manteniendo el objetivo de la escalabilidad. 4.2 Modos básicos de escalabilidad Escalabilidad de la calidad La escalabilidad de la calidad se define como la representación de una secuencia de video con diferente precisión en los patrones de color. Generalmente esto se obtiene codificando los valores de color (en el dominio original o en el transformado) con tamaños de pasos de cuantificación cada vez mas finos. Dado que diferente precisión en la cuantifica- 22 La transformada por wavelets o análisis wavelet es una solución reciente para superar las limitaciones de la transformada de Fourier. Mediante la utilización de la una ventana modulada totalmente escalable se resuelven los problemas de recorte de la señal. Esta ventana se mueve a lo largo de la señal y se calcula el espectro para cada posición. Este proceso se repite muchas veces variando el tamaño de la ventana (mayor o menor) en cada nuevo ciclo obteniéndose un conjunto de representaciones de la señal en tiempo y frecuencia. En el caso de wavelets no hablamos de representación tiempo-frecuencia, sino de representaciones en la escala de tiempo, ya que el término frecuencia se reserva para la transformada de Fourier.
16 Fundamentos de Video Streaming 16 ción origina diferentes PSNR 23 entre el video cuantificado y el original, este tipo de escalabilidad se conoce como escalabilidad SNR. La Fig. 2 muestra una secuencia de bits con N capas de escalabilidad de calidad. El decodificar la primer capa (también llamada capa base) provee una versión de baja calidad de la imagen reconstruida. Al decodificar la capas siguientes (también llamadas capas de mejora) se incrementa la calidad de la imagen reconstruida hasta el nivel mas alto. La primera capa es obtenida al aplicar un cuantificado grueso a la imagen original o en su dominio de transformada (por ej. DCT). La segunda capa contiene la diferencia de cuantificación entre la imagen original y aquella reconstruida desde la primera capa usando un cuantificador mas fino que el de la capa inicial. Cuadros decodificados en N capas de SNR diferentes Secuencia de Bits Fig. 2. Las N capas de escalabilidad en calidad De la misma forma, cada una de las capas subsiguientes contiene diferencias cuantificadas entre la imagen original y la reconstruida de las capas anteriores utilizando un cuantificador cada vez mas fino. En la Fig. 3 (a) podemos ver la implementación de un codificador con dos niveles de escalabilidad en calidad. Para el nivel base, el codificador opera de la misma forma que un 23 Peak Signal Noise Ratio (relación señal ruido de pico)
17 Fundamentos de Video Streaming 17 codificador híbrido típico basado en bloques. Para el nivel de mejora, las operaciones se realizan de la forma siguiente: 1. El cuadro de video en bruto (o el cuadro con el error de compensación de movimiento) es transformado mediante DCT y cuantificado en el nivel base; 2. Los coeficientes DCT de nivel base son reconstruidos por cuantificación inversa; 3. Se restan los coeficientes DCT de nivel base de los coeficientes DCT originales; 4. El residuo es cuantificado por un parámetro de cuantificación que es menor que aquel del nivel base; 5. Los bits cuantificados son codificados mediante VLC 24 Dado que el nivel mejorado utiliza parámetros de cuantificación mas pequeños, conseguirá mejor cualidad que el nivel base. La operación de decodificación es mostrada en la Fig. 3 (b). Para el nivel base, el decodificador opera exactamente como un codificador de video no escalable. Para el nivel mejorado se deben recibir los dos niveles, decodificarlos mediante decodificación de largo variable (VLD) y cuantificarlos en forma inversa. Luego los coeficientes DCT de nivel base son sumados con las mejoras introducidas por los coeficientes DCT del nivel mejorado. Luego de esta etapa, los coeficientes DCT sumados son transformados inversamente con IDCT resultando en el video decodificado de nivel mejorado. 24 Variable Length Coding (codificación de largo variable)
18 Fundamentos de Video Streaming 18 Video en bruto DCT Q VLC - IQ Secuencia de bits comprimida en el nivel básico Secuencia de bits comprimida en el nivel básico Q VLC (a) VLD IQ IDCT Secuencia de bits comprimida en el nivel mejorado Video decodificado en nivel base Secuencia de bits comprimida en el nivel mejorado VLD IQ IDCT (b) Video decodificado en nivel mejorado Fig. 3. Codificador de calidad escalable de dos niveles. (a) codificador; (b) decodificador.
19 Fundamentos de Video Streaming Escalabilidad espacial La escalabilidad espacial se define como la representación del mismo video en diferentes resoluciones espaciales o tamaños (ver Fig. 4 (a) y (b)). La Fig. 5 muestras una secuencia de datos con M capas de escalabilidad espacial. Decodificando la primer capa, el usuario puede mostrar una versión preliminar de la imagen decodificada en una resolución inferior. Al decodificar las capas subsiguientes se incrementa la resolución espacial hasta llegar a la resolución completa de la imagen original. (a) (b) (c) Fig. 4. Escalamiento especial y temporal de un stream de video: (a) cuadros de video originales; (b) cuadros escalados a ¼ del tamaño original; (c) cuadros escalados temporalmente. Para producir este flujo de datos estratificado primero debe realizarse una descomposición de la imagen original en múltiples resoluciones. La imagen de resolución menor es codificada directamente para producir la primer capa (llamada capa base). Para producir la segunda capa, la imagen decodificada desde la primer capa es interpolada a la segunda resolución. La diferencia entre la imagen original y la interpolada a la resolución de la segunda capa es codificada. El flujo de bits para cada una de las siguientes resoluciones es producido de la misma forma (primero producir una imagen estimada a la resolución que corresponda basada en las capas anteriores y luego codificar la diferencia entre la imagen estimada y la original).
20 Fundamentos de Video Streaming 20 Cuadros decodificados en M capas espaciales diferentes SP(0) SP(1) SP(2) SP(M-1) Fig. 5. Escalabilidad especial en M capas Flujo de datos La Fig. 6 muestra un diagrama de bloques para un codificador espacial escalable de dos capas. Para la capa base, el video en bruto primero es sub-muestreado 25 espacialmente y luego transformado por DCT, cuantificado y codificado por VLC. Para la capa de mejoramiento, las operaciones son las siguientes: 1. El video en bruto es sub-muestreado espacialmente, se transforma por DCT y se cuantifica en la capa base; 2. La imagen de capa base se reconstruye por cuantización inversa y DCT inversa; 3. La imagen de la capa base es sobre-muestreada 26 espacialmente; 4. Se resta la imagen de capa base sobre-muestreada de la imagen original; 5. El residuo es transformado por DCT y cuantizado mediante un parámetro de cuantización que será menor al de la capa base; 6. Los bits cuantizados son codificados por VLC. Dado que la capa de mejoramiento usa un parámetro de cuantización mas pequeño, se consigue una calidad mejor que la de la capa base. 25 A modo de ejemplo, el sub-muestreado espacial con una razón de 4:1 puede lograrse reemplazando cada 2x2 píxeles por uno con su valor promedio. Pueden usarse pre-filtros mas sofisticados para reducir el efecto de solapamiento en la imagen sub-muestreada pero estos incrementan la complejidad. 26 Un modo sencillo de sobre-muestrear espacialmente con razón 1:4 es replicar cada píxel cuatro veces
21 Fundamentos de Video Streaming 21 La figura 6 (b) muestra un decodificador espacial escalable con escalabilidad de dos capas. Para la capa base, el decodificador opera de la misma forma que un decodificador de video no escalable. Para la capa de mejoramiento se deberán recibir las dos capas, decodificarlas mediante VLD, cuantificar inversamente y transformar por IDCT. Luego la capa base es sobre-muestreada espacialmente. La imagen de la capa base sobremuestreada se combina con la capa de mejoramiento obteniendo el video decodificado mejorado. Video en bruto DCT Q VLC IDCT IQ - Video decodificado capa mejora- Secuencia de bits comprimida de la capa base DCT Q VLC (a) VLD IQ IDCT Bits comprimidos capa de mejoramiento VLD IQ IDCT (b) Secuencia de bits comprimida capa base Secuencia de bits comprimida capa mejoramiento. Video decodificado capa base Sobremuestreado espacial o temporal Submuestreado espacial o temporal Fig. 6. Codificador escalable especial/temporal de dos niveles. (a) Codificador, (b) Decodificador.
22 Fundamentos de Video Streaming Escalabilidad temporal La escalabilidad temporal se define como la representación del mismo video en diferentes resoluciones o frame rates 27 (Ver Fig. 4 (a) y (c)). Generalmente el video escalado temporalmente se codifica haciendo uso de imágenes sobre-muestreadas temporalmente desde una capa inferior como predicción para una capa superior. El diagrama de bloques es similar que el utilizado para el escalado espacial (Ver. Fig. 6). La única diferencia es que el codificador escalado espacialmente utiliza sub-muestreado y sobre-muestreado espacial mientras que el escalado temporalmente varía el muestreado en el tiempo. La forma mas simple de realizar sub-muestreado temporal es salteándose cuadros (por ejemplo, si la razón es 2:1 cado dos cuadros se descarta uno). El sobre-muestreado temporal se puede conseguir mediante la copia de cuadros (para la razón 1:2 cada cuadro se copia y se transmiten los dos en forma consecutiva a la siguiente etapa). En este caso la capa base sólo contiene los cuadros pares y la capa de mejoramiento los impares. Para la compensación de movimiento, un cuadro de la capa base sólo puede predecirse desde cuadros anteriores de la capa base, y los de la capa de mejoramiento sólo podrán predecirse de los anteriores de esta capa Escalabilidad en frecuencia Otra forma de representar un cuadro de video en capas múltiples es incluyendo diferentes componentes de frecuencia en cada capa, en donde la capa base tendrá los componentes de menor frecuencia y las capas siguientes contendrán componentes de frecuencia cada vez de mayor orden. De esta forma, la capa base será una versión borrosa de la imagen y al agregar las capas de mejoramiento se irá formando una imagen mas precisa. Esta descomposición se puede lograr con transformaciones de cuadros enteros como la descomposición en sub-bandas, transformadas de wavelets o transformadas basadas en bloques como la DCT para bloques. Una forma de implementar esta idea en los codificadores híbridos basados en bloques es incluyendo la información de modo, la información de movimiento así como también los primero coeficientes DCT de cada macro bloque en la capa base así como incluyendo los coeficientes remanentes en la capa de mejoramiento. En el estándar MPEG-2, este método es conocido como particionamiento de datos. Los codificadores escalables basados en wavelets se verán el punto Velocidad de pasaje de los cuadros del video medida en cuadros por segundo
23 Fundamentos de Video Streaming Combinación de esquemas básicos Los escalamientos en calidad, temporal, espacial y en frecuencia son mecanismos básicos. Estos mecanismos pueden ser combinados para obtener un granulado mas fino por lo que flujo de bits contendrá M capas espaciales en las que cada una de ellas contendrá N niveles de escalabilidad espacial. En este caso tanto la resolución espacial como la calidad de la imagen reconstruida pueden ser mejoradas mediante la transmisión progresiva y la decodificación del flujo de bits. El orden a seguir es mejorar la calidad de imagen para una resolución dada hasta llegar a la calidad máxima a la resolución espacial dada y luego aumentar la resolución espacial al máximo nivel y mejorar nuevamente la calidad Escalabilidad de granulado fino Los métodos de escalabilidad descriptos anteriormente producen un flujo de bits que consiste en muchas capas, donde cada capa base es seguida por una o mas capas de mejoramiento. Este tipo de codificación provee solamente granulado grueso, en el que las mejoras en calidad se obtienen con aumentos de velocidad en grandes pasos discretos. Si sólo se recibe una parte de los bits de una capa, la calidad del video reproducido está determinada básicamente por los bits recibidos en las capas anteriores y no de los recibidos para la capa actual. La escalabilidad de granulado fino (FGS 28 ) es un método de codificación en que tanto la velocidad como la calidad pueden incrementarse en pasos mas pequeños. En el caso límite en que un flujo de bits puede proveer una mejora de la calidad de video continua con cada bit adicional el método de codificación es llamado codificación embebida. Tanto la FGS como la codificación embebida pueden adaptarse a las variaciones de ancho de banda en redes reales de forma mas eficiente. Los requerimientos para el flujo de bits de ser completamente embebido o tener granulado fino son menos restrictivos en la práctica y se produce una capa base de calidad baja pero asegurada y una capa de mejoramiento que provee el granulado fino. En el modo FGS de MPEG-4 se utiliza un método de codificación convencional híbrido basado en bloques para producir un flujo de capa base a un frame rate dado usando un QP 29 relativamente grande. Luego para cada cuadro codificado (intra o inter codificado), las diferencias entre los coeficientes DCT originales 30 y los cuantizados en la capa base (que serán llamados coeficientes de refinamiento) son codificados en un flujo de granulado fino. Esto 28 Fine granularity scalability 29 Quantization parameter (parámetro de cuantificación) 30 Para cada bloque, la transformada se aplica al bloque original o al bloque de error de compensación de movimiento, dependiendo de si el bloque es codificado en modo intra o inter en la capa base
24 Fundamentos de Video Streaming 24 se consigue cuantizando los coeficientes de refinamiento con un QP pequeño y luego representando los índices cuantizados a través de codificación en sucesivos planos de bits. Los valores absolutos para los coeficientes de refinamiento cuantizados en cada bloque son dados en representación binaria. Comenzando desde el plano de bits mas alto que no contenga ceros, cada plano de bits es codificado en forma sucesiva utilizando RLC bloque por bloque. Los RLC pueden ser codificados usando codificación aritmética o de Huffman. Generalmente se utilizan distintos códigos para planos diferentes dado que las distribuciones de corridas RLC varían a lo largo de los planos. El método descrito anteriormente permite escalabilidad para una resolución espacial fija en el tiempo. Para agregar escalabilidad temporal, la capa base puede incluir un conjunto de cuadros sub-muestreados codificados con un QP mayor. Para la capa de mejoramiento, los cuadros restantes se predicen en forma bi-direccional desde los cuadros de la capa base. Los coeficientes DCT en la imágenes de predicción de error son luego cuantizados y codificados usando el método de codificación de plano de bits, sumados a los coeficientes de refinamiento de los cuadros de la capa base. El esquema se muestra en la Fig. 7. Capa de mejoramiento I P P P Capa Base Porción de la capa de mejoramiento transmitida Resto de la capa de mejoramiento Fig. 7. Forma de transmitir porciones de la capa de mejoramiento para soportar escalabilidad conjunta en lo espacial y en lo temporal
25 Fundamentos de Video Streaming 25 Una limitación del sistema FGS es que la capa base debe ser entregada completa y sin errores. Esto puede ser o no posible en las redes reales. Otro problema es que si el bit rate de la capa base se mantiene bajo (para incrementar el alcance de escalabilidad del flujo de bits), la eficiencia de codificación del método FGS será reducida significativamente en comparación con la de un codificador no escalable. Esto es debido a que los cuadros de la capa base reconstruidos son usados como cuadros de referencia para la predicción de compensación de movimiento. A pesar de que esta elección elimina el problema de la propagación de error temporal en la capa de mejoramiento, el alto error de cuantización en la capa base reduce la ganancia de la predicción. Una forma de mejorar la eficiencia de codificación del método FGS es utilizar periódicamente una capa de mejoramiento intermedia como referencia para la predicción de compensación de movimiento. 4.3 Escalabilidad basada en objetos Los métodos de codificación escalable mencionados previamente realizan la misma operación sobre todo el cuadro de video. La escalabilidad temporal basada en objetos (OTS 31 ) mejora el frame rate para el objeto seleccionado (lo aumenta) de forma que presente un movimiento mas suave que el resto del área. Existen dos tipos de estructuras de mejoramiento en OTS para MPEG4. El Tipo 1 utiliza un cuadro entero como capa de objetos (VOL0 32 ) y una capa VOL1 que representa un objeto particular. Puede presentar predicción hacia adelante o bidireccional. El Tipo 2 utiliza una capa de objeto VO0 que es una secuencia de un cuadro entero que tiene sólo el fondo y no usa capa de escalabilidad. Por otro lado utiliza una VO1 que es una secuencia de un objeto particular y tiene dos capas de escalabilidad (VOL0 y VOL1). 4.4 Codificación basada en transformadas wavelet La transformada discreta wavelet (DWT 33 ) es una herramienta poderosa surgida recientemente para la compresión de imágenes y video debido a su flexibilidad para representar señales no estacionarias (las imágenes reales son no estacionarias) y su capacidad de adaptación a las características visuales humanas. La representación en wavelet provee una expresión de resolución y frecuencia múltiple para la señal con localización en tiempo y frecuencia. La transformada wavelet descompone la señal no estacionaria en un conjunto de sub-bandas multiescaladas con componentes estacionarios y por ende mas sencillos de codificar. Como agregado, la representación wavelet coincide con las propiedades de la visión humana, como ser, sintonizada en el espacio y modulada en frecuencia como indi- 31 Object-based temporal scalability 32 VideoObjectLayer 33 Discrete Wavelet Transform
APLICACIONES REALES SOBRE RED IP MPLS
APLICACIONES REALES SOBRE RED IP MPLS Contribuciones Televisión Española 1 RTVE Radio Televisión Española (RTVE) es la Televisión Nacional publica española. Tiene toda sus emisiones centralizadas en Madrid

References: resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución