Вы находитесь на странице: 1из 63

Fundamentos de Video Streaming

Daniel Rijo Sciara


Ingeniero Electricista
drijo@adinet.com.uy

Monografa para el curso de postgrado:
Codificacin de Imgenes y Video
Instituto de Ingeniera Elctrica
Facultad de Ingeniera
Universidad de la Repblica
Montevideo - Uruguay

Diciembre de 2004

Extracto. La comunicacin de video sobre redes de paquetes ha progresado mucho en
los ltimos aos variando desde bajar un archivo para reproducirlo a tener varias tcnicas
adaptables al medio y desde el uso directo de la infraestructura de red, al diseo y uso de
arquitecturas superpuestas. Los desarrollo en algoritmos y capacidad de cmputo as como
en infraestructura de redes y comunicaciones continan desafiando los lmites del strea-
ming de medios, simplificando los problemas actuales y planteando nuevas metas. La
aparicin de de la redes de envo de contenidos CDN para streaming presenta una oportu-
nidad importante para el desarrollo de nuevas aplicaciones. La implementacin de redes
inalmbricas de banda ancha invita a la implementacin de streaming no solo para usua-
rios inalmbricos sino tambin para usuarios mviles. Por otro lado, la posibilidad de
implantacin de QoS en Internet abre las puertas a la realizacin de aplicaciones de strea-
ming 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 investiga-
cin y desarrollo con grandes expectativas industriales y comerciales en un futuro cercano.
Fundamentos de Video Streaming 2
ndice
ndice 2
1 Introduccin 4
2 Descripcin del video streaming y su aplicacin en comunicaciones 4
2.1 Comunicacin punto a punto, multipunto y difusin 5
2.2 Codificacin en tiempo real versus precodificacin 5
2.3 Aplicaciones interactivas versus no interactivas 6
2.4 Canales estticos versus canales dinmicos 6
2.5 Canales de Bit Rate constante (CBR) y variable (VBR) 6
2.6 Redes de conmutacin de paquetes y de conmutacin de circuitos 7
2.7 Soporte de la calidad de servicios (QoS) 7
3 Revisin sobre compresin de video 8
3.1 Breve descripcin de la compresin de video 8
3.2 Estndares de compresin de video 10
3.3 Qu especifican los estndares? 12
4 Codificacin escalable del video 14
4.1 Introduccin 14
4.2 Modos bsicos de escalabilidad 15
4.2.1 Escalabilidad de la calidad 15
4.2.2 Escalabilidad espacial 19
4.2.3 Escalabilidad temporal 22
4.2.4 Escalabilidad en frecuencia 22
4.2.5 Combinacin de esquemas bsicos 23
4.2.6 Escalabilidad de granulado fino 23
4.3 Escalabilidad basada en objetos 25
4.4 Codificacin basada en transformadas wavelet 25
4.4.1 Codificacin de imgenes fijas con wavelets 26
4.4.2 Codificacin de video con wavelets 30
5 Control de errores para superar prdidas del canal 33
5.1 Retransmisiones 33
5.2 Correccin de errores hacia delante 33
5.3 Ocultamiento del error 34
5.4 Codificacin de video resistente al error 35
5.4.1 Problemas introducidos por los errores 35
5.4.2 Como superar la prdida de sincronizacin en la trama 35
5.4.3 Como superar la propagacin del error y de los estados incorrectos 37
5.4.4 Codificacin de video escalable para redes con muchas prdidas 39
5.4.5 Codificacin de video con descripcin mltiple 39
Fundamentos de Video Streaming 3
5.4.6 Codificacin de video con descripcin mltiple y diversidad de caminos
39
5.4.7 Codificacin conjunta de canal y de fuente 40
6 Streaming de video sobre Internet y redes IP inalmbricas 41
6.1 Arquitectura de los sistemas de video streaming 41
6.2 Compresin de video 42
6.3 Control de QoS en la capa de aplicacin para streaming de video 43
6.3.1 Control de congestionamiento 43
6.3.2 Control de error 45
Ocultamiento del error 46
6.4 Servicios de distribucin de medios continuos 46
6.4.1 Filtrado de red 46
6.4.2 Multi-difusin a nivel de aplicacin 48
6.4.3 Replicacin de contenido 49
6.5 Servidores de streaming 50
6.5.1 Sistemas operativos de tiempo real 50
6.5.2 Sistema de almacenamiento 52
6.6 Sincronizacin de medios 55
6.7 Protocolos para Video streaming 57
6.7.1 Protocolos de transporte 57
6.7.2 Protocolo de control de sesin RTSP 59
6.8 Streaming de video sobre redes IP inalmbricas 59
6.8.1 Aplicaciones que toman en cuenta la red 60
6.8.2 Servicios adaptables 60
6.8.3 Control de admisin de llamadas y reserva de recursos 61
7 Referencias 62
Fundamentos de Video Streaming 4
1 Introduccin
La aparicin 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 mtodo ideal para enviar medios sera generar un flujo de video (video stream) a tra-
vs 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 variacin en el tiempo
del ancho de banda, demoras, prdidas de datos y otros como el compartir los recursos de
la red eficientemente y la realizacin eficiente de comunicacin entre un punto y varios
puntos.
Estudiar en este trabajo los desafos que hacen a la complejidad del envo y la repro-
duccin de video simultnea 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 apli-
caciones en comunicacin. Las diferentes clases de aplicacin del video nos proveen dife-
rentes conjuntos de restricciones y grados de libertad en el diseo.
2 Descripcin del video streaming y su aplicacin en
comunicaciones
Las diferentes aplicaciones para la comunicacin y el streaming de video tienen diver-
sidad de alcances. Una aplicacin como la comunicacin de video puede ser por ejemplo
punto a punto o para la transmisin mltiple. Por otro lado el material puede ser video
precodificado, en vivo o codificado en tiempo real (por ejemplo un video telfono o video
conferencia).
Los canales para la comunicacin pueden ser estticos o dinmicos, con conmutacin
de paquetes o conmutacin por circuitos, pueden soportar bitrate variable y alguna forma
de calidad de servicio QoS
1
o simplemente trabajar al mejor esfuerzo. Las propiedades
especficas de la aplicacin de video tienen una fuerte influencia en el diseo del sistema.
Por este motivo, continuar con una breve discusin de alguna de estas propiedades y sus
efectos en el diseo del sistema de comunicacin de video.

