decodificador de vídeo mpeg 2 en matlab y análisis del bitstream

Post on 25-Jun-2015

1.830 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

PROYECTO FIN DE CARRERA

Decodificador de vídeo MPEG-2 en MATLAB

y

análisis del bitstream

ESCUELA SUPERIOR DE INGENIEROS

DEPARTAMENTO DE TEORÍA DE LA SEÑAL Y COMUNICACIONES

Autor: Elena Mª Aguilar Fernández

Tutor: José Ramón Cerquides BuenoJunio - 2008

Motivaciones y Objetivos

Objetivos

•Estudio de las técnicas de compresión de imágenes

•Estudio exhaustivo del estándar MPEG-2 (Recomendación ISO/IEC 13818)

•Aplicación capaz de demultiplexar la información de vídeo

•Aplicación capaz de decodificar la información de vídeo

Motivaciones

•No existe ninguna aplicación en código abierto para MATLAB capaz de analizar un vídeo con formato MPEG-2 y decodificarlo

•Esta aplicación puede ser usada como base para la programación de otros algoritmos

•Se ha pensado en publicarla en el “File Exchange” de Mathworks

Índice

3. Técnicas de compresión

5. Capa de Sistema

6. Capa de Vídeo

7. Desarrollo del decodificador8. Conclusiones

4. MPEG. Conceptos básicos

1. Vídeo digital

2. Necesidad de compresión

Índice

3. Técnicas de compresión

5. Capa de Sistema

6. Capa de Vídeo

7. Desarrollo del decodificador8. Conclusiones

4. MPEG. Conceptos básicos

1. Vídeo digital

2. Necesidad de compresión

1. Vídeo Digital. Introducción

Vídeo: Captura, grabación, almacenamiento y reconstrucción de una secuencia de imágenes que representan escenas en movimiento.

Digitalización:

Muestreo temporal: Tomar cada una de las imágenes

Muestreo espacial: Muestras equiespaciadas de cada una de las imágenes en filas y columnas.

Para crear sensación de movimiento las imágenes deben cambiar cada cierto tiempo. El número de imágenes en un segundo cambia según el medio:

Píxel: Cada una de las muestras. Se debe representar con un número de bits (generalmente 8 bits por muestra).

•Cine: 24

•TV PAL: 25

•TV NTSC: 30

Índice

3. Técnicas de compresión

5. Capa de Sistema

6. Capa de Vídeo

7. Desarrollo del decodificador8. Conclusiones

4. MPEG. Conceptos básicos

1. Vídeo digital

2. Necesidad de compresión

2. Necesidad de compresión

Formato digital 4:2:2 (4 muestras Y, 2 muestras Cb, 2 muestras Cr)

Y: Muestreo a 13.5 MHz

8 bits por muestraCb: Muestreo a 6.75 MHz

8 bits por muestraCr: Muestreo a 6.75 MHz

8 bits por muestra

108 Mbps

54 Mbps

54 Mbps

216 Mbps

El bitrate medio de MPEG-2 es de 15

Mbps.

Supone una reducción en la información a

transmitir o almacenar de 15 veces

Índice

3. Técnicas de compresión

5. Capa de Sistema

6. Capa de Vídeo

7. Desarrollo del decodificador

8. Conclusiones

4. MPEG. Conceptos básicos

1. Vídeo digital

2. Necesidad de compresión

3. Técnicas de compresión

Compresión: Proceso de compactar los datos en un menor número de bits

Puede ser con o sin pérdidas

•Redundancia espacial: píxeles cercanos parecidos

Transformada discreta del coseno (DCT)CuantificaciónSubmuestreo de crominancia

•Redundancia estadística: valores de bit repetidos

Escaneo zig-zag y Run Length Code (RLC)Variable Length Code (VLC)

•Redundancia temporal: píxel en el tiempo repetido

Motion EstimationMotion Compensation

I

P y B

Índice

3. Técnicas de compresión

5. Capa de Sistema

6. Capa de Vídeo

7. Desarrollo del decodificador

8. Conclusiones

4. MPEG. Conceptos básicos

1. Vídeo digital

2. Necesidad de compresión

4. MPEG. Conceptos básicos

MPEG: Moving Picture Experts Group. Familia de estándares que se pueden aplicar en diversas aplicaciones: MPEG-1, MPEG-2, MPEG-4, MPEG-7…

MPEG-2: Ha alcanzado gran éxito debido principalmente a la amplia gama de aplicaciones.

