compresión de vídeo ab.uclm.es/asignaturas/42609/te ma4/sld035.htm

35
Compresión de vídeo http :// www.info - ab.uclm.es /asignaturas/42609/Tema4/ sld035. htm

Upload: ramona-grullon

Post on 12-Jan-2015

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 2: Compresión de vídeo  ab.uclm.es/asignaturas/42609/Te ma4/sld035.htm

Estándares MPEG• Motion Pictures Expert Group• Estándar ISO/IEC JTC1/SC29/WG11• MPEG 1:

– El primer trabajo del grupo, iniciado en 1988 se concentró en la compresión de vídeo con velocidades bajas y adecuadas a dispositivos de almacenamiento tales como CD-ROM y transmisión a 1,554 y 2,048 Mbits/s

• MPEG 2– Método de codificación de señales audiovisuales para proporcionar una

buena calidad sobre la base de la norma de televisión digital 601 del CCIR.

• MPEG 4– Desarrollado para aplicaciones de comunicaciones multimedia a muy

bajo caudal, en las cuales se requiere la comunicación de información audiovisual.

• MPEG 7– Se basa en la realización de bases de datos de información multimedia

que permitan la búsqueda de imágenes utilizando características como su color, textura o información de su forma o contorno de los objetos.

Page 3: Compresión de vídeo  ab.uclm.es/asignaturas/42609/Te ma4/sld035.htm

MPEG 1

• Estuvo basado inicialmente en el trabajo del grupo de expertos del ITU para videotelefonía y en el estándar H.261

• Para aumentar el factor de compresión, MPEG introdujo el concepto de predicción bidireccional, que consiste en el almacenamiento de imágenes pasadas y futuras para la predicción del cuadro (frame) presente.

• Para conseguir esto, los cuadros en el flujo de bits codificado deben estar en orden diferente al orden de visionado. Esto fuerza la creación de la estructura llamada Grupo de cuadros (GOP).

Page 4: Compresión de vídeo  ab.uclm.es/asignaturas/42609/Te ma4/sld035.htm

MPEG 1

• El conjunto de objetivos establecido para MPEG 1 fue el siguiente:– Acceso aleatorio– Búsqueda rápida/rebobinado rápido– Visionado inverso– Sincronización audiovisual– Robustez frente a errores– Retardo de codificación/descodificación– Editabilidad– Compatibilidad de formatos– Costes

Page 5: Compresión de vídeo  ab.uclm.es/asignaturas/42609/Te ma4/sld035.htm

MPEG 1: Características• Los requerimientos de capacidad de edición total y acceso aleatorio

condujeron a la introducción de cuadros codificados completamente como intra-cuadro, de forma periódica en el flujo de bits codificado.

• La codificación de estos cuadros con codificación intra-cuadro se basó en gran parte en el estándar JPEG. Para compensar la reducción del factor de compresión, debido a la introducción periódica de imágenes intra-codificadas, se introdujo la predicción bidireccional.

• El estándar fue finalmente diseñado para conseguir compresiones óptimas en el rango entre 1 y 1.5 Mbps, para secuencias de vídeo progresivo en color (MPEG 1 no soporta vídeo entrelazado), tanto para sistemas NTSc como PAL, con formato de muestreo 4:2:0 y un espacio de colores YCbCr.

• Para este formato de entrada, el factor de compresión alcanzado por el estándar MPEG 1 es de 26:1 aproximadamente.

Page 6: Compresión de vídeo  ab.uclm.es/asignaturas/42609/Te ma4/sld035.htm
Page 7: Compresión de vídeo  ab.uclm.es/asignaturas/42609/Te ma4/sld035.htm

MPEG 1: Parámetros restringidos

• El conjunto de parámetros restringidos del flujo de bits que como mínimo debe soportar cada descodificador compatible con MPEG 1 son:

Parámetros Valor máximo

Tamaño horizontal 768 píxeles

Tamaño vertical 576 líneas

Número macrobloques

396

