En los últimos años se ha experimentado un espectacular aumento de los contenidos multimedia. Desde los teléfonos móviles hasta los televisores, pasando por los ordenadores, tabletas o videoconsolas, existen multitud de dispositivos que tienen unas capacidades multimedia muy marcadas. Hoy en da, los usuarios demandan un acceso ráapido y eciente a estos contenidos, de los que el vídeo es parte fundamental. El trafico multimedia cada vez es mas importante en Internet. Actualmente, este traco suma el 29% del trafico total, y se espera que para 2017 crezca hasta el 69%.
Los codecs de vídeo minimizan el tamaño ocupado por los vídeos intentando alterar su calidad lo menos posible, pero este proceso es muy costoso computacionalmente. Afortunadamente, muchos de estos códecs, el cóodigo del codicador puede ser paralelizado, y el auge de las arquitecturas paralelas ha hecho esta opcion muy interesante. Debido a que el aumento de la potencia de cómputo de los núcleos de proceso de las Unidades Centrales de Proceso (CPU) se ha ralentizado desde hace algún tiempo, se han impuesto nuevas alternativas que mitigan este estancamiento.
Es por ello que surgen los procesadores multinucleo, donde varios núcleos conviven en un único procesador. Sin embargo, en los últimos años, un nuevo dispositivo ha atraído mucho la atención de los programadores: las Unidades de Procesamiento Grafico (GPU). Estos elementos, pensados inicialmente para procesos gracos, se fleexibilizaron, consiguiendo ejecutar codigo de proposito general, proporcionando mayores capacidades de cómputo que las CPUs contemporaneas, dando lugar a General Purpose GPU (GPGPU).
El objetivo de este TFG, por tanto es el de paralelizar alguna parte de un codificador de vídeo en una arquitectura heterogénea basada en GPU para conseguir reducir el coste computacional y mantener las mejores prestaciones de calidad y tasa de bits del vídeo codificado