El documento que describe este estándar es la recomendación ISO/IEC 13818, dividida en 9 capas. Nos centraremos en las 3 primeras: Sistema, Vídeo y Audio

ISO/IEC 13818-1

ISO/IEC 13818-3

ISO/IEC 13818-1

4. MPEG. Jerarquía del vídeo

Imagen

I: Intra-trame

P: Predicted

B: Bidirectional

Procesamiento temporal

4. MPEG. Codificación de Imágenes I

4. MPEG. Descomposición en bloques

Divididir en macrobloques de 16x16.

Los macrobloques están formados por bloques de 8x8 ordenados sucesivamente (f(x,y))4:2:0 4:2:2 4:4:4

4. MPEG. DCT

A cada bloque f(x,y) se le calcula la DCT bidimensional formando F(v,u)

f(x,y) F(v,u)

El coeficiente F(0,0), coeficiente DC, es el que más información contiene, por eso se codifica con más precisión que el resto mediante codificación diferencial

Elimina Redundancia Espacial

4. MPEG. Cuantificador variable

La cuantificación consiste en dividir cada elemento por un número que aparece en las tablas de cuantificación, las cuales pueden ser definidas por el codificador o emplearse tablas por defecto.

Tabla de cuantificación por defecto para imágenes I

Indica la importancia relativa de cada coeficiente transformado (paso de cuantificación con el que se codifica cada elemento).

El coeficiente DC tiene nuevamente un tratamiento especial y el paso de cuantificación se obtiene de la secuencia de bits

4. MPEG. Escaneo en Zig-Zag

La mayoría de los coeficientes cuantificados toman el valor 0. Mediante una matriz de escaneo zig-zag podemos obtener una secuencia de coeficientes con muchos ceros seguidos.

130, -2, -2, 1, 0, 1, 0, -1, 0, 0, 0, 0, -1, 0, 0, … resto de coeficientes nulos

Elimina Redundancia Estadística

4. MPEG. Codificación entrópica

La codificación combinada entre códigos de longitud variable (VLC) y métodos de longitud de series (RLC) resulta muy eficiente.

Coeficientes AC: Se forman parejas formadas por las palabras:

run: número de ceros seguidos

level: siguiente valor no nulo

130, -2, -2, 1, 0, 1, 0, -1, 0, 0, 0, 0, -1, 0, 0, …

(0,130),(0,-2),(0,-2),(0,1),(1,1),(1,-1),(4,-1),EOB

Coeficientes DC: Se emplean dos tipos de palabras:

En el ejemplo anterior:

Las parejas se codifican con códigos VLC

dct-size: número de bytes de la siguiente palabra codificado con VLC

dct_diff: código de longitud fija, con el valor diferencial del coeficiente

s=0 level=level

s=1 level=-level

Codificamos

‘1101’

Elimina Redundancia Estadística

4. MPEG. Redundancia temporal

En las imágenes P y B, además de las técnicas anteriores se elimina la redundancia temporalCompensación de movimiento

1. Estimación de movimiento: Buscar bloque de imagen de referencia óptima para predicción

2. Compensación de movimiento: Calcular diferencia entre bloque actual y predictor

3. Vector de movimiento: Componente de desplazamiento vertical y horizontal de la diferencia de posición entre el bloque actual y el de referencia.

Tipos

Predicción de trama

Predicción de campo

Compensación de movimiento 16x8

Aritmética Dual-prime

4. MPEG. Resumen codificación Imágenes P

4. MPEG. Resumen codificación Imágenes B

Índice

3. Técnicas de compresión

5. Capa de Sistema

6. Capa de Vídeo

7. Desarrollo del decodificador

8. Conclusiones

4. MPEG. Conceptos básicos

1. Vídeo digital

2. Necesidad de compresión

5. Capa de Sistema (ISO/IEC 13818-1)

Al codificar la información de audio, vídeo u otros tipos se obtienen flujos elementales (ES, elementary streams). Éstos se dividen en unidades de acceso (UA).

Son flujos de datos que contienen toda la información de cada tipo de una sola fuente.

No son óptimos para ser transmitidos. Necesitamos estructuras más adecuadas (PES packets). Esta capa se encarga de combinarlos.

Cabecera

(long. variable)

Stream_id

Time Stamps

PES header lenght

5. Capa de Sistema. PS y TS

Dos formas de encapsulado que generan dos tipos diferentes de flujos de datos:

Transport StreamProgram Stream

Medios de transmisión fiables y almacenamiento

Equivalente a un solo programa audiovisual

