590 likes | 782 Views
Televisión y Multimedia. Compresión MPEG-2 Vídeo Tipos de Redundancia Herramientas de Compresión Sample Rate Reduction DCT Compensación de Movimiento Perfiles MPEG-2. Tipos de Redundancia. Compresión Sin Perdidas Con Perdidas La compresión explota la redundancia Redundancia Espacial
E N D
Televisión y Multimedia • Compresión MPEG-2 Vídeo • Tipos de Redundancia • Herramientas de Compresión • Sample Rate Reduction • DCT • Compensación de Movimiento • Perfiles MPEG-2
Tipos de Redundancia • Compresión • Sin Perdidas • Con Perdidas • La compresión explota la redundancia • Redundancia Espacial • Redundancia Temporal • Redundancia de Codificación o Entrópica (ej: MORSE) • Redundancia Psicovisual (ej: MP3)
Herramientas de Compresión • Sample Rate Reduction • 4:4:4, 4:2:2, 4:2:0… • DCT • Objetivo: Eliminar redundancia espacial • Utilizada en varias de las técnicas explotadas por MPEG-2 • Compensación de Movimiento • Objetivo: Eliminar redundancia temporal
Señales a Codificar Si codificamos cada una de las componentes RGB, las tres deberían codificarse con mucha calidad
Señales a Codificar • Se codifican otras tres señales relacionadas con ellas (luminancia y crominancia).
Estructura de Muestreo 4:2:2 De todos los píxeles se obtienen muestras de luminancia. De crominancia solo de la mitad de ellos.
Redundancia Espacial • DCT 8x8 • Cada coeficiente representa la contribución de una frecuencias horizontales y verticales a la imagen
DCT • La DCT no reduce directamente la cantidad de información a transmitir. De hecho, necesitaríamos una DCT con coeficientes de 11 bits para recuperar la imagen original… • La distribución no uniforme es debida a la redundancia espacial de la imagen • La compresión viene de transmitir los coeficientes de manera inteligente (cuantificación, Zig-Zag, Run-Lenght Code, VLC)
DCT Cuantificación • La anchura de los escalones cuánticos determina la precisión de la cuantificación Ejemplo: Escalón cuántico = 4 Coeficientes Cuantificación Índices Decuantificación Coeficientes Recuperados
DCT Cuantificación • Error de cuantificación menos notorio en • Altas Frecuencias • Crominancia • Matriz de Cuantificación • Antes de cuantificar se ponderan los coeficientes • Después de esa ponderación, la cuantificación suele ser lineal, aunque también se contempla la posibilidad de añadir un dead-zone para eliminar ruido
Matrices de Cuantificación • Existen varias matrices de cuantificación definidas por MPEG-2, pero el codificador puede utilizar cualquier otra Para 4:2:0 se definen dos matrices. Para los otros dos posibles formatos de muestreo se definen cuatro.
Serialización de los Índices • Serializo los índices dando prioridad a los “mas importantes”
Run Length Code • Almaceno el número de ceros antes del siguiente coeficiente diferente de cero, y luego el valor del coeficiente. DCT
Variable Length Code (VLC) • Toda información no aleatoria tiene unas secuencias mas probables que otras • Explota (probabilidad) • P cadenas cortas de ceros > P cadenas largas de ceros • P coeficientes bajos > P coeficientes altos • Implementación VLC • Ningún Código completo es el principio de otro • Ninguna combinación de códigos da 23 ceros seguidos • End Of Block (EOB)
Buffering and Feedback • Mediante realimentación controlamos la calidad de la codificación, de tal forma que el buffer ni se llena ni se vacía, obteniendo una velocidad de datos constante.
Buffering and Feedback • Ajuste de la matriz de cuantificación • Podemos ajustar los 64 coeficientes • Podemos aplicar un factor de escala (conservo el peso relativo de unos coeficientes sobre otros)
Compresión Intra Frame • Todo lo anterior se utiliza para realizar una compresión Intra Frame, es decir sin aprovechar la redundancia temporal del vídeo. • Ese es el esquema utilizado por… • Cámaras Digitales (la mayoría…) • MJPEG • DV • DVCam • DVCPro • Tarjetas Digitalizadoras de Vídeo
Predicción Inter Frame • Intentamos predecir la imagen siguiente a partir de las anteriores explotando la redundancia temporal. • Es muy probable que los bloques sean muy parecidos en imágenes sucesivas • Puedo utilizar esquemas de predicción tan sencillos como tomar la imagen anterior a modo de predicción y transmitir el error cometido
Predicción Interframe Co-Sited (VLC) Ojo!! Imagen Predicha
Compensación de Movimiento • Es un esquema mas avanzado de predicción de imagen. • Explota el hecho de que a lo largo del tiempo los píxeles se desplazan en la pantalla • Por lo tanto sólo transmito el macrobloque de referencia (mediante el vector de desplazamiento) y el error cometido • Evidentemente, siempre puedo transmitir el macrobloque completo, en caso de no encontrar ninguno que se le parezca
Compensación de Movimiento • Normalmente la compensación de movimiento se basa en macrobloques 16x16, mientras que la redundancia espacial se basa en bloques de 8x8. • Sin embargo la precisión es a nivel de píxel (el macrobloque referencia puede estar situado en cualquier localización)
Área de Búsqueda Compensación de Movimiento • La carga computacional de buscar el macrobloque que mas se parezca es muy alta • Limitamos la búsqueda a una zona determinada • “Hierarchical block matching”
Vectores de Desplazamiento • Compromiso entre Tamaño Macrobloque y Bit Rate Vectores de Desplazamiento • Macrobloque Grande => Menos información vectores • Macrobloque Pequeño => Mayor precisión estimación • Utilizamos una combinación de dos técnicas para reducir el ancho de banda ocupado por los vectores • Codificación diferencial a partir de vectores anteriores • VCL sobre predicción de error de codificación diferencial
Predicción Bidireccional Forward Prediction Backward Prediction Bi-directional Prediction El macrobloque se obtiene como combinación lineal de los otros dos
Predicción Bidireccional(pasos a seguir para su aplicación) • Vector de Desplazamiento • Calcular el vector forward a partir de la referencia anterior • Calcular el vector backward a partir de la referencia posterior • Calculo del error • Usando bloque desplazado imagen anterior • Usando bloque desplazado imagen posterior • Usando promedio de los dos (anterior y posterior) • Si la estimación no va a ser lo suficientemente buena podemos codificar el macrobloque en modo Intra • Si la estimación es muy buena (coincidencia total), podemos no codificar el macrobloque (skipped macroblock)
Predicción Bidireccional(pasos a seguir para su aplicación)
Predicción Bidireccional • Ventajas de la predicción Bidireccional • Predicción de movimientos de cámara • Predicción de cambios de plano • Reducción de ruido • Cuando ambas estimaciones (forward y backward) son buenas, es conveniente utilizar el promedio de las dos estimaciones para reducir el ruido de la predicción. • La mayor desventaja es que la predicción a partir de imágenes posteriores implica un retardo en transmisión
Tipos de Imágenes • Imágenes I (Intra): • Sólo utilizan la DCT. Proporcionan acceso aleatorio a la secuencia de vídeo. Están formadas por bloques de 8x8 que se transforman, cuantifican y codifican. Pueden usarse para predecir imágenes P y B. Es una manera de limpiar el error. • Imágenes P (Predicted): • Se codifican utilizando compensación de movimiento forward a partir de una imagen I u otra imagen P. Acumulan errores. Pueden usarse para predecir otras imágenes P o imágenes B. • Imágenes B (Bidireccionales) • Se codifican utilizando predicción bidireccional, que puede ser forward, backward o una combinación de ambas. No se acumulan los errores ya que nunca se utilizan como referencia de otras imágenes.
Group Of Pictures (GOP) • Normalmente la secuenciación de imágenes ocurre con una estructura repetitiva, aunque esto no es necesario • La estructura puede describirse con dos parámetros N/M • N => Numero de imágenes en el GOP • M => Espaciamiento entre imágenes tipo P
Secuencia • Dentro de la secuencia se mantiene constantes ciertos parámetros • Tamaño Horizontal y Vertical de la imagen • Relación de Aspecto • Frecuencia de Imágenes • Bit Rate • Matrices de Cuantificación • Perfil y Nivel • Formato de Muestro de Crominancia • Existen códigos de inicio y fin de la secuencia
Imagen • La imágenes pueden ser campos o cuadros. El tratamiento es idéntico en ambos casos
Slice • Hay dos posibles estructuras: General Existen Macrobloques no contenidos en Slices Restringida No hay ningún Macrobloques fuera de los Slices
Macrobloque • Llamamos macrobloque a un conjunto de 16x16 píxeles de la imagen original, a partir de los cuales se obtienen los bloques de luminancia y crominancia Es el conjunto básico de codificación. La compensación de movimiento se hace a nivel de macrobloque.