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
“ref erencial”.
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] |