|

TECNICAS DE COMPRESION PARA
VIDEO Y TELEVISION
(17 de marzo de 2004)
Por José Miguel
Fanjul Caudevilla
Principios generales
Las técnicas de compresión para televisión
y video digital hacen uso de dos procedimientos: reducción
de la redundancia espacial y reducción de la redundancia
temporal de las imágenes.
El tratamiento de las redundancias espaciales
consiste en la eliminación de información de
una imagen fija que no resulta perceptible por el ojo humano.
Es similar al conocido proceso de filtrado que se realiza
con las frecuencias de audio, por ejemplo en alta fidelidad.
Dado que el oído humano no distingue sonidos por encima
de unos 20 kHz (kilohertz) aproximadamente, pueden filtrarse
estas frecuencias antes de la grabación, resultando
en una disminución de la información almacenada
por unidad de tiempo. Lo mismo ocurre con una imagen, que
se compone de una serie de transiciones de color y luminosidad
entre píxeles contiguos en las dos dimensiones. Las
transiciones de color o luminosidad muy bruscas (equivalente
a una frecuencia espacial muy alta) desperdician mucha información,
dado que el sistema visual es incapaz de percibirlas. Al igual
que en el caso de las señales de audio, las frecuencias
espaciales pueden filtrarse a fin de disminuir la información
visual a almacenar por unidad de tiempo (“video bit
rate”). Para entenderlo mejor, imaginemos una imagen
patrón compuesta de un mosaico de cuadros blancos y
negros, tipo tablero de ajedrez. El efecto de filtrar las
frecuencias espaciales superiores de la imagen sería
el de suavizar las transiciones entre los cuadros blancos
y los negros. El efecto resulta apenas perceptible para el
ojo humano, pero permite un ahorro importante de información.
Filtrado espacial
Para el filtrado espacial se utiliza típicamente
la llamada “transformada discreta del coseno”
(su abreviatura en inglés es DCT), que transforma una
señal definida en el dominio del tiempo (señal
de video) en otra señal en el dominio de las frecuencias
espaciales. En primer lugar, los cuadros de imagen se subdividen
en bloques (matrices) de tamaño 8 x 8 píxeles.
A cada bloque se le aplica la transformada del coseno, obteniéndose
otra matriz de 8 x 8 cuyos coeficientes representan las frecuencias
espaciales (el tipo de transiciones entre píxeles)
del bloque. Los coeficientes de alta frecuencia de esta matriz
de frecuencias, (representativos de transiciones bruscas)
se eliminan, con el ahorro consiguiente de información.
El resto se codifica explotando su redundancia estadística,
por ejemplo utilizando códigos de longitud variable
(como los códigos de Huffman) para aumentar la compresión.
Para ello se asignan códigos de longitud corta a los
valores que aparecen más frecuentemente y códigos
más largos a los valores menos frecuentes.
Redundancia temporal
El tratamiento de las redundancias temporales
de la imagen se basa en codificar únicamente las partes
de ésta que cambian de un cuadro al siguiente. El ejemplo
típico es un partido de tenis en el que únicamente
cambia la parte de la imagen correspondiente a la pelota y
a los jugadores. Dado que el fondo es casi fijo, en teoría
bastaría codificarlo una sola vez al principio y concentrarse
únicamente en la información relativa a los
movimientos de la pelota y a los jugadores. De esta forma,
se produce un considerable ahorro de información al
codificarse únicamente un pequeño número
de los píxeles totales del cuadro.
En la práctica se procede de la forma
siguiente: el codificador estima el vector de movimiento,
o dicho de otra forma, calcula el desplazamiento de los objetos
definidos por medio de bloques de 16 x 16 píxeles (“macro
bloques”), analizando varias imágenes sucesivas.
A continuación, el codificador realiza una predicción
del cuadro siguiente a partir del actual y los vectores de
movimiento, es decir genera una imagen teórica a partir
de la anterior y de las predicciones de movimiento de los
objetos. Por ejemplo, en el caso del partido de tenis se generaría
una imagen en la que la bola se ubicaría en la posición
calculada a partir de sus vectores de movimiento. Por último,
se calcula la diferencia de contenido entre la imagen resultante
de la predicción y el contenido de la imagen real (en
nuestro ejemplo, la pelota de tenis podría haber cambiado
de forma a la vez que se ha movido, o simplemente, la predicción
de los vectores de velocidad no es exacta). Esta diferencia
se comprime como si fuera una imagen fija por medio de la
transformada del coseno y se almacena junto con los vectores
de movimiento para su utilización por el decodificador
durante el proceso de generación de la imagen.
Es evidente que cuanto más precisa
sea la predicción, existirán menos diferencias
entre la imagen teórica y la real, con lo que la información
a codificar disminuirá, aumentando la compresión
final para una misma calidad objetiva.
La norma de codificación
MPEG-2
Esta norma, utilizada en los discos DVD, la televisión
digital por cable, terrenal y por satélite, entre otras
aplicaciones, se basa en los procedimientos de compresión
descritos anteriormente. La norma especifica la sintaxis del
flujo de datos binarios que recibe el decodificador y a partir
del cual éste debe regenerar la imagen. Es decir, obliga
a formatear de una forma determinada los datos obtenidos al
aplicar los procedimientos de compresión, de tal manera
que puedan ser comprendidos y utilizados por cualquier tipo
de decodificador que se encuentre en los equipos reproductores.
Es interesante señalar que la norma
no prescribe cómo debe realizarse la codificación,
es decir, no se propone ningún mecanismo específico
para calcular los vectores de movimiento, o cómo adaptar
los coeficientes de la transformada del coseno de acuerdo
con el contenido de la imagen. Esto deja intencionadamente
un amplio espacio para la competencia entre los diseñadores
de codecs (codificadores – decodificadores ) de MPEG-2.
Así, dos codecs MPEG-2 diferentes serán siempre
compatibles porque comparten el formato de los datos que intercambian
y puede decirse que hablan el mismo lenguaje. Sin embargo
su calidad puede ser muy diferente. Por ejemplo, un algoritmo
deficiente para el cálculo de vectores de velocidad
dará lugar a un gran desperdicio de información,
al existir más diferencias de las debidas entre la
predicción de un cuadro (basada en los vectores de
velocidad) y el contenido real del mismo, como ya se ha explicado
anteriormente La disminución de información
útil por unidad de tiempo originará un pérdida
de calidad perfectamente perceptible durante la reproducción.
El procedimiento concreto de compresión
utilizado en MPEG-2 es una mejora del ya utilizado por su
predecesor en la norma MPEG-1, dedicada a codificación
de video de baja calidad. La secuencia a comprimir se divide
en grupos de imágenes. Cada uno de ellos está
formado por N imágenes, de las cuales la primera es
de tipo “I” (codificación “Intra
– imagen”, o imagen base). Las imágenes
números (M+1), (2M+1), etc., se predicen “hacia
delante”, a partir de la imagen “I” anterior
y se denominan “P”. Entre estos dos tipos “I”
y “P”, que se denominan “imágenes
ancla”, se intercalan el resto de las imágenes,
que pasan a denominarse imágenes “B” (bidireccionales,
como veremos a continuación). Así la secuencia
final de imágenes codificadas es la siguiente:
I B B P B B P B B P ..... I B B P B B P B
B P .... (para M=3)
La predicción de las imágenes
“B” se basa en el hecho de que una imagen cualquiera
guarda relación (matemáticamente se dice que
está “correlacionada”, o “correlada”)
tanto con las imágenes pasadas como con las futuras.
En consecuencia, el codificador puede utilizar imágenes
futuras en el proceso de predicción, lo que en algunos
casos da lugar a una predicción de mayor precisión,
con el consiguiente ahorro de información.
Imaginemos por ejemplo el caso de un único
objeto que, desplazándose de izquierda a derecha, pasa
por detrás de un árbol y vuelve a aparecer.
La predicción para la secuencia de movimientos comprendida
entre el inicio y la ocultación por el árbol
puede realizarse solamente “hacia delante”. Sin
embargo, para la secuencia comprendida entre la nueva aparición
por detrás del árbol y el final, es mucho más
útil la predicción a partir de imágenes
futuras (téngase en cuenta que se trata de un movimiento
simétrico en el tiempo con respecto a la primera de
las secuencias). El precio a pagar por esta mejora consiste
en la necesidad de una mayor velocidad y memoria en el decodificador,
problema hoy en día superado debido a las altas prestaciones
y bajo coste de los procesadores de señal y de los
microprocesadores utilizados en los ordenadores personales
y equipos de electrónica de consumo.
Perfiles y niveles
Dado que la norma MPEG-2 pretende cubrir
las necesidades de una gama muy amplia de aplicaciones, desde
televisión de alta definición hasta transmisión
de secuencias de video por Internet, se han establecido una
serie de perfiles y niveles de uso destinados a su optimización
para cada utilización específica.
Un perfil consiste en la limitación
a un subconjunto de los elementos de la norma que se consideran
suficientes para dar soporte a las características
de una aplicación específica. Algunos de los
perfiles definidos actualmente son: Simple (permite la realización
de decodificadores más sencillos), Principal (compatible
con la mayoría de las aplicaciones), SNR, Espacial
y Alto (permiten la escalabilidad y altas resoluciones en
la crominancia). Los niveles especifican los rangos que pueden
tomar parámetros tales como el tamaño de la
imagen, velocidad binaria final, etcétera.
José
Miguel es ingeniero de telecomunicación por la Universidad
Politécnica de Madrid. Hasta 1989 trabajó en
proyectos de I+D en el campo de radar y ESM en el grupo CESELSA,
hasta 1997 fue Jefe del Área de Normalización
Técnica en la Dirección General de Telecomunicaciones,
con participación en comités europeos en internacionales
de normalización (ETSI y UIT-T), y hasta 1999 fue Subdirector
de Redes y Servicios de la Comisión del Mercado de
las Telecomunicaciones. Actualmente trabaja en la Oficina
Europea de Patentes, con sede en Munich.

|