Compresion video paper

8

Click here to load reader

description

Paper sobre compresión de video. Funcionamiento de los compresores de video

Transcript of Compresion video paper

Page 1: Compresion video paper

Fundamentos de la compresión de vídeo

En términos de la teoría de Shannon existen dos grupos principales de algoritmos de

compresión, tales como:

1. Compresión sin pérdida (lossless). Estos algoritmos tienen por objetivo

reconstruir la información original fielmente al descomprimir el archivo, sin una sola

pérdida de datos. La reducción del tamaño del archivo es menor si se compara con otros

esquemas de compresión, siendo el nivel de compresión muy cercano al valor H definido

por Shannon, quien también estableció cinco órdenes de H, caracterizadas por la naturaleza

de la información y la probabilidad de ocurrencia de un carácter en función de los demás.

De esta forma, en el Modelo de Orden Cero en la teoría de Shannon, los caracteres son

estadísticamente independientes unos de otros, y cada símbolo o letra es igualmente

probable de aparecer en un archivo. Para idiomas como el castellano, los archivos de texto

que se compriman en un Orden Cero de la variable H tendrán el siguiente valor:

H = log2 m bits/character

Siendo m el total de caracteres y o símbolos posibles. Por ejemplo: para m=27, H

tiene un valor de 4.75 bits por cada carácter. Las compresiones de Orden Cinco llegan a

niveles H de 2.33 bits por carácter, como es el caso de los archivos de texto.

2. Compresión con poca pérdida (lossy). Con estos programas se elimina lo que se

consideran bits innecesarios, creando una aproximación matemáticamente suficiente. Se

usan en la compresión de imágenes, donde una excesiva cantidad de datos que representen

colores y tonalidades no siempre es necesaria para una buena visualización. Estos esquemas

de compresión se apoyan en el análisis de la distorsión, una entidad matemática que define

puntualmente qué tan cercana es la aproximación al original. La videoconferencia y la

audioconferencia, así como los archivos MP3 de audio o los MPEG-4 de video son buenos

ejemplos de compresiones con pérdida, ya que al momento de descomprimir la información

no se tienen todos los datos originales, lo que explica imágenes “cuadriculadas” y pistas de

audio con menos fidelidad.

HISTORIA DEL MPEG (Moving Pictures Experts Group)

En el año 1987, Leonardo Chiariglione, quien había pertenecido al grupo CCIR

(International Radio Consultative Committee) encargado de la estandarización de la

Televisión de Alta Definición, High Definition Television (HDTV); y desilusionado del

fracaso en adoptar un único estándar internacional (Japón, Europa y Estados Unidos

pugnaban por su propio formato), asistía al encuentro del JPEG (Joint Pictures Experts

Group, Grupo Unido de Expertos en Imágenes). Este grupo había sido formado por la

Page 2: Compresion video paper

Organización de Estándares Internacionales ISO y por la Comisión Electrotécnica

Internacional IEC para formular un estándar que permitiera disminuir la cantidad de

espacio de almacenamiento requerido para las imágenes fijas.

En este encuentro, Chiariglione quedó profundamente impresionado

por lo que se podía lograr entre un grupo de expertos cuando no se

manejaban los intereses de ninguna industria. Así que se aproximó al

Director del JPEG, Hiroshi Yoshuda, y sugirió la creación de un grupo

sucesor, que se encargara de estandarizar la codificación digital de las

imágenes en movimiento.

De esta manera, en 1988 y con Yoshuda como

representante ante la ISO, la organización ISO/IEC crea

el Comité Técnico Unido sobre Tecnologías de la

Información, Subcomité 29, Grupo de Trabajo 11

(ISO/IEC JTC1/SC29/WG11), más conocido como

MPEG, bajo la dirección de Chiariglione, encargándole

el desarrollo de estándares para la representación

codificada de imágenes en movimiento, la información

del audio asociado, y su combinación para la grabación

y lectura en un medio de almacenamiento digital.

Los estándares MPEG se desarrollan en fases numeradas, por lo que la

especificación MPEG-2 no es una sustitución de MPEG-1 sino una ampliación o

complemento del mismo. Lo que se conoce por "layers", son especificaciones de una

familia de algoritmos de codificación para un mismo estándar. Para las señales de audio

MPEG ha definido los estándares MPEG-1, MPEG-2, MPEG-4 y MPEG-7

Redundancia

Principios de codificación Una secuencia de vídeo tiene tres tipos de redundancia que un esquema de

codificación necesita explotar en orden de conseguir una muy buena compresión:

• Espacial

• Temporal

• Psicovisual

Las redundancias espaciales y temporales ocurren porque los valores de los pixels no

son completamente independientes si no que están correlacionados con los valores de los

pixels vecinos, tanto en espacio como en tiempo (es decir, dentro de una misma trama o con

las tramas anterior y/o posterior). Por ello diremos que sus valores pueden ser predichos en

cierta medida. Por otra parte, la redundancia psicovisual tiene que ver con las limitaciones

Page 3: Compresion video paper

físicas del ojo humano, que tiene una limitada respuesta para fijarse en los detalles

