Algoritmos de Compresión de Video

Teoría y Estándares

 

           

Resumen: El siguiente trabajo introduce a los alumnos del curso Programación de Sistemas en los distintos algoritmos de compresión de video, estándares, arquitecturas y codecs usados, dándoles un marco de conocimiento teórico sobre el tema, incluyendo parámetros de comparación, ventajas y desventajas de unos y otros.

                                              

 

            Introducción:

                                   Hoy en día, el uso, transmisión y capacidad de almacenamiento de información ha ido creciendo exponencialmente con el desarrollo de la tecnología. Con la masificación de la telefonía móvil, el uso de Internet, el bajo costo de acceso a mas ancho de banda y de los medios de almacenaje; ha hecho que los información audiovisual sea muy apetecida por todos los usuarios con acceso a toda esta tecnología.

 

         Es por esto que para poder lograr difundir grandes cantidades de información audiovisual, se ha hecho necesario crear y desarrollar más y mejores algoritmos de compresión de video, logrando con los últimos grandes tasas de compresión con muy bajo deterioramiento de la imagen. Desarrollándose varios métodos de compresión de video, como por ejemplo el H.26x, M-JPEG, MPG, Ogg Theora; con dos técnicas comunes de compresión con perdida, por codecs de transformación o por codecs predictivos. La compresión de Vídeo para aplicaciones va desde la producción y difusión de televisión digital hasta la gestión de datos multimedia, pasando por utilidades interactivas como pueden ser la videoconferencia a través de telefonía móvil o la recepción de televisión en una PALM.

 

 

 

Teoría y Estándares:

                           

                            Algoritmos de compresión se llama a cualquier procedimiento de codificación que tenga como objetivo representar cierta cantidad de información utilizando una menor cantidad de la misma. Las técnicas de compresión pueden clasificarse en dos grupos, las que son reversibles (lossless) y las que son irreversibles (lossy). Las reversibles son aquellas en las que después del proceso de compresión/ descompresión los datos resultantes no han sufrido ninguna degradación ni pérdida de calidad. Las irreversibles son aquellas en las cuales una vez realizado el proceso de compresión/ descompresión el contenido resultante ha sufrido una degradación mas o menos perceptible. En la mayoría de aplicaciones audiovisuales se debe utilizar técnicas irreversibles, ya que éstas son las que permiten elevados factores de compresión. Dentro de las técnicas de compresión irreversibles las más utilizadas e inmediatas son aquellas que consisten en eliminar información reduciendo el tamaño de la imagen, eliminando fotogramas (temporal) o asignando menor cantidad de bits al codificar cada píxel. Existen dos técnicas comunes de compresión con pérdida:

 

·        Por códecs de transformación: Los datos originales son transformados de tal forma que se simplifican (sin posibilidad de regreso a los datos originales). Creando un nuevo conjunto de datos proclives a altas razones de compresión sin pérdida.

 

·        Por códecs predictivos: Los datos originales son analizados para predecir el comportamiento de los mismos. Después se compara esta predicción con la realidad, codificando el error y la información necesaria para la reconstrucción. Nuevamente, el error es proclive a altas razones de compresión sin pérdida.

 

La compresión temporal consiste en analizar una secuencia de vídeo para que en lugar de transmitir todos los fotogramas consecutivos tan solo se codifique un fotograma y la diferencia entre éste y sus fotogramas cercanos. Por ejemplo, se codifica el fotograma 1 entero y en lugar de codificar el fotograma 2 tan solo se codifica aquella información que es distinta entre los fotogramas 1 y 2. Esto permite que en aquellas secuencias en las que la información es muy redundante (o sea existen muy pocas variaciones entre fotogramas consecutivos) se consigan factores de compresión muy elevados, ya que la diferencia entre ellos es prácticamente nula. La mayoría de las técnicas de compresión temporal que se utilizan en la actualidad no se basan tan sólo en la codificación de la diferencia entre fotogramas consecutivos, sino que lo que codifican es la diferencia entre un fotograma y la predicción del siguiente, lo cual eleva mucho el cómputo del procesado y permite obtener a cambio un flujo de datos mucho más reducido y una imagen de calidad óptima.

