La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Edison Manuel Hernández Ricardo Andrés Velásquez

Presentaciones similares


Presentación del tema: "Edison Manuel Hernández Ricardo Andrés Velásquez"— Transcripción de la presentación:

1 Edison Manuel Hernández Ricardo Andrés Velásquez
ARQUITECTURA DE DECODIFICACIÓN DE MPEG-4 PARA SISTEMAS PORTÁTILES INALÁMBRICOS Edison Manuel Hernández Ricardo Andrés Velásquez

2 OBJETIVOS Estudiar el estándar de codificación de video MPEG-4 especialmente las partes 2 y 10 que tratan los temas de video natural, identificando los puntos clave de su implementación en hardware. Seleccionar el perfil y nivel de MPEG-4 más adecuado para ser implementado en el ambiente de una red inalámbrica. Diseñar una arquitectura de hardware para la parte visual de un decodificador MPEG-4. Hacer la implementación de un decodificador MPEG-4 (Parte visual) en una FPGA. Modelamiento a alto nivel del decodificador de video MPEG-4 en SystemC. Completar los requisitos para obtener el titulo de Ingeniero Electrónico.

3 ANTECEDENTES Auge de las Aplicaciones de streaming de video en todo tipo de redes, entre ellas las redes inalámbricas. Proyecto de Acompañantes Móviles Digitales que actualmente desarrolla el Grupo Electrónica y control. No existía una experiencia previa del grupo en el área de compresión de video. Deseo de apropiar la tecnología de compresión de video y de asumir los desafíos que las redes inalámbricas imponen a la transmisión de video.

4 Características de las comunicaciones inalámbricas
Las conexiones inalámbricas tienen una calidad menor a las conexiones alambradas: menor ancho de banda, menor estabilidad en la conexión, tasas de error más altas, etc. Existen tres problemas claves en la transmisión multimedia inalámbrica: La necesidad de mantener la calidad de servicio. Operar con recursos limitados de energía. Operar en ambientes heterogéneos.

5 Características Deseables para la Transmisión de Video en Redes Inalámbricas
Resiliencia al error Debido a la pérdida de bits por desvanecimiento se afecta el bitstream. Escalabilidad Variar la potencia de procesamiento (enviando a cada usuario sólo lo necesario). Baja Complejidad Un CODEC de menor complejidad, implica menores recursos de software y hardware, y por lo tanto menor consumo de potencia.

6 ¿Por qué Utilizar MPEG-4?
La tasa de bits más baja es de 5 kbps. Las técnicas de codificación de video escalable, Herramientas para la resiliencia de error. Codificación basada en objetos. Animación Facial para reducir el consumo de ancho de banda.

7 ¿Por Qué Comprimir Video?
Dejemos que el siguiente ejemplo responda la pregunta … Se tiene una secuencia de video con las siguientes características: resolución QCIF, formato de color YCbCr, formato de muestreo 4:2:0, 8 bit por cada componente de color y 15 fps. N. Píxeles por frame = 176 x 144(Y) + 88 x 72(Cb) + 88 x 72(Cr) = 38016 N. Bits por frame = x 8bits = N. Bits por segundo = x 15 = 4’ bps

8 CODEC La compresión involucra dos sistemas complementarios:
Por un lado esta el compresor o codificador (encoder), el cual convierte los datos originales a una forma comprimida que puede almacenarse o transmitirse. Del otro lado esta el decodificador (decoder) que se encarga de convertir la forma comprimida de los datos a su representación original. Este par de sistemas se conocen normalmente como CODEC.

9 Tipos de Compresión Sin perdidas:
Los datos de salida del decodificador son una copia perfecta de los originales. Se utiliza sobre datos que contienen redundancia estadística La compresión sin perdidas de un video o imagen solo alcanza niveles de compresión moderados (reduce de 3 a 4 veces el tamaño original). Con perdidas: Los datos que salen del decodificador NO son iguales a los datos originales. Porcentaje de compresión superior a expensas de perdida en la calidad de la imagen (puede reducir hasta más de 70 veces el tamaño original).

