Evaluación del rendimiento de las arquitecturas HPS y HPS+FPGA para un sistema de procesamiento de imágenes - Sernaqué Julca, Juan Carlos (2020)
En el presente trabajo se utilizó la plataforma SoC DE10-Nano para el diseño e implementación de un sistema de procesamiento de imágenes basado en un núcleo ARM (HPS) y una FPGA de tal manera que la carga computacional puede ser asignada a cualquiera de los dos. A este diseño se le llamó Arquitectura HPS + FPGA para diferenciarlo de un sistema de procesamiento de imágenes basado sólo en un núcleo ARM (HPS); es decir, que la carga computacional no puede ser dividida y el ARM es el único encargado del procesamiento. A éste último diseño se le llamó Arquitectura HPS. El objetivo de la investigación fue evaluar el rendimiento de ambos diseños en función de dos parámetros, el tiempo de ejecución de los algoritmos de procesamiento de imágenes y el consumo de energía. La investigación comienza con el desarrollo de un diseño de hardware para el procesamiento de imágenes en la FPGA utilizando los núcleos de video IP del Programa Universitario (University Program - UP) de Intel - FPGA y otros núcleos de diseño propio. Luego se procede a la elaboración de rutinas en C/C++ para el procesamiento de imágenes en el HPS usando la librería OpenCV. Para esto se planteó trabajar con imágenes de 320x240 pixeles, empleando tres algoritmos de procesamiento: Conversión de una imagen en formato RGB a escala de grises, filtrado de mediana y detección de bordes mediante Canny. Por otra parte para evaluar el consumo de energía fue necesaria la construcción de un instrumento de medición para la toma de datos en tiempo real que luego fueron almacenados en un archivo externo. La evaluación del rendimiento se realizó en primer lugar ejecutando los algoritmos de forma separada, para luego tomar medidas del tiempo de ejecución y el consumo de energía. Finalmente se realizó la evaluación del rendimiento ejecutando los tres algoritmos a la vez y se utilizando una cámara como fuente de video. Los resultados se mostraron en pantalla usando el escritorio Linux de la plataforma SoC DE10-Nano.