MPEG EL VIDEO DIGITAL POR EXCELENCIA



 
       Vamos a intentar desvelar los secretos del MPEG (Moving Pictures Experts Group) siglas de: Grupo de Expertos en Imagen en Movimiento. El MPEG es un sistema compacto y flexible para representar una señal de audio/video para su almacenamiento o transmisión. Por tanto, se trata de un formato final. Lo que quiere decir que el MPEG, por sus características particulares, no esta diseñado para ser editado aunque con determinadas herramientas esto sea posible. Con este fin se creó el M-JPEG del que hablaremos en el próximo artículo.

        El MPEG esta pensado para conseguir altos ratios de compresión manteniendo la máxima calidad posible. La perdida de calidad-datos en una secuencia MPEG esta estudiada atendiendo a la visión humana por lo que las principales perdidas se producen normalmente en los colores y elementos que el ojo aprecia con menos detalle. Este sistema cuenta con una sintaxis propia que le confiere una gran flexibilidad, ya que permite resoluciones de hasta 4096x4096 (MPEG-1), ajustes de calidad/compresion y de velocidad de transferencia (bitrate). Se trata por tanto de un sistema versátil que permite la reproducción de video con una buena relación calidad / transferencia, por ejemplo en CD-I obtenemos una calidad de video comparable al VHS a un a velocidad de transferencia de 150 Kbytes/Segundo y con sonido de alta calidad.
Esto hace del MPEG un complejo sistema de codificación por lo que no vamos a estudiarlo con todo detalle ya que necesitaríamos unos conocimientos profundos de matemáticas entre otras materias.

        Almacenar una secuencia de imágenes estáticas y luego reproducirlas a suficiente velocidad es lo que proporciona la sensación de “imagen en movimiento” de cualquier sistema de video o cine. Sabemos que almacenar 25 imágenes por segundo a alta resolución es una tarea que ocupa entre 10 y 20 Megabytes sin usar compresión. Esto supone que 1 minuto de video puede ocupar 1 Gigabyte perfectamente. Es necesario por tanto usar algún tipo de compresión. Podemos comprimir uno a uno cada frame, con lo que obtendríamos una secuencia de imágenes que pueden ser descomprimidas independientemente una de otra, es decir, podemos seleccionar cualquier frame al azar aplicar el algoritmo que hayamos usado y verlo. Esto seria un sistema Intra-frame. También podemos tomar una imagen de referencia y almacenar de la siguiente solo las variaciones  y así sucesivamente, con lo que obtenemos otro tipo de compresión “referencial”. Podemos combinar las opciones anteriores, aplicar un algoritmo con perdida de datos (como el usado en JPEG)  y obtener un sistema en el que se almacena una imagen inicial, se usa como referencia para generar las siguientes que se van degradando y cada diez imágenes referenciadas se añade una comprimida independientemente y se vuelve a usar como referencia para las diez siguientes...
        Muchos CODECs de Video para Windows funcionan mas o menos así, las imágenes de referencia son los llamados keyframes y al resto se les llama delta-frames.


 
 

¿ En que consiste ?
        El estándar MPEG1 tiene tres partes o capas: Sistema, Video y Audio. La capa del sistema  proporciona las funciones necesarias (es donde reside la sintaxis ante mencionada) para el uso de de la siguiente capa que es la que contiene los datos codificados. La codificación del audio en una secuencia MPEG no la vamos a tratar ya que lo que nos interesa es saber como consigue esa alta compresión en video.

        El algoritmo de codificación básico para MPEG1 utiliza 8x8 DCT, predicción intercuadros y compensación del movimiento y divide los frames en tres tipos I, P y B.