10 Modelo Temporal El objetivo del modelo temporal es reducir la redundancia entre frames. Esto se consigue formando una predicción del frame actual a partir de uno o mas frames anteriores o futuros. El método más sencillo de predicción temporal es usar el frame anterior como predicción del actual. La exactitud de la predicción puede mejorarse cuando se utilizan técnicas de estimación y compensación de movimiento entre el frame referencia y el frame actual.

11 Modelo Espacial La objetivo del modelo espacial es decorrelacionar los datos ya sea de la imagen original o de la imagen residual y convertirlos a una forma tal que puedan ser comprimidos eficientemente usando un decodificador de entropía. Los modelos espaciales tienen tres componentes principales: transformación, cuantización y reordenación. La transformada es el corazón de la mayoría de los estándares y sistemas de codificación de video. La etapa de cuantización introduce las perdidas en la compresión de video.

12 Estándares de Codificación de Video
Evolución histórica estándares de codificación de video

13 Estándares de Codificación de Video
Estándares de la ITU H.261 Primer estándar de compresión y decompresión de video para videoconferencia. Ratas de bits de 64kbps a 2Mbps H.263 Mejora la rata de compresión y la calidad de imagen comparado con H.261 H.264 También conocido como MPEG-4 part 10 ó AVC. Mas que un importante avance H.264 incluye una gran variedad de herramientas para mejorar el desempeño Estándares de la ISO/IEC MPEG1 Desarrollado para el almacenamiento y distribución de audio y video. Utilizado en los primeros Video CDs VCD. MPEG2 Extiende las aplicaciones de MPEG-1 principalmente en lo que se refiere a disusión de TV, TV digital y HDTV. Ratas de bits 1.5Mbps a 60 Mbps MPEG4 MPEG-4 busca mayor flexibilidad, interactividad, soporte sobre nuevas redes, etc. Actualmente consiste de 19 partes. Otros VC1 Basado en el Microsoft Windows Media Video 9. Representa un competidor importante para H.264. Esta siendo desarrollado por SMPTE.

14 Eficiencia: Calidad vs. Tasa de Bits

15 Eficiencia: Calidad vs. Tasa de Bits

16 Eficiencia: Calidad vs. Tasa de Bits

17 Complejidad Computacional
Hay algo claro, herramientas más sofisticadas de compresión, traen consigo un incremento en la complejidad computacional de codificadores y decodificadores. Algunos estudios muestran que H.264 tiene una complejidad de 2 a 3 veces superior que MPEG-4 Visual perfil simple. De otro lado se estima que VC-1 tiene una complejidad de 1.5 veces la de MPEG-4 perfil simple.

18 MPEG-4 MPEG 4 actualmente esta dividido en 18 partes:
Scene description – ISO/IEC ISO file format – ISO/IEC IPMP extensions – ISO/IEC MP4 file format – ISO/IEC H.264 file format – ISO/IEC Animation extensión – ISO/IEC Streaming text format – ISO/IEC Font compression – ISO/IEC Synthesize texture stream – ISO/IEC Systems – ISO/IEC Visual – ISO/IEC Audio – ISO/IEC Conformance Testing – ISO/IEC Reference Software – ISO/IEC DMFI – ISO/IEC Reference Software – ISO/IEC Carriage over IP networks – ISO/IEC Reference hardware – ISO/IEC

19 MPEG-4 Visual

20 ¿Por qué MPEG-4 Visual? Es un estándar más maduro, bien documentado y ampliamente utilizado en la actualidad. Cuenta con una amplia variedad de perfiles, muchos de los cuales son aptos para redes inalámbricas y dispositivos portátiles. Herramientas de codificación más simples, y por lo tanto CODECs de menor complejidad. Eficiencia de codificación intermedia, soporte para tasas de bits iguales o inferiores a los 64kbps.

