ImplementaciĆ³n de una unidad aceleradora de hardware para el codificador de video H.264.

Durante los ultimos 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 investigacion sobre codificacion 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 desempeno, a la calidad de imagen, a la complejidad y asi como a la mejora en el aumento en la compresion. Existen diferentes requerimientos en la implementacion de codecs. Actualmente los codecs basados en los estandares H.264 y MPEG-4 se caracterizan por su gran complejidad y la demanda computacional de algunos modulos 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 adaptacion rapida a los estandares, sin embargo, no constituyen una solucion optima desde el punto de vista del desempeno. Por otra parte, el diseno de un nuevo hardware es mucho mas demandante en tiempo y la realizacion de modificaciones son mas costosas. Bajo este contexto, la posibilidad de introducir unidades aceleradoras para mejorar el rendimiento de una aplicacion especifica, permite el diseno de sistemas mas optimos. Especificamente en este proyecto se pretende identificar, disenar e implementar como una unidad aceleradora de hardware al menos uno de los modulo del algoritmo de codificacion de video basado en el estandar H.264 que demanden mayor capacidad computacional. Se investigara el mejor esquema arquitectural para esta unidad que permita optimizar el desempeno. Para decidir acerca del modulo y para la especificacion de la unidad aceleradora se utilizara la tecnica de profiling del algoritmo de codificacion. En este trabajo se utilizaran dispositivos reconfigurables (FPGAs: Field programable Gates arrays) como tecnologia base para la implementacion de la unidad aceleradora, ya que esta tecnologia permite experimentar diversos esquemas arquitecturales en poco tiempo.