1
QoS: Quality of Service
Fundamentos de Video Streaming 5
2.1 Comunicacin punto a punto, multipunto y difusin
La forma mas popular de comunicacin por video es desde un punto a muchos (o desde
un punto a todos), llamada comunicacin por difusin (broadcast communication) como
por ejemplo la televisin. La difusin es una forma muy eficiente de comunicacin para
contenidos populares, ya que puede enviar estos contenidos a todos los receptores al mis-
mo tiempo. Un aspecto importante de la comunicacin por difusin es que el sistema debe
ser diseado para suministrar a cada potencial receptor la seal requerida. Esto se debe a
que cada receptor puede presentar diferentes caractersticas de canal, por lo que el sistema
se disea para el peor caso. Un ejemplo es la televisin digital en donde la codificacin
del canal y la codificacin de fuente fueron diseadas para proveer una seal adecuada en
el borde del rea de recepcin, sacrificando la calidad para los receptores en reas mas
cercanas al centro de transmisin. Una caracterstica importante de la comunicacin por
difusin es que dado que involucra un nmero muy grande de receptores es casi imposible
tener una interaccin entre el receptor y transmisor, limitando la adaptabilidad del sistema.
Otra forma de comunicacin muy comn es la punto a punto (point-to-point) como por
ejemplo el video telfono, o la video conferencia por Internet. Una propiedad importante
de este tipo de comunicacin 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 informacin 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 comunicacin con propiedades entre el punto a punto y la difusin es el
multicast (multi-difusin). El multicast es una forma de comunicacin entre uno y muchos
puntos pero no entre uno y todos los puntos como la difusin. Un ejemplo es el IP-
Multicast sobre la Internet [4]. Este sistema sin embargo no es muy popular todava en la
Internet y se estn utilizando actualmente otras opciones desarrolladas sobre la capa de
aplicacin. El multicast es mas eficiente para poder comunicarse con mltiples receptores
que el punto a punto y tiene ventajas y desventajas similares a la difusin.
2.2 Codificacin en tiempo real versus precodificacin
El video puede ser capturado y codificado en tiempo real o puede ser codificado previa-
mente y guardado para una visualizacin posterior. Las aplicaciones interactivas como el
video telfono, la video conferencia o los juegos interactivos son ejemplos de aplicaciones
que requieren codificacin en tiempo real, aunque otras no interactivas tambin pueden
requerirlo (ejemplo: Transmisin de eventos deportivos).
En muchas aplicaciones el contenido de video es codificado previamente y almacenado
para su posterior visualizacin, lo que puede ser hecho en forma local o remota. Un ejem-
plo 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]).
Fundamentos de Video Streaming 6
El video codificado previamente tiene la ventaja de no poseer restricciones de tiempo
real. Esto permite la implementacin de una codificacin mas eficiente, como la de mlti-
ples 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 visualizacin diferente a la originalmente codificada.
2.3 Aplicaciones interactivas versus no interactivas
Las aplicaciones interactivas como el video telfono o los juegos interactivos son someti-
das a restricciones de tiempo real. Especficamente, la informacin tiene un tiempo acota-
do de utilidad, y si la misma llega, pero llega tarde es intil. Esto es equivalente a decir
que existe una latencia mxima aceptable entre las puntas del canal sobre la informacin
transmitida que incluye la captura, la codificacin, la transmisin, la recepcin, la decodi-
ficacin y la presentacin en pantalla. Los valores mximos dependen de la aplicacin
pero tpicamente andan en los 150 ms.
Las aplicaciones no interactivas permiten latencias mas holgadas que rondan los segun-
dos y pueden llegar a minutos. Como ejemplo estn las transmisiones de eventos popula-
res en vivo o discursos. Es interesante observar que tanto las aplicaciones interactivas
como las no interactivas requieren codificacin en tiempo real, pero poseen requerimien-
tos distintos para la latencia entre las puntas lo que redunda en un diseo completamente
diferente para el sistema de comunicacin de video.
2.4 Canales estticos versus canales dinmicos
El diseo de un sistema de comunicacin de video tiene variaciones significativas si las
caractersticas del canal de comunicacin como ser el ancho de banda, las demoras y las
prdidas son estticas o dinmicas (variables en el tiempo). Un ejemplo de canales estti-
cos es ISDN
2
(provee bit rate y delay fijo y muy bajas prdidas) y almacenamiento de
video en DVD. Ejemplos de canales dinmicos son los inalmbricos o la Internet. La co-
municacin sobre un canal dinmico es mucho mas difcil y muchos de los desafos del
video streaming se relacin 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 almacenamien-
to en DVD y la comunicacin sobre redes de paquetes compartidas. Por otro lado las se-
cuencias 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
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 informacin sobre
el espacio ocupado en las memorias para hacer la cuantizacin mas fina o mas tosca y por
lo tanto variar el bit rate.
2.6 Redes de conmutacin de paquetes y de conmutacin de circuitos
Un atributo fundamental que afecta el diseo del sistema de streaming es si la red es de
conmutacin de circuitos o de paquetes. Las de redes de conmutacin 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
conmutacin 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 trmino que abarca varios conceptos utilizado para
marcar el hecho de que la red provee algn sistema de envo preferencial o garantas de
rendimiento, a modo de ejemplo, garanta de capacidad de procesamiento, de mxima tasa
de prdidas o de mximas demoras. El soporte de QoS en redes facilita la comunicacin
de video ya que habilita un nmero de capacidades como el prever los datos de video, el
priorizar los datos sensibles de video contra otro tipo de datos y tambin el priorizar los
diferentes tipos de datos de video. Desafortunadamente la QoS no es ampliamente sopor-
tada por las redes de conmutacin de paquetes como la Internet aunque las de conmuta-
cin de circuitos como ISDN y las PSTN si proveen garanta sobre las demoras, ancho de
banda y prdidas. 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 estn siendo consideradas para la Internet incluyen-
do 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 pblica de telefona conmutada)
5
DiffServ: Differentiated Services
6
IntServ: Integrated Services
7
Aynchronous transfer mode: www.atmforum.com
Fundamentos de Video Streaming 8
3 Revisin sobre compresin de video
Esta seccin dar una visin general sobre la compresin de video y sus estndares inclu-
yendo las prcticas y principios mas importantes de los algoritmos de compresin actuales
y de los que estn en desarrollo. Dado que ambos estndares de compresin (H.261/3/4,
MPEG-1/2/4) as como las soluciones propietarias (Realnetworks
8
y Microsoft Windows
Media
9
estn basadas en los mismos principios bsicos, el entender a estos nos permite
tener un entendimiento bsico de los sistemas de video estndares y propietarios. Tambin
es de inters describir que son los estndares mencionados y cuales son los mas relevantes
para video streaming.
3.1 Breve descripcin de la compresin de video
La compresin de video se consigue mediante la explotacin de las semejanzas o redun-
dancias que existen en una seal de video tpica. A modo de ejemplo, los cuadros consecu-
tivos de una secuencia de video exhiben redundancia temporal dado que generalmente
contienen los mismos objetos con algn pequeo movimiento entre cuadros. En un cuadro
en particular encontraremos redundancia espacial, dado que las amplitudes de los pxeles
cercanos generalmente estn correlacionadas. De la misma forma, los componentes de
color rojo, verde y azul de un pxel dado generalmente estn tambin correlacionados.
Otra meta de la compresin de video es reducir la informacin irrelevante en la seal de
video. Esto significa que el sistema codificar caractersticas que tenga importancia per-
ceptiva y no gastar valiosos bits en informacin que no pueda ser percibida o sea irrele-
vante. La identificacin y la reduccin de la redundancia en una seal de video es relati-
vamente directa, pero la identificacin de la informacin sin importancia perceptiva es
muy difcil, por lo que la irrelevancia es un factor de difcil aprovechamiento.
Para comenzar consideramos la compresin de imgenes como el estndar JPEG que
est diseado para explotar la redundancia espacial y de color que existe en una imagen
sin movimiento individual. Los pxeles vecinos de esta imagen son generalmente similares
y las imgenes naturales generalmente tienen su energa concentrada en las bajas frecuen-
cias. El estndar JPEG explota estas caractersticas particionando la imagen en bloques de
8x8 pxeles y computando la Transformada Discreta del Coseno de 2 dimensiones (2D-
DCT) para cada bloque. El motivo para dividir la imagen en bloques pequeos es que
generalmente los pxeles en un bloque de esas caractersticas son mucho mas similares que
para bloques mas grandes. La DCT compacta la mayora de la energa de la seal en el
bloque en una pequea fraccin de los coeficientes DCT, pero que an permite reconstruir
la imagen con precisin. Cada bloque 8x8 de coeficientes DCT es luego cuantizado y

8
www.realnetworks.com
9
www.microsoft.com/windows/windowsmedia
Fundamentos de Video Streaming 9
procesado utilizando tcnicas como el escaneo en zig-zag, el RLE
10
y la codificacin de
Huffman produciendo una versin comprimida de la informacin original. En el caso de
una imagen color se realiza primero una conversin de la imagen RGB (Red, green, blue)
al espacio luminancia/crominancia (YUV) en donde la diferente capacidad de percepcin
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 imgenes. Cada cuadro
puede ser codificado como una imagen separada aplicando por ejemplo una codificacin
JPEG para cada uno. Sin embargo, si consideramos que los cuadros vecinos son muy
similares, podemos alcanzar una mayor compresin explotando la semejanza de cuadros
sucesivos. La mejor forma de explotar esta caracterstica en la actualidad, es codificando
un cuadro dado de la siguiente forma:
1- Predecir este cuadro basndonos en un cuadro previamente codificado
2- Codificar el error de la prediccin





Fig. 1. Ejemplo sobre las dependencias de prediccin 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 prediccin adecua-
da que compense el movimiento. El proceso de estimar el movimiento entre cuadros es

10
Run length coding

I
0
B
1
B
2
P
3
B
4
B
5
P
6
B
7
B
8
I
9
MPEG GOP
Fundamentos de Video Streaming 10
llamado estimacin de movimiento ME
11
, y el proceso de realizar una prediccin mientras
compensamos el movimiento relativo entre dos cuadros es llamado prediccin con com-
pensacin 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 pxeles. Luego se realiza una prediccin 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 movimien-
to [7].
Hay tres tipos bsicos comunes de cuadros codificados:
(1) Cuadros intra codificados o cuadros I: Estos cuadros estn codificados independiente-
mente de los otros.
(2) Cuadros codificados en forma predictiva o cuadros P: Estos cuadros se codifican ba-
sndose en un cuadro anterior.
(3) Cuadros codificados en forma predictiva bidireccional o cuadros B: Estos cuadros
estn codificados basndose en cuadros anteriores y posteriores.
La Fig. 1 muestra los diferentes cuadros codificados y las dependencias predictivas para
un ejemplo de grupo de imgenes GOP
13
MPEG
14
. La eleccin de las dependencias de
prediccin entre cuadros tiene un efecto importante en el rendimiento del video streaming
en trminos de eficiencia de compresin y rechazo al error.
Los estndares actuales de video logran la compresin aplicando los mismos principios
bsicos. La redundancia temporal es aprovechada al aplicar la prediccin MC mientras
que la espacial se explota aplicando la DCT. La redundancia en el espacio de color se
explota mediante la transformacin de espacio de colores. Los coeficientes DCT resultan-
tes son cuantizados y aquellos que no sean cero se codifican mediante RLE y Huffman
para producir el flujo de bits comprimidos.
3.2 Estndares de compresin de video
Los estndares de compresin de video nos brindan un gran nmero de beneficios entre
los que destacan el aseguramiento de la interoperabilidad y la comunicacin entre codifi-
cadores y decodificadores realizados por personas o compaas diferentes. De esta forma
se disminuyen los riesgos para el consumidor y el fabricante, permitiendo una populariza-
cin mas rpida y mas extensa. A esto se agrega el hecho de que lo estndares son utiliza-
dos para una variedad extensa de aplicaciones las que redundan en economas 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
Fundamentos de Video Streaming 11
En el momento hay dos grandes familias de estndares para la compresin de video
desarrollados bajo el auspicio de la ITU-T
15
(antes la CCITT
16
) y la ISO
17
. El primer es-
tndar de video en ganar popularidad fue el ITU H.261, diseado para proveer videocon-
ferencia sobre redes integradas de servicios digitales (ISDN) y se convirti en un estndar
en 1990. Fue diseado para operar a p=1,2,,30 mltiplos de la tasa de bits base de ISDN
o sea p x 64 kb/s. En 1993 la ITU-T comenz un esfuerzo de estandarizacin con el obje-
tivo primario de lograr videoconferencia por la red de telefona pblica conmutada
(PSTN) (lneas de telfono analgicas convencionales), donde la tasa de bits total disponi-
ble era de solamente 33.6 kb/s. La parte de compresin de video del estndar es la H.263 y
su primera etapa fue adoptada en 1996. Una versin mejorada fue finalizada en 1997 co-
mo 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 imgenes en movimiento (MPEG) fue establecido por la ISO en
1988 con el objetivo de desarrollar un estndar para comprimir imgenes en movimiento
(video) y su audio asociado en un medio digital de almacenamiento (CDROM). El estn-
dar 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 extensin del MPEG-1 desarrollada para aplicaciones de televisin digi-
tal y bit rates mas altos. Un tercer estndar llamado MPEG-3 fue pensado para aplicacio-
nes a an mayores bit rates como HDTV, pero dado que estas aplicaciones podan lograrse
con MPEG-2 se desestim su realizacin. Actualmente la porcin de video de la televisin
digital DTV y de la televisin digital de alta definicin HDTV es realizada bajo MPEG-2
para Norte Amrica, Europa y Asia.

Estndar de
codificacin de
video
Aplicaciones primarias Bit Rate
H.261 Video telefona y tele conferencias sobre ISDN p x 64 kb/s
MPEG-1 Video en medios digitales de almacenamiento
(CD-ROM)
1.5 Mb/s
MPEG-2 Televisin digital 2-20 Mb/s
H.263 Video telefona sobre PSTN 33.6 kb/s y
superiores
MPEG-4 Codificacin basada en objetos, contenido
sinttico, interaccin, streaming de video
Variable
H.264/MPEG-4
Parte 10 (AVC)
Compresin 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
Fundamentos de Video Streaming 12
Tabla 1. Estndares de compresin de video actuales y emergentes
Luego fue diseada una tercera parte del trabajo llamada MPEG-4 con los objetivos de
lograr mejorar la compresin, la eficiencia y el rechazo al error. Tambin se busco un
incremento de funcionalidades que incluyen el procesamiento basado en objetos, la inte-
gracin del contenido natural y el sinttico (generado en computadores) y la interactividad
basada en el contenido.
El estndar H-26L est siendo finalizado por el Equipo Unido de Video (Joint Video
Team) formado por el ITU y el ISO MPEG. Este estndar consigue una mejora significa-
tiva en la compresin sobre los estndares 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
estndares de compresin utilizados para comunicacin de video son el H.263 V2 y
MPEG-4, y se espera que los nuevos estndares vayan ganando mayor aceptacin.
3.3 Qu especifican los estndares?
Un sistema de compresin de video est compuesto de un codificador y un decodifica-
dor que interpretan de la misma forma las rfagas de bits comprimidos. El codificador
toma el video original y lo comprime en una secuencia de bits, la que es enviada al decodi-
ficador para que produzca el video reconstruido. Una posibilidad es que el estndar espe-
cifique tanto el codificador como el decodificador, pero esto hace que el estndar sea
restrictivo. Lo que se hace en cambio es lograr que el estndar tenga un alcance limitado
que permita asegurar la interoperabilidad permitiendo que existan diferencias.
Los estndares no especifican ni el codificador ni el decodificador. Lo que si describen
es la sintaxis para la secuencia de bits y el proceso de decodificacin. La sintaxis de la
secuencia de bits es el formato para representar los datos comprimidos. A modo de ejem-
plo, el estndar especifica que el decodificador usar una IDCT
18
, pero no dice como im-
plementarla. La IDCT se puede implementar en forma directa o utilizando un algoritmo
rpido similar a la FFT
19
, o utilizando instrucciones MMX
20
. La implementacin especfi-
ca no est estandarizada lo que permite a los diferentes diseadores y fabricantes proveer
mejoras compatibles con el estndar y de esa forma diferenciar su trabajo.
El proceso de codificacin es no estandarizado en forma deliberada. A modo de ejem-
plo, los codificadores mas sofisticados pueden ser diseados para proveer mejor rendi-
miento sobre los mas simples. Adems se pueden incorporar mejoras an despus de pu-
blicado el estndar (por ejemplo, mejores algoritmos para estimacin de movimiento o
ubicacin de bits). La nica restriccin es que el codificador produzca una secuencia de

18
Inverse discrete cosine transform (transformada inversa del coseno discreta)
19
Fast Fourier Transform (transformada rpida de Fourier)
20
Conjunto de instrucciones destinadas a aplicaciones multimedia de los procesadores Intel del
modelo Pentium y superiores
Fundamentos de Video Streaming 13
bits con una sintaxis correcta y que pueda ser decodificado por una decodificador estndar
compatible.
En resumen es importante tener en cuenta que no todos los codificadores son creados
iguales a pesar de corresponder al mismo estndar.
Fundamentos de Video Streaming 14

4 Codificacin escalable del video
4.1 Introduccin
Los mtodos de codificacin basados en el contenido y en la forma de onda buscan op-
timizar la eficiencia del proceso de codificacin para un bit rate fijo. Esto es un problema
cuando mltiples usuarios intentan acceder al mismo material de video a travs de diferen-
tes conexiones. A modo de ejemplo, un video MPEG-1 codificado a 1.5 Mbps puede ser
bajado en tiempo real para su visualizacin en una terminal conectada con banda ancha
(por ejemplo, un mdem 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 informacin desde imgenes o
video que tengan un significado fsico mediante la decodificacin de secuencias de bits
con informacin parcial. En el ejemplo anterior, si el video fuera escalable, el usuario
conectado mediante banda ancha vera 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 presentacin
de menor calidad. Este ejemplo ilustra un aspecto de la escalabilidad que es la escalabili-
dad del ancho de banda. Un flujo escalable puede ofrecer la capacidad de adaptacin para
niveles de error variable en el canal y capacidad de procesamiento desigual en los recepto-
res. Los avances hacia la convergencia de tecnologa inalmbricas, Internet y multimedia
le dan a la escalabilidad un rol preponderante para proporcionar acceso al medio sin im-
portar desde donde, quien cuando, con qu o en qu forma.
Los codificadores escalables pueden tener granulado grueso (2 o 3 capas, tambin lla-
mados 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 cuali-
dad deseable en muchas aplicaciones. A modo de ejemplo, los filtros de red pueden selec-
cionar el nmero de bits a transmitir desde el flujo de bits embebido de forma que coinci-
da con el ancho de banda disponible.
La codificacin escalable se consigue usualmente suministrando versiones mltiples de
un video en trminos de su resolucin de amplitud (llamada escalonamiento en calidad o
escalamiento SNR
21
), resolucin espacial (escalabilidad espacial), resolucin temporal

21
Signal noise ratio (Relacin seal ruido)
Fundamentos de Video Streaming 15
(escalabilidad temporal), resolucin en frecuencia (escalabilidad en frecuencia, mas cono-
cida como particin de datos) o una combinacin 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 bsicos 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 hbridos basados en bloques para conseguir los diferentes
modos de escalabilidad. Luego describiremos mtodos de codificacin basados en wave-
lets
22
los que, por la naturaleza de las transformadas wavelet, tienden a ser procesos de
granulado fino.
Es interesante notar que un mtodo alternativo para manejar capacidades de entorno del
canal y del receptor variables es el simulcast (difusin simultnea), el que codifica el mis-
mo video muchas veces, cada una con una diferente calidad y resolucin. A pesar de su
simpleza es muy ineficiente, dado que un flujo de datos con mayor calidad y resolucin
repetir esencialmente la misma informacin que se existe en un flujo de menor calidad,
junto con informacin adicional. Por otra parte, para proveer funcionalidad de escalado, el
codificador deber sacrificar una cierta cantidad de eficiencia en la codificacin en com-
paracin con los codificadores no escalables actuales. La meta de diseo en la codifica-
cin escalable es minimizar la reduccin de la eficiencia en la codificacin manteniendo
el objetivo de la escalabilidad.
4.2 Modos bsicos de escalabilidad
4.2.1 Escalabilidad de la calidad

La escalabilidad de la calidad se define como la representacin de una secuencia de vi-
deo con diferente precisin en los patrones de color. Generalmente esto se obtiene codifi-
cando los valores de color (en el dominio original o en el transformado) con tamaos de
pasos de cuantificacin cada vez mas finos. Dado que diferente precisin en la cuantifica-

22
La transformada por wavelets o anlisis wavelet es una solucin reciente para superar las limita-
ciones de la transformada de Fourier. Mediante la utilizacin de la una ventana modulada total-
mente escalable se resuelven los problemas de recorte de la seal. Esta ventana se mueve a lo lar-
go de la seal y se calcula el espectro para cada posicin. Este proceso se repite muchas veces va-
riando el tamao de la ventana (mayor o menor) en cada nuevo ciclo obtenindose un conjunto de
representaciones de la seal en tiempo y frecuencia. En el caso de wavelets no hablamos de repre-
sentacin tiempo-frecuencia, sino de representaciones en la escala de tiempo, ya que el trmino
frecuencia se reserva para la transformada de Fourier.
Fundamentos de Video Streaming 16
cin 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 de-
codificar la primer capa (tambin llamada capa base) provee una versin de baja calidad
de la imagen reconstruida. Al decodificar la capas siguientes (tambin 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 cuanti-
ficacin entre la imagen original y aquella reconstruida desde la primera capa usando un
cuantificador mas fino que el de la capa inicial.




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 cuantifica-
dor cada vez mas fino.
En la Fig. 3 (a) podemos ver la implementacin 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 (relacin seal ruido de pico)
Cuadros decodificados en N capas de SNR diferentes
Secuencia de Bits
Fundamentos de Video Streaming 17
codificador hbrido tpico 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 compensacin de mo-
vimiento) es transformado mediante DCT y cuantificado en el nivel base;
2. Los coeficientes DCT de nivel base son reconstruidos por cuantificacin in-
versa;
3. Se restan los coeficientes DCT de nivel base de los coeficientes DCT origina-
les;
4. El residuo es cuantificado por un parmetro de cuantificacin que es menor
que aquel del nivel base;
5. Los bits cuantificados son codificados mediante VLC
24

Dado que el nivel mejorado utiliza parmetros de cuantificacin mas pequeos, conseguir
mejor cualidad que el nivel base.
La operacin de decodificacin es mostrada en la Fig. 3 (b). Para el nivel base, el deco-
dificador opera exactamente como un codificador de video no escalable. Para el nivel
mejorado se deben recibir los dos niveles, decodificarlos mediante decodificacin 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 mejo-
rado. 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 (codificacin de largo variable)
Fundamentos de Video Streaming 18


Fig. 3. Codificador de calidad escalable de dos niveles. (a) codificador; (b) decodificador.
DCT Q VLC
IQ
Q VLC
VLD IQ IDCT
VLD IQ IDCT
Video
en bruto
Secuen-
cia de bits
comprimi-
da en el
nivel bsico
Secuen-
cia de bits
comprimida
en el nivel
mejorado
Video
decodifica-
do en nivel
mejorado
(a)
(b)
Secuen-
cia de bits
comprimi-
da en el
nivel bsico
Secuen-
cia de bits
comprimida
en el nivel
mejorado
Video
decodifica-
do en nivel
base
-
Fundamentos de Video Streaming 19

4.2.2 Escalabilidad espacial

La escalabilidad espacial se define como la representacin del mismo video en diferen-
tes resoluciones espaciales o tamaos (ver Fig. 4 (a) y (b)). La Fig. 5 muestras una secuen-
cia de datos con M capas de escalabilidad espacial. Decodificando la primer capa, el usua-
rio puede mostrar una versin preliminar de la imagen decodificada en una resolucin
inferior. Al decodificar las capas subsiguientes se incrementa la resolucin espacial hasta
llegar a la resolucin completa de la imagen original.


Fig. 4. Escalamiento especial y temporal de un stream de video: (a) cuadros de video originales; (b)
cuadros escalados a del tamao original; (c) cuadros escalados temporalmente.
Para producir este flujo de datos estratificado primero debe realizarse una descomposi-
cin de la imagen original en mltiples resoluciones. La imagen de resolucin 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
resolucin. La diferencia entre la imagen original y la interpolada a la resolucin 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 resolucin que
corresponda basada en las capas anteriores y luego codificar la diferencia entre la imagen
estimada y la original).

(a)
(b)
(c)
Fundamentos de Video Streaming 20

Fig. 5. Escalabilidad especial en M capas
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 mejo-
ramiento, 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 cuantizacin 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 parmetro de
cuantizacin que ser menor al de la capa base;
6. Los bits cuantizados son codificados por VLC.
Dado que la capa de mejoramiento usa un parmetro de cuantizacin mas pequeo, se
consigue una calidad mejor que la de la capa base.

25
A modo de ejemplo, el sub-muestreado espacial con una razn de 4:1 puede lograrse reemplazan-
do cada 2x2 pxeles 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 razn 1:4 es replicar cada pxel cuatro
veces
SP(0)
SP(1)
SP(2)
SP(M-1)
Flujo de datos
Cuadros decodificados en M capas espaciales diferentes
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 debern 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 sobre-
muestreada se combina con la capa de mejoramiento obteniendo el video decodificado
mejorado.

Fig. 6. Codificador escalable especial/temporal de dos niveles. (a) Codificador, (b) Decodificador.
DCT Q VLC
IQ
Q VLC
VLD IQ IDCT
VLD IQ IDCT
Secuen-
cia de bits
comprimi-
da capa
base
Secuen-
cia de bits
comprimida
capa mejo-
ramiento.
Video
decodifica-
do capa
mejora-
(a)
(b)
Secuen-
cia de bits
comprimi-
da de la
capa base
Bits
comprimi-
dos capa
de mejora-
miento
Video
decodifica-
do capa
base
-
IDCT
DCT
Sobre-
muestreado
espacial o
temporal
Sub-
muestreado
espacial o
temporal
Video
en bruto
Fundamentos de Video Streaming 22

4.2.3 Escalabilidad temporal

La escalabilidad temporal se define como la representacin del mismo video en diferen-
tes resoluciones o frame rates
27
(Ver Fig. 4 (a) y (c)). Generalmente el video escalado
temporalmente se codifica haciendo uso de imgenes sobre-muestreadas temporalmente
desde una capa inferior como prediccin 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 vara el muestreado en el tiempo. La
forma mas simple de realizar sub-muestreado temporal es saltendose cuadros (por ejem-
plo, si la razn es 2:1 cado dos cuadros se descarta uno). El sobre-muestreado temporal se
puede conseguir mediante la copia de cuadros (para la razn 1:2 cada cuadro se copia y se
transmiten los dos en forma consecutiva a la siguiente etapa). En este caso la capa base
slo contiene los cuadros pares y la capa de mejoramiento los impares. Para la compensa-
cin de movimiento, un cuadro de la capa base slo puede predecirse desde cuadros ante-
riores de la capa base, y los de la capa de mejoramiento slo podrn predecirse de los
anteriores de esta capa.
4.2.4 Escalabilidad en frecuencia

Otra forma de representar un cuadro de video en capas mltiples es incluyendo diferen-
tes componentes de frecuencia en cada capa, en donde la capa base tendr los componen-
tes de menor frecuencia y las capas siguientes contendrn componentes de frecuencia cada
vez de mayor orden. De esta forma, la capa base ser una versin borrosa de la imagen y
al agregar las capas de mejoramiento se ir formando una imagen mas precisa. Esta des-
composicin se puede lograr con transformaciones de cuadros enteros como la descompo-
sicin en sub-bandas, transformadas de wavelets o transformadas basadas en bloques co-
mo la DCT para bloques. Una forma de implementar esta idea en los codificadores hbri-
dos basados en bloques es incluyendo la informacin de modo, la informacin de movi-
miento as como tambin 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
estndar MPEG-2, este mtodo es conocido como particionamiento de datos. Los codifi-
cadores escalables basados en wavelets se vern el punto 4.3.

27
Velocidad de pasaje de los cuadros del video medida en cuadros por segundo
Fundamentos de Video Streaming 23

4.2.5 Combinacin de esquemas bsicos

Los escalamientos en calidad, temporal, espacial y en frecuencia son mecanismos bsi-
cos. 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 resolucin espacial como la cali-
dad de la imagen reconstruida pueden ser mejoradas mediante la transmisin progresiva y
la decodificacin del flujo de bits. El orden a seguir es mejorar la calidad de imagen para
una resolucin dada hasta llegar a la calidad mxima a la resolucin espacial dada y luego
aumentar la resolucin espacial al mximo nivel y mejorar nuevamente la calidad.
4.2.6 Escalabilidad de granulado fino

Los mtodos 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 mejo-
ramiento. Este tipo de codificacin provee solamente granulado grueso, en el que las me-
joras en calidad se obtienen con aumentos de velocidad en grandes pasos discretos. Si slo
se recibe una parte de los bits de una capa, la calidad del video reproducido est determi-
nada bsicamente 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 mtodo de codificacin en
que tanto la velocidad como la calidad pueden incrementarse en pasos mas pequeos. En
el caso lmite en que un flujo de bits puede proveer una mejora de la calidad de video
continua con cada bit adicional el mtodo de codificacin es llamado codificacin embe-
bida. Tanto la FGS como la codificacin 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 granu-
lado fino son menos restrictivos en la prctica 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 mtodo de codificacin convencional hbrido basado en
bloques para producir un flujo de capa base a un frame rate dado usando un QP
29
relati-
vamente grande. Luego para cada cuadro codificado (intra o inter codificado), las diferen-
cias entre los coeficientes DCT originales
30
y los cuantizados en la capa base (que sern
llamados coeficientes de refinamiento) son codificados en un flujo de granulado fino. Esto

28
Fine granularity scalability
29
Quantization parameter (parmetro de cuantificacin)
30
Para cada bloque, la transformada se aplica al bloque original o al bloque de error de compensa-
cin de movimiento, dependiendo de si el bloque es codificado en modo intra o inter en la capa
base
Fundamentos de Video Streaming 24
se consigue cuantizando los coeficientes de refinamiento con un QP pequeo y luego
representando los ndices cuantizados a travs de codificacin en sucesivos planos de bits.
Los valores absolutos para los coeficientes de refinamiento cuantizados en cada bloque
son dados en representacin 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 codificacin aritmtica o de Huff-
man. Generalmente se utilizan distintos cdigos para planos diferentes dado que las distri-
buciones de corridas RLC varan a lo largo de los planos. El mtodo descrito anteriormen-
te permite escalabilidad para una resolucin espacial fija en el tiempo. Para agregar esca-
labilidad 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 imgenes de prediccin de error son luego cuantizados y codificados usando el m-
todo de codificacin 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.

Fig. 7. Forma de transmitir porciones de la capa de mejoramiento para soportar escalabilidad con-
junta en lo espacial y en lo temporal
Capa de mejoramiento
Capa Base
I P P P
Resto de la capa de mejora-
miento
Porcin de la capa de
mejoramiento transmitida
Fundamentos de Video Streaming 25
Una limitacin 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 codificacin del mtodo FGS ser reducida significativamente en
comparacin 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 prediccin de
compensacin de movimiento. A pesar de que esta eleccin elimina el problema de la
propagacin de error temporal en la capa de mejoramiento, el alto error de cuantizacin en
la capa base reduce la ganancia de la prediccin. Una forma de mejorar la eficiencia de
codificacin del mtodo FGS es utilizar peridicamente una capa de mejoramiento inter-
media como referencia para la prediccin de compensacin de movimiento.
4.3 Escalabilidad basada en objetos
Los mtodos de codificacin escalable mencionados previamente realizan la misma
operacin 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 pre-
sente 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 prediccin hacia adelante o bidireccional.
El Tipo 2 utiliza una capa de objeto VO0 que es una secuencia de un cuadro entero que
tiene slo 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 Codificacin basada en transformadas wavelet
La transformada discreta wavelet (DWT
33
) es una herramienta poderosa surgida recien-
temente para la compresin de imgenes y video debido a su flexibilidad para representar
seales no estacionarias (las imgenes reales son no estacionarias) y su capacidad de adap-
tacin a las caractersticas visuales humanas. La representacin en wavelet provee una
expresin de resolucin y frecuencia mltiple para la seal con localizacin en tiempo y
frecuencia. La transformada wavelet descompone la seal no estacionaria en un conjunto
de sub-bandas multiescaladas con componentes estacionarios y por ende mas sencillos de
codificar. Como agregado, la representacin wavelet coincide con las propiedades de la
visin humana, como ser, sintonizada en el espacio y modulada en frecuencia como indi-

31
Object-based temporal scalability
32
VideoObjectLayer
33
Discrete Wavelet Transform
Fundamentos de Video Streaming 26
can las investigaciones en psicofsica y fisiologa [9]. Por ltimo, la descomposicin multi
resolucin y multi frecuencia facilita crear flujos de bits escalables.
La transformada wavelet, al igual que la DCT, consiste en tres pasos: (1) transforma-
cin wavelet; (2) cuantizacin; (3) codificacin de entropa.
La transformada wavelet convierte la seal de imagen en un conjunto de coeficientes que
corresponden a representaciones escaladas en el espacio a mltiples resoluciones y seg-
mentos de frecuencia. Los coeficientes wavelet son organizados en una estructura de datos
jerrquica de forma que la ubicacin de cada bit y la compactacin de los datos sea mas
eficiente. La cuantizacin permite disminuir la tasa de datos favoreciendo algunas distor-
siones. Finalmente, la codificacin con entropa codifica los coeficientes cuantizados en
un conjunto de flujo de bits compacto.
Las wavelet superan a las tcnicas basadas en DCT para la codificacin de imgenes en
eficiencia de compresin con mejoras como la escalabilidad por lo que fueron elegidas en
MPEG-4 y JPEG2000.
4.4.1 Codificacin de imgenes fijas con wavelets
El mtodo EZW
El concepto cero rbol fue desarrollado por J. M. Shapiro [8] y conocido como codifica-
cin de wavelet de cero rbol embebida (EZW
34
). Esta codificacin wavelet est basada en
tres ideas: (1) transformacin wavelet para decorrelacin; (2) explotar las similitudes
inherentes a la transformada wavelet para predecir la ubicacin de informacin significati-
va sobre las escalas; (3) compresin de datos sin prdidas universal utilizando codifica-
cin aritmtica adaptante.
La transformada discreta wavelet (DWT
35
) descompone la imagen en un conjunto de
sub-bandas con resolucin variable. La sub-banda mas gruesa es conocida como la banda
DC y es una aproximacin pasa bajos de la imagen original. Las sub-bandas siguientes son
mejoras a escalas mas finas. En el sistema de sub-bandas jerrquico de la transformada
wavelet cada coeficiente de una escala dada puede ser relacionado con un conjunto de
coeficientes de orientacin similar en la siguiente escala mas fina. El coeficiente en la
escala gruesa es llamado padre, y los dems coeficientes en la misma ubicacin espacial y
con orientacin similar de la escala mas fina siguiente son llamados hijos.
En la Fig. 8 se muestra un rbol wavelet obtenido de una descomposicin wavelet de 3
niveles. Para la sub-banda de frecuencia menor (LL3) de este ejemplo, la relacin padre-
hijo se define de forma que cada nodo padre tiene tres hijos, uno en cada sub-banda en la
misma escala y ubicacin espacial pero con diferente orientacin. Para las otras sub-
bandas, cada nodo padre tiene cuatro hijos en la siguiente escala fina de la misma orienta-
cin.

34
Embedded Zero-Tree Wavelet Coding
35
Discrete Wavelet Transform
Fundamentos de Video Streaming 27


Fig. 8. La relacin padre-hijo de los coeficientes wavelet.
Los coeficientes de la banda DC se codifican en forma independiente de la otras ban-
das. En la Fig. 9 se muestra que el coeficiente X es predicho en forma adaptable de los
otros tres coeficientes vecinos cuantizados (A, B y C) de la siguiente forma:
, C si A B B C
X
A en otro caso

<


(1)
Si alguno de los vecinos A, B o C no est en la imagen, su valor se fija en cero a los efec-
tos de la prediccin.
Fundamentos de Video Streaming 28

Fig. 9. Codificacin predictiva adaptable de los coeficientes DC
En el flujo de bits se codifica primero el tamao del paso de cuantizacin y luego el va-
lor mnimo de los ndices de cuantizacin diferenciales (llamados band-offset
36
) y el
valor mximo (llamado band_max_value). El band-offset ser un entero negativo o
cero y el band_max_value ser un entero positivo.
El mtodo EZW explora los coeficientes wavelet para cada sub-banda primero los pa-
dres y luego los hijos. Cada coeficiente se compara con un umbral T y es significativo si
supera dicho umbral. Los coeficientes significativos son codificados usando los smbolos
NS (negative significant) o PS (positive significant). El smbolo raz de cero rbol ZTR
37

se utiliza para marcar un coeficiente menor a T con todos sus hijos menores a T. El smbo-
lo IZ (isolated zero) se utiliza para coeficientes menores que T pero con al menos uno de
sus hijos mayores a T. EZW codifica los valores de los coeficientes significativos por un
esquema de cuantizacin por aproximaciones sucesivas mediante planos de bits los que
dan como resultado un flujo embebido.
Los mtodos ZTE y MZTE

El mtodo de Codificacin con entropa de rbol-cero (ZTE
38
) se basa en EZW con algu-
nas diferencias. ZTE, al igual que EZW codifica explotando la semejanza en la transfor-
mada wavelet de imgenes para predecir la ubicacin de la informacin a lo largo de las
escalas wavelet. A pesar de que ZTE no produce una cadena de bits totalmente embebida
como EZW por otro lado gana en flexibilidad, eficiencia de codificacin, simplicidad y
escalabilidad espacial. La codificacin ZTE se realiza asignando un smbolo de rbol cero
a un coeficiente y luego codificando el valor del coeficiente con este smbolo en uno o dos
rdenes de escaneo diferentes. Los cuatro smbolos usados en ZTE son zero-tree root

36
Compensacin de banda
37
Zero Tree Root
38
Zero Tree Entropy Coding
A
B C
X
Fundamentos de Video Streaming 29
(ZTR), valued zero-tree root (VZTR), value (VAL) y isolated zero (IZ). Los smbolos de
rbol cero y los coeficientes cuantizados son codificados sin prdidas utilizando un codifi-
cador aritmtico adaptable con un alfabeto de smbolos dado. El codificador aritmtico
siguen en forma adaptable las estadsticas de los smbolos de rbol cero y los valores codi-
ficados utilizando tres mtodos: 1) tipo para codificar los smbolos de rbol cero; 2) mag-
nitud para codificar los valores en un estilo plano de bits y 3) signo para codificar el signo
del valor. Para cada coeficiente su smbolo de rbol cero es codificado y luego si es nece-
sario se codifica su valor. Este valor se codifica en dos pasos. Primero su valor absoluto es
codificado con el estilo plano de bits utilizando el modelo de probabilidad apropiado y
luego se codifica el signo usando un modelo de probabilidad binario.
La tcnica de codificacin con entropa de rbol cero multi-escala (MZTE
39
) se basa en
la codificacin ZTE pero utilizando un nuevo marco de referencia para ampliar ZTE a ser
totalmente escalable con eficiencia. En la primera capa de escalamiento se generan los
smbolos de rbol cero idem a ZTE con los coeficientes wavelet no nulos en la capa de
escalabilidad. Para la siguiente capa de escalabilidad el mapa de rbol cero se actualiza
con los valores correspondientes de refinamiento. En cada capa de escalabilidad se codifi-
car un nuevo smbolo de rbol cero slo si fue codificado como ZTR o IZ en la capa
previa de escalamiento. Si fue codificado como VZTR o VAL, el valor de refinamiento se
codifica en la capa actual. Se utiliza un modelo de probabilidad adicional para codificar
los refinamientos para los coeficientes codificados como smbolos VAL o VZTR en cual-
quier capa de escalamiento previa.
MZTE adaptable a las formas

