Está en la página 1de 8

Captulo 3 Marco Terico 3.1. Introduccin H.

264/MPEG10 o Advanced Video Coding (AVC) [1] [2] es un estndar de compresin de vdeo industrial, que convierte el vdeo digital en un formato que consume menos capacidad para almacenamiento o transmisin [3] [4] [5]. La grabacin y reproduccin de video, Video por vigilancia IP y las videoconferencias son ejemplos comunes de aplicaciones de la tecnologa H.264/AVC. Sin embargo, las limitaciones de escalabilidad restringe la capacidad de H.264/AVC para satisfacer las diferentes necesidades de los diferentes usuarios con diferentes resoluciones de pantallas conectadas a travs de enlaces de red diferentes. Por lo tanto, la codificacin H.264 de vdeo escalables (H.264/SVC) [6] fue propuesto para superar estas limitaciones. La escalabilidad espacial, temporal y relacin seal-ruido-(SNR) son tres caractersticas importantes de la norma H.264/SVC. La escalabilidad espacial puede proporcionar el estndar con la capacidad de adaptarse a la resolucin espacial del vdeo. La escalabilidad temporal permite la adaptacin a la velocidad de fotogramas y la escalabilidad SNR permite la adaptacin a la calidad de vdeo. SVC contiene una capa base y una o ms capas de mejora. La capa base proporciona la calidad bsica de video. Adems, con el fin de ser compatible hacia atrs, la capa base debe ser reconocido por todos los decodificadores convencionales H.264. Adicionando el mejoramiento de la capa para la capa base, incrementando la calidad de vdeo. Por otro lado, cuando el ancho de banda disponible es insuficiente, dejando caer una o ms capas de mejora, parcial o completamente, es una manera fcil de evitar tiempo de ejecucin en transcodificacin de vdeo. Para ofrecer una mejor calidad de vdeo en H.264, investigadores o profesionales, por lo general necesitan un ambiente experimental para poner a prueba sus ideas y propuestas. Tradicionalmente, necesitan una aplicacin en un servidor de vdeo, configurar la red y crear un cliente de video, posteriormente utilizan el trfico de vdeo H.264 para transmitir sobre el banco de pruebas y medir los resultados [7] [8]. Estos pasos conllevan tiempo y dinero, sin contar, si un experimento es ptimo, este no es fcil repetir, para encontrar los factores que hacen que el resultado pueda obtenerse de nuevo. EvalSVC es un mtodo basado en simulacin, es otra manera de probar una idea o propuesta de investigacin. Los artculos [9] [10] [11] [12] proporcionan ejemplos que utilizan simulaciones para llevar a cabo estas evaluaciones, sin embargo, casi ninguna de estas propuestas encontradas en los artculos proporcionan su framework de evaluacin como dominio pblico. EvalSVC [13] es un conjunto de herramientas a disposicin del pblico que permite llevar a cabo la evaluacin de calidad de vdeo entregado H.264/SVC en un entorno de simulacin de redes. Sin embargo, EvalSVC no indica claramente cmo se maneja la abstraccin fallos, daos o prdidas y cmo se maneja play-out o restricciones de retardo, analizadas mediante Network Abstraction Layer Unit (NALU) y el Joint Scalable Video Model (JSVM), como software de referencia existente de fuente abierta para la codificacin y decodificacin de H.264/SVC, el cual, no puede decodificar correctamente en situaciones adversas. Una de las desventajas encontradas en EvalSVC, radica en que no se proporciona ningn ejemplo de simulacin y su material documental es bajo.

Con el fin de proporcionar un entorno de simulacin ms realista, un framework de evaluacin de transmisin H.264/SVC, se trabaj con myEvalSVC durante el desarrollo de la tesis. Este framework integra la codificacin de video H.264 de streaming escalable con el framework de evaluacin (SVEF) [14] [15] con extensin en NS2 [16]. Mediante esta integracin, se puede trabajar la codificacin de vdeo y simular los efectos de una red ms realista, dada la secuencia de vdeo resultante de su esquema de codificacin, mientras se puede evaluar el impacto de los flujos de vdeo reales, con protocolos propuestos en una arquitectura de red. 3.2 Descripcin general de la codificacin de vdeo Codificacin de vdeo no escalable (Non-scalable video coding): Hay tres tipos bsicos de fotogramas de vdeo (Moving Picture Experts Group - MPEG): (1) I-frame o intra-coded frame, donde el frame es codificado independientemente de los otros frames y decodificados por s mismo. (2) P-frame, o predictive-frame, donde el frame es codificado usando predicciones de un frame I o P anterior de la secuencia de vdeo. (3) B-frame, o frame bi-direccional de frame predictivo codificado, donde se codifica la trama utilizando las predicciones de los anteriores y posteriores I o P-frames. Generalmente, la secuencia de entrada de video puede descomponer en unidades ms pequeas, que son entonces codificados juntos, llamado el grupo de imgenes (GOP). Un patrn GOP es caracterizado por dos parmetros, G (N, M), donde N es el frame de distancia de I hasta I y M es el frame de distancia de I hasta P. Por ejemplo, como se muestra en la figura. 1, G (9, 3) significa que el GOP incluye un I-frame, dos P-frames y seis B-frames. El segundo I-frame se muestra en la figura. 1 e indica el inicio del siguiente GOP. Las flechas indican que el B-frame y el P-frame decodificados son dependientes de la anterior o posterior I-frames o P-frames.

