resultados de tiempo de procesamiento
4.14 Análisis en tiempo real utilizando el DSP/BIOS
El DSP/BIOS utilizado por el CCS proporciona varios módulos de análisis en tiempo real, incluyendo el LOG de mensajes de registro y STS para las estadísticas calculadas. La instrumentación LOG y STS transfiere los datos estadísticos a la PC. Los resultados obtenidos de los algoritmos procesados en la tarjeta TMS320DM6437, se obtuvieron realizando el método “stop-mode”, debido a problemas de compatibilidad con el RTDX (no se tiene compatibilidad de la tarjeta TMS320DM6437 con el módulo RTDX), algunas veces existe incompatibilidad del software para poder utilizar el RTDX, pero los resultados se pueden obtener deteniendo la aplicación.
4.14.1Módulo UTL
En la programación de la RF5 se encuentran módulos llamados UTL, que son macros que contienen el prefijo UTL_xxx. Estos macros pueden ser expandidos con el código que realiza la función de depuración, en particular, los módulos CHAN, ICC, SSCR, y SCOM, que hacen uso de la macro UTL_assert.
Con la expansión condicionada por el código de las macros, se puede reducir el tamaño del código y eliminar funciones innecesarias en la fase de implementación.
Todas la macros UTL las podemos encontrar en el documento: Reference Frameworks for eXpressDSP Software: API Reference [38].
El módulo UTL implementa las siguientes clases de funciones de depuración:
Message severity macros. Errores, advertencias, mensajes de diagnóstico, y mensajes de depuración son enviados a través de las macros que expanden a LOG_printf()-style. Los nombres de las macros son UTL_logError, UTL_logWarning(), UTL_logMessage(), y UTL_logDebug().
Assertion macro. Detiene la ejecución cuando existe alguna falla y muestra la línea de código fuente en la ventana de depuración, la sintaxis de la macro es UTL_assert(<condición>). Esta función en particular es muy útil en las operaciones de inicialización como puede ser en la ejecución de un algoritmo.
Time measurement macros. Esta macro se encarga de medir el tiempo de ejecución que existe entre dos ejecuciones periódicas en un punto del programa. Las estadísticas se muestran en los objetos STS en CCStudio. Las macros son UTL_stsStart() y UTL_stsSTOP() para los tiempos de ejecución, UTL_stsPeriod() para medir el tiempo entre dos ejecuciones periódicas en un punto del programa, y UTL_stsPhase para la medición de fase entre dos puntos periódicos. La RF5 implementada para el procesador
TMS320DM6437 contiene diez objetos STS que se pueden utilizar para la medición de tiempo/periodo con funciones UTL_sts.
XDAIS algorithm diagnostics macros. La macro se encarga de reportar el uso de la pila y requisitos XDAIS, los nombres de las macros son UTL_showAlgMem() y UTL_showHeapUsage().
En la Tabla 7 se observa el cuadro comparativo para la función de detección de bordes con RF5 y sin RF544 utilizando el procesador DM6437 a 594 MHz en formato de video D1 NTSC:
Tabla 7. Cuadro comparativo de tiempo de procesamiento de un algoritmo con RF5 y sin RF5 en una trama.
Función (Procesamiento con RF5) Tiempo (ms) Función (Procesamiento sin RF5) Tiempo (ms)
Extracción de luminancia 0.8 Extracción de luminancia 3.2 Extracción de una ventana
7x7
1.2 Extracción de una ventana 7x7
5.7 Gradiente y magnitud 2.0 Gradiente y magnitud 13.7 Bucle de detección de máximos locales 4.3 Bucle de detección de máximos locales 10 Procesamiento de la imagen
(para crear una imagen binaria)
5.9 Procesamiento de la
imagen (para crear una imagen binaria) 9.7 Algoritmo de detección de bordes 18.5 Algoritmo de detección de bordes 47.6
Insertar crominancia 5.9 Insertar crominancia 8.5
Tiempo de procesamiento 38.6 Tiempo de procesamiento 98.4 Tabla 8. Cuadros por segundo procesados en un algoritmo de detección de bordes con RF5 y sin RF5.
Función
(Procesamiento con RF5) FPS
Función
(Procesamiento sin RF5) FPS
Cuadros por segundo 25.9 Cuadros por segundo 10.2
A modo de comparación, al implementar un algoritmo de procesamiento de video en el procesador DM642 a 720 MHz con una estructura de trabajo nivel cinco, utilizando un filtro de vector de mediana (FVM) tiene un resultado de tiempo de procesamiento para un cuadro que se muestra en la Tabla 9 [50].
44
El algoritmo de detección de bordes sin la utilización de una estructura de trabajo fue realizada utilizando Simulink de MatLab utilizando diferentes módulos (Video Capture DM6437, Deinterleave YCbCr, Edge Detection, Convert Image y Video Display), se realiza la traducción de MatLab a un proyecto compatible con Code Compose Studio generando el código en lenguaje C (librerías, drivers, y código fuente) que servirá como software de comparación con la RF.
Tabla 9. Tiempo de procesamiento para una trama utilizando el procesador DM642 con una estructura de trabajo nivel cinco. Función (Procesamiento con RF5) Tiempo (ms) FVM (DM642) 26.6
Un IDK (Image Developer’s Kit) es una plataforma de prototipado rápido para el desarrollo de algoritmos de procesamiento de imágenes y video. Utilizando las herramientas de hardware y software se pueden implementar algoritmos conceptuales en la tarjeta IDK, con entrada y salida de video en tiempo real, el resultado de tiempo de procesamiento de una trama ejecutando un algoritmo FVM se muestra en la Tabla 10 [50].
Tabla 10. Tiempo de procesamiento de una trama con un algoritmo FVM en un IDK.
Función Tiempo
(ms)
FVM (IDK) 122
Se realizo la medición del tiempo de procesamiento en tres tramas diferentes en formato D1 utilizando la estructura de trabajo nivel cinco implementada en el procesador DM6437, los resultados se muestran en la Figura 4.13.
(a) Lampara. (b) Columna y techo. (c) Circuito impreso
38.6 ms 38.6 ms 38.6 ms
Figura 4.13. Tiempo de procesamiento para tres tramas diferentes.
4.15Conclusiones
Los tiempos de procesamiento para el algoritmo de detección de bordes permanecen constantes sin que dependa del número de detalles que contenga la trama, ya que al proceso de implementación realiza la exploración de la imagen siempre en su totalidad.
La implementación de la estructura de trabajo nivel cinco en el procesador TMS320DM6437 reduce al mínimo los requisitos de memoria interna del procesador, lo que nos permite tener un mejor tiempo de procesamiento de datos en la memoria cache, además de mejorar el tiempo gracias al módulo SSCR encargado de la superposición de datos que son solicitados por el algoritmo de detección de bordes.
La RF5 permite la adaptación rápida de una aplicación y de forma personalizada. La RF5 puede ser tomada como una metodología para la construcción de diferentes aplicaciones en el área de procesamiento de video e imágenes, gracias a la estructura de programación para la inserción o extracción de algoritmos hace que el código sea reutilizable o utilizado como un punto de partida para futuros proyectos, que nos permite en periodos cortos de tiempo, realizar la ejecución de código de procesamiento de imágenes y video, que se verán reflejados en la implementación de proyectos con un tiempo de desarrollo, pruebas y validación mucho menores.