En la ZTE adaptable a las formas (SA-ZTE
40
), la mscara con la forma del objeto se
descompone en una pirmide de sub-bandas de forma qu sabremos que nodos del rbol
de wavelet tienen coeficientes wavelet vlidos y cules tienen valores que no importan.
Debemos prestar atencin a la forma de codificacin para los objetos con formas arbitra-
rias de multi-resolucin contra los valores sin importancia (que corresponden a los pxeles
fuera de los lmites o fuera de los nodos).
Como vimos previamente, la SA-ZTE descompone los objetos de forma arbitraria en
dominio de las imgenes en una estructura jerrquica con un conjunto de sub-bandas con
resoluciones variables. Cada sub-banda tiene una mscara de forma asociada para especi-
ficar la ubicacin de los coeficientes vlidos. Hay tres tipos de nodos en el rbol: cero, no-
ceros, y fuera de nodos (con valores que no importan). La tarea ser extender el mtodo de
codificacin de rbol-cero al caso de los que tienen fuera de nodos. Una forma simple es
fijar los valores que no importan en cero y aplicar el mtodo de codificacin de rbol-
cero, sin embargo, esto requiere de bits para codificar los fuera de nodos como un rbol
sin importancia (tanto el padre como los hijos tienen valores sin importancia). Esto es un

