La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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

Presentaciones similares


Presentación del tema: "ARQUITECTURA DE DECODIFICACIÓN DE MPEG-4 PARA SISTEMAS PORTÁTILES INALÁMBRICOS Edison Manuel Hernández Ricardo Andrés Velásquez."— Transcripción de la presentación:

1 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 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. ¿Por qué Utilizar MPEG-4?

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) = N. Bits por frame = x 8bits = N. Bits por segundo= x 15 = 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.261Primer estándar de compresión y decompresión de video para videoconferencia. Ratas de bits de 64kbps a 2Mbps H.263Mejora la rata de compresión y la calidad de imagen comparado con H.261 H.264Tambié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 MPEG1Desarrollado para el almacenamiento y distribución de audio y video. Utilizado en los primeros Video CDs VCD. MPEG2Extiende 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 MPEG4MPEG-4 busca mayor flexibilidad, interactividad, soporte sobre nuevas redes, etc. Actualmente consiste de 19 partes. Otros VC1Basado 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

16

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: 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 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

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. PERFIL Objeto tipo_1 Objeto tipo_2 Objeto tipo_n … Niveles Herramienta 1Herramienta 2Herramienta 3Herramienta 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 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). Objetos Visuales de Interés

28 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. Objetos Visuales de Interés

29 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 XXXXX Resiliencia al error: puntos de resincronización, particionamiento de datos, VLCs Reversibles XXXXX Short Header X XXX B-VOP X XX Cuantización métodos 1 y 2 XX Entrelazado XX Escalabilidad Temporal (Rectangular) X Escalabilidad Espacial (Rectangular) X Conversión dinámica de resolución X NEWPRED X Compensación de movimiento global X Compensación de movimiento QPEL X Escalabilidad de Granularidad Fina (FGS) X Escalabilidad Temporal FGS X

30 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. Perfiles

31 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. Perfiles

32 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. Perfiles

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

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 quantizer_scaler MUXMUX + x dc_scaler Unidad de Control Saturación << 1 QF[v][u] K MUXMUX MUXMUX quantizer_scaler Quant_type Intra_coded short_video

43 DCT_2D

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

45 IDCT_1D Multiplicador Paralelo Aritmética Distribuido

46 Decodificación de MV

47 Compensación de Movimiento

48 Resultados Preliminares Frecuencia CLK (MHz)Potencia Estática (mW)Potencia Dinámica (mW)Total Potencia (mW) 12,59218,7110, ,47124, ,84166,84 IDCT_2D Potencia consumida por el módulo IDCT_2D Desempeño Módulo IDCT_2D vs. Desempeño Requerido por Perfil

49 Resultados Preliminares Frecuencia CLK (MHz)Potencia Estática (mW)Potencia Dinámica (mW)Total Potencia (mW) 12,5920,5692, ,3893, ,8594,85 VLC decoder 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 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) ¿ Por qué SystemC ?

53 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++. ¿ Por qué SystemC ?

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

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

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

57 CODIGO ORIGINALCODIGO MODIFICADO int sc_main (int, char **) { sc_signal reset; contador top(top); top.reset(reset); reset.write(1); sc_start(3, SC_NS); reset.write(0); sc_start(50, SC_NS); reset.write(1); sc_start(3, SC_NS); reset.write(0); sc_start(50, SC_NS); } SC_MODULE (new_top) { sc_signal reset; contador top; void body_main(); SC_CTOR(new_top) : reset(reset), top(top) { top.reset(reset); SC_THREAD(body_main); } }; void new_top::main_body() { reset.write(1); wait(3, SC_NS); reset.write(0); wait(50, SC_NS); reset.write(1); wait(3, SC_NS); reset.write(0); 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 "ARQUITECTURA DE DECODIFICACIÓN DE MPEG-4 PARA SISTEMAS PORTÁTILES INALÁMBRICOS Edison Manuel Hernández Ricardo Andrés Velásquez."

Presentaciones similares


Anuncios Google