El uso de estas técnicas se encuentra tanto en aplicaciones de televisión digital con relaciones de compresión que no suelen superar los 10:1 y sin una aparente pérdida de calidad de imagen como en aplicaciones multimedia con factores de compresión que pueden llegar a ser de 200:1. Estas técnicas de compresión orientadas al sector multimedia se encuentran implementadas en pequeñas aplicaciones llamadas codecs. Los codecs derivan de las palabras compressor y decompressor, y son los módulos de software que permiten la compresión y descompresión de los ficheros de audio y vídeo pequeños programas que incorporan los procesos necesarios para la compresión de una señal. Existe una gran cantidad de codecs, esto supone que una misma secuencia de vídeo puede tener calidades distintas en función del codec utilizado para comprimirla aunque en todas ellas se haya utilizado la misma arquitectura. Algunos de los codecs más conocidos son el Cinepack, Indeo 3.2, Indeo 4.1, 4.2 y 4.3, Indeo 5.1 y 5.2, Microsoft RLE, Sorenson, DivX, Intel YUV9.

 

Para que no existan problemas a la hora de intercambiar archivos comprimidos es necesario que se encuentren ubicados en una arquitectura definida mediante un estándar, de manera que se garantice la correcta generación, transmisión, almacenamiento y visualización de los contenidos entre distintos ordenadores. En realidad las primeras arquitecturas que aparecieron y que se han acabado convirtiendo en estándar son las estructuras AVI (Audio Video Interleave) de Microsoft y la estructura QuickTime de Apple. Posteriormente se creó el estándar MPEG.

La finalidad de una arquitectura como AVI y QuickTime es la de permitir que los desarrolladores puedan integrar de forma sencilla aplicaciones de compresión y descompresión de materiales multimedia sobre cada sistema operativo. En principio aceptan cualquier tipo de compresor o técnica de compresión de vídeo, siempre que el desarrollador del código siga las normativas definidas para la correcta integración del codec sobre cada sistema operativo.

 

Los métodos de compresión de video con perdida mas utilizados son:

 

·        H.261: Es el estándar más usado internacionalmente para vídeo-conferencia (estándar ITU). Diseñado para RDSI, se suele usar junto con otros estándares de control como H.230, H.221, etc. Soporta QCIF (144x176) y CIF (288x352).

·        H.264: O MPEG-4 parte 10, es un códec digital de alta compresión estándar escrito por el ITU-T Video Coding Experts Group (VCEG) junto con el ISO/IEC Moving Picture Experts Group (MPEG) como producto del esfuerzo de colaboración colectivo conocido como Joint Video Team (JVT). El estándar ITU-T H.264 y el estándar ISO/IEC MPEG-4 part 10 (formalmente ISO/IEC 14496-10) son técnicamente idénticos, y la tecnología es conocida también como AVC (codificación de video avanzada).

H.264 es el nombre afín a la línea ITU-T de estándares para video H.26x, mientras que AVC se relaciona con la parte del proyecto del grupo ISO/IEC MPEG que completó el trabajo del estándar tras el desarrollo inicial realizado en la ITU-T y que fue llamado H.26L. Es habitual denominar al estándar como H.264/AVC (o AVC/H.264 o H.264/MPEG-4 AVC o MPEG-4/H.264 AVC) para enfatizar ambas aportaciones.

La intención del proyecto H.264/AVC fue crear un estándar que sea capaz de proveer de una buena calidad de imagen con bit rates substancialmente menores (p.ej. la mitad o menos) que los estándares previos (p.ej. el MPEG-2, H.263 o MPEG-4 parte 2). Además de no incrementar la complejidad para que el diseño sea impracticable (demasiado caro) de implementar. Otro objetivo fue que el estándar fuera lo suficientemente flexible para ser aplicado a una gran variedad de aplicaciones (p.ej. para altos y bajos bit rates o resoluciones de imagen) y para trabajar correctamente en una gran variedad de redes y sistemas (p.ej., para radiodifusión, almacenamiento DVD, redes de paquetes RTP/IP o sistemas de telefonía multimedia).

 