39
Multi-scale Zero-Tree Entropy
40
Shape adaptative ZTE
Fundamentos de Video Streaming 30
gasto de bits, ya que los fuera de nodos no necesitan ser codificados dado que la mscara
ya indica su condicin. Por esto deberemos tratar los fuera de nodos de forma diferente a
los ceros, y aunque no queremos gastar bits para codificarlos, debemos hacer algo con
ellos. Una solucin es codificar cualquier informacin respecto a la condicin de los no-
dos hijo del nodo sin importancia, y as asumiremos que tiene cuatro hijos para ser exami-
nados mas adelante. Cuando el decodificador inspecciones este nodo, ser informado por
la informacin de forma que es nodo sin importancia y continuar inspeccionando sus
cuatro nodos hijos. De esta forma no es necesario codificar todos los nodos sin importan-
cia en la estructura del rbol. Una desventaja de este mtodo es que incluso si un nodo sin
importancia tiene cuatro races hijos de rbol cero, deber igual codificar cuatro smbolos
raz de rbol cero y no uno (si el nodo sin importancia se tratara como cero). Otra forma es
tratar en forma selectiva a un nodo externo como cero. Los experimentos muestran que el
mtodo de no codificar nodos externos se comporta mejor. Por otro lado la tcnica SA-
ZTE (utilizada en MPEG-4) se comporta en forma mas eficiente que la SA-DCT con una
mejora en la PSNR de 1.5 a 2 dB.
4.4.2 Codificacin de video con wavelets

Las tcnicas de codificacin de video por wavelets son clasificadas en tres categoras:
(1) compensacin de movimiento en el dominio espacial seguidas de transformadas wave-
let 2-D; (2) transformacin wavelet seguida de compensacin de movimiento en el domi-
nio de la frecuencia; (3) transformacin wavelet 3-D con y sin estimacin de movimiento.
Para cada una de las tres categoras pueden ser empleados diferentes algoritmos de esti-
macin de movimiento, esquemas de cuantizacin y mtodos de codificacin con entropa.
En la Fig.10 vemos un ejemplo de un codec de video basado en wavelet. El mismo
consta de cinco componentes principales: (1) estimacin y compensacin de movimiento
en tres etapas; (2) transformacin wavelet adaptable; (3) cuantizacin de etapas mltiples;
Fundamentos de Video Streaming 31
(4) codificacin entrpica de rbol cero; (5) control de bit rate inteligente.

Fig. 10. Diagrama de bloques de un codec de video basado en wavelet

T/D

Entrada
de video
+
-
Cuadro I


Cuadro P
Q
Codificacin
de rbol cero
Control de
bit rate
C
o
d
i
f
i
c
a
c
i

n

a
r
i
t
m

t
i
c
a

B
u
f
f
e
r

Cadena de
bits
Estimacin
de
movimiento
de bloques
Compensacin de
movimiento de
bloques superpuestos
Buffer de
cuadros
Vectores de
movimiento
Q
-1
T/D
-1
Codificacin
de Huffman
+
+
Fundamentos de Video Streaming 32
Primero se realiza un proceso de estimacin y compensacin de movimiento de tres
etapas que incluye estimacin de movimiento global (GME
41
), estimacin de movimiento
de bloques de tamao variable (VBS-ME
42
) y compensacin de movimiento para bloques
superpuestos (OBMC
43
). Los cuadros residuales compensados en movimiento son luego
descompuestos con un filtro wavelet en un conjunto de sub-bandas piramidales de resolu-
cin mltiple, lo que es seguido por un cuantizador de etapas mltiples con diferente ta-
mao de etapa y zonas muertas. Los coeficientes cuantizados son codificados entrpica-
mente utilizando un codificador de tipo ZTE optimizado para los coeficientes de las wave-
let para video residual.
El GME es utilizado para estimar los efectos de movimiento de la cmara y separar la
secuencia de imgenes en capas diferentes. Cada capa tiene su estimacin de movimiento
global y local. La estimacin global se basa en un modelo de movimiento afn en 2-D que
es aplicado previamente a la estimacin de movimiento local.
La VBS-ME se aplica a los cuadros sucesivos despus de la GME. Una estructura de
rbol cudruple se utiliza para separar los cuadros en bloques de tamao variable que van
de 8x8 a 256x256 pxeles. Luego se utiliza un sistema de bsqueda de coincidencia con-
vencional para los bloques para encontrar los vectores de movimiento para cada bloque
individual. OBMC utiliza un promedio ponderado de los bloques vecinos desplazado por
sus respectivos bloques de movimiento como una prediccin para el bloque actual. Esto
redunda en una versin mas suavizada de la trama de compensacin de movimiento resi-
dual. Debido al tamao de bloque variable usado en VBS-ME, OMBC utiliza el tamao de
bloque mas pequeo (en esta caso 8x8) y la funcin de la ventana asociada como la unidad
de solapamiento para la prediccin.
La transformada wavelet se aplica para los cuadros residuales compensados en movi-
miento. Dado que la distribucin de energa en las diferentes sub-bandas tiende a ser uni-
forme para los cuadros de error residual, el criterio de soporte de compactacin que sera
el normal para elegir los filtros wavelet deja de ser importante. Es mas importante aqu la
ubicacin en el tiempo del filtro wavelet.
La DWT es seguida por una cuantizacin escalar de los coeficientes de la transformada
wavelet que luego es seguida por la ZTE. La ubicacin y el bit rate en codificador puede
ser dividido en tres etapas: (a) ubicacin de bits en el dominio del tiempo con velocidades
de frame variable; (b) ubicacin de bits entre cuadros para dar una asignacin ptima de
velocidad a los cuadros; (c) ubicacin de bits entre cuadros para producir ubicacin de
bits ptima en el cuadro.
Este mtodo se ha comparado con el codificador basado en DCT de MPEG-4. Los dos
mtodos producen rendimientos similares en trminos del PSNR. Se encontr que la opti-
mizacin de la cuantizacin, la codificacin entrpica y la compleja interaccin entre

41
Global Motion Estimation
42
Variable Block Size Motion Estimation
43
Overlapped Block Motion Compensation
Fundamentos de Video Streaming 33
elementos del sistema de codificacin es mas importante que la optimizacin de la trans-
formada [10].
5 Control de errores para superar prdidas del canal
Las prdidas del canal tienen un efecto importante en la calidad del video reconstruido,
por lo que el diseo del sistema debe preverlas. Los tipos de prdidas dependen de la red
particular en consideracin. A modo de ejemplo, en redes como la Internet importan las
prdidas de paquetes descartados por congestin, mientras que los canales inalmbricos
son mas afectados por errores a nivel de bit en la capa fsica. La tasa de prdidas vara
tambin con el trfico coincidente en el canal.
En el diseo de un sistema de streaming de video existen cuatro clases bsicas de me-
canismo para control del error: (1) retransmisiones, (2) correccin de error hacia delante
(FEC
44
), (3) ocultamiento del error, (4) codificacin de video resistente al error. Las pri-
meras dos se refieren al canal y las ltimas dos a la codificacin de la fuente.
5.1 Retransmisiones
En los sistemas con retransmisin el receptor utiliza un canal alternativo para notificar
al remitente cuales paquetes fueron recibidos correctamente y cuales no, habilitando al
remitente a reenviar los paquetes perdidos. Este sistema utiliza el ancho de banda en forma
eficiente, dado que se reenvan slo los paquetes perdidos y el sistema se adapta a condi-
ciones cambiantes del canal. Por otro lado, la retransmisin redunda en demoras que co-
rresponden al tiempo de envo de punta a punta RTT
45
entre el remitente y el receptor y
requiere de un canal alternativo que puede no ser posible en aplicaciones de difusin,
multidifusin y punto a punto sin canal alternativo.
Hay aplicaciones en que las demoras adicionales son aceptables como FTP
46
, navega-
cin en Web, y telnet. Estas aplicaciones requieren entrega garantizada y tiene canal alter-
nativo. La retransmisin no es solucin en caso de aplicaciones que no lo posean o que no
soporten demoras.
5.2 Correccin de errores hacia delante
La meta de FEC es agregar redundancia especializada que pueda ser usada para recupe-
racin de errores. A modo de ejemplo, en redes de paquetes se utilizan cdigos de bloque

44
Forward error correction
45
Round Trip-Time
46
File transfer protocol
Fundamentos de Video Streaming 34
que toman K paquetes de datos y devuelven N paquetes, donde hay N-K paquetes redun-
dantes. Para algunos cdigos alcanza con que K paquetes cualquiera de los N sean recibi-
dos correctamente para recuperar los datos originales. Por otro lado, la redundancia au-
menta el ancho de banda requerido por un factor N/K.
FEC provee ventajas y desventajas. Comparado con la retransmisin, FEC no requiere
de un canal alternativo y puede tener demoras menores ya que no depende del tiempo de
viaje punta a punta en redondo para retransmisiones.
Las desventajas incluyen el sobre procesamiento permanente (an si no hay prdidas) y la
latencia asociada a la reconstruccin de los paquetes perdidos. Por otro lado, la alternativa
FEC debe ser diseada para una determinada tasa de prdidas y slo son efectivas si esta
tasa coincide con la del canal. Si las prdidas son menos, los datos pueden ser recupera-
dos, pero si son mas slo se puede recuperar una porcin de los datos fuente. Dado que las
redes de paquetes no proporcionan una tasa de prdidas conocida y fija en el tiempo, el
FEC no coincide con el del canal convirtindolo en ineficaz o en ineficiente.
5.3 Ocultamiento del error
La meta del sistema de ocultamiento del error es estimar la prdida de informacin o
pxeles perdidos para ocultar el hecho de que ocurri un error. El video exhibe una corre-
lacin en las dimensiones espaciales y temporal que fue utilizada para la compresin, pero
tambin puede ser utilizada para estimar la prdida de informacin mediante la interpola-
cin (o extrapolacin) de los datos recibidos correctamente.
Consideremos que se ha perdido un bloque de pxeles 16x16 (un macro bloque MPEG).
Podemos asumir que el bloque perdido tiene amplitud cero y sin embargo produce un
cuadrado negro/verde en el medio del cuadro de video que distrae la atencin. Hay tres
opciones para el ocultamiento del error: (1) interpolacin espacial, (2) interpolacin tem-
poral (cuadro congelado) y (3) interpolacin temporal con compensacin de movimiento.
La meta de la interpolacin espacial es estimar los pxeles faltantes mediante una extrapo-
lacin de los pxeles vecinos que se hayan recibido correctamente. La recuperacin de los
pxeles perdidos es muy difcil aunque con recuperar el valor DC se consigue una mejora
apreciable respecto a tomarlos con valor cero. La extrapolacin temporal tiene como obje-
tivo estimar los pxeles faltantes mediante la copia de los pxeles correctos del cuadro
anterior en la misma ubicacin espacial. Este sistema es muy bueno cuando no hay mucho
movimiento, pero aparecen problemas en movimientos bruscos. La extrapolacin temporal
con compensacin de movimiento estima el bloque perdido a partir del bloque en la mis-
ma ubicacin espacial del cuadro anterior compensndolo en movimiento. La traba en este
sistema es como estimar el movimiento para los pxeles perdidos. Una forma es utilizar el
vector de movimiento para ese bloque (si lo tenemos), o usar de un bloque vecino para
estimar este.
Existen muchos algoritmos para ocultamiento del error con diferentes combinaciones
de de interpolacin espacial y/o temporal siendo los que poseen compensacin de movi-
Fundamentos de Video Streaming 35
miento los mas efectivos. De todas formas, las prdidas generalmente no son de un solo
bloque, por lo que para prdidas de un cuadro entero no son aplicables las tcnicas de
interpolacin espacial. En este caso la interpolacin es temporal basada en el cuadro pre-
vio.
Un elemento clave del mtodo de ocultamiento del error es que el mismo se realiza en
el decodificador por lo que se encuentra fuera de los estndares de compresin de video.
5.4 Codificacin de video resistente al error

