ESTUDIO DE CÓDECS DE COMPRESIÓN MPEG-4 PARA SU APLICACIÓN A LA VIDEOVIGILANCIA Ruth Herrero Doñate Jaime Lloret Mauri Jose Miguel Jiménez Herranz Departamento de Comunicaciones Departamento de Comunicaciones Departamento de Comunicaciones Universidad Politécnica de Valencia Universidad Politécnica de Valencia Universidad Politécnica de Valencia [email protected] [email protected] [email protected] Abstract- The first goal in Video-surveillance is to store video without many disk consuming. There are many researches in video compression where researchers try to find the best compression rate without loosing visual video quality. This paper shows three MPEG-4 variant videocodecs comparative taking into account video-surveillance features. Measurements are taken for different luminance videos (different day hours). We have compared those videos as a function of their compression factor, time consuming to compress a video second, % of time in the microprocessor and the number of I/O in the microprocessor where the compression is taking place. We have taken into account different bitrate compression for different codecs. I. INTRODUCCIÓN En los últimos años, los sistemas de vídeo-vigilancia han evolucionado a pasos agigantados. Estos sistemas han pasado de la captura y transmisión video en forma analógica, hasta el uso de técnicas que permiten capturar video en forma digital y transmitirlo con esquemas distribuidos sobre infraestructuras IP [1] [2]. Al transmitir flujos de video sobre IP, éste puede ser almacenado en lugares remotos. Además, existe la posibilidad de acceder al sistema de captura desde cualquier parte de la red. El mayor inconveniente de la transmisión de vídeo por la red IP, es el ancho de banda necesario y la necesidad de calidad de servicio extremo a extremo. En el caso de redes inalámbricas, esta limitación viene dada por el ancho de banda de la propia tecnología [3]. Por todo ello, es imprescindible usar algoritmos de compresión de video que consuman poco ancho de banda y ocupen menor espacio de almacenamiento en disco [4]. En la actualidad coexisten varias técnicas de codificación. Algunas de estas técnicas están basadas en la compresión espacial de las imágenes (por ejemplo, Motion-JPEG), otras se basan en la compresión temporal de las secuencias de video analizando la variación del movimiento entre una imagen y la siguiente (por ejemplo, H.261 y H.263). El objetivo de estas técnicas es conseguir mayores ratios de compresión a la vez que se intenta conseguir buena calidad de imagen. MPEG-4 [5] es un estándar ISO/IEC desarrollado por el grupo de expertos MPEG. Los campos de aplicación de este estándar son la televisión digital, las aplicaciones interactivas de gráficos (contenido sintético) y multimedia interactiva (World Wide Web y la distribución de contenidos de video). MPEG-4 permite comprimir en gran medida los datos audiovisuales para su almacenamiento y transmisión, a la vez que respeta la calidad de video y audio. Este estándar crea representaciones codificadas de los datos de audio y video que forman la secuencia a través de la codificación basada en objetos. El estándar define una escena audiovisual como una representación codificada de objetos audiovisuales que tienen cierta relación en el tiempo y en el espacio. Estos objetos están organizados de forma jerárquica, en la base de ésta encontramos objetos de medios de comunicación primitivos, como: Imágenes estáticas (fondo fijo), objetos de vídeo (una persona hablando), objetos de audio (la voz asociada a una persona o la música de fondo). MPEG-4 estandariza varios de estos objetos y es capaz de representar los tipos de contenido natural y sintético. Los objetos tienen algunas propiedades adjuntas como sus coordenadas espaciales, escala, localización, zoom, rotación, etc. Estas características permiten a un usuario reconstruir la secuencia original tras decodificar todas las capas de objetos. El usuario también puede manipular la imagen mediante operaciones sencillas sobre cualquiera de los parámetros de los objetos. Posee un protocolo de animación facial, donde un modelo tridimensional de una cara puede ser animado en tiempo real. Cuando se combina con un muestreo de audio o sintonizador de voz mediante un convertidor texto-voz, se puede sincronizar la voz con el movimiento de los labios. El modelo 3D no esta estandarizado por MPEG-4, sólo el protocolo para controlarlo. Permite variar el flujo de datos. Éste puede ir desde los 9600 Bits/s hasta los 5 Mb/s. La compresión se basa en la DCT (Transformación del Coseno Discreto) con I- frames (keyframe), P-frames (predictive) y B-frames (bidireccional) ofreciendo mejores características que MPEG-1 y MPEG-2 a bajos flujos de datos. El estándar MPEG-4 se está empezando a implantar en los sistemas de video-vigilancia. En este tipo de sistemas se necesita transmitir o almacenar grandes cantidades de video con una calidad aceptable, pero utilizando poco ancho de banda o espacio en disco (según el caso). En este artículo se estudian algunas de las variantes MPEG-4 para saber cual conviene utilizar dependiendo de las características que se deseen tener en cuenta (mayor compresión, menor tiempo de compresión y rendimiento del ordenador durante la compresión). Hemos observado que los códecs se comportan de manera diferente según la luminosidad de la imagen que tratan, es decir, la cantidad de luz del día a la que se comprime la secuencia de video. En el capítulo 2 se presentan los códecs utilizados en nuestro estudio. En el capítulo 3 presentamos el material y software utilizado para realizar las mediciones. Las medidas realizadas que permiten saber el comportamiento de los códecs según la hora del día (luminosidad de la imagen), el tiempo empleado en comprimir un segundo de vídeo, % de tiempo de microprocesador del PC que realiza la compresión y el número de operaciones de entrada y salida de datos del microprocesador según diferentes tasas de bits y horas del día. El capítulo 5 comentará las conclusiones del artículo. II. Códecs MPEG-4 Cuando apareció el estándar MPEG-4, algunos desarrolladores de software programaron códecs que cumplían las especificaciones de dicho estándar. Los códecs más conocidos hoy en día son DivX, Xvid y H.264. A continuación analizaremos cada uno de éstos: A. Códec DivX DivX apareció en el verano de 1999 (aunque estas mismas siglas se utilizaron previamente para un sistema de pago por visión). Para visualizar videos con este códec, es necesaria su instalación. La versión más actualizada es el DivX 5. Entre sus características principales, nos podemos encontrar: - Cuatro modos de velocidad de codificación (rendimiento/calidad): Muy rápida, rápida, estándar y lenta. - Realzamiento psycovisual basado en DCT. - Preprocesamiento: Filtros espaciales y temporales. Este códec también permite elegir la cantidad de imagines I, P y B y el intervalo máximo de imágenes clave, la compensación de movimiento global el tipo de cuantización (H.263 y MPEG-2) y entrelazado. B. Códec XviD Se originó a partir de DivX 4 y está basado en las mismas librerías de las que partió tanto DivX 4 como OpenDivX. Es de código abierto, por ello existen numerosos colaboradores mejorándolo desinteresadamente. Los perfiles que posee XviD permiten que la codificación sea compatible con los reproductores de mesa DivX. El perfil “AS” (Avance simple) limita la resolución a 352x288 y la velocidad de transmisión de bits permite hasta 384 Kbits/s. Los perfiles “ARTS” (Tiempo Real Avanzado de Streaming) limitan el vídeo a la misma resolución que el perfil “simple” pero el límite de velocidad de transmisión de bits es de 4 Mbits/s. Cada perfil tiene varios niveles con los que se puede variar la resolución/bitrate. Existe también la posibilidad de configurar libremente el códec sin utilizar ningún perfil. Las características que poseen estos perfiles son: - Cantidad de Imágenes I, P y B. Se puede seleccionar la máxima cantidad de imágenes I, P y B seguidas. También se pueden seleccionar zonas donde aplicar un ajuste diferente de compresión a un grupo determinado de imágenes. - Compensación de movimiento de cuarto de píxel. Ayuda a valorar el movimiento de forma más precisa, afina los detalles y mejora la compresión. Es útil para videos con baja resolución. No es compatible con los DVD-DivX de sobremesa. - Compensación de movimiento global: Es una técnica que reduce la redundancia temporal en una secuencia de imágenes. - Enmascaramiento de la luminancia o cuantización adaptable: XviD reduce un poco la calidad utilizando tasas de bits más bajas en las áreas más brillantes y en las más oscuras pues la pérdida de calidad en estas áreas es menos visible para el ojo humano. - Cuantización entramada: Permite mayor compresión pero puede degradar la imagen y disminuir la velocidad. - Tipo de cuantizador: H.263 (para tasas de bits bajas) y MPEG (para tasas de bits altas). - Entrelazado: Trata a cada campo por separado, se utiliza cuando la fuente es entrelazada. El Xvid posee la opción “precisión de búsqueda de movimiento” que otros códecs no tienen. C. Códec H.264 Este códec se basa en la norma H.264. Está pensado para utilizarse en aplicaciones de video que tengan baja tasa de bits (con media y alta definición en televisión), en flujos de video a través de Internet y en aplicaciones de alta definición en cine y DVD. El proceso de compresión pasa por 7 estados: 1. Estimación de movimiento: Además de comparar la imagen analizada con otras anteriores o posteriores buscando un patrón que indique el movimiento, este códec incorpora el concepto de referencia múltiple de imágenes. Se aplica en movimientos que se repiten periódicamente en la naturaleza, interpretación de movimientos y obstrucciones. Con esto se reduce el tamaño de almacenamiento. 2. Intra-Estimación: Se utiliza cuando el objeto que se trata es estático. Predice el nuevo bloque extrapolando los píxeles vecinos de bloques adyacentes en un grupo de direcciones diferentes predefinidas. La diferencia entre el bloque predefinido y el bloque actual es la información codificada. 3. Transformación: Los resultados de los estados 1 y 2 son transformados desde un dominio espacial hasta un dominio de frecuencias con el que trabaja el códec. Usa una DCT basada en un algoritmo de transformación de 4x4 enteros que reduce la aparición de macrobloques en el video y el “efecto mosquito” en los contornos. 4. Cuantización: Esta fase reduce la precisión del conjunto de números enteros obtenidos en la fase anterior cuantizándolos y eliminando los coeficientes con frecuencias altas sin variar la calidad perceptible. 5. Recorrido de filtros: En esta fase se utiliza un filtro llamado “de-bloking”. En los macrobloques 16x16, el filtro elimina los efectos producidos por las diferencias de tipos de estimación de los bloques adyacentes o por diferentes escalas de cuantización. En los bloques internos 4x4 el filtro elimina los efectos causados por la cuantización y por diferencias con los vectores de movimiento de los bloques adyacentes. Se consigue aumentar la nitidez de la imagen. 6. Codificación Entrópica: La codificación entrópica basa su eficiencia en la asignación de muy pocos bits a los símbolos que se usan con mucha frecuencia y un mayor número de bits a aquellos símbolos que aparecen pocas veces. Factor 40 DIVX 35 XVID 30 H264 25 20 15 10 5 0 909 1649 2389 3129 3869 Bitrate (Kbps) Fig. 2. Factor de compresión (12:00). Factor 40 DIVX 35 XVID 30 H264 25 Fig. 1. Imagen del lugar de captura. 20 15 III. MATERIAL Y SOFTWARE UTILIZADO Para adquirir la secuencia de imágenes, se ha utilizado la cámara Sony DCR-IP5 cuyo formato de adquisición de video es en DV y tiene una resolución de 720x576 en el sistema PAL. El plano donde se ha capturado la secuencia de imágenes, es un exterior con gran contenido de color marrón y azul. Aunque el fondo de la imagen es fijo, existe movimiento debido al paso de los coches por la carretera. La figura 1 muestra una de las imágenes del lugar. La cámara ha sido conectada a un ordenador a través de una interfaz IEEE 1394. El ordenador utilizado para la captura es un Intel Celeron-S a 1300 MHz con 320 Mb de RAM. El Sistema Operativo utilizado ha sido Microsoft Windows XP Professional ®. La aplicación para codificar que se ha utilizado es VirtualDub versión 1.6.2 (de código libre). Para la compresión es han utilizado los códecs DivX versión 5.2.1, XviD 1.0.3-20122004 (Koepi) y H.264 versión x264vfw_rev120. El programa para recoger medidas es la Consola de Gestión Microsoft 2.0 ©. Esta aplicación nos permite medir el rendimiento del ordenador mientras funciona el proceso VirtualDub. No había ningún otro proceso funcionando en el ordenador mientras se estaba ejecutando la compresión. La aplicación se iniciaba al manualmente al iniciarse la codificación del video y se paraba manualmente al finalizar el proceso. La codificación de los diferentes videos con diferentes tasas de bits se ha realizado sin audio, sin ningún filtro y en el modo “Fast Recompress” de VirtualDub. En los 3 códecs hemos seleccionado la codificación de una sola pasada (codificación más rápida), pues la de dos pasadas es más lenta y no es útil para transmitir secuencias de imagen. IV. RESULTADOS EXPERIMENTALES Para la obtención de medidas, se ha capturado vídeo a las 9:00 y 12:00 de la mañana y a las 17:50, 18:20 y 19:30 de la tarde. Estas horas del día tienen diferente luz y por tanto las imágenes tienen diferente luminosidad, además, existe diferente nivel de tráfico, y por tanto diferente movimiento. Las secuencias de imágenes se han comprimido para 5 tipos de tasas de bits: 909, 1649, 2389, 3129 y 3869. Según los resultados obtenidos para la compresión de los vídeos tomados a las 12:00 y a las 19:30 horas (figuras 2 y 3), se puede apreciar que de los 3 códecs utilizados, el que mayor factor de compresión tiene es el XviD. 10 5 0 909 1649 2389 3129 3869 Bitrate (Kbps) Fig. 3. Factor de compresión (19:30). Esta diferencia se hace más notable cuando hay menor luminosidad (por la noche) en las imágenes a comprimir. Por tanto, cuando la limitación en un sistema de video-vigilancia viene impuesta por el ancho de banda del canal de transmisión, ya sea porque existen muchas cámaras o porque el canal tiene poco ancho de banda, el mejor códec a emplear de los tres analizados es XviD. Comparando el tiempo que tarda en comprimirse un segundo de vídeo de las adquisiciones realizadas a las 12:00 y a las 19:30 (figuras 4 y 5 respectivamente), nos damos cuenta que cuanta más oscuridad hay, más tiempo se necesita para comprimir un segundo de vídeo. Por tanto, cuanto mayor es la tasa de bits de compresión, más tiempo se necesita para codificar dicho segundo. Esta diferencia se agudiza más para H. 264. El códec que comprime más rápido es DivX, aunque la diferencia con XviD es muy corta. DivX y XviD son los mejores cuando se necesite tiempos de compresión cortos. Para una determinada secuencia de imágenes, si empleamos una tasa de bits superior, el microprocesador tarda más en alcanzar el 100% del tiempo de procesador, tal como se puede observar en las figuras 6 y 7. Esto ocurre con todos los vídeos independientemente de la luminancia que tengan. El códec DivX es el que más sufre este efecto. Si la limitación del sistema que implantamos está en la velocidad de proceso de los microprocesadores de los equipos que se están utilizando, es mejor emplear tasas de bits pequeñas. Comparando las operaciones de E/S en una secuencia de imágenes capturada a las 17:50, con distintas tasas de bits (909 y 3869), tal como se muestra en la figura 8, nos damos cuenta que, a una tasa de bits menor, hay más datos de E/S durante el arranque de la compresión. En cambio los resultados obtenidos para distintas tasas de bits en el video de las 19:30 horas, figura 9, muestran que a una tasa de bits mayor hay más datos E/S durante el arranque. En la figura 10 se muestra el video que corresponde a la 18:20 horas. Tanto para una tasa de bits baja como alta, los datos de E/S son casi iguales. Por tanto, el número de operaciones E/S cuando se realiza la compresión, depende tanto de la tasa de bits que se emplea como de la luminancia de las imágenes a comprimir. El códec con menor número de operaciones E/S es el H.264. Operaciones E/S 7 Tiempo (seg) 12 10 DIVX 8 XVID 6 H264 4 XVID (909) H264 (909) 5 DIVX (3869) XVID (3869) 4 H264 (3869) 3 2 2 1 0 909 1649 2389 Bitrate 3129 3869 (Kbps) 0 0:00:00 Fig. 4. Tiempo para comprimir un segundo de video (12:00) 0:00:30 0:01:00 0:01:30 0:02:00 0:02:30 0:03:00 Operaciones E/S 9 14 12 10 8 0:03:30 0:04:00 Tiem po Fig. 9. Operaciones de E/S por segundo a las 19:30 horas Tiempo DIVX (909) 8 XVID (909) DIVX 7 H264 (909) XVID 6 DIVX (3860) H264 5 6 XVID (3860) H264 (3860) 4 4 3 2 2 1 0 909 1649 2389 3129 3869 B it ra t e ( Kbps ) Fig. 5 Tiempo para comprimir un segundo de video (19:30). 0 0:00:00 0:00:30 0:01:00 0:01:30 0:02:00 0:02:30 0:03:00 0:03:30 0:04:00 Tiem po Fig. 10. Operaciones de E/S por segundo a las 18:20 horas % tiem po de procesador 110 100 90 80 70 60 50 40 30 20 10 0 0:00:00 V. CONCLUSIONES DIVX XVID H264 0:00:30 0:01:00 0:01:30 0:02:00 0:02:30 Tiem po Fig. 6. % tiempo de procesador, video 909 (9:00). % tiem po de procesador 110 100 90 80 70 60 50 40 30 20 10 0 0:00:00 DIVX XVID H264 0:00:30 0:01:00 0:01:30 0:02:00 0:02:30 Tiem po Fig. 7. % tiempo de procesador, video 3869 (9:00) Operaciones E/S 16 DIVX (909) 14 XVID (909) 12 H264 (909) DIVX (3869) 10 XVID (3869) H264 (3869) 8 6 4 2 0 0:00:00 DIVX (909) 6 0:00:30 0:01:00 0:01:30 0:02:00 0:02:30 0:03:00 0:03:30 Fig. 8. Operaciones de E/S por segundo a las 17:50 horas 0:04:00 Tiempo En el artículo se muestran los resultados obtenidos al comprimir, con los códecs, DivX, XviD y H.264, vídeo capturado a diferentes horas del día para que tengan distinta luminancia. Hemos comparado dichas secuencias de imágenes en función del factor de compresión, del tiempo consumido para comprimir un segundo de vídeo, % de tiempo de procesador y el número de entradas y salidas que se tienen en el procesador al realizar la compresión. La comparativa que hemos mostrado se ha realizado teniendo en cuenta diferentes tasas de bits para cada uno de los códecs. En este artículo se ha demostrado que la elección de alguno de los tres códecs analizados depende de las limitaciones o características del sistema implementado. Si las limitaciones del sistema es el ancho de banda de la red, el mejor es XviD. Si se necesitan tiempos de compresión cortos, los mejores son DivX y XviD. En caso de que el dispositivo de captura sea la limitación del sistema, porque tiene más procesos en funcionamiento o porque el dispositivo debe capturar desde varias cámaras, el mejor es H.264. VI. REFERENCIAS [1] R. T. Collins, A. J. Lipton y T. Kanade, “A System for Video Surveillance and Monitoring”, A meric an Nuclear Society Eight Intern. T opical Meeting on Robotics and R emote Systems, 1999. [2] Y. Ivanov, C. Stauffer, A. Bobick y W.E.L. Grimson, ”Video Surveillance of Interactions”, Second IEEE Workshop on Visual Surveillance, 1999. [3] A. Smolic, K. Müller, M. Droese, P. Voig y T. Wiegand, “Multiple View Video Streaming and 3D-Scene Reconstruction for Traffic Surveillance", 4th European Workshop on Image Analysis for Multimedia Interactive Services, 2003. [4] M. Bramberger, J. Brunner, B. Rinner y H. Schwabach, “Realtime video analysis on an embedded smart camera for traffic surveillance”. Real-Time and Embedded Technology and Applications Symposium, 2004. [5] R. Koenen, “Overview of the MPEG-4 standard”, ISO/IEC JTC1/SC29/WG11 N1730, Luglio 1997.