Figura 1. Un ejemplo de MPEG codificado con GOP (N=9, M=3)

Codificacin escalable de vdeo (SVC): En la codificacin de vdeo escalable o en capas, el vdeo se codifica en forma jerrquica dentro de una capa base y una o ms capas de mejora. Decodificando la capa de base se ofrece una calidad estndar de vdeo de baja, mientras que la decodificacin de la capa base junto con capas de mejora adicionales ofrece un mayor refinamiento de la calidad de vdeo. Hay diferentes formas de escalabilidad espacial, incluyendo temporales, y escalabilidad SNR.

La figura. 2 muestra un ejemplo de la codificacin escalable temporal. El I-frames y P-frames forman la capa de base, y el B-frames forman la capa de mejora. La capa de base suministra la calidad de vdeo de base con una velocidad de frame ms baja. Adicionalmente la capa de mejora para la capa base aumenta la suavidad de la calidad de vdeo. H.264/SVC es una extensin escalable de H.264/AVC. Se trata de una normalizacin actual del Joint Video Team (JVT). Un codificador SVC bitstream consta de una capa de base H.264/AVCcompatible y una o ms capas de mejora escalables. Conceptualmente, el diseo de H.264/AVC cubre a Video Coding Layer (VCL) y a Network Abstraction Layer (NAL). Mientras que el VCL crea una representacin codificada del contenido de origen, los formatos de NAL esos datos y proporciona la informacin de cabecera de una manera que permite una personalizacin sencilla y eficaz de la utilizacin de los datos de VCL para una amplia variedad de sistemas.

Figura 2. Ejemplo de codificacin escalable temporal

Codificacin de video de mltiple descripcin: La Multiple description coding (MDC) [23] se plante en relacin con la comunicacin de voz a travs de la red telefnica. La idea era dividir la informacin de una llamada en dos partes que se envan en dos caminos diferentes. En operacin normal, dos partes son recibidas y combinadas para una calidad de voz habitual. Sin embargo, una interrupcin de un enlace o de otro puede ser aun acomodada para reducir la calidad de la voz. Esta idea de dividir canal inspir la idea llamada codificacin de video de mltiple descripcin.

En Codificacin de video de mltiple descripcin, la seal de vdeo se divide en mltiples subsecuencias, donde cada una de las sub- secuencias son decodificables de manera independiente. Entre ms sub- secuencias sean recibidas, ms informacin de la fuente original puede ser restaurada. Teniendo en cuenta que estas propiedades estn en contraste con los sistemas de vdeo escalables o en esquemas de codificacin de capas, en el que la capa de mejora sera intil para el receptor, si la capa de base se pierde.

3.3 Evaluacin de transmisin de video En general, hay tres formas diferentes de evaluar la transmisin de vdeo.

Utilizacin de secuencias de bits reales: Este mtodo utiliza la salida real de vdeo codificacin para la evaluacin de transmisin de vdeo. RealTracer [24], es un conjunto de herramientas para medir el rendimiento de RealVideo. RealTracker incluye un reproductor de video personalizado que puede reproducir clips RealVideo en streaming y registrar las estadsticas de rendimiento del sistema y velocidades de usuario, junto con RealData, una herramienta de anlisis de datos que ayuda a gestionar y analizar datos estadsticos capturados por RealTracker.