El objetivo de la codificacin de video resistente al error es disear algoritmos para la
compresin y tramas de bits comprimidas que sean resistentes a tipos especficos de error.
5.4.1 Problemas introducidos por los errores

La mayora de los sistemas de compresin tienen una arquitectura similar basada en la
prediccin con compensacin de movimiento entre cuadros, DCT para los bloques y codi-
ficacin con entropa de los parmetros. Los dos problemas bsicos inducidos por errores
que afectan esta arquitectura son:
1) Prdida de sincronizacin de la trama de bits
2) Estados incorrectos y propagacin del error
La primera clase de problemas se refiere al caso de los errores que confunden al decodifi-
cador y le hacen perder sincronizacin con la trama de bits (no reconoce que bits corres-
ponden a que parmetro). La segunda clase es la prdida que afecta los sistemas con codi-
ficacin predictiva.
5.4.2 Como superar la prdida de sincronizacin en la trama

La prdida de sincronizacin hace que el decodificador no reconozca que bit corres-
ponde a que parmetro. Por ejemplo podemos considerar que pasa cuando un error de un
bit afecta a una palabra cdigo de Huffman u otras palabras cdigo de largo variable
(VLC). En este caso, no slo la palabra cdigo ser decodificada incorrectamente, sino
que tambin, dado el largo variable de las palabras, la palabra cdigo ser decodificada en
un largo distinto y todos los bits de la trama sern mal interpretados hasta la prxima re-
sincronizacin.
Este problema no ocurre con los cdigos de largo fijo (FLC
47
), dado que en estos se co-
noce la posicin de comienzo y de finalizacin de la palabra. Sin embargo, los FLC no
proveen buena compresin por lo que los VLC son los mas comunes.

47
Fixed length code
Fundamentos de Video Streaming 36
Para superar la prdida de sincronizacin se proveen mecanismos que permitan al de-
codificador aislar el problema y resincronizarse a la trama luego del error. Considerare-
mos los mecanismos de resincronizacin.
Marcadores de resincronismo

Es la forma mas simple de lograr resincronizacin de la trama de bits. La idea es colo-
car puntos de entrada en la trama que sean nicos y fciles de ubicar, de forma que si el
decodificador pierde el sincronismo, pueda buscar el siguiente punto de entrada y comen-
zar a decodificar nuevamente luego de ubicarlo. Estos marcadores se disean para que
sean distinguibles frente a todas las palabras cdigo, concatenacin de estas y perturbacio-
nes a su vez de estas concatenaciones. Un ejemplo de un marcador es un secuencia de tres
bytes con 23 ceros seguidos de un uno.
Un punto interesante a discutir es el lugar para ubicar los marcadores. Una forma es co-
locarlos en ubicaciones estratgicas en la jerarqua del video comprimido como imgenes
o cabezales de corte. Este sistema se usa en MPEG-1/2 y H.261/3. Los marcadores quedan
ubicados cada un nmero fijo de bloques (que corresponde a un nmero variable de bits).
Un problema de esta solucin es que la reas activas que requieren mas bits son mas facti-
bles a ser corruptas. Para solucionar este problema en MPEG-4 se habilit la capacidad de
poner marcadores peridicamente despus de un nmero fijo de bits (que corresponde a
nmero variable de bloques). Con esta solucin se logr bajar la probabilidad de tener
reas activas corruptas, se simplific la bsqueda de los marcadores y se habilit el sopor-
te de paquetizacin por aplicacin.
Cdigos de largo variable reversibles (RVLCs
48
)

Los cdigos VLC convencionales como los de Huffman son unvocamente decodifica-
bles hacia adelante. Los RVLC lo son en ambos sentidos. Esta propiedad permite recupe-
rar datos que de otra forma se perderan. Por ejemplo, si se detecta un error en la trama, el
decodificador saltar al siguiente marcador de resincronismo. Si utilizamos RLVCs, en
vez de descartar los datos entre el error y el marcador, el decodificador puede decodificar
hacia atrs desde el marcador hasta que identifique el error, y as recuperar parcialmente
los datos entre el error y el marcador. Los RVLCs son menos eficientes que los VLC.
Particin de los datos

Una observacin importante es que los bits que siguen de cerca al marcador de resin-
cronismo tienen mas posibilidad de ser decodificados en forma precisa que aquellos mas
lejanos. Surge la idea entonces de colocar la informacin importante inmediatamente des-

48
Reversible Variable Length Codes
Fundamentos de Video Streaming 37
pus de los marcadores de resincronismo (por ejemplo: vectores de movimiento, coefi-
cientes DCT de continua, informacin de forma para MPEG-4) y colocar la informacin
menos importante (coeficientes DCT de alterna) mas adelante. Este mecanismo se llama
particin de los datos en MPEG-4. Es interesante observar que en MPEG-1/2 y H.261/3
los datos se ordenan segn macro bloques con un formato determinado sin tener en cuenta
los diferentes tipos de datos.
Manejo de cuadros a nivel de aplicacin (ALF
49
)

Muchas aplicaciones requieren comunicacin a travs de redes de paquetes como la In-
ternet que tienen un perfil de prdidas que puede ser explotado ya que los paquetes o se
reciben bien o se perdieron. Esto sugiere la idea de que se debe disear la carga para cada
paquete de forma tal que minimicemos la prdida. El principio de ALF dice que la aplica-
cin es la que sabe mejor como manejar prdida de paquetes, entrega fuera de orden y
demoras, por lo que la aplicacin debe disear la carga til para los paquetes y su proce-
samiento relacionado. Como ejemplo, si el codificador de video sabe el tamao de paquete
para la red, entonces puede disear la carga til del paquete para que cada paquete pueda
ser decodificado en forma independiente de los otros. Como resultado vemos que un uso
cuidadoso de ALF permite superar el problema de sincronizacin de las tramas. El obst-
culo para streaming sobre redes de paquetes ser la propagacin del error.
5.4.3 Como superar la propagacin del error y de los estados incorrectos

Luego de ocurrir un error, e incluso si la trama se resincroniz, ocurrir otro problema
dado por el hecho de que el estado de representacin en el decodificador puede ser dife-
rente al estado en el codificador. En particular, si utilizamos prediccin MC, un error
provocar que el cuadro (estado) reconstruido en el decodificador sea incorrecto. Como el
estado en el decodificador es incorrecto, se generarn predicciones incorrectas y por ende
una propagacin del error que puede afectar varios cuadros posteriores (Ver Fig. 11). Este
problema tambin se da en otros contextos como el acceso aleatorio a DVDs o la adquisi-
cin del canal en la televisin digital.

49
Application Level Framing
Fundamentos de Video Streaming 38


Fig. 11. Ejemplo de propagacin de error como resultado de un error puntual
Una forma simple de solucionar este tema es usar slo cuadros intra (I-frame), pero
perderamos toda la compresin dada por la prediccin.
Otro sistema es utilizar cuadros intra peridicos como en los grupos de imgenes
MPEG GOP, lo que limitara la propagacin del error al tamao de cuadros que tenga el
GOP. Esto se utiliza en DVD y DTV pero tiene problemas como la limitacin de la com-
presin por lo que no es til para video a velocidades bajas. Tambin se utiliza la codifi-
cacin intra de macro bloques dentro de los cuadros en vez de usar cuadros intra.
Las ventajas de utilizar la codificacin intra para reducir la propagacin del error son:
(1) la codificacin intra limita la propagacin del error al reinicializar el lazo de predic-
cin, (2) la sofisticacin afecta slo al codificador, (3) la decisin entre modos intra e inter
estn fuera de lo estndares lo que permite algoritmos mas complejos. Las desventajas
son: (1) Mayor bit rate que codificacin inter, (2) la utilizacin ptima de los intra depen-
den del conocimiento de las caractersticas del canal.
Comunicacin punto a punto con canal alternativo

En este caso, cuando ocurre una prdida, el decodificador puede comunicar al codifica-
dor de la prdida y solicitar un cuadro I para reinicializar el lazo de prediccin. Esto per-
mite usar cuadros I slo cuando es necesario. Inclusive de puede llegar a utilizar slo
cuadros P para evitar la propagacin del error. El mecanismo en este caso sera que el
decodificador notifique al codificador cuales cuadros fueron bien o mal recibidos y cual
cuadro debera ser usado como referencia para la prxima prediccin. Esta capacidad est
dada por RPS (Referente Picture Selection) en H.263 V2 y por NewPred en MPEG-4 V2.
I-frame P-frame P-frame P-frame P-frame
Error Propagacin del error
Fundamentos de Video Streaming 39
5.4.4 Codificacin de video escalable para redes con muchas prdidas

El punto 4 mostramos que el video escalable se codifica en una capa base con una o
mas capas de mejoramiento. La escalabilidad puede ser temporal, espacial o en calidad
(SNR). La codificacin escalable genera una orden de prioridad para los datos de video
que permiten un descarte inteligente. Las diferentes prioridades puede ser utilizadas para
enviar video confiable mediante el uso de proteccin de error desigual (UEP
50
), transmi-
sin priorizada.
A pesar de que el video escalable con establecimiento de prioridad para los datos de vi-
deo permite coincidir la trasmisin con el rendimiento de la red, no es muy comn que las
redes soporten un sistema de QoS (Internet es una red al mejor esfuerzo que no lo sopor-
ta). Este problema motiv el desarrollo de la codificacin con descripcin mltiple que
veremos a continuacin
5.4.5 Codificacin de video con descripcin mltiple

La MDC
51
codifica una seal en dos o mas flujos separados llamados descripciones
mltiples (MD). La codificacin con MD tiene dos propiedades importantes: (1) cada una
de las descripciones puede ser decodificada en forma independiente brindando una repro-
duccin til de la seal original, y (2) las descripciones mltiples contienen informacin
complementaria que va mejorando la calidad de la seal recibida cuanto mas MD se reci-
ban correctamente. La diferencia con el video escalable comn es que la capa base no es
imprescindible, ya que cualquiera de los MD puede generar video.
5.4.6 Codificacin de video con descripcin mltiple y diversidad de caminos

Como vimos en el punto anterior, la codificacin con MD permite reproducir el video
con cualquier descripcin recibida en cualquier instante de tiempo. De todas formas, es
conveniente aumentar la probabilidad de que al menos una descripcin llegue correcta-
mente en cualquier instante de tiempo. Esto puede lograrse combinando la MD con un
sistema de transmisin con diversidad de caminos como el mostrado en la Fig. 12. donde
las diferentes descripciones se trasmiten por caminos diferentes en la red.

50
Unequal error protection
51
Multiple Description Coding
Fundamentos de Video Streaming 40

Fig. 12. Codificacin de video con descripcin mltiple y diversidad de caminos para permitir una
comunicacin confiable en redes de paquetes con perdidas

5.4.7 Codificacin conjunta de canal y de fuente

La comunicacin de datos y de video tiene diferencias fundamentales. En la comunica-
cin de datos todos los bits son igualmente importantes y deben ser entregados en una
forma confiable. En video algunos bits son menos importantes que otros y generalmente
no es necesaria la entrega de todos, pero si que los que lleguen lo hagan a tiempo.
A modo de ejemplo en MPEG los cuadros I son muy importantes mientras que los B son
de poca importancia. En video escalable tienen menos importancia las sucesivas capas de
mejoramiento. La idea es codificar la fuente y el canal de forma conjunta explotando las
diferencias de importancia en estos datos de video.
Se ha realizado investigacin recientemente para desarrollar estos conceptos y unos de
los resultados es utilizar proteccin contra el error de diferente nivel segn la importancia
de los datos permitiendo una deteccin y correccin mas probable para los datos mas
relevantes [11].

Codifica-
dor de
Video MD

Selector de
caminos

Relevador
1

Relevador
2

Receptor
de paque-
tes

Decodifi-
cador de
video MD

Estructura
de red de
paquetes y
relevado-
res

Codificador
de video MD
y transmisor

Receptor de
video MD y
decodificador
MD #2
MD #1

Video
original

Video recons-
truido
MD #1
MD #2
Camino #1
Camino #2
Fundamentos de Video Streaming 41
6 Streaming de video sobre Internet y redes IP inalmbricas
Los ltimos avances en capacidad de procesamiento, tecnologas de compresin y dis-
positivos de almacenamiento con gran ancho de banda han permitido hacer una realidad la
entrega de servicios multimedia en tiempo real sobre Internet. El transporte de video en
vivo o almacenado previamente es la parte mas importante de estos servicios multimedia.
Veremos a continuacin siete reas relacionadas con este tema que nos permitirn una
visin global del campo donde incluiremos la compresin, la capa de aplicacin, la cali-
dad de servicio, los servicios de distribucin para medios continuos, los servidores de
streaming, los mecanismos de sincronizacin, los protocolos y finalmente el streaming
sobre redes IP inalmbricas.
6.1 Arquitectura de los sistemas de video streaming
Un sistema de video streaming consta de siete bloques que se muestran en la figura 13.
Los datos de video y audio en bruto son pre-comprimidos por compresin de video y de
audio y luego guardados en dispositivos de almacenamiento. A pedido del cliente, el ser-
vidor de streaming recupera datos de audio/video del almacenamiento y el mdulo de
control de QoS y capa de aplicacin adapta los flujos de bits al estado de la red y los re-
querimientos de QoS. Luego los protocolos de transporte convierte los flujos de bits com-
primidos en paquetes y envan estos sobre Internet o redes IP inalmbricas.
Puede ocurrir que haya paquetes descartados o que los mismos presenten demoras sig-
nificativas debido a la congestin. En Internet se utilizan servicios continuos de distribu-
cin de medios
52
para mejorar la calidad de la transmisin. Para conseguir una sincroniza-
cin entre el audio y el video se requieren mecanismos de sincronizacin de medios.