·        OGG THEORA: Formato de compresión de video con pérdida, abierto y libre de patentes. Está siendo desarrollado por el Proyecto Ogg, básicamente es una adaptación del formato recientemente liberado VP3 para encapsularlo dentro del formato contenedor Ogg, y mejora ligera del códec. El objetivo es la posibilidad de tener ficheros de video Ogg con el audio en formato Ogg-Vorbis y el video Ogg-Theora, pudiendo trabajar con audio y video a la vez sin tener que maniobrar con formatos cerrados y/o de pago.

 

·        M-JPEG (Motion JPEG): es una versión extendida del algoritmo JPEG que comprime imágenes. Básicamente consiste en tratar al vídeo como una secuencia de imágenes estáticas independientes a las que se aplica el proceso de compresión del algoritmo JPEG una y otra vez para cada imagen de la secuencia de vídeo. Existen cuatro modos de operación para el JPEG: secuencial, progresiva, sin pérdida, y jerárquica. Normalmente se utiliza el modo secuencial.

La ventaja es que se puede realizar en tiempo real e incluso con poca inversión en hardware. El inconveniente de este sistema es que no se puede considerar como un estándar de vídeo pues ni siquiera incluye la señal de audio. Otro problema es que el índice de compresión no es muy grande.

JPEG utiliza una técnica de compresión espacial, la intracuadros o DCT. El sistema JPEG solamente utiliza la compresión espacial al estar diseñado para comprimir imágenes individuales.

Motion-JPEG es el método elegido para las aplicaciones donde se envía la misma información a todos los usuarios, las broadcast.

 

Ejemplo de secuencia de video

                           

 

·        MPEG: Es una de las técnicas de vídeo y audio más conocidas; el estándar denominado MPEG (iniciado por el Motion Picture Experts Groups a finales de los años 80).

El algoritmo que utiliza además de comprimir imágenes estáticas compara los fotogramas presentes con los anteriores y los futuros para almacenar sólo las partes que cambian.

MPEG aplica la compresión temporal y la espacial. En primer lugar se aplica una transformada de coseno discreta, seguida de una cuantización para finalmente comprimir mediante un algoritmo RLE. Los bloques de imagen y los de predicción de errores tienen una gran redundancia espacial, que se reduce gracias a la transformación de los bloques desde el dominio del espacio al dominio de frecuencia.

Existen diferentes opciones dependiendo del uso:

 

MPEG-1 fue presentado en 1993 y está dirigido a aplicaciones de almacenamiento de vídeo digital en CD’s. Por esta circunstancia, la mayoría de los codificadores y decodificadores MPEG-1 precisan un ancho de banda de aproximadamente 1.5 Mbit/segundo a resolución CIF (352x288 píxeles).

MPEG-1 guarda una imagen, la compara con la siguiente y almacena sólo las diferencias. Se alcanzan así grados de compresión muy elevados. Define tres tipos de fotogramas:

Fotogramas I o Intra-fotogramas, son los fotogramas normales o de imagen fija, proporcionando una compresión moderada, en JPEG. Fotogramas P o Predichos: son imágenes predichas a partir de la inmediatamente anterior. Se alcanza una tasa de compresión muy superior. Fotogramas B o bidireccionales: se calculan en base a los fotogramas inmediatamente anterior y posterior. Consigue el mayor grado de compresión a costa de un mayor tiempo de cálculo. Estándar escogido por Vídeo-CD: calidad VHS con sonido digital.

 

Una secuencia típica de I -, B- y P-frames puede tener un aspecto similar al del dibujo de abajo. Tenga en cuenta que un P-frame puede solo referenciar a un I - o P-frame anterior, mientras que un B-frame puede referenciar tanto a I - o P-frames anteriores y posteriores.

 

 