Una ventaja de este tipo de mtodo es que permite que la calidad del vdeo sea evala visualmente. Las mtricas a nivel de red, tales como ancho de banda, velocidad de frames, jitter, etc., pueden tambin ser obtenidas. Sin embargo, este tipo de herramienta se centra principalmente en redes reales. Esto permite evaluar protocolos propuestos, arquitecturas de red, topologas, entre otros, mediante herramientas de simulacin para verificar la eficacia de un diseo antes de implementar los protocolos o propuesta de investigacin en redes reales. Con el fin de resolver el problema anteriormente mencionado, en esta tesis se ha utilizado un framework de evaluacin llamado myEvalvid, que fue propuesto para realizar simulaciones ms realistas en tareas de transmisin de vdeo MPEG [25] [26]. myEvalvid, es una integracin entre Evalvid [27] y NS2, permitiendo analizar el rendimiento de transmisin de vdeo a travs de simulaciones reales en una amplia gama de escenarios de red, con la limitacin que myEvalvid es slo compatible con la codificacin de vdeo no escalables, como complemento a la solucin de este inconveniente, myEvalSVC es una extensin de myEvalvid, que a diferencia de este, permite trabajar con codificacin escalable de video.

Utilizacin de trazas de trfico: La traza el trfico de video es una abstraccin de la secuencia de vdeo real. Estas trazas por lo general, indican el nmero, tipo y el tamao de los frames, en un archivo de texto, describiendo las caractersticas de trfico de vdeo real. La universidad del estado de Arizona en conjunto con la fundacin de ciencia nacional [], ofrecen una librera de trazas de video ya codificados, en H.264, MPEG, o trazas MDC (Multiple Description Coding). Una de las ventajas de utilizar estas trazas, son los derechos de autor, puesto que no contienen la informacin real de vdeo. Sin embargo, para un anlisis de simulacin, por lo general slo las mtricas de nivel de red pueden ser obtenidas (delay, jitter, perida de paquetes y el throughput). En el caso de la evaluacin de transmisin de vdeo, las mtricas de nivel de red resultar insuficientes para evaluar la calidad percibida por el usuario final, por ejemplo, al tomar una tasa de prdida de paquetes relativamente baja, no necesariamente significa o se traduce en buena calidad de video entregada. Un porcentaje de prdida de paquetes del 3% podra traducirse en una probabilidad de error de trama del 30%. La mayor parte de los Codecs de vdeo modernos son jerrquicos, por lo que la prdida de la trama I-frames causara dems cuadros del mismo GOP, resultando intil la reconstruccin del video en el receptor. Modelos de trfico de vdeo: Un modelo de video captura las propiedades de una secuencia de video real. Este mtodo se desarrolla sobre las bases estadsticas de un conjunto de muestras de trazas de trfico de vdeo real. Como ejemplo se tiene Transform Expand Sample (TES) [29], que es una metodologa para la generacin de datos que se asemejan en trminos de su distribucin

marginal y funcin de auto-correlacin. El modelo desarrollado puede ser utilizado para el anlisis matemtico de redes, pero carece de la posibilidad de visualizar una imagen de vdeo transmitido.

3.4 Framework de evaluacin SVEF La estructura del framework de evaluacin SVEF se observa en la figura. 3 [9]. Los principales componentes del framework de evaluacin se describen a continuacin: Raw YUV video: Es el archivo de fuente de vdeo, comnmente se encuentran en los formatos YUV 4CIF (704 x 576), YUV CIF (352 288) o QCIF (176 144). JSVM Encoder: El proceso de codificacin es basado en la configuracin de archivos, los usuarios pueden habilitar la escalabilidad espacial, temporal, SNR o combinada. La Tabla 1 se observa un ejemplo de proceso de codificacin, en el cual, el segundo campo indica el nmero del frame y tipo de frame y los siguientes campos, estn compuestos por temporal_id (TID), dependency_id (DID), y el formato quality_id (Qid). El campo DID especifica la escalabilidad espacial, TID denota la escalabilidad temporal, y Qid representa la escalabilidad de calidad. Para la versin 1.4, utilizada en esta tesis, el SVEF no toma en cuenta la escalabilidad espacial, y slo soporta SVC con una capa nica de dependencia y un nmero arbitrario de capas de mejora de calidad. Por lo tanto, con el mismo valor de los parmetros Did y TID, en NALU tiene Qid mayor a cero y Qid igual a cero, dependiendo dentro de NALU se tenga Qid en uno. Los campos restantes indican el parmetro de cuantificacin, Y-PSNR, U-PSNR, V-PSNR y el tamao del frame codificado. La relacin seal ruido de pico (PSNR) puede calcularse los componentes de video tanto para luminancia (Y-PSNR) y la crominancia (U- PSNR y V-PSNR). Puesto que el ojo humano es ms sensible a la luminancia (brillo) que a la crominancia (color), el PSNR es tpicamente evaluado slo para el componente de luminace (Y). La siguiente ecuacin muestra la definicin del PSNR entre la luminancia componente Y de una imagen de origen y de una imagen de destino D:

