estudio de códecs de compresión mpeg

Anuncio
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.
Descargar