En la imagen de abajo se ilustra como se transmite la información relativa a las diferencias entre las imágenes 2 y 3 respecto a la de referencia.

 

 

MPEG-2 fue aprobado en 1994 como estándar y fue diseñado para vídeo digital de alta calidad (DVD), TV digital de alta definición (HDTV), medios de almacenamiento interactivo (ISM), retransmisión de vídeo digital (Digital Vídeo Broadcasting, DVB) y Televisión por cable (CATV). El proyecto MPEG-2 se centró en ampliar la técnica de compresión MPEG-1 para cubrir imágenes más grandes y de mayor calidad con un nivel de compresión menor y un consumo de ancho de banda mayor. MPEG-2 también proporciona herramientas adicionales para mejorar la calidad del vídeo consumiendo el mismo ancho de banda, con lo que se producen imágenes de muy alta calidad cuando lo comparamos con otras tecnologías de compresión. El ratio de imágenes por segundo está bloqueado a 25 (PAL)/30 (NTSC) ips. al igual que en MPEG-1.

Con MPEG-2 pueden conseguirse elevados ratios de hasta 100:1, dependiendo de las características del propio vídeo.

MPEG-2 normalmente define dos sistemas de capas, el flujo de programa y el flujo de transporte. Se usa uno u otro pero no los dos a la vez. El flujo de programa funcionalmente es similar al sistema MPEG-1. La técnica de encapsulamiento y multiplexación de la capa de compresión produce paquetes grandes y de varios tamaños. Los paquetes grandes producen errores aislados e incrementan los requerimientos de buffering en el receptor/decodificador para demultiplexar los flujos de bits. En contraposición el flujo de transporte consiste en paquetes fijos de 188 bytes lo que decrementa el nivel de errores ocultos.

 

 

MPEG-3 fue diseñado originalmente para HDTV (Televisión de Alta Definición), pero abandonado posteriormente a favor de MPEG-2.

 

MPEG-4 fue aprobado en 2000 y es uno de los desarrollos principales de MPEG-2. Profundizaremos en MPEG-4 para comprender mejor términos y aspectos.

 

MPEG-4 Parte 2 (MPEG-4 Visual): Cuando la gente habla de MPEG-4 generalmente se está refiriendo a MPEG-4 parte 2. Este es el estándar de transmisión de vídeo clásico MPEG-4, también denominado MPEG-4 Visual. Como uno de los desarrollos principales de MPEG-2, MPEG-4 incorpora muchas más herramientas para reducir el ancho de banda preciso en la transmisión para ajustar una cierta calidad de imagen a una determinada aplicación o escena de la imagen. Además el ratio de imágenes por segundo no está bloqueado a 25 (PAL)/30 (NTSC) ips. Es importante destacar, no obstante, que la mayoría de las herramientas para reducir el número de bits que se transmiten son sólo relevantes para las aplicaciones en tiempo no real. Esto es debido a que alguna de las nuevas herramientas necesitan tanta potencia de proceso que el tiempo total de codificación/decodificación (por ejemplo la latencia) lo hace impracticable para otras aplicaciones que no sean la codificación de películas, codificación de películas de animación y similares. De hecho, la mayoría de las herramientas en MPEG-4 que pueden ser usadas en aplicaciones en tiempo real son las mismas herramientas que están disponibles en MPEG-1 y MPEG-2.

Otra mejora de MPEG-4 es el amplio número de perfiles y niveles de perfiles (explicados posteriormente) que cubren una variedad más amplia de aplicaciones desde todo lo relacionado con transmisiones con poco ancho de banda para dispositivos móviles a aplicaciones con una calidad extremadamente amplia y demandas casi ilimitadas de ancho de banda. La realización de películas de animación es sólo un ejemplo de esto.

 

 