donde Vpico = 2k-1 y k = nmero de bits por pxel. Ncol presenta el nmero de columnas, mientras que nRow es el nmero de filas en una imagen. PSNR mide el error entre una imagen reconstruida y una original. Un valor PSNR mayor corresponde a una mejor calidad de imagen, para ampliar esta informacin en detalle se recomienda consulte el Manual de Software JSVM [30].

Tabla 1. Ejemplo de un proceso de codificacin

JSVM BitStreamExtractor: Despus del proceso de codificacin es generado un archivo de vdeo H.264. Este archivo de vdeo alimenta al mdulo BitStreamExtractor para producir un archivo de traza NALU. Sin embargo, este archivo de traza no contiene informacin de nmero de frames. As que este archivo de traza es procesado por F-N Stamp para generar una traza NALU con informacin del nmero de frame en el (vase Tabla 2), con los siguientes campos: offset de memoria, NALU-size, Did, Tid, Uid, Tipo, descartable, Truncatable, Nmero del frame, tiempo de frame enviado y tiempo de frame de recepcin.

Tabla 2. Ejemplo de una traza original NALU

Streamer: El streamer lee el archivo de traza NALU, carga los datos desde un archivo H.264 y luego enva los NALUs a travs de la red IP. El enviado paquetes consta de una cabecera IP, cabecera UDP, encabezado personalizado capa-5 y la carga til. Si un paquete es demasiado grande y excede el lmite de la fragmentacin, el SVC permitir que la capa IP para hacer la fragmentacin IP / Re ensamblaje. Middlebox: Este componente es opcional. Los creadores de la SVEF usan este middlebox como ejemplo para hacer la programacin de paquetes. Cuando el ancho de banda disponible es menor que la tasa de envo, middlebox decidir qu paquetes puede enviar paquetes y cuales paquetes no enviar, en conformidad con el DID, TID, QID y campos en la cabecera del paquete. Herramientas del lado del receptor (NALU-Receiver, NALU-Filter, and Frame-Filler): En el lado del receptor, NALU-Receiver es utilizado para recibir paquetes y construir un archivo de traza NALU recibida al mismo tiempo. El formato de archivo es el mismo que en la Tabla 2, pero en el ltimo campo, se registra el tiempo de recepcin del frame. A continuacin, el archivo de traza NALU es procesado por el NALU-Filter. Este filtro reordena los NALUs de acuerdo con la orden de envo y elimina los NALUs Nalus que tomaron demasiado tiempo o llegaron tarde o las dependencias NALUs que no cumplieron con la decodificacin. A continuacin, el archivo de traza de filtrado NALU pasa a JSVM BitStreamExtractor para recuperar los NALUs que efectivamente pueden descodificarse en el lado de recepcin y a continuacin se decodifica en vdeo YUV. Se hace la acotacin que el descodificador JSVM no decodifica directamente los NALUs recibidos. Esto se debe a que el decodificador JSVM no puede manejar paquetes fuera de orden, daados o la falta

de NALUs. En la etapa final, es necesario con el fin de comparar los valores de PSNR, es necesario comparar el nmero de cuadros con el video original YUV puro. Por lo tanto, Frame-Filler se utiliza para ocultar los fotogramas que faltan mediante la copia del frame anterior.

Figura 3. Cadena de Software SVEF

3.4 Mtricas de desempeo de red. En el momento en que los servicios de multimedia (por ejemplo, video-streaming) son transportados por una red, la mayora de las mtricas de desempeo utilizadas, son generalmente las mismas que se utilizan para medir el desempeo en una red MANET (retardo, jitter, perdida de paquetes y el throughput). Para los resultados de la simulacin realizados en esta tesis, se ha seleccionado el retardo de extremo a extremo y el throughput como una mtrica con el fin de evaluar el rendimiento de los diferentes protocolos: 3.4.1 Retardo de Extremo a Extremo (End-to-End Delay): Es el tiempo que tarda un paquete para alcanzar el destino despus de que sale de la fuente. El retardo medio de los paquetes (TAVG) para una red, se obtiene promediando todos los pares paquetes fuente destino:

es el tiempo de emisin instantnea del paquete i, es el tiempo de recepcin instantnea del paquete i, es el nmero total de paquetes recibidos.

3.4.2 Throughput (Rendimiento): Se define como la cantidad de datos tiles que recibe el usuario en una comunicacin dividida por toda la informacin transmitida. Hay muchas cantidades de datos a tener en cuenta al calcular el rendimiento, tales como: cabeceras de los paquetes, paquetes de sealizacin, tiempos de espera, colisiones, retransmisiones de paquetes, etc., cada una de estas cantidades hace que la diferencia entre la velocidad de datos fsicos de la capa fsica y la velocidad sostenida obtenida, sea significativa: