Un desarrollador ha implementado un detector de características FAST acelerado por SIMD para el microcontrolador ESP32-S3, logrando un rendimiento del doble que la implementación de referencia. El sistema procesa un frame QVGA (320x240) en aproximadamente 6 milisegundos, permitiendo el procesamiento en tiempo real de flujos VGA a 30 fps. Esta optimización destaca la capacidad del chip, que opera a 240 MHz y cuesta menos de 2 dólares, para ejecutar instrucciones SIMD de 128 bits, un recurso poco documentado en la arquitectura del dispositivo.
El proceso de desarrollo requirió superar limitaciones específicas de la instrucción de ensamblador del ESP32-S3. El autor identificó que la arquitectura no permitía lecturas directamente desalineadas y que las operaciones de comparación solo soportaban números de 8 bits con signo. Para resolver esto, se desarrolló una solución matemática para ajustar el rango de los valores de píxel de [0, 255] a [-128, 127] utilizando operaciones de XOR, evitando así el clamping saturante de las instrucciones aritméticas SIMD. Además, se creó un asignador de registros básico propio, basm, para gestionar la memoria de forma eficiente. El resultado final es un detector de esquinas que mejora el throughput en un 220%, pasando de 5,1 a 11,2 millones de píxeles por segundo, demostrando la viabilidad de la visión por computadora avanzada en hardware de bajo coste.
