Durante los últimos años, el procesamiento de video se ha vuelto una tarea esencial en los sistemas multimedia portables, lo cual introduce la necesidad de disponer de codificadores y decodificadores (codecs) de video optimizado. Resultado de los esfuerzos de investigación sobre codificación de video son las normas UIT-T H.261, H.263, H.264 e ISO/CEI MPEG-1, MPEG-2, MPEG-4. Estas normas contemplan diversos tipos de aplicaciones y exigencias variadas en cuanto al desempeño, a la calidad de imagen, a la complejidad y así como a la mejora en el aumento en la compresión.
Existen diferentes requerimientos en la implementación de codecs. Actualmente los codecs basados en los estándares H.264 y MPEG-4 se caracterizan por su gran complejidad y la demanda computacional de algunos módulos de procesamiento. Estos codecs pueden ser implementados en software o en hardware. En el primer caso, el uso de plataformas basadas en procesadores (cores) introducen flexibilidad y capacidad de adaptación rápida a los estándares, sin embargo, no constituyen una solución óptima desde el punto de vista del desempeño. Por otra parte, el diseño de un nuevo hardware es mucho más demandante en tiempo y la realización de modificaciones son más costosas. Bajo este contexto, la posibilidad de introducir unidades aceleradoras para mejorar el rendimiento de una aplicación específica, permite el diseño de sistemas más óptimos.
Específicamente en este proyecto se pretende identificar, diseñar e implementar como una unidad aceleradora de hardware al menos uno de los módulo del algoritmo de codificación de video basado en el estándar H.264 que demanden mayor capacidad computacional. Se investigará el mejor esquema arquitectural para esta unidad que permita optimizar el desempeño. Para decidir acerca del módulo y para la especificación de la unidad aceleradora se utilizará la técnica de profiling del algoritmo de codificación. En este trabajo se utilizarán dispositivos reconfigurables (FPGAs: Field programable Gates arrays) como tecnología base para la implementación de la unidad aceleradora, ya que esta tecnología permite experimentar diversos esquemas arquitecturales en poco tiempo.
|