52
Continuous media distribution services
Fundamentos de Video Streaming 42

Fig. 13. Una arquitectura para streaming de video
Vemos en la Fig. 13 que existen siete reas relacionadas que constituyen el streaming
de video, a saber:
Compresin de video
Control de QoS en capa de aplicacin
Servicios de distribucin de medios continuos
Servidores de Streaming
Mecanismos de sincronizacin de medios
Protocolos para streaming de medios
Streaming de video sobre redes IP inalmbricas
6.2 Compresin de video
Dado que el video en bruto requiere un ancho de banda considerable se hace necesario
realizar una compresin del mismo previa a la transmisin a los efectos de lograr eficien-

Video en
bruto
Compresin

Audio en
bruto

Video
comp.

Audio
comp.

Capa aplic.
ControlQos

Protocolos
de Transp.

Dispositivo
Almacn.

Internet o Redes IP inalmbricas
(Servicios de distribucin conti-
nua de medios)

Servidor de Streaming

Capa aplic.
ControlQos

Protocolos
de Transp.

Receptor

Decod
Video

Decod
Audio
Sincronizacin
Fundamentos de Video Streaming 43
cia. La compresin puede ser escalable o no. Los mecanismos de compresin se vieron en
detalle en el punto 3 de este trabajo.
6.3 Control de QoS en la capa de aplicacin para streaming de video
Este control se realiza para maximizar la calidad del video cuando ocurren prdidas de
paquetes o cambios en el ancho de banda disponible. Las tcnicas utilizadas incluyen el
control de congestionamiento y el control de error. Estas tcnicas se emplean por los sis-
temas finales y no requieren soporte de QoS en los routers o las redes.
6.3.1 Control de congestionamiento

Tanto las prdidas como las demoras son muy nocivas para el la calidad de presenta-
cin del video. Los siguientes mecanismos son utilizados para control de congestiona-
miento.
Control de tasa

Es una tcnica que determina la tasa de envo del trfico de video en funcin de una es-
timacin del ancho de banda disponible en la red. Se clasifican en tres categoras: basados
en la fuente, basados en el receptor e hbridos.
Basados en la fuente: En este caso, el remitente es responsable de la adapta-
cin de la tasa de transmisin. Se emplea una realimentacin sobre la red para
tomar las decisiones de adaptacin. Este sistema sirve tanto para difusin pun-
to a punto como para multidifusin. Para la difusin punto a punto se emplean
dos tipos de acercamientos el basado en pruebas y el basado en modelos. Para
el basado en pruebas se vara la tasa de envo de forma de tener la tasa de pr-
didas de paquetes p debajo de un nivel P
th
. Cuando se basa en modelos, se uti-
liza un modelo de capacidad de procesamiento para una conexin TCP
53
. La
frmula caracterstica es:
1.22 MTU
RTT p

,
(2)
donde es la capacidad de procesamiento de la conexin TCP. MTU es el
tamao de paquete usado por la conexin y RTT es tiempo de ida y vuelta para la co-

53
TCP - Transmission Control Protocol. El protocolo TCP corre sobre IP y es orientado a con-
exin. Toma en cuenta la retransmisin de cualquier dato que no llegue a destino y tambin en caso
de errores o corrupcin de los mismos. Proporciona los datos al final en la misma secuencia en que
fueron transmitidos.
Fundamentos de Video Streaming 44
nexin. Para la multidifusin el remitente utiliza un solo canal para transportar el
video. Esto es muy eficiente ya que todos los receptores comparten un mismo
canal pero por otro lado le quita flexibilidad al ajuste para receptores con distintos anchos
de banda.
Basados en el receptor: En este caso los receptores regulan la tasa de recep-
cin de las rfagas de video mediante el agregado o descarte de canales. El
remitente no participa en el control de la tasa de envo. Este sistema se utiliza
generalmente para la multidifusin en capas de video. Al igual que en el sis-
tema basado en la fuente se puede ajustar la tasa mediante pruebas o mediante
modelos. El mtodo de prueba consta de dos partes:
o Cuando no se detecta congestin, el receptor chequea el ancho de
banda disponible acoplando una capa (aumenta la tasa de recepcin).
Si no se detecta congestin se adopta la capa acoplada y se busca otra
nueva, de lo contrario se descarta la capa agregada.
o Cuando se detecta congestin se descarta una capa bajando as la tasa
de recepcin.
Control hbrido: En este sistema los receptores regulan la tasa de recepcin
agregando o descartando canales mientras que el remitente ajusta la tasa de
transmisin para cada canal segn la realimentacin de informacin de los re-
ceptores.
Limitacin de la tasa

La limitacin de la tasa
54
es una tcnica en que la tasa de las tramas de video precom-
primido puede ser adaptada a un valor lmite impuesto. Se implementa mediante una inter-
fase o filtro entre la capa de compresin y la capa de transporte o entre dos segmentos de
red donde el flujo de video pueda ser acompasado con el ancho de banda disponible.
Los distintos tipos de limitadores de tasa son:
Filtro Codec: Comprime o descomprime un flujo de video.
Filtro descarta cuadros: Distingue los distintos tipos de cuadros y los descarta
segn su importancia para bajar el bit rate.
Filtro descarta capas: Distingue los distintos tipos de capas y los descarta se-
gn su importancia para bajar el bit rate.
Filtro de frecuencia: Realiza operaciones en la capa de compresin. Trabaja en
el dominio de la frecuencia (coeficientes DCT).
Filtro de re cuantificacin: Realiza operaciones en la capa de compresin me-
diante re cuantificaciones, variando los coeficientes DCT (Afecta el bit rate).

54
El trmino original es rate shaping en ingls, el que tendra una traduccin literal formado de
la tasa, aunque el concepto se estara refiriendo a mantener un valor dentro de un lmite.
Fundamentos de Video Streaming 45
En resumen, el control de congestin es una forma de prevenir la prdida de paquetes
haciendo cambios que afectan el bit rate. De todas formas, la prdida de paquetes es in-
evitable en Internet, por lo que se necesitan mecanismos de control de error.
6.3.2 Control de error

Las tcnicas de control de error fueron estudiadas en el punto 5 y se clasifican en cua-
tro categoras que veremos a continuacin.
FEC

La correccin de error hacia adelante (FEC) se basa en agregar informacin redundante
de forma que el mensaje original pueda ser reconstruido ante prdida de paquetes. La
trama de video se corta en segmentos cada uno de los cuales se empaqueta en k paquetes.
Luego, para cada segmento se aplica un cdigo de bloque generando un bloque de n-
paquetes donde n>k. Para poder recuperar perfectamente un segmento, el usuario slo
necesita recibir k paquetes cualesquiera en el bloque de n paquetes.
Retransmisin con demora acotada

La retransmisin no es un mtodo til para recuperar prdidas en la transmisin de vi-
deo, ya que un paquete retransmitido puede haber perdido ya su momento de visualiza-
cin. Sin embargo, si el tiempo de viaje es corto respecto a la demora mxima admisible,
la retransmisin con demora acotada es una opcin viable para control de error.
Para difusin a un punto se utilizan tres mecanismos de retransmisin:
Control basado en el receptor: El receptor ejecuta el siguiente algoritmo:
Cuando el receptor detecta la prdida del paquete N:
Si ( ) ( )
C S d
T RTT D T N + + <
(3)
Enva la solicitud del paquete N para el remitente
Donde T
C
es el tiempo actual, RTT es el tiempo estimado de viaje ida y vuelta,
D
S
es un trmino de ajuste y T
d
(N) es el tiempo donde debera mostrarse el
paquete N
Control basado en el emisor: El objetivo es eliminar las retransmisiones de los
paquetes que no llegaran a tiempo para ser mostrados. El algoritmo que em-
plea el remitente es:
Cuando el emisor recibe un pedido por el paquete N:
Fundamentos de Video Streaming 46
Si
'
( )
2
C S d
RTT
T D T N
| |
+ + <
|
\ .

(4)
Retransmite el paquete N al receptor
Donde T

d
(N) es una estimacin de T
d
(N).
Control hbrido: Es una combinacin de los esquemas anteriores
Para la difusin mltiple, la retransmisin queda restringida a los miembros mas cerca-
nos.
Codificacin resistente al error

Como fuera vista en el punto 5, la codificacin resistente al error busca la recuperacin
del error trabajando en la capa de compresin y limitando la propagacin del dao. Hemos
vista las tcnicas de RVLC, particin de datos y marcas de re-sincronismo, pero para apli-
caciones de Internet estas tcnicas pueden no ser tiles dado que la prdida de un paquete
puede generar la prdida de toda la informacin de movimiento, forma o textura. Para
evitar esto se utilizan las tcnicas de seleccin de modo ptimo y codificacin de descrip-
cin mltiple que vimos desde el punto 5.4.3 en adelante.
Ocultamiento del error

Cuando se detecta una prdida de paquetes, el receptor puede ocultar el error y lograr
as una presentacin mas agradable a la vista. Debido al que el ojo humano tolera un cierto
grado de distorsin, este mecanismo es viable para manejar la prdida de paquetes. Esta
tcnica fue estudiada en el punto 5.3.
6.4 Servicios de distribucin de medios continuos
La red brinda un soporte esencial para la distribucin de presentacin multimedia de
buena calidad cuando reduce las demoras de transporte y las prdidas de paquetes. El
streaming de video y audio se cataloga como de medios continuos, ya que consisten en una
secuencia de cuantos del medio que tienen significado slo si son mostrados a tiempo y en
orden. Los servicios para distribucin de medios continuos construidos sobre IP (Internet
Protocol) incluyen el filtrado de red, la multidifusin a nivel de aplicacin y la replicacin
de contenido.
6.4.1 Filtrado de red

Fundamentos de Video Streaming 47
El filtrado de red es una tcnica de control de la congestin de la red destinada a maxi-
mizar la calidad del video mientras se produce la misma. En el punto 6.3.1 vimos como el
servidor maneja el bit rate para adaptarse a una red congestionada, pero, no siempre este
equipo tendr la capacidad de clculo ociosa necesaria para realizar los ajuste para cada
difusin unitaria. Es una opcin para los proveedores de servicio el colocar filtros en la
red. En la Fig. 14, los nodos R son routers sin conocimiento del formato de los flujos de
audio y video que pueden descartar paquetes en forma aleatoria. Los nodos filtro reci-
ben los pedidos del cliente y adaptan el flujo enviado en forma acorde. Esta solucin per-
mite al proveedor la colocacin de filtros en los nodos que se conecten a cuellos de botella
de la red, por lo que podr haber mltiples filtros entre el servidor y el cliente.
En la Fig. 15 se muestra un modelo sobre el funcionamiento de los filtros que consiste
en el servidor, el cliente, un filtro y dos canales virtuales entre ellos. De los dos canales,
uno es para control y el otro para datos. El canal de control es bi-direccional, lo que se
logra mediante conexiones TCP.
Fig. 14. Colocacin de filtros dentro de la red
R
R
R R
Filtro
Filtro
Servidor
Cliente
Cliente
Cliente
Fundamentos de Video Streaming 48

Fig. 15. Modelo de un sistema de filtrado de red
Las operaciones de un filtro sobre los datos incluyen: (1) Recibir el flujo de video des-
de el servidor y (2) Enviar el video al cliente o al siguiente filtro al bit-rate que se halla
fijado como objetivo. Respecto al control, los filtros harn: (1) Recibir requerimientos del
cliente o del siguiente filtro, (2) actuar en base a esos requerimientos y (3) reenviar los
requerimientos al filtro previo.
Generalmente los filtros que descartan cuadros son utilizados como filtros de red. Estos
reciben desde el receptor la informacin necesaria para ajustar el ancho de banda descar-
tando mas o menos cuadros. Para esto el receptor monitorea constantemente la tasa de
descarte de paquetes p y, mediante un algoritmo basado en niveles, decide los requeri-
mientos que enviar al filtro. El uso de estos filtros redunda en una mejor calidad de video
y un eficiente uso del ancho de banda.
6.4.2 Multi-difusin a nivel de aplicacin

A pesar de que el diseo original de Internet es el adecuado para aplicaciones punto a
punto como correo electrnico, transferencias de archivos y navegacin Web, este diseo
no es el mas adecuado para manejar la distribucin de contenidos a gran escala. Hace unos
diez aos se propuso la IP multicast
55
como tecnologa que podra superar estas limita-
ciones. La eficiencia de esta tecnologa se basa en que slo un paquete de los transmitidos
originalmente por la fuente de multi-difusin viajar por cualquier camino del rbol de
multi-difusin IP. Sin embargo, la IP multicast presenta problemas en lo concerniente a
escalabilidad, administracin de la red, distribucin y soporte a las capas superiores en lo
concerniente al control de errores, flujo y congestionamiento. Para solucionar esto se pro-
puso un sistema de multicast a nivel de aplicacin por sobre la redes IP.

55
Multi-difusin IP
Servidor Filtro Cliente
Control Control
Datos Datos
Fundamentos de Video Streaming 49
El multicast a nivel de aplicacin permitir crear a los CSP
56
, ISP
57
o a las empresas
crear sus propias redes multicast sobre Internet las que luego se podrn interconectar a
travs de redes de medios multicast mas grandes de alcance mundial. Las redes de multi-
cast de medios pueden soportar relaciones entre pares a nivel de aplicacin o de capa de
streaming de contenidos donde los backbones
58
de contenido interconectan a los provee-
dores de servicio.
La operacin de las redes multicast es la siguiente: En las redes multicast para medios
cada nodo con capacidad multicast (llamados MediaBridge) realizan ruteos a nivel de
capa de aplicacin. Adems, cada MediaBridge est conectado con dos o mas vecinos
mediante una configuracin explcita que define la topologa a nivel de aplicacin. Los
MediaBridge utilizan un algoritmo para buscar el mejor camino sobre todos los caminos
virtuales ptimos. Cuando la red falla o se congestiona la rede multicast redirige en forma
dinmica y automtica el contenido a travs de caminos alternativos de acuerdo a polticas
de ruteo.
La ventaja del multicast a nivel de aplicacin es que rompe las barreras de la escalabili-
dad, gestin de la red y soporte de control de congestionamiento que haban impedido a
los ISP la realizacin de arreglos entre pares para realizar IP multicast.
6.4.3 Replicacin de contenido