espaciales y es menos sensitivo al distinguir detalles en las esquinas o los cambios rápidos.

Por tanto, el proceso de codificación puede ser capaz de minimizar el bit-rate

mientras se mantiene constante la calidad a la que el ojo humano ve la imagen

decodificada.

• Las imágenes I: Se codifican como si fuesen imágenes fijas utilizando la norma

JPEG, por tanto, para decodificar una imagen de este tipo no hacen falta otras

imágenes de la secuencia, sino sólo ella misma. No se considera la redundancia

temporal (compresión intraframe). Se consigue una moderada compresión

explotando únicamente la redundancia espacial. Una imagen I siempre es un punto

de acceso en el flujo de bits de vídeo. Son las imágenes más grandes.

• Las imágenes P: Están codificadas como predicción de de la imagen I ó P anterior

usando un mecanismo de compensación de movimiento. Para decodificar una

imagen de este tipo se necesita, además de ella misma, la I ó P anterior. El proceso

de codificación aquí explota tanto la redundancia espacial como la temporal.

• Las imágenes B: Se codifican utilizando la I ó P anterior y la I ó P siguiente como

referencia para la compensación y estimación de movimiento. Para decodificarlas

hacen falta, además de ellas mismas, la I ó P anterior y la I ó P siguiente. éstas

imágenes consiguen los niveles de compresión más elevados y por tanto son las más

pequeñas.

• Existen otro tipo de imágenes llamadas imágenes intraframe de baja resolución (o

imágenes D) que son de las mismas características que las I pero con menos

resolución. Se usan en aplicaciones que no necesitan gran calidad, como el avance

rápido.

Las imágenes desde una imagen I hasta la siguiente forman un grupo

de imagenes (GOP).

Page 4: Compresion video paper

Tipos de imágenes (I, P, B) Transmitir o almacenar directamente una secuencia de video requiere mucho ancho de

banda o espacio. Para resolver este problema se utilizan algoritmos de compresión.

Podemos comprimir todas las imágenes uno a uno (por ejemplo con JPEG) para luego

poder escoger cualquiera de ellas y descodificarlas para su visualización. Este sistema se

denomina intra-frame. La desventaja de este sistema es que no contempla la compresión

con respecto al tiempo, como puede ser la redundancia entre fotogramas consecutivos. Para

solucionar este problema se escoge una imagen de referencia y se almacenan solo las

variaciones con respecto a este fotograma anterior, posterior o ambos, lo que se llama

compresión referencial.

Ya que en una secuencia referencial demasiado larga la imagen quedaría demasiado

degenerada, se van intercalando imágenes independientes cada cierto número de

fotogramas referenciales.

En la compresión de vídeo MPEG, las imágenes resultantes se pueden clasificar en tres

tipos:

• Tipo I , se comprimen independientemente, el algoritmo de compresión suele ser

JPEG o parecido

• Tipo P, son predichas por extrapolación de una imagen anterior

• Tipo B , son predichas por interpolación de dos fotogramas distintos.

En estos métodos se empieza codificando un fotograma de forma independiente

denominado keyframe que sera del tipo I. A continuación las siguientes imágenes de tipo P

y B se codifican de forma referencial, reduciendo así la información a almacenar. Para esto

las imágenes se dividen en macrobloques, generalmente de 8x8 o 16x16 bits, para cada

bloque se busca su posición en el frame de referencia y se define un vector de movimiento

que nos sirve para obtener la posición del macrobloque a partir del fotograma de referencia.

Como los macrobloques no suelen ser exactamente idénticos se utiliza un algoritmo de

comparación para determinar la similitud de los macrobloques.

En caso de que el macrobloque es practicamente idéntico al anterior y no se ha movido se

salta la codificación del macrobloque. Como el codificador no sabe exactamente el

resultado de las diferentes codificaciones, las va probando y elige la mejor opción en

función de los errores producidos. Si las diferencias son demasiado grandes los

macrobloques se codifican de forma independiente, sin referencia a otra imagen.

La diferencia de las imágenes referenciales B con respecto a las P es que se predicen a

partir de dos fotogramas distintos previamente descodificados, uno anterior y otro posterior.

Page 5: Compresion video paper

Para mantener un orden y poder descodificar las tramas adecuadamente, las imágenes se

agrupan en secuencias (GOP) determinadas:

Una vez recibida una secuencia, lo primero que se hace es decodificar las imágenes de

referencia, las de tipo I. Una vez obtenidas estas podremos predecir los fotogramas tipo

P

Después de decodificar las imágenes tipo P pasamos a las B que se obtienen interpolando

dos imágenes de referencia, de tipo I o P:

En estas secuencias, las imágenes de tipo I representan los puntos de acceso aleatorio desde

los que se puede comenzar a descodificar el video. Su grado de codificación suele ser bajo

y normalmente ocupan mas espacio que los fotogramas predichos P y B. Los fotogramas

obtenidos por referencia obtienen un mayor nivel de codificación a expensas de su acceso

inmediato, ya que necesitan de otras imágenes previamente descodificadas.

Los frames B nos permiten mejorar la relación de compresión, por ejemplo en un cambio

de escena los fotogramas B obtienen una imagen intermedia entre el fotograma anterior y