Caudal de píxeles 396x25 MB/s

Caudal de cuadros 30 cuadros/s

Rango de los vectores de movimiento

± 64 píxeles

Tamaño del buffer de entrada

327.680 bits

Caudal de bits 1.856 kbits/s

Page 8: Compresión de vídeo  ab.uclm.es/asignaturas/42609/Te ma4/sld035.htm

MPEG-1 Residuo de movimiento compensado

• Con el método de compensación de movimiento, se crea una imagen de predicción con la imagen actual, o nueva, y la imagen precedente (ya codificada y en memoria) mediante la estimación del movimiento entre las dos imágenes y una compensación para el movimiento.

• La diferencia entre la imagen actual y la predicción que se ha hecho para esta imagen actual es lo que se llama residuo de movimiento compensado.

• En una secuencia típica de vídeo, este residuo, contendrá valores muy pequeños y próximos a cero, que se codificarán con unos pocos bits.

• Para la estimación del movimiento se supone que en las imágenes de vídeo consecutivas, aparecen los mismos componentes de la escena aunque posiblemente en diferentes posiciones (movimiento traslación).

Page 9: Compresión de vídeo  ab.uclm.es/asignaturas/42609/Te ma4/sld035.htm
Page 10: Compresión de vídeo  ab.uclm.es/asignaturas/42609/Te ma4/sld035.htm
Page 11: Compresión de vídeo  ab.uclm.es/asignaturas/42609/Te ma4/sld035.htm

MPEG 1: Predicción bidireccional• La predicción bidireccional realiza el proceso de

estimación de movimiento dos veces:– Una en una imagen pasada – Y otra en una imagen futura, – De forma que obtiene dos vectores de movimiento

y dos predicciones para cada macrobloque.• El codificador puede obtener el residuo de

movimiento compensado utilizando:– Cualquiera de las dos predicciones (pasada o futura) – O un promedio de ellas, eligiendo la estimación mas

eficiente de las tres.• En la terminología MPEG, este proceso es

referido como codificación intercuadro bidireccional o interpolada.

Page 12: Compresión de vídeo  ab.uclm.es/asignaturas/42609/Te ma4/sld035.htm
Page 13: Compresión de vídeo  ab.uclm.es/asignaturas/42609/Te ma4/sld035.htm

MPEG 1: Predicción bidireccional

• Cuando la compensación es hacia delante o hacia atrás, sólo se genera un vector de movimiento.

• Cuando la compensación es interpolada se generan dos vectores de movimiento, uno para cada cuadro de referencia pasado y futuro.

• Tanto si se genera uno como si se generan dos, estos son codificados diferencialmente con respecto a los vectores de movimiento del macrobloque anterior.

• Posteriormente se les aplica una codificación Huffman para ser transmitidos o almacenados junto al residuo, para este macrobloque.

Page 14: Compresión de vídeo  ab.uclm.es/asignaturas/42609/Te ma4/sld035.htm

MPEG 1: Tipos de cuadros

• Cuadros I (Intra)– Utilizan únicamente información contenida en el propio cuadro y no

dependen de la información de otros cuadros (codificación intra-cuadro).

– Los cuadros I proporcionan un mecanismo para el acceso aleatorio al flujo de bits de vídeo comprimido pero proporcionan solamente una moderada compresión.

• Cuadros P (Predicted)– Utilizan para la codificación, la información contenida en el cuadro

previo, I o P, mas próximo (codificación intercuadro).– A esta técnica se le conoce como predicción hacia delante y

proporciona un mayor grado de compresión.

• Cuadros B (Bidirectional o Interpolated)– Utilizan la información contenida en los cuadros pasado y futuro, I o P,

mas próximos.– A esta técnica se le conoce como predicción bidireccional o interpolada

y proporciona el mayor grado de compresión.– Estos cuadros no propagan errores ya que nunca se utilizan como

referencia, al contrario que las imágenes I y P.