La replicacin de contenido es una tcnica que mejora la escalabilidad y se realiza me-
diante almacenamiento intermedio (caching) o espejado de datos (mirroring). Sus ventajas
son:
Reducir el consumo de ancho de banda
Reducir carga a los servidores de streaming
Reducir latencia contra los clientes
Aumentar disponibilidad
El sistema de mirroring realiza copias en varios equipos diseminados en la Internet de
forma que el cliente pueda traer datos tanto del servidor original como de los servidores
duplicados. Las ventajas del mirroring son que los contenidos estn duplicados y el distri-
buidor puede ver los logs de acceso para conocer sus clientes. Por otro lado el sistema es
caro y lento as como complejo.
El sistema de caching se basa en la creencia de que clientes diferentes cargarn la mis-
ma informacin. Esto amerita realizar copias que los clientes de una organizacin acceden
contra una mquina local llamada cache. Este sistema tiene como ventaja el hecho de que
los caches pueden formar una infraestructura compartida que funciona para todos los ser-

56
Content delivery service providers
57
Internet Service Providers
58
Espina dorsal. Se refiere a las conexiones principales de una red por donde circula la mayor can-
tidad de datos y de donde se derivan todas las conexiones secundarias.
Fundamentos de Video Streaming 50
vidores de streaming y que los caches pueden ser distribuidos en forma incremental. Los
ISP han sido impulsores de este sistema, pero los caches no pueden suministrar los servi-
cios que los distribuidores requieren: soporte de QoS y seguridad.
6.5 Servidores de streaming
Para poder ofrecer servicios de calidad, los servidores de streaming deben procesar da-
tos multimedia con ciertas restricciones temporales para prevenir fallas (llamadas jerki-
ness en video y pops en audio). Tambin debern soportar comandos tipo VCR
59
que
permitan parar, poner en pausa, adelantar o retroceder el video y entregar el audio y video
sincronizados.
Un servidor tpico de streaming consta de:
Comunicador: Involucra la capa de aplicacin y los protocolos de transporte
implementados en el servidor.
Sistema Operativo: Adems de los servicios tpico el SO deber soportar apli-
caciones en tiempo real.
Sistema de almacenamiento: Deber soportar almacenamiento y retiro conti-
nuo de medios.
6.5.1 Sistemas operativos de tiempo real

El sistema operativo asla el hardware de la mquina de todo el resto del software y su-
ministra servicios sobre la CPU, memoria, almacenamiento, entrada salida y otros recursos
esenciales. Veremos los temas particulares de los sistemas operativos de tiempo real.
Administracin de procesos

La administracin de procesos trata con los recursos del procesador principal. El admi-
nistrador de procesos asigna procesos unitarios a los recursos de la CPU de acuerdo a una
poltica de asignacin especfica de forma que todos los procesos puedan cumplir sus
requerimientos. Para poder cumplir con los requerimientos de los medios continuos se
utilizan tcnicas de asignacin de tiempo real.
La mayora de los mtodos de tiempo real se basan en dos algoritmos para sistemas
multimedia: primero la que caduca mas temprano (EDF
60
) y programacin de tiempo de
tasa montonica
61
. En EDF se procesa cumpliendo el criterio que da nombre al algoritmo
y en el segundo sistema se asigna a cada tarea una prioridad esttica de acuerdo a su tasa

59
Video cassette recorder
60
Earliest deadline first
61
Rate-monotonic scheduling
Fundamentos de Video Streaming 51
de solicitud
62
. Para ser especfico, la tarea con el perodo mas corto (tasa mas alta) tiene la
prioridad mas alta y la tarea con perodo mas largo tiene la prioridad mas corta.
La diferencia entre los dos algoritmos es que EDF se basa en una nica cola de priori-
dades realizando primero la tarea que caduca antes; mientras que la programacin de tasa
montona, es un programador de prioridades estticas con mltiples colas de prioridades
(las tareas con baja prioridad no pueden ser ejecutadas hasta que se hayan completado
todas las tareas con alta prioridad).
El algoritmo de tasa montona asegura que todos los plazos se cumplan si la utilizacin
del procesador est por debajo del 69% y el algoritmo EDF puede utilizar hasta el 100%
del procesador pero no garantiza el procesamiento de todas la tareas mientras se encuentre
sobrecargado.
Administracin de recursos

Los recursos de un servidor multimedia son la CPU, la memoria y los dispositivos de
almacenamiento entre otros. Dado que los recursos sern limitados, el servidor podr
atender un nmero limitado de clientes con una determinada calidad e servicio. Para poder
cumplir con los requerimientos, el servidor deber administrar recursos y no admitir nue-
vos clientes mediante un sistema de control de admisiones si el rendimiento y la QoS no
pueden ser garantidas para las anteriores conexiones.
Los algoritmos de control de admisin pueden ser clasificados en control de admisin
determinstico y control de admisin estadstico. Las ventajas de los determinsticos son su
simplicidad y aseguramiento estricto de la calidad en cambio los estadsticos mejoran la
utilizacin de los recursos del servidor mediante el aprovechamiento de la tolerancia de la
percepcin visual humana.
Administracin de archivos

El sistema de archivos suministra funciones de acceso y control para el almacenamiento
y recuperacin de archivos. Existen dos formas bsicas de dar soporte a medios continuos
para los sistemas de archivos. En el primero la organizacin de los archivos en los discos
se conserva tal cual para los datos discretos (los archivos no se reparten en varios discos)
logrando el soporte para acceso en tiempo real a travs de algoritmos especiales y sufi-
ciente memoria intermedia para evitar el jitter
63
. La segunda forma se hace organizando
los archivos de audio y video en un almacenamiento distribuido como los disk arrays
64
.
En este caso la capacidad de entrega de datos de los discos se puede mejorar mediante la
dispersin de cada archivo de audio y video en mltiples discos.

62
Asumir que cada tarea es peridica
63
Inquietud. Se refiere a la inestabilidad y los saltos en la reproduccin del audio y/o video.
64
Arreglos de varios discos duros
Fundamentos de Video Streaming 52
Los algoritmos de bsqueda tradicionales como First-Come-First-Server y SCAN no
aseguran el acceso en tiempo real, por lo que se han propuesto nuevo algoritmos:
El SCAN-EDF combina la optimizacin de la bsqueda de SCAN y las garan-
tas de tiempo real de EDF.
El Grouped Sweeping Scheduling divide el conjunto de n flujos en g grupos.
Los grupos pueden ser armados de forma que los flujos en el mismo grupo
tengan el mismo plazo de caducidad. Cada flujo individual de cada grupo se
sirve mediante SCAN.
El SCAN-DC emplea un servicio SCAN circular que minimiza la sobrecarga
de bsquedas en el disco.

Otra funcin que debe ser soportada es el control interactivo que incluye a la pausa,
avance y retroceso. La pausa es todo un desafo para el diseo del buffer ya que inter-
fieren en los flujos compartidos para distintos espectadores y todava est en estudio. El
avance y retroceso se pueden implementar cambiando la tasa de envo del material o
reproduciendo este a la misma velocidad y salteando cuadros.
6.5.2 Sistema de almacenamiento

Los desafos para el diseo de un sistema de almacenamiento multimedia son una alta
capacidad de entrega, gran capacidad y tolerancia a fallas.
Diseminacin de datos: Un mtodo para incrementar capacidad de entrega
Si un archivo de video se guarda en un disco nico, el nmero de accesos concurrentes
a este archivo se limita a la capacidad de entrega de datos de ese disco, limitando la canti-
dad de clientes que pueden ver el mismo. Una forma de superar esta limitacin es disemi-
nar los datos en varios discos, los que se pueden leer en paralelo. En la Fig. 16 se muestra
un esquema del mecanismo.
Fundamentos de Video Streaming 53

Fig. 16. Datos diseminados en mltiples discos accesibles en paralelo.
Los diseadores debern negociar entre un balance de carga y una baja latencia ya que
ambas son objetivos en conflicto. Es interesante notar que diseminar los datos no es repli-
car los mismos, ya que slo una copia de la informacin existe en todo el grupo de discos.
Almacenamiento terciario y jerrquico: Un mtodo para aumentar capacidad

La introduccin de discos mltiples puede incrementar la capacidad de almacenamien-
to, sin embargo, el costo de los archivos muy grandes es prohibitivo cuando el nmero de
discos es muy grande. Para bajar estos costos se utilizan almacenamientos terciarios como
las tape library
65
y CD-ROM jukebox.
Para reducir el costo total, se implementan estructuras jerrquicas como las mostradas
en la Fig. 17.

65
Biblioteca de cintas
Controlador de disco
Archivo A,
Bloque 1
Archivo A,
Bloque 4
Archivo A,
Bloque 2
Archivo A,
Bloque 5
Archivo A,
Bloque 3
Archivo A,
Bloque 6
Archivo B,
Bloque 1
Archivo B,
Bloque 3
Archivo B,
Bloque 2
Archivo B,
Bloque 4
Disco 1 Disco 2 Disco 3 Disco 4 Disco 5
Fundamentos de Video Streaming 54

Fig. 17. Almacenamiento jerrquico
En este sistema, slo se guarda una fraccin de los datos en disco duro mientras que la
mayor parte se encuentra en el almacenamiento terciario. Los archivos mas requeridos
estarn en disco y los otros en cintas.
Cuando se necesita enviar datos a gran escala se utilizan arquitectura de redes de alma-
cenamiento SAN
66
, lo que permite caminos de alta velocidad entre los dispositivos de
almacenamiento y los equipos host, los que se pueden ubicar a mayor distancia que con las
interfases SCSI
67
convencionales. En las SAN tambin pueden incluirse dispositivos ter-
ciarios como las bibliotecas de cintas, discos pticos y CD-ROM jukebox. Los medios
fsicos para transporte en la SAN son usualmente fibras pticas conectadas mediante equi-
pos conmutadores (switchs) estndar o de diseo propietario.
Tolerancia a fallas

Para asegurar un servicio interrumpido inclusive cuando haya fallas de discos, el servi-
dor deber poder reconstruir la informacin perdida. Esto se logra mediante el manejo de
informacin redundante. La redundancia puede lograrse con paridad generada por cdigos
de correccin de error como FEC (tcnica de correccin de error) o duplicando los datos
en discos separados (tcnica de espejado). La paridad utiliza menos disco, pero requiere
sincronizacin y una carga de procesamiento extra para recuperar la informacin. El sis-

66
Storage area network
67
Small Computer Systems Interface

Controlador de discos

Biblioteca de cintas
Servidor de video
Memoria intermedia
Fundamentos de Video Streaming 55
tema de espejado (mirroring) es mas rpido, no requiere sincronizacin, pero duplica la
cantidad de espacio requerido. Un estudio reciente indica que para un mismo grado de
confiabilidad, los esquemas de mirroring son superiores a los de paridad en costo por flujo
as como en latencia despus de ocurrida la falla.
6.6 Sincronizacin de medios
Las aplicaciones multimedia se distinguen de las aplicaciones tradicionales de datos en
que es necesario presentar varios flujos de datos en forma sincronizada. La sincronizacin
de medios se refiere a la preservacin de las relaciones temporales entre un flujo de datos
y varios flujos de medios. Existen tres niveles de sincronizacin que se corresponden con
tres capas semnticas de datos multimedia, los que son.
1. Sincronizacin dentro del flujo: La capa mas baja de medio continuo con da-
tos dependientes del tiempo es la capa de medios (audio y video). La unidad
para esta capa es la LDU
68
que generalmente corresponde a un cuadro de au-
dio/video que se ajusta a especificaciones temporales estrictas para asegurar
un nivel de percepcin aceptable en la reproduccin. La sincronizacin interna
se refiere a la continuidad de las LDU.
2. Sincronizacin entre flujos: La unidad para la sincronizacin entre flujos es el
flujo mismo. La sincronizacin aqu hace referencia al mantenimiento de las
relaciones temporales entre los distintos medios continuos. Ejemplo: Sincroni-
zacin entre audio y video.
3. Sincronizacin entre objetos: La capa mas alta de un documento multimedia es
la capa de objetos, la que integra flujos y datos independientes del tiempo co-
mo texto e imgenes. El objetivo de esta sincronizacin es comenzar y termi-
nar la presentacin de objetos no dependientes del tiempo durante un intervalo
de tiempo tolerable. Si esta sincronizacin sera imposible realizar por ejem-
plo presentaciones de diapositivas combinadas con audio.
Los flujos de medios pueden perder sincronismo en el viaje entre el servidor y el clien-
te. Las tareas que se realizan son: el servidor recupera datos del dispositivo de almacena-
miento y los enva a la red, la red transporta los datos al cliente, el cliente lee los mismos y
los presenta al usuario. En estas tareas existen demoras inevitables que pueden ser prede-
cibles o impredecibles. Las demoras de red son imposibles de predecir. Estas producen
disrupciones de sincronizacin dentro de los medios, entre los medios y entre objetos, lo
que requiere la existencia de mecanismos de sincronizacin para asegurar la representa-
cin adecuada en el cliente.
La parte esencial de la sincronizacin de medios es la especificacin de las relaciones
temporales dentro del medio y entre los medios. Estas pueden especificarse en forma ma-
nual o automtica. En el caso del audio y video se especifican automticamente por el

68
Logical data Unit
Fundamentos de Video Streaming 56
mecanismo de grabacin, mientras que en las presentaciones la relacin se da mediante la
intervencin humana.
Los mtodos para especificar las relaciones temporales son los basados en intervalos,
basados en ejes, basados en flujo de control y basados en eventos. La mayora utilizan la
basada en ejes o con estampado temporal.
Adems de especificar las relaciones temporales, es deseable que la sincronizacin
pueda ser soportada por cada componente en camino de transporte. A modo de ejemplo,
los servidores debern guardar gran cantidad de datos de forma tal que puedan recuperarse
rpida y eficientemente, la red deber tener ancho de banda suficiente, la demoras y el
jitter introducido por la red debe ser tolerable y las aplicaciones y sistemas operativos
deben proveer procesamiento en tiempo real.
Dado que la red (actualmente Internet) no permite entrega en tiempo real, esto deber
ser asegurado por las puntas. Los mecanismos de sincronizacin pueden ser preventivos o
correctivos:
Los mecanismos preventivos son diseados para minimizar los errores de sin-
cronizacin mientras los datos se transportan del servidor al usuario lo que
permite minimizar las latencias y el jitter. Estos mecanismos incluyen algorit-
mos para programar las lecturas de disco, protocolos de transporte de red, sis-
temas operativos y programadores de sincronizacin.
Los mecanismos correctivos estn diseados para recuperar la sincronizacin
cuando ocurren errores en la misma. Dado que Internet introduce demoras
aleatorias, estos errores son inevitables y destruyen la continuidad del flujo de
medios produciendo boquetes y saltos en la transmisin. Los mecanismos em-
pleados para corregir incluyen el SSP (Stream Synchronization Protocol). En
el SSP se utiliza el concepto de demora intencional. En el lado del cliente, hay
una unidad que controla y monitorea el lado cliente de las conexiones com-
parando los tiempos de llegada reales con los predichos mediante la progra-
macin de presentacin, notificando al programador las discrepancias. El pro-
gramador compensa las discrepancias introduciendo demoras en los datos que
estn adelantados y permitiendo as que los que estn atrasados lleguen a
tiempo.
Fundamentos de Video Streaming 57

