MPEG EL VÍDEO 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/vídeo
para su almacenamiento o transmisión. 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 creo el M-JPEG
del que hablaremos en el próximo articulo.
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 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/compresión y de
velocidad de transferencia (bitrate). Se trata por tanto de un
sistema versátil que permite la reproducción de vídeo
con una buena relación calidad / transferencia, por ejemplo en
CD-I obtenemos una calidad de vídeo 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 vídeo 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 vídeo puede ocupar 1 Gigabyte perfectamente, lo cual puede ser difícil cuando la mayoria de los videos son de mas de sesenta segundos. 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 Vídeo
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, Vídeo 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 vídeo.
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.
¿ 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 vídeo digital.
¿ Que compresiones se
obtienen ?
Con una calidad aceptable desde
50:1
se puede hablar de calidad broadcast
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 vídeo
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 vídeo 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 vídeo
que intercambian emisoras de TV se hacen en formato MPEG-1 o MPEG-2.
También podemos encontrar vídeos en CD y Internet
en este formato.
¿ Es mejor que el Vídeo
para Windows (VFW)?
El MPEG Estándar PAL
esta diseñado para reproducir vídeo 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.
|