Page 15: Compresión de vídeo  ab.uclm.es/asignaturas/42609/Te ma4/sld035.htm
Page 16: Compresión de vídeo  ab.uclm.es/asignaturas/42609/Te ma4/sld035.htm
Page 17: Compresión de vídeo  ab.uclm.es/asignaturas/42609/Te ma4/sld035.htm
Page 18: Compresión de vídeo  ab.uclm.es/asignaturas/42609/Te ma4/sld035.htm

MPEG 1: Estructura de capas• La estructura está definida para hacer del flujo de bits

una secuencia de entidades individuales entre sí.• Cada capa tiene una cabecera con información,

seguida de un número de elementos de la siguiente capa:– Así, cada secuencia es precedida de una cabecera de

secuencia seguida de un número de GOPs, y por último una marca de fin de secuencia.

– Cada GOP es precedido por una cabecera de inicio de GOP, y después por un número de cuadros.

– Cada cuadro a su vez se descompone en un número de franjas – Cada franja por un número de macrobloques. – Finalmente, los macrobloques se dividen en varios bloques.

• Cada cabecera de inicio coincide con un código que está alineado al inicio de un byte para facilitar su detección, y que no se puede producir en ningún otro lugar durante la codificación.

Page 19: Compresión de vídeo  ab.uclm.es/asignaturas/42609/Te ma4/sld035.htm

MPEG 1: Estructura de capas

Capas Significado funcional

Secuencia de vídeo

Secuencia completa visible con un formato determinado

Grupo de cuadros

Unidad mínima independientemente descodificable

Cuadro Unidad primaria de display

Franja Unidad de sincronización. Permite re-sincronización ante errores

Macrobloque Unidad de compensación de movimiento

Bloque Unidad de transformada DCT

Page 20: Compresión de vídeo  ab.uclm.es/asignaturas/42609/Te ma4/sld035.htm

MPEG 1: Estructura de capas

Capa de secuencia• Define una secuencia completa de vídeo

codificada, como por ejemplo una película o un programa de TV.

• Los principales parámetros (sintaxis) que se pueden definir en la capa de secuencia son:– Las dimensiones (horizontal y vertical) de los cuadros– La razón de aspecto de los píxeles– La frecuencia de cuadro– Las matrices de cuantificación

Page 21: Compresión de vídeo  ab.uclm.es/asignaturas/42609/Te ma4/sld035.htm
Page 22: Compresión de vídeo  ab.uclm.es/asignaturas/42609/Te ma4/sld035.htm

MPEG 1: Estructura de capas Capa de Grupo de Cuadros (GOP)

• Un GOP debe empezar (en orden de presentación) con un cuadro B o I. En caso de éste último el GOP se denomina cerrado.

• Si el GOP no es cerrado entonces necesitará el último cuadro I o P del GOP anterior para ser descodificado correctamente.

• El estándar no define ningún método para elegir la estructura de GOP, pero en la mayoría de las aplicaciones, éste suele tener una longitud de 12 (PAL) o 15 (NTSC), y dos cuadros B entre cada par de cuadros I o P.

• Los parámetros (sintaxis) que se pueden definir en esta capa, son principalmente dos variables booleanas– Para indicar si el GOP es cerrado, – Y por otra para indicar si el GOP necesita el último cuadro I o P

del anterior GOP para descodificar el GOP actual.

Page 23: Compresión de vídeo  ab.uclm.es/asignaturas/42609/Te ma4/sld035.htm

MPEG 1: Estructura de capas

Capa de cuadro• La capa de cuadro tiene toda la información

necesaria para formar una imagen.• Los parámetros (sintaxis) que se pueden definir

en la cabecera de esta capa son:– La referencia temporal del cuadro.– El tipo de codificación (I, P o B)– El rango de los vectores de movimiento entre otros

parámetros.

Page 24: Compresión de vídeo  ab.uclm.es/asignaturas/42609/Te ma4/sld035.htm

MPEG 1: Estructura de capas

Capa de franja• Esta capa que es innecesaria por si misma para el