21 Características de MPEG-4 Visual
Codificación basada en objetos en lugar de frames. Uso de objetos Naturales o sintéticos a partir de los cuales se puede realizar la composición de una escena. Soporte para interactividad. MPEG-4 es mas rehusable y flexible, con mayores capacidades de protección de contenido. Las bajas ratas de bits soportadas dan la capacidad de disfrutar el contenido interactivo sobre redes DSL, inalámbricas y móviles.

22 Codificación Basada en Objetos

23 Escena MPEG-4 Visual

24 Objetos, Perfiles y Niveles
Los objetos visuales (CODECS de video) usan combinaciones específicas de herramientas para representar eficientemente diferentes tipos de objetos visuales. Los perfiles usan combinaciones específicas de tipos de objetos visuales para servir eficientemente a un segmento específico del mercado. Los niveles especifican la cantidad de memoria, la tasa de bits y las limitaciones de complejidad dentro de un perfil para asegurar interoperabilidad.

25 Objetos, Perfiles y Niveles
MPEG-4 Visual proporciona soporte a las diversas aplicaciones a través de una estructura jerárquica conformada por Perfiles, Objetos, niveles, y las herramientas de codificación asociados a estos. Objeto tipo_1 Objeto tipo_2 Objeto tipo_n Herramienta 1 Herramienta 2 Herramienta 3 Herramienta 4 Herramienta n

26 Objetos Visuales de Interés
Simple Es un objeto natural, de video rectangular de relación arbitraria alto/ancho, desarrollado para baja rata de bits, soporta las herramientas de resiliencia al error. Simple Escalable Es una extensión escalable del tipo anterior, el cual da una escalabilidad temporal y espacial, usando el tipo Simple como capa base.

27 Objetos Visuales de Interés
Simple Avanzado de Tiempo Real Es un objeto de tipo simple al que se le han agregado dos herramientas para mejorar la resiliencia al error y flexibilidad de codificación: NEWPRED y Conversión dinámica de resolución Objeto Simple Avanzado Es un objetos simple que solo soportan objetos rectangulares, al que se le ha agregado algunas herramientas para hacer la codificación mas eficiente. Entre estas herramientas tenemos: B-VOP, compensación de movimiento QPEL y compensación de movimiento global (GMC).

28 Objetos Visuales de Interés
Objetos Escalables de Granularidad Fina Puede usar por encima de 8 capas de Escalabilidad para que así la calidad de la imagen sea fácilmente adaptable a Las circunstancias de transmisión y decodificación.

29 Advanced Real Time Simple Fine Granularity Scalable
Visual Tools Visual Object Types Simple Simple Scalable Advanced Real Time Simple Advanced Simple Fine Granularity Scalable Basic : I-VOP, P-VOP, Predicción AC/DC, 4-MV, Unresticted MV X Resiliencia al error: puntos de resincronización, particionamiento de datos, VLCs Reversibles Short Header B-VOP Cuantización métodos 1 y 2 Entrelazado Escalabilidad Temporal (Rectangular) Escalabilidad Espacial (Rectangular) Conversión dinámica de resolución NEWPRED Compensación de movimiento global Compensación de movimiento QPEL Escalabilidad de Granularidad Fina (FGS) Escalabilidad Temporal FGS

30 Perfiles Simple Solo acepta objetos de tipo simple y fue creado para
aplicaciones de baja complejidad. Existen 4 niveles para el perfil simple con tasas de bits que van desde 64 hasta 384 kbits/seg. Simple Escalable Puede proveer las herramientas de escalabilidad temporal y espacial en el mismo ambiente operacional previsto para el Perfil Simple.

31 Perfiles Simple Avanzado de Tiempo Real
Pensado para aplicaciones de Video Streaming para redes como Internet, proporciona codificación robusta al error y adaptable a las condiciones cambiantes de la red. Simple Avanzado Es una versión mejorada del perfil simple, pensada para el mismo rango de aplicaciones.