6.7 Protocolos para Video streaming
Los protocolos son diseados y estandarizados para la comunicacin entre los clientes y
los servidores de streaming. Los clasificaremos en tres categoras: Protocolos de capa de
red, protocolos de transporte y protocolos de control de sesin.
6.7.1 Protocolos de transporte

Los protocolos de transporte para streaming de medios incluyen UDP (User Datagram
Protocol), TCP (transmission control protocol), RTP (Real-Time Transport protocol) y
RTCP (Real-Time Control protocol). Los protocolos UDP y TCP proveen las funciones
bsicas de transporte mientras que RTP y RTCP corren encima de estos.

Fig. 18. Pila de protocolos para streaming de video
Los protocolos UDP y TCP realizan las funciones de multiplexado, control de error o
control de flujo. Primero UDP y TCP multiplexan los flujos de datos de las diferentes
Pila de protocolos
Plano de datos Plano de control
Capa RTP Capa RTCP Capa RTSP
Capa UDP/TCP
Capa IP
Internet
Audio y Vi-
deo Compri-
mido
Fundamentos de Video Streaming 58
aplicaciones corriendo en la misma mquina con la misma direccin IP. Luego, con el
objetivo de control de error, las implementaciones de TCP y UDP realizan un control de
paridad para detectar errores de bit. Si se detecta un error TCP/UDP descarta el paquete
para que la capa superior (por ej. RTP) no lo reciba. A diferencia de UDP, TCP utiliza
retransmisiones para recuperar el paquete descartado lo que hace a este un protocolo de
transmisin confiable. TCP tambin utiliza control de flujo para adaptar la tasa de trans-
misin segn el nivel de congestionamiento de la red.
Dado que las retransmisiones de TCP provocan demoras, UDP es el protocolo mas
usado para streaming de video. Dado que UDP no asegura la entrega, el receptor deber
confiar en la capa superior (RTP) para detectar las prdidas de paquetes.
RTP es un protocolo estndar para Internet que provee transporte de punta a punta so-
portando aplicaciones de tiempo real. RTCP es el protocolo compaa diseado para pro-
veer realimentacin sobre la QoS a los participantes de la sesin RTP. Decimos que RTP
es un protocolo de transferencia de datos mientras que RTCP es un protocolo de control.
Las funciones que provee RTP son:
Marcado-temporal: Las marcas temporales permiten sincronizar diferentes flu-
jos de medios.
Numeracin de secuencias: Dado que UDP no enva los paquetes en secuen-
cia, RTP los numera para que puedan ser ordenados a su llegada.
Identificacin del tipo de carga: Se identifica el tipo de carga til en el paquete
con un campo de cabezal RTP
Identificacin de fuente: Cada paquete RTP se identifica con un cabezal lla-
mado SSRC
69
que acta como identificador de la fuente.
RTCP es un protocolo de control diseado para trabajar junto con RTP y provee los si-
guientes servicios:
Realimentacin de QoS: Es la funcin principal del RTCP. La informacin se
enva a travs de Reportes de remitente y Reportes de Receptor. Estos reportes
contienen la informacin de (1) Fraccin de paquetes RTP perdidos desde el
ltimo reporte, (2) nmero de paquetes perdidos acumulado desde el comienzo
de la recepcin, (3) jitter de paquetes y (4) demora desde la recepcin del l-
timo reporte de remitente.
Identificacin del participante: La fuente puede ser identificada por el campo
SSRC en el cabezal RTP, pero este identificador para los humanos. RTCP
provee mecanismo amigable para este servicio. RTCP SDES
70
son paquetes
que contienen informacin de los participantes de la sesin incluyendo nombre
de usuario, telfono, e-mail y otros.
Escalado de control de paquetes: Para escalar segn el nmero de participan-
tes se mantiene el nmero total de paquetes a un 5 % de ancho de banda total

69
Synchronization SouRCe identifier
70
RTCP Source Description
Fundamentos de Video Streaming 59
de la sesin. A su vez, dentro de los paquetes de control, un 25 % se utiliza pa-
ra reportes de envo y un 75 % para reportes de recepcin.
Sincronizacin entre medios:
Informacin de control de sesin mnima: Transporta informacin de la sesin.
6.7.2 Protocolo de control de sesin RTSP

El protocolo de streaming en tiempo real RTSP es un protocolo de control de sesin pa-
ra la realizacin de streaming de medios sobre Internet. Una de las funciones principales
de RTSP es el soporte de comando de tipo VCR como parada, pausa, resumir, avance
rpido y retroceso rpido. Tambin RTSP permite la eleccin de los canales de envo (por
ejemplo UDP, y multidifusin UDP o TCP) y los mecanismos de envo basados en RTP,
RTSP funcionan tanto en difusin punto a punto como en multidifusin.
RTSP tambin provee:
Recuperacin de medios a solicitud del cliente
Invitacin de un servidor de medios a una conferencia
Adicin de medios a una sesin existente
RTSP debe proveer los mismos servicios para audio y video como lo hace HTTP
71
para
texto y grficos. En RTSP cada trama se identifica con un RTSP URL
72
. Las propiedades
de la presentacin estn incluidas en un archivo de descripcin que puede obtenerse va
HTTP, correo electrnico u otros medios.
6.8 Streaming de video sobre redes IP inalmbricas
La aparicin de redes inalmbricas de banda ancha ha posibilitado la aparicin de co-
municacin en tiempo real sobre redes IP inalmbricas. Esta tarea representa algunos
desafos, a saber:
Fluctuaciones del ancho de banda
Tasa de errores alta
Heterogeneidad
Vimos anteriormente que el video escalable es capaz de adaptarse a los cambios de an-
cho de banda, lo que lo convierte en la eleccin para entornos inalmbricos. Ha habido
varias propuestas de servicios adaptables para enviar video sobre medios inalmbricos.
Veremos un esquema adaptable que consiste en (1) representaciones de video escalable
cada una con sus requerimientos de QoS especificados, (2) aplicaciones que consideren la
red y su estado y (3) servicios adaptables que hagan que los elementos de red soporten la

71
HiperText Transfer Protocol
72
Universal Resource Locator
Fundamentos de Video Streaming 60
QoS requerida por el video escalable. Este esquema adaptable tiene las siguientes caracte-
rsticas:
Degradacin de calidad con percepcin agradable.
Eficiencia
Imparcialidad
6.8.1 Aplicaciones que toman en cuenta la red

La motivacin para el uso de este tipo de aplicaciones se basa en: (1) la tasa de errores
de bit es muy alta cuando el estado del canal es malo, (2) la prdida de paquetes es inevi-
table si hay menos ancho de banda que el requerido. Este tipo de aplicaciones descarta las
capas de mejoramiento en el remitente de forma inteligente segn el estado de la red. Para
lograr esto, el remitente cuenta con un mdulo escalador que es manejado por un control
de velocidad de la red. Este control se alimenta de las seales que brindan los protocolos
de transporte. El escalador puede omitir capas de mejoramiento del video escalable o dejar
pasar todas. A su vez la estacin base receptora de la seal inalmbrica cuenta con el
mismo sistema para enviar la informacin a Internet. La base cuenta con un manejador de
ancho de banda que comunica al remitente el ancho de banda disponible a travs del pro-
tocolo de transporte.
6.8.2 Servicios adaptables

El servicio adaptable provee escalamiento de los sub-flujos segn las condiciones de
los recursos disponibles en redes fijas e inalmbricas. Sus funciones son:
Reservar un ancho de banda mnimo para cumplir la demanda de la capa base.
Adaptar las capas de mejoramiento basndose en el ancho de banda disponible
y las polticas de fidelidad.
Las ventajas de utilizar el escalamiento dentro de la red son:
(1) Adaptabilidad a la heterogeneidad de la red
(2) Baja latencia y baja complejidad
(3) Bajo bloqueo de llamadas y probabilidad de cadas por cortes
Los componentes requeridos para un servicios adaptables son: (1) contrato de servicios,
(2) control de admisin de llamadas y reserva de recursos, (3) mecanismo para multidifu-
sin mvil, (4) escalamiento se sub-flujos, (5) despacho programado de sub-flujos y (6)
control de errores a nivel de capa de enlace. Veremos estos componentes en detalle.
Contrato de servicios

El contrato de servicios entre la aplicacin y la red consiste de mltiples sub-contratos,
cada uno de los cuales corresponde a uno o mas sub-flujos con garantas de QoS similares.
Fundamentos de Video Streaming 61
Cada subcontrato deber especificar las caractersticas del trfico y los requerimientos de
QoS para los correspondientes sub-flujos.
6.8.3 Control de admisin de llamadas y reserva de recursos

El control de admisin de llamadas (CAC
73
) y la reserva de recursos son los dos com-
ponentes principales para planificar la QoS de punta a punta. La funcin del CAC es che-
quear si cuando se admite una llamada entrante la conexin degradar la calidad de las
conexiones existentes y tambin si se podrn cumplir los requerimientos de QoS para la
esta nueva conexin.
Cuando se acepta una conexin se deben reservar los recursos para la misma en dos
partes. Primero se debern reservar los recursos sobre el camino actual de la conexin
mvil para asegurar la QoS. Segundo, para lograr la QoS a corto plazo se deber realizar
algn tipo de duplicacin en el transporte de la conexin a las estaciones base vecinas para
que en caso de corte se pueda evitar una prdida de enlace. En el video escalable la prime-
ra parte no es necesaria para todo el flujo ya solo la capa base requiere garanta de QoS.
Adems, los flujos de las capas de mejoramiento de una conexin pueden compartir el
remanente de ancho de banda con las capas de mejoramiento de otras conexiones.
Mecanismo de multidifusin mvil

Para garantizar la calidad de servicio a nivel de paquetes, es necesario utilizar meca-
nismo de multidifusin mvil, lo que se que cuando el flujo de la capa base tiene una difu-
sin mltiple a las bases vecinas. Para poder proporcionar una QoS que tenga cambios
imperceptibles el protocolo de ruteo mvil tiene que ser proactivo y de anticipacin para
cumplir las limitaciones de demoras, prdidas y jitter en el sub-flujo. Segn los requeri-
mientos del sub-flujo pueden ser necesarios mltiples caminos de multi-difusin. A medi-
da que una estacin mvil se desconecta de una estacin base y se conecta a otra se agre-
garn nuevos caminos mientras se van borrando los viejos.
Escalado de sub-flujos

El escalado se emplea durante las fluctuaciones de ancho de banda debidas al deterioro
de las condiciones del canal. Cuando esto ocurre los sub-flujos de menor prioridad son
descartados y se vuelven a pasar por el escalador cuando sube el ancho de banda disponi-
ble. La decisin de escalamiento es hecha por el manejador de ancho de banda.


73
Call admisin control
Fundamentos de Video Streaming 62
Programacin de sub-flujos

Las estaciones de base y los terminales mviles utilizar un programador de sub-flujos
que programa las transmisin de paquetes en el medio inalmbrico de acuerdo a las espe-
cificaciones de QoS y prioridades que presenten los sub-flujos. La programacin se realiza
teniendo en cuenta dos factores (1) la importancia relativa de los sub-flujos entre si y (2)
la condiciones del canal inalmbrico.
Control de error en la capa de enlace

Existen dos mecanismos bsicos para control de error, el FEC
74
para correccin hacia
delante y el ARQ
75
para solicitud de repeticin automtica. El FEC tiene como desventaja
que nos siempre se adapta a condiciones variables en el canal. El ARQ por otro lado,
introduce una demora que no puede ser limitada.
7 Referencias
[1] Jane Hunter, Varuni Witana, Mark Antoniades, A review of Video Streaming over
the Internet, DST Technical Report TR97-10, August 1997
[2] John G. Apostolopoulos, Wai-tian Tan, Susie J. Wee, Video Streaming: Con-
cepts, Algorithms and Systems, Mobile and Media Systems Laboratory, HP Labo-
ratories, Palo Alto HPL-2002-260, September 18th 2002
[3] Ali C. Begen, Yucel Altunbasak, Ozlem Ergun, Mehmet A. Begen, Real-Time
Multiple Description and Layered Encoded Video Streaming with Optimal Di-
verse Routing, Georgia Institute of Technology, University of British Columbia
[4] Gregory J. Conklin, Gary S. Greenbaum, Karl O. Lillevold, Alan F. Lippman,
Yuriy A. Reznik, Video Coding for Streaming Media Delivery on the Internet,
1051-8215 2001 IEEE
[5] Chen-Khong Tham, Yuming Jiang, Yung-Sze Gan, Layered Coding for a Scal-
able Video Delivery System, Department of Electrical and Computer Engineering,
National University of Singapore
[6] Yao Wang, Jrn Ostermann, Ya-Qin Zhang, Video Processing and Communica-
tions, Prentice Hall, 2002, ISBN 0-13-017547-1
[7] MPEG4 Standard,
http://www.chiariglione.org/mpeg/standards/mpeg-4/mpeg-4.htm
[8] J. M. Shapiro, "Embedded image coding using zerotrees of wavelet coefficients",
IEEE Trans. on Signal Processing, v. 41, no. 12, pp. 3445-3463, Dec. 1993

74
Forward error correction
75
Automatic repeat request
Fundamentos de Video Streaming 63
[9] R. L. De Valois and K. K. De Valois, Spatial Vision, Oxford University Press,
1988.
[10] Comparison of Wavelet and Cosine Basis for Representation of Arbitrarily
Shaped Image Segments Liu Ying*, Surendra Ranganath** , Xiaofang Zhou*
*School of Information Technology and Electrical Engineering, University of
Queensland, Queensland, 4072, Australia **Department of Electrical and Com-
puter Engineering, National University of Singapore, Singapore, 117576
[11] Joint Source and Channel Coding for Image Transmission Over Lossy Packet
Networks Geoffrey Davis and John Danskin Email:{gdavis,jmdg}@cs.dartmouth.edu
6211 Sudiko_ Laboratory, Dartmouth College, Hanover, NH 03755

Вам также может понравиться