correcto funcionamiento del codificador, permite hacer al sistema mas robusto frente a errores.

• En el comienzo de cada una de las franjas, las predicciones para los vectores de movimiento y el coeficiente de continua (DC) de los bloques intra (se codifican diferencialmente) son puestos a cero.

• La cabecera de franja permite al descodificador resincronizarse ante un error en la transmisión o en la descodificación, perdiendo parcialmente la franja donde se produjo el error en la descodificación, desde el error hasta la siguiente cabecera de franja, pero no el cuadro entero.

Page 25: Compresión de vídeo  ab.uclm.es/asignaturas/42609/Te ma4/sld035.htm

MPEG 1: Estructura de capasCapa de franja

• El tamaño horizontal (de izquierda a derecha y de arriba abajo) de las franjas puede ser cualquiera, siendo el tamaño elegido en la mayoría de las aplicaciones una franja horizontal completa.

• El tamaño vertical es siempre de 16 píxeles, puesto que una franja está compuesta de una serie macrobloques y estos son de 16 x 16 píxeles.

• Los parámetros (sintaxis) que se definen en la cabecera de franja son:– La posición de la franja dentro del cuadro.– El factor de escala para la cuantificación (entre 1 y 31), lo que

más tarde llamaremos factor de escala Q de cuantificación o MQUANT. Este factor se pueden definir a este nivel o a nivel de macrobloque.

Page 26: Compresión de vídeo  ab.uclm.es/asignaturas/42609/Te ma4/sld035.htm

MPEG 1: Estructura de capasCapa de Macrobloque (MB)

• El MB es la unidad básica de compensación del movimiento. Los vectores de movimiento y el residuo de movimiento compensado, son obtenidos en el codificador en el módulo de estimación de movimiento.

• Cada MB está formado por:– cuatro bloques de luminancia – y 2 de crominancia.

• Algunos de los parámetros (sintaxis) más importantes de la capa MB son:– La posición de MB en la franja– El factor de escala Q de cuantificación (MQUANT)– El patrón de codificación de los bloques del MB.– El tipo de MB.– Los vectores de movimiento para el MB.

Page 27: Compresión de vídeo  ab.uclm.es/asignaturas/42609/Te ma4/sld035.htm

MPEG 1: Estructura de capasCapa de Macrobloque

• La sintaxis de MPEG-1 permite a cada MB ser codificado utilizando diferentes factores de escala Q de cuantificación.

• Este factor es variado por el codificador, entre 31 niveles (desde 1 a 31) acorde al estado de ocupación del buffer de salida, para que éste pueda ser drenado al caudal constante, sin que se quede vacío o se desborde.

• Hay varios tipos de codificación de los MB para un tipo de cuadro determinado:– De acuerdo con la forma en que se realizó la compensación de

movimiento, si es que la hubo, – Si tienen un nuevo valor de MQUANT para la cuantificación – O si los bloques van codificados o no,

Page 28: Compresión de vídeo  ab.uclm.es/asignaturas/42609/Te ma4/sld035.htm
Page 29: Compresión de vídeo  ab.uclm.es/asignaturas/42609/Te ma4/sld035.htm

MPEG 1: Estructura de capasCapa de Bloque

• Un bloque es una matriz de 8 x 8 valores que contienen:– O bien valores de píxeles del cuadro, tal cual, si pertenece a un MB que se

decidió que fuese Intra-codificado, – O bien valores del residuo del movimiento compensado si se decidió que fuese

Inter-codificado.• Sobre estos bloques que todavía presentan redundancia espacial, se

aplicara:– DCT– Cuantificación– zig-zag– RLE.

• Hay dos tipos de matrices de cuantificación, – una para bloques intra-codificados – y otra para bloques inter-codificados; estas fueron definidas en la capa de

secuencia.• Estas matrices son diferentes porque:

– los bloques intra contienen valores de la imagen (cuantificación con menor precisión acorde a las características psicovisuales del ojo humano),

