Title: ARQUITECTURA DE DECODIFICACI
1ARQUITECTURA DE DECODIFICACIÓN DE MPEG-4 PARA
SISTEMAS PORTÁTILES INALÁMBRICOS
- Edison Manuel Hernández
- Ricardo Andrés Velásquez
2OBJETIVOS
- 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.
3ANTECEDENTES
- 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.
4Caracterí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.
5Caracterí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.
6Por 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.
7Por 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
8CODEC
- 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.
9Tipos 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).
10Modelo 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.
11Modelo 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.
12Estándares de Codificación de Video
Evolución histórica estándares de codificación de
video
13Está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.
14Eficiencia Calidad vs. Tasa de Bits
15Eficiencia Calidad vs. Tasa de Bits
16Eficiencia Calidad vs. Tasa de Bits
17Complejidad 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.
18MPEG-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
19MPEG-4 Visual
20Por 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.
21Caracterí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.
22Codificación Basada en Objetos
23Escena MPEG-4 Visual
24Objetos, 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.
25Objetos, 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
26Objetos 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.
27Objetos 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).
28Objetos 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.
29Visual 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
30Perfiles
- 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.
31Perfiles
- 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.
32Perfiles
- 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.
33Bitstream
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
34Por 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.
35Arquitectura Decodificador
36Procesamiento de Bitstream
37Decodificador de Entropía
38Decodificación Texturas
39Decodificación Run-Level
40Escaneo Inverso
41Cuantización Tipo 1
42Cuantización Tipo 2
43DCT_2D
44DCT_2D
Buffer entrada
IDCT_1D
IDCT_1D
ROM 8x8 Constantes A
ROM 8x8 Constantes AT
Unidad de Control
45IDCT_1D
Multiplicador Paralelo
Aritmética Distribuido
46Decodificación de MV
47Compensación de Movimiento
48Resultados 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
49Resultados 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
50SystemC
51Qué 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.
54Metodologí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
55Metodología con SystemC
Modelo enSystemC
Simulación
Mejoramiento
Traducción con Software
Síntesis
Resto del proceso
56SystemC en contraste con otros lenguajes
57CODIGO 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
58Módulos diseñados en SystemC
IDCT Decodificador de Entropía. Decodificación
Run-Level. Escaneo inverso. Cuantización
Inversa.
59Conclusiones
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.
60Conclusiones
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.
61Conclusiones
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.