ARQUITECTURA DE DECODIFICACI - PowerPoint PPT Presentation

1 / 61
About This Presentation
Title:

ARQUITECTURA DE DECODIFICACI

Description:

ARQUITECTURA DE DECODIFICACI N DE MPEG-4 PARA SISTEMAS PORT TILES INAL MBRICOS Edison Manuel Hern ndez Ricardo Andr s Vel squez OBJETIVOS Estudiar el est ndar ... – PowerPoint PPT presentation

Number of Views:201
Avg rating:3.0/5.0
Slides: 62
Provided by: GrupodeMi
Category:

less

Transcript and Presenter's Notes

Title: ARQUITECTURA DE DECODIFICACI


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
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
    420, 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 38.016 x 8bits
  • 304.128
  • N. Bits por segundo 304.128 x 15
  • 4561.920 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 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 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 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 14496-10
  • ISO file format ISO/IEC 14496-11
  • IPMP extensions ISO/IEC 14496-12
  • MP4 file format ISO/IEC 14496-13
  • H.264 file format ISO/IEC 14496-14
  • Animation extensión ISO/IEC 14496-15
  • Streaming text format ISO/IEC 14496-16
  • Font compression ISO/IEC 14496-17
  • Synthesize texture stream ISO/IEC 14496-18
  • Systems ISO/IEC 14496-1
  • Visual ISO/IEC 14496-2
  • Audio ISO/IEC 14496-3
  • Conformance Testing ISO/IEC 14496-4
  • Reference Software ISO/IEC 14496-5
  • DMFI ISO/IEC 14496-6
  • Reference Software ISO/IEC 14496-7
  • Carriage over IP networks ISO/IEC 14496-8
  • Reference hardware ISO/IEC 14496-9

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
PERFIL
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
Visual Tools Visual Object Types Visual Object Types Visual Object Types Visual Object Types Visual Object Types
Visual Tools 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 X X X X
Resiliencia al error puntos de resincronización, particionamiento de datos, VLCs Reversibles X X X X X
Short Header X   X X X
B-VOP   X   X X
Cuantización métodos 1 y 2       X X
Entrelazado       X X
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
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 Objeto Visual
Cabecera Capa de Objeto de Video
Stream Elemental
Cabecera Secuencia Visual de Objeto
Marca de sincronismo Numero de Macrobloque Quant_scale HEC Información DC y de cabecera Marca DC Información de Textura Marca de sincronismo
Marca de sincronismo Numero de Macrobloque Quant_scale HEC Informació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
38
Decodificación Texturas
39
Decodificación Run-Level
40
Escaneo Inverso
41
Cuantización Tipo 1
42
Cuantización Tipo 2
43
DCT_2D
44
DCT_2D
Buffer entrada
IDCT_1D
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 92 32,47 124,47
50 92 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 92 1,38 93,38
50 92 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
SystemC en contraste con otros lenguajes
57
CODIGO ORIGINAL CODIGO MODIFICADO
int sc_main (int, char ) sc_signalltboolgt 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_signalltboolgt reset contador top void body_main() SC_CTOR(new_top) reset(reset), top(top) top.reset(reset) SC_THREAD(body_main) void new_topmain_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.
Write a Comment
User Comments (0)
About PowerShow.com