Perfiles MPEG-4 dado que hay un gran número de técnicas (herramientas) disponibles en MPEG (especialmente en MPEG-4) para reducir el consumo de ancho de banda en la transmisión, la variable complejidad de estas herramientas y el hecho de que no todas las herramientas sean aplicables a todas las aplicaciones, sería irreal e innecesario especificar que todos los codificadores y decodificadores MPEG deberían soportar todas las herramientas disponibles. Por consiguiente se han definido subconjuntos de estas herramientas para diferentes formatos de imágenes dirigidos a diferentes consumos de ancho de banda en la transmisión.

Hay diferentes subconjuntos definidos para cada una de las versiones de MPEG. Por ejemplo hay un subconjunto de herramientas denominados MPEG Profile. Un MPEG Profile específico establece exactamente qué herramientas debería soportar un decodificador MPEG. De hecho los requerimientos en el codificador y el decodificador no tienen porque hacer uso

de todas las herramientas disponibles. Además, para cada perfil existen a diferentes niveles. El nivel especifica parámetros como por  ejemplo el ratio de bits máximo a usar en la transmisión y las resoluciones soportadas. Al especificar el Nivel y el Perfil MPEG es posible diseñar un sistema que solo use las herramientas MPEG que son aplicables para un tipo concreto de aplicación.

MPEG-4 tiene un amplio número de perfiles diferentes. Entre ellos se encuentran el Simple Profile y el Advanced Profile que son los más utilizados en aplicaciones de seguridad. Mientras muchas herramientas se usan para ambos perfiles, existen algunas diferencias. Por ejemplo, Simple Profile soporta I- y P- VOPs (frames), mientras que Advanced Simple Profile soporta los frames I-, B- y P-VOPs. Otra diferencia entre el Simple y el Advanced Profile es el soporte a rangos de resoluciones y

a diferentes consumos de ancho de banda, especificados en un diferente Level. Mientras que el Simple Profile alcanza resoluciones hasta CIF (352x288 píxeles en PAL) y precisa un ancho de banda de 384 kbit/segundo (en el nivel L3), Advanced Simple Profile consigue la resolución 4CIF (704x480 píxeles en PAL) a 8000 kbit/segundo (en el nivel L5).

 

 

MPEG-4 Short header y long header: “MPEG-4 short header” no es más que un método de compresión H.263 encapsulado con cabeceras de transmisión de vídeo MPEG-4.

MPEG-4 short header no aprovecha ninguna de las herramientas adicionales especificadas en el estándar MPEG-4. MPEG-4 short header está solo especificado para asegurar compatibilidad con equipos antiguos que emplean la recomendación H.263, diseñada para videoconferencia sobre RDSI y LAN. De forma práctica, el MPEG-4 short header es idéntico a la codificación/decodificación H.263, que da un nivel de calidad menor que MPEG-2 y MPEG-4 a un ratio de bis determinado.

La calidad de la imagen y del vídeo en “short header” no está cercana a la del MPEG-4 real, dado que no hace uso de las técnicas que permiten filtrar información de la imagen que no es visible por el ojo humano. Tampoco usa métodos como la predicción DC y AC que pueden reducir de forma significativa las necesidades de ancho de banda.

Para clarificar una especificación de un sistema de distribución de vídeo, el soporte a MPEG-4 a veces se denomina como “MPEG-4 long header” que en otras palabras es el método en el que se emplean las herramientas de compresión propias de MPEG-4.

 

 

MPEG-4 parte 10 (AVC, Control de Vídeo Avanzado) MPEG-4 AVC, al que también se refiere como H.264 es un desarrollo posterior en el que MPEG tiene un conjunto completamente nuevo de herramientas que incorporan técnicas más avanzadas de compresión para reducir aun más el consumo de ancho de banda en la transmisión con una calidad de imagen determinada. Pese a ser más complejo añade también requerimientos de rendimiento y costes, especialmente para el codificador, al sistema de transmisión de vídeo en red. MPEG-4 AVC no se tratará en este documento.

 

 

