[en] This Thesis is motivated by the need to process big amounts of data in a short time. The structure of the data to be processed is, in most of the cases, uniform and repetitive, although it is not always the case. Therefore, the parallelization of the processing tasks has been mainly carried out by means of graphics processors (GPUs), which achieve a very high performance for this kind of algorithms, and in some other cases we have implemented the image processing as an specific accelerator in a FPGA. The work accomplished in this Thesis is focused on the parallelization of different compute-intensive processing algorithms used in Optics. In particular, we target the following applications: high performance pupil tracking, automatic and real time presbyopia correction glasses, real time processing of Hartmann-Shack images, and the parallelization of OCT image processing. Regarding pupil tracking several algorithms have been implemented and parallelized to obtain a high-performance version. Furthermore, a set of images has been characterized and used to perform an accuracy and performance analysis of the different implemented algorithms. Multiple optimizations have been applied to the GPGPU implementation to improve its performance. As a result, pupil tracking at speeds higher than 1000 images/second have been achieved in some configurations. Using the tools developed for pupil tracking, an automatic and real time presbyopia correction glasses have been developed. This wearable device is completely autonomous and controlled with a smartphone. The smartphone processes the images of the eyes and, from the obtained data, it calculates the correction that should be applied by the optoelectronic lenses. The whole device is powered by the smartphone battery and another small battery used to power the infrared illumination. To validate the results, a test with 8 subjects has been carried out, obtaining an average improvement of 0.3 in their visual acuity in decimal scale using a test placed at 35cm. Furthermore, a specific OpenCL implementation for FPGAs has been created and optimized with the purpose of testing the suitability of such platforms to control this wearable device. To do so, their power consumption and performance have been measured and compared with the numbers obtained by the smartphone. Regarding the real-time processing of Hartmann-Shack images, three algorithms have been parallelized and optimized for their execution in graphics processors. A novel pupil tracking algorithm for Hartmann-Shack images has been developed, parallelized and optimized. Both accuracy and performance have been characterized, using H-S images generated by simulations, obtaining good results in both metrics. A wide variety of configurations and resolutions have been tested, and some of them have resulted in a significant speedup of up to 100x when comparing the sequential implementation and the parallel GPGPU one. Finally, the processing of OCT (Optical Coherence Tomography) images has been parallelized and optimized. OCT systems generate a great amount of data on each measurement, easily reaching more than 2GB of data per volume, as it is the case of the OCT system that we have employed. This huge amount of data requires a highly computing-intensive processing to generate the final 3D images of the eyes. Our parallel implementation of the processing algorithms by means of graphics processors has resulted in speedups of up to 8x.

[es] Esta Tesis viene motivada por la necesidad de procesar grandes cantidades de datos en un corto espacio de tiempo. El tipo de datos sobre los que se ha trabajado presenta, en la mayoría de los casos, una estructura uniforme y un procesamiento repetitivo, aunque no siempre es así. Por ello, la paralelización del procesamiento se ha realizado principalmente mediante procesadores gráficos (GPUs) que obtienen un muy buen rendimiento ante este tipo de algoritmos y, en algunos casos, con aceleradores específicos implementados en una FPGA. El trabajo realizado se ha centrado en la paralelización de algoritmos utilizados en diferentes aplicaciones de la óptica. Esta Tesis se divide en seis capítulos: introducción, seguimiento pupilar de alto rendimiento, gafas de corrección automática y en tiempo real de la presbicia, procesado de imágenes de Hartmann-Shack en tiempo real, paralelización del procesado de imágenes de OCT, y conclusiones y vías futuras. En cuanto al seguimiento pupilar se han implementado y paralelizado varios algoritmos con el fin de obtener una versión de alto rendimiento. Además, se ha caracterizado un conjunto de imágenes de pupilas con el que se ha llevado a cabo un análisis de la precisión y rendimiento de los diferentes algoritmos implementados. En la implementación GPGPU se han llevado a cabo numerosas optimizaciones para mejorar el rendimiento, consiguiéndose velocidades de procesamiento superiores a 1000 imágenes por segundo en algunas configuraciones. Partiendo de los avances conseguidos en el capítulo sobre seguimiento pupilar se han desarrollado las gafas de corrección automática y en tiempo real de la presbicia. Este dispositivo es completamente autónomo, siendo controlado únicamente a través de un teléfono móvil inteligente. Dicho teléfono es el encargado de procesar las imágenes de los ojos y, a partir de los datos obtenidos, calcular la corrección que se debe aplicar en las lentes optoelectrónicas. Todo el dispositivo se alimenta de la batería del teléfono móvil y de una pequeña batería externa utilizada para la iluminación infrarroja. Además, se ha llevado a cabo un experimento con 8 sujetos présbitas que han mejorado su agudeza visual en 0.3 de media en escala decimal sobre un test situado a 35cm de distancia. Por otra parte, se ha realizado una implementación en OpenCL optimizada para FPGAs con el propósito de explorar la idoneidad de estas plataformas para controlar este dispositivo. De forma que se ha medido tanto su consumo como su rendimiento, y se ha comparado con el obtenido por el teléfono inteligente. En el capítulo relativo a las imágenes de Hartmann-Shack se han paralelizado y optimizado tres algoritmos de procesado de éstas para su ejecución en procesadores gráficos. Además, se ha desarrollado, paralelizado y optimizado un novedoso algoritmo de seguimiento pupilar en imágenes de Hartmann-Shack. Asimismo, se ha caracterizado tanto su precisión como su rendimiento, mediante el uso de imágenes generadas mediante simulaciones. Se han obtenido resultados significativos tanto en precisión como en rendimiento. Si bien se han comparado una gran variedad de configuraciones y resoluciones, con algunas de las imágenes utilizadas se consiguen aceleraciones superiores a 100x entre la versión secuencial y la versión paralela GPGPU. Por último, se ha paralelizado y optimizado el procesado de imágenes obtenidas mediante un sistema OCT (Tomografía de Coherencia Óptica). Los sistemas OCT generan grandes cantidades de datos en cada medida, pudiendo alcanzar fácilmente los 2GB según el sistema de adquisición utilizado. Estos datos requieren un procesamiento muy intensivo en cómputo para obtener las imágenes finales. Es por ello que la paralelización de este procesamiento mediante el uso de procesadores gráficos ha arrojado resultados con aceleraciones que alcanzan hasta 8x.