1
Televisión y Multimedia
Compresión MPEG-2 Vídeo Tipos de Redundancia Herramientas de Compresión
Sample Rate ReductionDCTCompensación de Movimiento
Perfiles MPEG-2
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)
3
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
4
Señales a Codificar
Si codificamos cada una de las componentes RGB, las tres deberían codificarse con mucha calidad
5
Señales a Codificar
Se codifican otras tres señales relacionadas con ellas (luminancia y crominancia).
6
Macrobloques y Bloques
7
Macrobloques y Bloques
8
Estructura de Muestreo 4:4:4
9
Estructura de Muestreo 4:4:4
10
Estructura de Muestreo 4:2:2
De todos los píxeles se obtienen muestras de luminancia.De crominancia solo de la mitad de ellos.
11
Estructura de Muestreo 4:2:2
12
Estructura de Muestreo 4:2:2
13
Estructura de Muestreo 4:2:0
14
Estructura de Muestreo 4:2:0
15
Estructura de Muestreo 4:2:0
16
Redundancia Espacial
DCT 8x8 Cada coeficiente representa la contribución de una
frecuencias horizontales y verticales a la imagen
17
DCT
18
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)
19
DCT Cuantificación
La anchura de los escalones cuánticos determina la precisión de la cuantificación
Coeficientes
Índices
CoeficientesRecuperados
Cuantificación
Decuantificación
Ejemplo: Escalón cuántico = 4
20
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
21
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.
22
Resumen Cuantificación
23
Serialización de los Índices
Serializo los índices dando prioridad a los “mas importantes”
24
Run Length Code
Almaceno el número de ceros antes del siguiente coeficiente diferente de cero, y luego el valor del coeficiente.
DCT
25
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)
26
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.
27
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)
28
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
29
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
30
Redundancia Temporal
31
Redundancia Temporal
32
Predicción Interframe Co-Sited
Imagen Predicha
Ojo!!
(VLC)
33
Compensación de Movimiento
34
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
35
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)
36
Á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”
37
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
38
Predicción Bidireccional
Forward PredictionBackward PredictionBi-directional Prediction
El macrobloque se obtiene como combinación lineal de los otros dos
39
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)
40
Predicción Bidireccional(pasos a seguir para su aplicación)
41
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
42
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.
43
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
44
Group Of Pictures (GOP)
45
Imagen, slice, macroblock…
46
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
47
Imagen
La imágenes pueden ser campos o cuadros. El tratamiento es idéntico en ambos casos
48
Slice
49
Slice
Hay dos posibles estructuras:
GeneralExisten Macrobloques no
contenidos en Slices
RestringidaNo hay ningún Macrobloques
fuera de los Slices
50
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.
51
Bloque
Un bloque es un conjunto de 8x8 valores. Nótese que ya no podemos hablar de píxeles
El bloque es el conjunto básico de procesado. De esa forma tenemos bloques de luminancia o de crominancia.
52
Perfiles y Niveles MPEG-2
53
Modos de Predicción
La predicción puede hacerse en diferentes modos Frame Field 16x8 Motion Compensation Dual Prime Mode
54
Modos de Predicción
Estructura de macrobloque de luminancia, para
codificación en modo Cuadro
Estructura de macrobloque de luminancia, para
codificación en modo Campo
55
Distorsión en MPEGLa degradación es diferente a la habitual en televisión convencional
56
Medida Objetiva de Errores
Error cuadrático medio o Mean Squared Error (MSE)
57
Medida Objetiva de Errores
El MSE no coincide siempre con la valoración subjetiva de la degradación
58
Medida Subjetiva de Errores
Lo ideal sería disponer de personas para realizar la evaluación de la calidad de los vídeos
Se utilizan algoritmos que simulan el proceso, tratando de emular la respuesta humana
Una medida muy utilizada es la JND (Just Noticeable Difference). JND = 1 implica que el ojo es capaz de detectar la diferencia entre la imagen original y la codificada.
La media de todos los valores de JND se denomina PQR (Picture Quality Rating)
59
Medida Subjetiva de Errores