Your SlideShare is downloading. ×
Decodificador de vídeo mpeg 2 en matlab y análisis del bitstream
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

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

1,684
views

Published on


0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,684
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
31
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. ESCUELA SUPERIOR DE INGENIEROS DEPARTAMENTO DE TEORÍA DE LA SEÑAL Y COMUNICACIONES PROYECTO FIN DE CARRERADecodificador de vídeo MPEG-2 en MATLAB y análisis del bitstream Autor: Elena Mª Aguilar Fernández Tutor: José Ramón Cerquides Bueno Junio - 2008
  • 2. Motivaciones y ObjetivosMotivaciones•No existe ninguna aplicación en código abierto para MATLAB capaz de analizar unvídeo con formato MPEG-2 y decodificarlo•Esta aplicación puede ser usada como base para la programación de otrosalgoritmos•Se ha pensado en publicarla en el “File Exchange” de MathworksObjetivos•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
  • 3. Índice 1. Vídeo digital 2. Necesidad de compresión 3. Técnicas de compresión 4. MPEG. Conceptos básicos 5. Capa de Sistema 6. Capa de Vídeo 7. Desarrollo del decodificador 8. Conclusiones
  • 4. Índice 1. Vídeo digital 2. Necesidad de compresión 3. Técnicas de compresión 4. MPEG. Conceptos básicos 5. Capa de Sistema 6. Capa de Vídeo 7. Desarrollo del decodificador 8. Conclusiones
  • 5. 1. Vídeo Digital. IntroducciónVídeo: Captura, grabación, almacenamiento y reconstrucción de una secuencia deimágenes que representan escenas en movimiento.Para crear sensación de movimiento las imágenes deben cambiar cada cierto tiempo. Elnúmero de imágenes en un segundo cambia según el medio: •Cine: 24 •TV PAL: 25 •TV NTSC: 30 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. Píxel: Cada una de las muestras. Se debe representar con un número de bits (generalmente 8 bits por muestra).
  • 6. Índice 1. Vídeo digital 2. Necesidad de compresión 3. Técnicas de compresión 4. MPEG. Conceptos básicos 5. Capa de Sistema 6. Capa de Vídeo 7. Desarrollo del decodificador 8. Conclusiones
  • 7. 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 108 Mbps El bitrate medio de MPEG-2 8 bits por muestra es de 15 Mbps.Cb: Muestreo a 6.75 MHz 54 Mbps 216 Mbps Supone una reducción en la 8 bits por muestra información a transmitir o almacenar de 15 vecesCr: Muestreo a 6.75 MHz 54 Mbps 8 bits por muestra
  • 8. Índice 1. Vídeo digital 2. Necesidad de compresión 3. Técnicas de compresión 4. MPEG. Conceptos básicos 5. Capa de Sistema 6. Capa de Vídeo 7. Desarrollo del decodificador 8. Conclusiones
  • 9. 3. Técnicas de compresiónCompresión: Proceso de compactarlos datos en un menor número de bitsPuede ser con o sin pérdidas •Redundancia espacial: píxeles cercanos parecidos Transformada discreta del coseno (DCT) Cuantificación Submuestreo de crominancia I •Redundancia estadística: valores de bit repetidos PyB Escaneo zig-zag y Run Length Code (RLC) Variable Length Code (VLC) •Redundancia temporal: píxel en el tiempo repetido Motion Estimation Motion Compensation
  • 10. Índice 1. Vídeo digital 2. Necesidad de compresión 3. Técnicas de compresión 4. MPEG. Conceptos básicos 5. Capa de Sistema 6. Capa de Vídeo 7. Desarrollo del decodificador 8. Conclusiones
  • 11. 4. MPEG. Conceptos básicosMPEG: Moving Picture Experts Group. Familia de estándares que se pueden aplicar endiversas 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 9capas. Nos centraremos en las 3 primeras: Sistema, Vídeo y Audio ISO/IEC 13818-1 ISO/IEC 13818-3 ISO/IEC 13818-1
  • 12. 4. MPEG. Jerarquía del vídeoProcesamiento temporal I: Intra-trame Imagen P: Predicted B: Bidirectional
  • 13. 4. MPEG. Codificación de Imágenes I
  • 14. 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
  • 15. 4. MPEG. DCTA cada bloque f(x,y) se le calcula la DCT bidimensional formando F(v,u) Elimina Redundancia Espacial 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 f(x,y) F(v,u)
  • 16. 4. MPEG. Cuantificador variableLa cuantificación consiste en dividir cada elemento por un número que aparece en las tablas decuantificación, las cuales pueden ser definidas por el codificador o emplearse tablas por defecto. El coeficiente DC tiene nuevamente un tratamiento especial y el paso de cuantificación se obtiene de la secuencia de bits 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).
  • 17. 4. MPEG. Escaneo en Zig-ZagLa mayoría de los coeficientes cuantificados toman el valor 0. Mediante una matriz deescaneo zig-zag podemos obtener una secuencia de coeficientes con muchos ceros seguidos. Elimina Redundancia Estadística130, -2, -2, 1, 0, 1, 0, -1, 0, 0, 0, 0, -1, 0, 0, … resto de coeficientes nulos
  • 18. 4. MPEG. Codificación entrópicaLa codificación combinada entre códigos de longitud variable (VLC) y métodos de longitud deseries (RLC) resulta muy eficiente.Coeficientes AC: Se forman parejas formadas Coeficientes DC: Se emplean dos tipos depor las palabras: palabras: run: número de ceros seguidos dct-size: número de bytes de la siguiente palabra codificado con VLC level: siguiente valor no nulo dct_diff: código de longitud fija, con elEn el ejemplo anterior: valor diferencial del coeficiente130, -2, -2, 1, 0, 1, 0, -1, 0, 0, 0, 0, -1, 0, 0, … Elimina Redundancia Estadística(0,130),(0,-2),(0,-2),(0,1),(1,1),(1,-1),(4,-1),EOBLas parejas se codifican con códigos VLC Codificamos „1101‟s=0 level=level s=1 level=-level
  • 19. 4. MPEG. Redundancia temporalEn las imágenes P y B, además de las técnicas anteriores se elimina la redundancia temporalCompensación de movimiento1. Estimación de movimiento: Buscar bloque de imagen de referencia óptima para predicción2. Compensación de movimiento: Calcular diferencia entre bloque actual y predictor3. Vector de movimiento: Componente de desplazamiento vertical y horizontal de la diferencia de posición entre el bloque actual y el de referencia. Predicción de trama Predicción de campo Tipos Compensación de movimiento 16x8 Aritmética Dual-prime
  • 20. 4. MPEG. Resumen codificación Imágenes P
  • 21. 4. MPEG. Resumen codificación Imágenes B
  • 22. Índice 1. Vídeo digital 2. Necesidad de compresión 3. Técnicas de compresión 4. MPEG. Conceptos básicos 5. Capa de Sistema 6. Capa de Vídeo 7. Desarrollo del decodificador 8. Conclusiones
  • 23. 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 (PESpackets). Esta capa se encarga de combinarlos. Stream_id Cabecera Time Stamps (long. variable) PES header lenght
  • 24. 5. Capa de Sistema. PS y TS Dos formas de encapsulado que generan dos tipos diferentes de flujos de datos: Program Stream Transport StreamMedios de transmisión fiables y almacenamiento Medios de transmisión no fiablesEquivalente a un solo programa audiovisual Posibilidad de multiplexar varios programas audiovisualesMultiplexación de varios ES con base de tiempos común Multiplexación de varios ES de diferentes programasLos packs tienen longitud variable (aprox. 2 Kbytes) 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
  • 25. 5. Capa de Sistema. Esquema global
  • 26. Índice 1. Vídeo digital 2. Necesidad de compresión 3. Técnicas de compresión 4. MPEG. Conceptos básicos 5. Capa de Sistema 6. Capa de Vídeo 7. Desarrollo del decodificador 8. Conclusiones
  • 27. 6. Capa de vídeo (ISO/IEC 13818-2)Código de Comienzo: Esquema de bits específicos que no se repiten dentro de lapropia información codificada formados por 4 bytes (los 3 primeros se denominan prefixcode y el cuarto start code value)
  • 28. 6. Capa de vídeo. Reglas semánticas
  • 29. Índice 1. Vídeo digital 2. Necesidad de compresión 3. Técnicas de compresión 4. MPEG. Conceptos básicos 5. Capa de Sistema 6. Capa de Vídeo 7. Desarrollo del decodificador 8. Conclusiones
  • 30. 7. Desarrollo del decodificador. FuncionalidadDemultiplexor: 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ídeoy 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.
  • 31. 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)
  • 32. 7. Desarrollo. Reparto de tiemposLa mayor parte del tiempo de decodificación se emplea en hacer los cálculos para lacompensació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.
  • 33. Índice 1. Vídeo digital 2. Necesidad de compresión 3. Técnicas de compresión 4. MPEG. Conceptos básicos 5. Capa de Sistema 6. Capa de Vídeo 7. Desarrollo del decodificador 8. Conclusiones
  • 34. 8. Conclusiones•Se ha diseñado una herramienta capaz de decodificar vídeos MPEG-2 noescalables y encapsulados como Program Stream•Los tiempos conseguidos de decodificación de cada imagen, si bien son elevadospara usos comerciales, mejoran cuantiosamente las referencias iniciales•Servirá como herramienta para futuras investigaciones gracias a que suinterpretación es sencilla y se encuentra ampliamente documentada mediante larecomendación del estándar (ISO/IEC 13818)•Se va a publicar la aplicación en el “File Exchange” de Mathworks como un primerpaso en este campo y se espera que sea mejorada por el resto de usuarios deMATLAB
  • 35. 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 mejoresAplicación:Diseño de algoritmos de detección de cambios de plano en vídeocomprimido MPEG-2. Modificando relativamente poco el código propuesto sepuede conseguir el desarrollo de algunos de estos algoritmos.
  • 36. FINMuchas gracias