Multiplexación de varios ES con base de tiempos común

Los packs tienen longitud variable (aprox. 2 Kbytes)

Medios de transmisión no fiables

Posibilidad de multiplexar varios programas audiovisuales

Multiplexación de varios ES de diferentes programas

Los TS packets tienen longitud fija (188 bytes)

El primer byte de cada PES packet debe ser el primer byte de carga útil del TS packet

5. Capa de Sistema. Esquema global

Índice

3. Técnicas de compresión

5. Capa de Sistema

6. Capa de Vídeo

7. Desarrollo del decodificador

8. Conclusiones

4. MPEG. Conceptos básicos

1. Vídeo digital

2. Necesidad de compresión

6. Capa de vídeo (ISO/IEC 13818-2)

Código de Comienzo: Esquema de bits específicos que no se repiten dentro de la propia información codificada formados por 4 bytes (los 3 primeros se denominan prefix code y el cuarto start code value)

6. Capa de vídeo. Reglas semánticas

Índice

3. Técnicas de compresión

5. Capa de Sistema

6. Capa de Vídeo

7. Desarrollo del decodificador

8. Conclusiones

4. MPEG. Conceptos básicos

1. Vídeo digital

2. Necesidad de compresión

7. Desarrollo del decodificador. Funcionalidad

Demultiplexor: encargado de separar la información correspondiente al vídeo.

•Desarrollado mediante una única función.

•Reconoce solamente el encapsulado Program Stream.

Decodificador: encargado de leer la secuencia binaria con la información de vídeo y demultiplexar las distintas capas extrayendo la información de las cabeceras.

•Formado por 27 funciones propias (además de otras de MATLAB) y 17 tablas.

•Las funciones y parámetros se han nombrado de igual forma que aparecen en la recomendación para que cualquier persona ajena al proyecto pueda interpretarlas.

•Una vez extraídos todos los parámetros necesarios y realizados los cálculos correspondientes se deben crear las imágenes decodificadas.

•Finalmente se genera un vídeo decodificado con las imágenes en el orden correspondiente.

7. Desarrollo. Compresión vs velocidad

En una secuencia de imágenes I, P, B con formato de croma 4:2:0 y tamaño de imagen 240x320 hemos obtenido estos resultados.

Si comparamos el tiempo de decodificación empleado y el espacio ocupado en memoria vemos que encontramos intereses contrarios.

Imágenes I: Invertimos muy poco tiempo al decodificar pero ocupan un gran espacio en memoria (poca compresión)

Imágenes P: El tiempo de decodificación es similar a las de tipo B pero ocupan más espacio en memoria (compresión media)

Imágenes B: Empleando tiempos algo superiores a las anteriores ocupan el menor espacio (alta compresión)

7. Desarrollo. Reparto de tiempos

La mayor parte del tiempo de decodificación se emplea en hacer los cálculos para la compensación de movimiento.

Después, en proporciones similares tenemos:

•DCT inversa

•Decodificación VCL y cuantificación inversa

•Transformación del espacio de color y formación de imágenes.

Índice

3. Técnicas de compresión

5. Capa de Sistema

6. Capa de Vídeo

7. Desarrollo del decodificador8. Conclusiones

4. MPEG. Conceptos básicos

1. Vídeo digital

2. Necesidad de compresión

8. Conclusiones

•Se ha diseñado una herramienta capaz de decodificar vídeos MPEG-2 no escalables y encapsulados como Program Stream

•Los tiempos conseguidos de decodificación de cada imagen, si bien son elevados para usos comerciales, mejoran cuantiosamente las referencias iniciales

•Servirá como herramienta para futuras investigaciones gracias a que su interpretación es sencilla y se encuentra ampliamente documentada mediante la recomendación del estándar (ISO/IEC 13818)

•Se va a publicar la aplicación en el “File Exchange” de Mathworks como un primer paso en este campo y se espera que sea mejorada por el resto de usuarios de MATLAB

8. Conclusiones. Vías futuras

•Demultiplexar el encapsulado Transport Stream

•Ampliar decodificador para vídeos escalables

•Decodificación de la Capa de Audio

•Adaptar la aplicación para otras versiones de MPEG

•Conseguir tiempos de decodificación mejores

Aplicación:

Diseño de algoritmos de detección de cambios de plano en vídeo comprimido MPEG-2. Modificando relativamente poco el código propuesto se puede conseguir el desarrollo de algunos de estos algoritmos.

FIN

Muchas gracias

top related