– mientras que los bloques inter contienen residuos de movimiento compensado.

Page 30: Compresión de vídeo  ab.uclm.es/asignaturas/42609/Te ma4/sld035.htm

MPEG 1: Estructura de capasCapa de Bloque: Bloques Intra

• El coeficiente DC: se cuantifica de forma diferente a como lo hacen los coeficientes AC. El coeficiente DC es cuantificado dividiéndolo por un valor de cuantificación 8 y redondeado después al entero mas próximo.

• Para los coeficientes AC la cuantificación se realiza mediante la utilización del coeficiente MQUANT y redondeando después al entero mas próximo.

Page 31: Compresión de vídeo  ab.uclm.es/asignaturas/42609/Te ma4/sld035.htm

MPEG 1: Estructura de capasCapa de Bloque: Bloques Intra

• En los bloques intra, el coeficiente DC se trata de manera diferente al resto; este coeficiente se codifica diferencialmente con respecto al coeficiente DC del bloque anterior.

• Este valor que puede estar en el rango [-2047,2047], es codificado mediante un par tamaño/amplitud donde el tamaño indica una de las 12 categorías en que se divide el rango, que a su vez significa el número de bits necesario para codificar la amplitud.

• El tamaño es codificado mediante código Huffman, mientras que la amplitud es la representación binaria del valor diferencial.

• El resto de coeficientes AC se ordenan en zig-zag y se aplica la codificación por entropía.

Page 32: Compresión de vídeo  ab.uclm.es/asignaturas/42609/Te ma4/sld035.htm

MPEG-1: Estructura de capasCapa de bloque: Inter

•Tanto los coeficientes AC como el DC se cuantifican de la misma manera; utilizando el coeficiente MQUANT.•Para el caso de los bloques inter, tanto el coeficiente DC como los coeficientes AC se codifican igual, se ordenan en zig-zag y se les aplica Huffman.

Page 33: Compresión de vídeo  ab.uclm.es/asignaturas/42609/Te ma4/sld035.htm
Page 34: Compresión de vídeo  ab.uclm.es/asignaturas/42609/Te ma4/sld035.htm

MPEG-1: Detalles• Cuando se emplea la codificación de entropía,

– las palabras del código son de longitud variable en función de la estructura del vídeo

– es decir, la velocidad binaria no es constante.• Si se pretende que la salida del codificador sea un flujo de

bits constante, es necesario intercalar un buffer, para que el flujo de bits se transmita a una velocidad constante, acorde al canal que se vaya a utilizar.

• Para evitar que el buffer se sature o se vacíe, mediante un bucle de control se envían datos al cuantificador para que éste varíe su MQUANT a nivel de Macrobloque.

• Si la velocidad binaria disminuye apreciablemente, la codificación puede hacerse mas precisa para aumentarla, lo cual se consigue disminuyendo el valor de MQUANT. Si por el contrario, el buffer está cerca de su capacidad máxima, se dan instrucciones al cuantificador para que éste codifique los valores con menor precisión, lo cual se consigue aumentando el valor MQUANT.

Page 35: Compresión de vídeo  ab.uclm.es/asignaturas/42609/Te ma4/sld035.htm

MPEG-1: Detalles• El descodificador es simplemente el lazo de realimentación del

codificador, salvo que no incorpora el módulo de la estimación del movimiento (el mas costoso computacionalmente), por no serle necesario.

• A la salida se sitúa un buffer para reordenar los cuadros en el orden de presentación acorde a la referencia temporal transportada en el cuadro.

• Por último hay que hacer notar que el par codificador/descodificador es un par asimétrico.

• El precio del coste del codificador, será mucho mas elevado ya que requerirá sistemas basados en hardware más potente, mientras que el precio del descodificador será asequible para la mayoría del público.

• En aplicaciones VOD o televisión digital, harán falta: unos pocos codificadores (grandes compañías que ofrecen estos servicios), y muchos descodificadores de precio asequible (público).