decodificador de vídeo mpeg 2 en matlab y análisis del bitstream
Post on 25-Jun-2015
1.830 Views
Preview:
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