32 Perfiles Escalable de Granularidad Fina
Fue creado pensando en aplicaciones de video para correr sobre Internet y multimedia inalámbrica. Posee objetos de tipo simple, avanzado simple y FGS.

33 Bitstream Cabecera Secuencia Visual de Objeto Cabecera Objeto Visual
Capa de Objeto de Video Stream Elemental Marca de sincronismo Numero de Macrobloque Quant_scale HEC Información DC y de cabecera Marca DC Información de Textura Marca de sincronismo Numero de Macrobloque Quant_scale HEC Información de movimiento y cabeceras Marca de Movimiento Información de Testuras

34 ¿Por qué utilizar MPEG-4 Visual Perfil Simple?
El perfil simple, a pesar de ser el perfil más básico, cuenta con las características necesarias para ser utilizado en aplicaciones inalámbricas y dispositivos móviles. Su baja complejidad respecto a los otros perfiles lo convierte en la elección predilecta de la industria. Proporciona una plataforma de partida para implementar perfiles más avanzados, como el avanzado simples, simple de tiempo real, etc. Muchos de los procesadores modernos de orientación a ambientes inalámbricos cuentan codificadores de perfil simple.

35 Arquitectura Decodificador

36 Procesamiento de Bitstream

37 Decodificador de Entropía
Shift Register Unidad de búsqueda VLCs uno o más bits datos error bitstream

38 Decodificación Texturas

39 Decodificación Run-Level

40 Escaneo Inverso

41 Cuantización Tipo 1

42 Cuantización Tipo 2 + x << 1 Unidad de Control QF[v][u]
quantizer_scaler M U X + x dc_scaler Unidad de Control Saturación -1 << 1 QF[v][u] K Quant_type Intra_coded short_video

43 DCT_2D

44 DCT_2D Buffer entrada Buffer IDCT_1D Doble Buffer Doble IDCT_1D ROM
8x8 Constantes A ROM 8x8 Constantes AT Unidad de Control

45 IDCT_1D Multiplicador Paralelo Aritmética Distribuido

46 Decodificación de MV

47 Compensación de Movimiento

48 Resultados Preliminares
IDCT_2D Frecuencia CLK (MHz) Potencia Estática (mW) Potencia Dinámica (mW) Total Potencia (mW) 12,5 92 18,7 110,7 25 32,47 124,47 50 74,84 166,84 Potencia consumida por el módulo IDCT_2D Desempeño Módulo IDCT_2D vs. Desempeño Requerido por Perfil

49 Resultados Preliminares
VLC decoder Frecuencia CLK (MHz) Potencia Estática (mW) Potencia Dinámica (mW) Total Potencia (mW) 12,5 92 0,56 92,56 25 1,38 93,38 50 2,85 94,85 Conversor RGB2YCbCr

50 SystemC

51 Qué es SystemC ? SystemC es una librería de clases de C++, que incluye cualquier librería, programa y encapsulación de C++ Es un lenguaje de diseño de sistemas que ha evolucionado, en respuesta a una necesidad general por un lenguaje que mejora la productividad para diseñadores de sistemas electrónicos.

52 ¿ Por qué SystemC ? Lenguajes como C/C++ y Java no fueron creados para modelar Hardware. Carencia de estos lenguajes en manejar un estilo de modelamiento uniforme. No existen herramientas de traducción (C/C++ a HDL) Además C++ no soporta: * Comunicación estilo Hardware (Señales, protocolos, etc.) * Noción del tiempo * Concurrencia (El hardware y los sistemas trabajan en paralelo)

53 ¿ Por qué SystemC ? Una de las ideas principales de SystemC es permitirle al programador de C/C++, realizar aquellos diseños que no son posibles con estos últimos. SystemC también permite modelamiento a un alto nivel de abstracción ej: protocolos de comunicación representados en interfaces y canales. SystemC no es otro dialecto de C++, es C++.