Constant bit-rate (CBR) y Variable bit-rate (VBR) otro aspecto importante de MPEG es el modo en el que se usa el ancho de banda disponible. En la mayoría de los sistemas MPEG es posible seleccionar si el ratio de bits debe ejecutarse en modo CBR (constante) o VBR (variable). La selección óptima depende de la aplicación y de la infraestructura de red disponible.

Con la única limitación del ancho de banda disponible el modo preferido es normalmente CBR, dado que este modo consume un ancho de banda constante en la transmisión. La desventaja es que la calidad de la imagen variará y, aunque se mantendrá relativamente alta cuando no hay movimiento en la escena, la calidad bajará significativamente cuando aumente el movimiento.

El modo VBR, por otra parte, mantendrá una alta calidad de imagen, si así se define, sin tener en cuenta si hay movimiento o no en la escena. Esto es a menudo deseable en aplicaciones de seguridad y vigilancia en las que hay la necesidad de una alta calidad, especialmente si no hay movimiento en la escena. Dado que el consumo de ancho de banda puede variar, incluso si se define una media de ratio de bits objetivo, la infraestructura de red (el ancho de banda disponible) necesitará tener esta capacidad para un sistema de este tipo.

 

 

Posicionamiento de MPEG-1, MPEG-2 y MPEG-4

La ilustración de debajo muestra que el espectro de MPEG-4 es mucho más amplio en relación a MPEG-1 y MPEG-2 que fueron desarrollados para aplicaciones más específicas. Mientras MPEG-1 fue desarrollado para vídeo digital en CD-ROM, MPEG-2 fue desarrollado con el DVD y la televisión de alta definición en mente. MPEG-4 por otro lado no está dirigido a aplicaciones específicas y puede ser apropiado para aplicaciones de animación o para teléfonos móviles.

 

 

 

 

 

Otros formatos como el MPEG-7 y el MPEG-21 están en la actualidad en pleno desarrollo. Con ellos se pretende generar potentes bases de datos capaces de gestionar e introducir técnicas de acceso condicional a contenidos multimedia Actualmente este formato se ha hecho muy popular en Internet aunque tan solo se esté utilizando una mínima parte de su potencial (teniendo en cuenta los elevados factores de compresión que es capaz de soportar) con unos resultados visuales muy satisfactorios. Uno de los codecs que basa su compresión en algunos de los parámetros definidos en el estándar es el conocido DivX: en este caso se considera toda la imagen como un único objeto rectangular.

 

 

 

 

CONCLUSIONES

 

                   A pesar que con el paso del tiempo y el avance vertiginoso de la tecnología, los algoritmos de compresión de video no pueden dar solución única a todos los casos posibles en que se requiere su aplicación, además de tener que incurrir en un costo en la mayoría de los casos; las aplicaciones en la que se requieren van desde la producción y difusión de televisión digital hasta la gestión de datos multimedia, pasando por utilidades interactivas como pueden ser la videoconferencia a través de telefonía móvil, vigilancia por Internet o la recepción de televisión en una PALM.

                   Por todas las características desarrolladas en el presente trabajo es claro que la mayor utilización es de algoritmos con pérdida con la tendencia aunque no es tan masivo aún, de utilizar por su transversalidad de aplicaciones, el estándar MPEG-4 en algunas de sus formas. Aunque también se está tendiendo a usar algoritmos que no sean tan rígidos y de libre acceso, como es el caso de Ogg-Theora de video junto a Ogg-Vorbis de audio.

 

 

 

Referencias

1.      http://www.uoc.edu/mosaic/articulos/xavierbonet0804.html

2.      http://es.wikipedia.org/wiki/Algoritmo_de_compresi%C3%B3n_con_p%C3%A9rdida

3.      http://www.axis.com/es/documentacion/compresion_video_es.pdf

4.      http://www.monografias.com/trabajos10/vire/vire.shtml

5.     http://www.axis.com/es/seguridad/compresion.htm