¿ Que es todo esto ?
        Comencemos por la predicción intercuadros. El primer paso es dividir la imagen en bloques (Macroblocks) de 16x16 pixels. A continuación se eliminan las redundancias que existen entre un frame y el siguiente, codificando por ejemplo la repetición de un macroblock en un frame con respecto al anterior, esto ocupa mucho menos que repetir el macroblock completo. Pero existen dos sistemas adicionales que utiliza el algoritmo de codificación MPEG, uno de ellos es la compensación de movimiento. Cuando un macroblock se repite en el frame siguiente pero no en la misma posición (por ejemplo debido a un movimiento de cámara), el sistema almacena un vector que indica a donde debe desplazarse el/los macroblocks al formar el siguiente cuadro. También utiliza un sistema de predicción de oclusión que reconoce cuando unas partes de la imagen cubren a otras debido a su desplazamiento (por ejemplo al moverse un personaje por un escenario fijo) y almacena referencias a estos datos. Por ultimo aplica 8x8 DCT (Transformada Discreta del Coseno) una formula matemática con la que podemos representar de una manera mas compacta funciones de ondas, es decir , imágenes. Las imágenes a las que se les aplica esta función son bloques de 8 por 8 pixels, de ahí 8x8 DCT.


Podemos ver claramente en la imagen de alta compresión JPEG los recuadros de 8x8 pixels.

¿ Como se organiza todo esto ?
        Se utilizan tres tipos de frames :
I: Este tipo de frame no hace referencia a ningún otro y utiliza únicamente 8x8 DCT se podría decir que es una imagen comprimida en JPEG. También llamado Intra-codificación.
P: En estos frames los macroblocks pueden estar codificados como en los I o hacer referencia (predicción intercuadro) al frame anterior.
B: Por ultimo en este tipo de frame los macroblocks pueden ser Intra-codificados, con referencia al  frame anterior al posterior o interpolado, es decir, formado a partir de un macroblock anterior y otro posterior.
        Estos tipos de frames se disponen en una patrón estándar al codificarse un archivo  MPEG que es : I BB P BB P BB P BB I
Esta secuencia puede ser alterada y de hecho algunos codificadores de altas prestaciones lo hacen, ya que examinan el tipo de imágenes a codificar y generan la secuencia mas adecuada.
        Finalmente se le aplica a los frames codificación Huffman (un sistema de compresión parecido al PKZIP) y listo. Aunque todo esto pueda parecer complejo, insistimos en que es una visión superficial de este excelente sistema de video digital.

¿ Que compresiones se obtienen ?
        Con una calidad aceptable desde 50:1
Se puede hablar de calidad broadcast (emisión de televisión comercial) en torno a 10:1

¿ Y el MPEG-2 ?
        MPEG-2 es una mejora del MPEG-1 que cubre las deficiencias que este tenía para el video entrelazado y añade algunos cambios. Se estima que tiene un incremento global de rendimiento con respecto al MPEG-1 de el entre el 10 y el 20 por ciento. El MPEG-2  es usado para Broadcast y es el sistema de video que incorporan los DVD.

¿ Para que se usa ?
        Como hemos dicho al principio para almacenamiento y transmisión. Tenemos multitud de casos prácticos: La televisión digital, tan en boga actualmente, transmite en MPEG-2. Gran parte de las transmisiones entre repetidores en televisión convencional también usa el MPEG-2. El VCD y el CD-I utilizan MPEG-1.
Numerosas noticias en video que intercambian emisoras de TV se hacen en formato MPEG-1 o MPEG-2. También podemos encontrar videos en CD y Internet en este formato.

 

¿ Es mejor que el Video para Windows (VFW)?
        El MPEG Estándar PAL esta diseñado para reproducir video a 25 frames por segundo a 352x288, con estos parámetros no existe ningún CODEC de VFW que consiga un ratio de compresión/calidad comparable.

Y por ultimo... ¿ Que hay mas allá del MPEG ?
Los sistemas de codificación mas avanzados que podría incorporar el MPEG en el futuro en lugar de el actual DCT  podrían ser el llamado “Wavelet” o el Fractal, ambos basados en avanzados sistemas matemáticos. Pero casi sin ninguna duda los receptores de Televisión Digital  de un futuro próximo incorporaran decodificadores MPEG-X.



NOTA DEL AUTOR: Cuando se escribió este articulo a finales de 1997 aún no estaba implantado el actual MPEG-4 que es sin duda el formato de video digital con mayor futuro. Extrañamente  muchos de estos videos en formato MPEG-4 tiene extension .AVI o .ASF. El próximo MPEG será el 7.

[VOLVER]