posterior del cambio, reduciendo así el error con respecto a las predicciones tipo P.

Page 6: Compresion video paper

GRUPOS DE IMÁGENES

Los fotogramas se agrupan en un Grupo de Imágenes o GOP (Group Of Pictures).

Se trata de la unidad de acceso aleatorio más pequeña. Un GOP está formado por:

� Un fotograma I (el primero).

� Uno o varios fotogramas P.

� Varios fotogramas B intercalados.

Usualmente en un GOP encontramos 12 fotogramas, pero el codificador puede

cambiarlo dinámicamente. En el caso de detectar un cambio de escena, forzará un

fotograma I que dará inicio a un nuevo GOP.

Dada esta agrupación un error producido en la predicción de un fotograma se

transfiere al resto de fotogramas pertenecientes a ese mismo GOP.

Teniendo en cuenta que para formar un fotograma P necesitamos un I y que para

formar los B necesitamos tener los I y los P, podemos ordenar la secuencia de fotogramas

desde dos puntos de vista diferentes:

� Orden de visualización: como lo ve el usuario.

� Orden de bitstream: como se generan los fotogramas.

En la siguiente tabla se ve el orden en que el usuario verá los fotogramas, junto con

el orden en el que son creados y enviados:

Orden de visualización I B B P B B P B B P B B I

1 2 3 4 5 6 7 8 9 10 11 12 13

Ordren de bitstream (transmisión) I P B B P B B P B B I B B

1 4 2 3 7 5 6 10 8 9 13 11 12

PREDICCIÓN POR COMPENSACIÓN DE MOVIMIENTO

Una secuencia de varios frames consecutivos tiene mucha información en común

que puede ser reducida. La compensación del movimiento es la técnica utilizada en la

codificación de vídeo, más concretamente en el formato MPEG, cuyo objetivo consiste en

eliminar la redundancia temporal que existe entre las imágenes que componen una

secuencia, con el fin de aumentar la compresión, es decir se basa en estimar el movimiento

entre cuadros sucesivos. Debemos tener en cuenta que esta técnica obtiene mejores

resultados en imágenes altamente correladas1.

1 Imágenes correladas: imágenes donde no encontramos cambios muy bruscos

Page 7: Compresion video paper

El algoritmo de esta técnica primero busca el macrobloque2 del cuadro a codificar

en el cuadro de referencia, aprovechando la correlación espacial (obtendríamos mejores

resultados si esta técnica se aplicara píxel a píxel pero es muy costoso). A continuación si

aparece el mismo macrobloque, se codifica el vector de movimiento correspondiente, pero

si no aparece el mismo se elige el más parecido y se codifica el vector de movimiento. Sin

embargo si no hay ningún bloque similar se codifica dicho macrobloque aprovechando

únicamente la redundancia espacial. Finalmente calculamos la imagen de error frame(t)-

frame(t)’.

El criterio de semejanza que se utiliza para decidir que macrobloque es el más

similar es el siguiente:

C(x+k, y+e)=conjunto de pixeles del macrobloque que intentamos generar.

R(x+k+u, y+e+v)=conjunto de pixeles de uno de los macrobloques del frame de

referencia.

u,v=parámetro del vector de movimiento. Debe estar en el rango [-p,p], p:limite

de la región donde se busca

M=tamaño del macrobloque (normalmente 16)

Se calcula la diferencia absoluta entre los macrobloques:

D(u,v)=(1/M)*∑∑abs(c(x+k)*R(x+k+u,y+e+v))

El algoritmo de búsqueda logarítmica divide el frame en dos áreas distintas: una

interior y otra exterior:

2 Macrobloque: trozo de imagen

Frame t

Frame t ±±±± n

Vector de

movimiento

K=0 e=0

(p,0) (-p,0)

(0,-p)

(0,p)

(p/2,0)

(0,p/2)

(0,-p/2)

(-p,0)

Page 8: Compresion video paper

A continuación realizamos nueve movimientos, nueve comparaciones y aplicando el

criterio de selección anterior escogemos el mas apropiado:

Por ùltimo se toma el más apropiado y se vuelve a realizar el proceso.

Esto normalmente se repite nueve veces.

Debemos tener en cuenta que no buscamos en toda la imagen solo en una zona

aproximada puesto que normalmente los movimientos suelen ser pequeños y una búsqueda

completa sería muy costosa. Sin embargo si es cierto que la región será más o menos

grande si los cambios entre los frames son mayores o menores, lo cual depende del tipo de

grabación. Por ejemplo en una grabación de una carrera la región debería ser más grande

puesto que los cambios son más rápidos.

Para escoger el frame donde buscaremos el macrobloque más parecido seguimos

distintos criterios dependiendo de que fotogramos queramos obtener, en caso de los

fotogramas P se aplica al fotograma más reciente I o P, sin embargo para predecir los

fotogramas B se aplica a los dos fotogramas más recientes en el pasado y en el futuro I o P.

Más concretamente dentro de la familia MPEG los formatos que utilizan la

compensación de movimiento para la predicción de fotogramas son: MPEG1, MPEG2,

MPEG4, MPEG7.