54 Metodología Actual en el diseño de Sistemas
C/C++; Modelamiento a nivel de sistema Conversión Manual Analisis VHDL/Verilog Perfeccionar Simulación Resultados Síntesis Resto del proceso

55 Metodología con SystemC
Modelo enSystemC Simulación Mejoramiento Traducción con Software Síntesis Resto del proceso

56 Verificación funcional
SystemC en contraste con otros lenguajes Transistores Compuertas RTL Test Bench Verificación funcional Comportamiento Hardware/Software Arquitectura Requerimientos Verilog VHDL SystemVerilog Vera, e SystemC Matlab

57 Proceso para Simulación en ModelSim
CODIGO ORIGINAL CODIGO MODIFICADO int sc_main (int, char **) { sc_signal<bool> reset; contador top(“top”); top.reset(reset); reset.write(1); sc_start(3, SC_NS); reset.write(0); sc_start(50, SC_NS); } SC_MODULE (new_top) contador top; void body_main(); SC_CTOR(new_top) : reset(“reset”), top(“top”) SC_THREAD(body_main); }; void new_top::main_body() wait(3, SC_NS); wait(50, SC_NS); SC_MODULE_EXPORT(new_top); Testbench Macro para exportar el módulo a ModelSim Proceso para Simulación en ModelSim

58 Módulos diseñados en SystemC
IDCT Decodificador de Entropía. Decodificación Run-Level. Escaneo inverso. Cuantización Inversa.

59 Conclusiones La eficiencia de un CODEC de video es una relación entre la tasa de bits que puede alcanzar y la calidad de imagen que logra a dicha tasa de bits. Un CODEC de video de alta eficiencia puede lograr tasas de bits iguales a las de uno menos eficientes pero con una calidad de imagen mucho mayor. MPEG-4 Visual no es el estándar de codificación de video con el mejor desempeño (H.264 & VC-1), sin embargo la complejidad computacional limitada, las herramientas de resiliencia al error y escalabilidad le dan una ventaja estratégica frentes a sus competidores. Se selecciono el perfil simple como el más adecuado para dispositivos móviles, puesto que de todos los perfiles soportados por MPEG-4 es el que más se adecua a los recursos de cómputo limitados y a las limitaciones de potencias de los mismos. Además se convierte en un muy buen primer paso para desarrollar otros perfiles más avanzados.

60 Conclusiones Se definió una arquitectura de hardware para un decodificador MPEG-4 perfil simple que puede ser adaptada a cualquiera de los niveles del perfil. La arquitectura soporta todas las herramientas asociadas a los objetos de tipo simple. Se definieron las arquitecturas lógicas para los diferentes módulos de la arquitectura, en algunos módulos se hicieron implementaciones buscando medir la complejidad y el consumo de potencia. SystemC se utilizo como una herramienta de modelamiento a nivel de sistema, para comprobar el funcionamiento de los diferentes módulos. Se comprobaron las ventajas de este lenguaje en cuanto a la rapidez para modelar sistemas digitales.

61 Conclusiones SystemC es una herramienta adecuada para diseñar sistemas electrónicos a mucho más alto nivel que lenguajes como VHDL y Verilog. Como desventaja frente a los anteriores, SystemC no cuenta hasta ahora con herramientas de síntesis directa a dispositivos programables; teniendo que ser traducido a lenguajes como VHDL o Verilog que si cuentan con este tipo de herramientas. Tener unos fundamentos adecuados en el lenguaje de programación C++, facilita enormemente realizar gran parte de la lógica requerida para el diseño, ya que se pueden utilizar la mayoría de la herramientas y librerías ofrecidas por C++, con la opción de realizar varios procesos en paralelo.


Descargar ppt "Edison Manuel Hernández Ricardo Andrés Velásquez"

Presentaciones similares


Anuncios Google