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
Download ReportTranscript 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
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 1 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) 2 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 3 Señales a Codificar Si codificamos cada una de las componentes RGB, las tres deberían codificarse con mucha calidad 4 Señales a Codificar Se codifican otras tres señales relacionadas con ellas (luminancia y crominancia). 5 Macrobloques y Bloques 6 Macrobloques y Bloques 7 Estructura de Muestreo 4:4:4 8 Estructura de Muestreo 4:4:4 9 Estructura de Muestreo 4:2:2 De todos los píxeles se obtienen muestras de luminancia. De crominancia solo de la mitad de ellos. 10 Estructura de Muestreo 4:2:2 11 Estructura de Muestreo 4:2:2 12 Estructura de Muestreo 4:2:0 13 Estructura de Muestreo 4:2:0 14 Estructura de Muestreo 4:2:0 15 Redundancia Espacial DCT 8x8 Cada coeficiente representa la contribución de una frecuencias horizontales y verticales a la imagen 16 DCT 17 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) 18 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 19 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 20 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. 21 Resumen Cuantificación 22 Serialización de los Índices Serializo los índices dando prioridad a los “mas importantes” 23 Run Length Code Almaceno el número de ceros antes del siguiente coeficiente diferente de cero, y luego el valor del coeficiente. DCT 24 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) 25 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. 26 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) 27 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 28 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 29 Redundancia Temporal 30 Redundancia Temporal 31 Predicción Interframe Co-Sited (VLC) Ojo!! Imagen Predicha 32 Compensación de Movimiento 33 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 34 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) 35 Á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” 36 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 37 Predicción Bidireccional Forward Prediction Backward Prediction Bi-directional Prediction El macrobloque se obtiene como combinación lineal de los otros dos 38 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) 39 Predicción Bidireccional (pasos a seguir para su aplicación) 40 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 41 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. 42 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 43 Group Of Pictures (GOP) 44 Imagen, slice, macroblock… 45 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 46 Imagen La imágenes pueden ser campos o cuadros. El tratamiento es idéntico en ambos casos 47 Slice 48 Slice Hay dos posibles estructuras: General Restringida Existen Macrobloques no contenidos en Slices No hay ningún Macrobloques fuera de los Slices 49 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. 50 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. 51 Perfiles y Niveles MPEG-2 52 Modos de Predicción La predicción puede hacerse en diferentes modos Frame Field 16x8 Motion Compensation Dual Prime Mode 53 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 54 Distorsión en MPEG La degradación es diferente a la habitual en televisión convencional 55 Medida Objetiva de Errores Error cuadrático medio o Mean Squared Error (MSE) 56 Medida Objetiva de Errores El MSE no coincide siempre con la valoración subjetiva de la degradación 57 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) 58 Medida Subjetiva de Errores 59