Home
Plataforma de software empotrado para la implementación de
Contents
1. 1 1 Integraci n n del 2 i 1 Engine i 5 2 a D 1 o 1 Integraci n 1I del I 3 Servidor I e 1 5 i o 1 1 API de VISA 1 tem Creaclonidel Codificaci n MP3 Algoritmo VC1 codificaci n Figura 2 19 Arquitectura del marco de trabajo de CodecEngine Tomado de 36 La figura 2 19 muestra la arquitectura que presenta una aplicaci n al incluir las API de CodecEngine para la ejecuci n de un algoritmo 31 El marco de trabajo de Codec Engine utiliza el concepto de RPC pues utiliza la capa de DSPLink con capas de software que son una API encargada de enmascarar funciones de los estandares VISA y de iUniversal Dicho marco de trabajo se integra en conjunto con la capa funcional denominada motor central de ejecuci n Core Engine Runtime o capa funcional de la m quina De esta forma el motor central de ejecuci n se encarga de manejar instancias a objetos de algoritmos encapsulados como m dulos xDM Estas instancias pueden ser hechas remotamente o localmente dependiendo de la arquitectura que se utilice ya sea ARM o ARM DSP Las capas de enlace de VISA o Universal definen el procedimiento para crear borrar o usar un m dulo remoto o local ejecutado en el DSP o en el GPP respectivamente siempre y cuando este haya sido creado con los est ndares xDM 46 Por lo tanto Codec Engine funciona como un conducto para transferir las llamadas hechas por parte de la apli
2. fps fps fps 37 9 19 24 6 22 16 23 38 9 19 24 6 23 15 24 39 9 19 24 7 23 16 24 40 9 19 24 8 22 16 24 41 9 18 23 8 22 16 24 42 9 18 24 8 20 15 24 43 9 18 24 7 23 14 24 44 9 19 24 7 22 13 23 45 9 19 24 7 24 12 24 46 9 19 24 6 25 12 24 47 9 19 24 6 24 13 24 48 9 19 23 6 24 13 23 49 9 19 24 7 23 12 23 50 9 19 24 7 23 12 24 51 9 19 24 6 23 12 24 52 9 19 23 6 24 11 23 53 9 19 24 7 24 12 24 54 9 19 24 7 23 12 23 55 9 18 24 6 24 12 23 56 9 19 23 T 23 12 24 57 9 19 23 7 23 12 24 58 9 19 24 8 23 12 24 59 9 19 24 8 24 12 23 60 9 19 24 8 24 14 24 70 9 19 23 8 25 14 23 Promedio 13 5 19 5 23 5 11 5 22 5 16 23 5 84 Porcentaje 140 120 100 80 CASO 1 CASO 2 CASO 3 60 20 0 10 20 30 40 50 60 70 80 Consumo de CPU Figura 6 4 Consumo de GPP en flujos de video para los casos 1 2 3 Tasa cuadros s 30 25 20 CASO1 15 CASO2 CASO3 Figura 6 5 Tasa de datos en el despliegue de video para los casos 1 2 3 85 Porcentaje 50 45 25 Caso2 Video Caso3_ Video 15 10 0 10 20 30 40 50 60 70 80 Consumo DSP Figura 6 6 Consumo de DSP para los casos 2 y 3 de video Para el caso n mero 1 donde todos los procesos se encuentran en el GPP el consumo del GPP tiene un promedio de 100 para poder desplegar video adem s se obtiene un promedio de tasa de imag nes por segundo de 13 5 cuadros s A adiendo el elemento de decodificaci
3. procesador ARM disminuyendo as la capacidad para desplegar b feres a la salida En la figura 6 6 se observa el consumo de DSP para los casos 2 y 3 Es relevante observar en el caso 3 cuando se ejecutan dos m dulos de algoritmos en el DSP que el consumo no supera el 40 lo que resalta la capacidad del procesador DSP para este tipo de algoritmos matem ticos La tabla 6 10 muestra un resumen de los datos tomados para los esos 1 2 y 3 Los casos 4 y 5 utilizan un archivo de video con formato h264 sin contenedor mp4 El caso 4 de estudio utiliza un elemento de decodificaci n de video para formatos h264 y un elemento de conversi n de espacio de colores en el procesador GPP y el caso 5 es la contraparte en el DSP El rendimiento con respecto a la utilizaci n de GPP y el despliegue de cuadros por segundo para estos casos se puede observar en la figuras 6 7 y 6 8 respectivamente y la informaci n detallada con respecto al flujo de datos de GStreamer utilizados se pueden observar en los ap ndices A 3 2 4 y A 3 2 5 Porcentaje 140 120 100 CASO 4 CASO 5 0 10 20 30 40 50 60 70 80 Consumo de CPU Figura 6 7 Consumo de GPP en flujos de video para los casos 4 y 5 87 Tasa cuadros s CASO4 CASO5 Figura 6 8 Tasa de datos en el despliegue de video para los casos 4 y 5 Para estos casos cuando se ejecuta la aplicaci n con s lo los elementos procesados en el GPP se utiliza una im gen de tama o
4. El paquete de DMAI funciona como un conjunto de API que facilita el manejo de b feres entre la aplicaci n ARM y el algoritmo de DSP Es una capa de abstracci n que se utiliza en la aplicaci n para el uso de b feres que permiten el procesamiento de datos a trav s de las capas de Codec Engine DspLink y CodecServer La compilaci n de este paquete debe ser direccionada a la arquitectura OMAP L138 que se logra con ciertas modificaciones en sus archivos que tambi n fueron guardados en archivos de parches de software En los siguientes c pitulos se explicar el desarrollo de los algoritmos de audio y de video escogidos junto a una descripci n acerca de la integraci n de dichos algoritmos con la interfaz de Universal y su integraci n dentro del paquete CodecServer Finalmente se a ade una posible soluci n acerca de c mo se puede desarrollar una aplicaci n ejecutada en el ARM a trav s de GStreamer que utiliza las API de CodecEngine DSPLink y CodecServer las cuales ayudan a la aplicaci n a comunicarse con los algoritmos de DSP creados 56 4 Creaci n de los m dulos multimedia 4 1 M dulo de Video 4 1 1 Descripci n del m dulo El m dulo de video propuesto para ejemplificar el uso de la API de Universal es un algoritmo para la conversi n de espacios de color de un flujo de datos de video Espec ficamente la conversi n del espacio de color 1420 Y 4 Cr 2 Cb 2 a RGB565 A trav s de una aplicaci n en GStrea
5. tecnolog a DSP En este trabajo se crea una herramienta destinada a la construcci n de aplicaciones DSP Se seleccion la micro arquitectura OMAP L138 espec ficamente la tarjeta ZoomEvm como plataforma de desarrollo Antes de la realizaci n de este proyecto no exist a un marco de trabajo que vinculara el conjunto de herramientas ya existentes para construir aplicaciones multimedia en la micro arquitectura del Sistema en Chip SoC OMAP L138 que aprovechen las capacidades de procesamiento digital de se ales DSP disponibles para audio y video a trav s de algoritmos dise ados especialmente para este tipo de dispositivos El conjunto de herramientas implementadas se basa en componentes de software libre provistos por la comunidad GNU Linux y adaptados a la tecnolog a OMAP por Texas Instruments Los elementos son unificados en un kit de desarrollo de software empotrado encargado de automatizar los procesos de construcci n y compilaci n de componentes de software dentro de los cuales se destaca un gestor de arranque el kernel de GNU Linux y un sistema de archivos as como como mecanismos de instalaci n del software en una tarjeta de desarrollo Palabras claves Algoritmos DSP Sistema en Chip OMAP L138 Sistemas empotrados Audio Video Software libre GNU Linux Abstract The demands of storage space and performance for embedded systems for digital signal processing DSP have driven the development of new technologies f
6. Codec aplicaci n Engine ARM DSF Figura 7 1 Esquema de LAD dentro del marco de trabajo creado 92 Implementar las funciones de LAD Link Arbitrer Daemon en futuras versiones dentro del paquete de CodecEngine permitiria ejecutar mas de una instancia del mismo CodecServer hilos en el DSP Con la integraci n de LAD se pueden crear n aplicaciones sin usar necesariamente el marco de CodecEngine con un limite maximo que pueden crear a su vez n instancias de un m dulo algoritmo de DSP La figura 7 1 ilustra del proceso que ejecutaria LAD 93 Bibliografia 1 A Doblander A Zoufal and B Rinner A novel software framework for embedded multiprocessor smart cameras ACM Trans Embed Comput Syst vol 8 no 3 pp 1 30 2009 2 A Ford and A Roberts Colour Space Conversions b ed August 1998 3 A Lad P Raghavan and S Neelakandan Embedded Linux System Design and Development Taylor amp Francis Inc 2006 4 C Almeida Practical experience teaching embedded systems SIGBED Rev vol 5 no 3 pp 1 8 2008 5 D A Kerr Chrominance Subsampling in Digital Images 2 edition De cember 2009 Online Available http dougkerr net Pumpkin articles Subsampling pdf Accessed January 11 2010 6 D J Jackson and P Caspi Embedded systems education future directions initiatives and cooperation SIGBED Rev vol 2 no 4 pp 1 4 2005 7 D P Bovet
7. Memoria est tica contigua de tama o del Bufer de RGB565 Funciones Necesarias del est ndar iUniversal UNIVERSALCSC_TI_alloc Realiza la petici n de memoria para el algoritmo UNIVERSALCSC_TI free Libera la memoria del algoritmo y la referencia al algoritmo UNIVERSALCSC_TL initObj Carga al objeto del algoritmo los valores est ticos iniciales que necesite durante su ejecuci n como los coeficientes para la ecuaci n de conversi n de espacio de colores Esta funci n se comunica con el marco de CodecEngine cada vez que se necesite crear un algoritmo de este tipo UNIVERSALCSC_TI process Esta funci n se comunica con el marco de CodecEngine cada vez que se necesite ejecutar la funci n de conversi n de 1420 a RGB565 IMG_yuv420pl_to_rgb565 UNIVERSALCSC_TL control Figura 4 5 Marco de implementaci n del algoritmo de conversi n de 1420 a RGB565 En la figura 4 6 se puede observar la estructura del directorio que se genera cuando se crea el m dulo de algoritmo xDM a trav s de la estructura de paquetes utilizadas con las XDCTOOLS que permiten luego utilizar este paquete dentro del proceso de creaci n del codecServer el cual genera el archivo ejecutable que contiene el m dulo de conversi n de 61 espacio de colores y que puede ser llamado por una aplicaci n en el ARM a trav s del marco de CodecEngine cuando se requiera ejecutar el algoritmo UNIVERSAL_CSC version 0 0 1 wizardversion 0 5 3 UNIVERSA
8. de software o de hardware Las referencias al hardware dentro del SDK de RidgeRun se acceden de una forma estructurada y faculta al usuario la posibilidad de referirse a l durante el desarrollo de una aplicaci n 2 2 1 Caracter sticas del SDK de RidgeRun Adaptar GNU Linux a cualquier plaforma de hardware nueva es una tarea que implica conocimiento avanzado de sistemas computacionales 1 Sin embargo el SDK de RidgeRun es un kit de desarrollo para Linux Empotrado que est dise ado para simplificar ese trabajo En l se integran y utilizan herramientas de c digo abierto provistas por Texas Instruments y la comunidad de C digo Abierto Actualmente existen SDK optimizados para diversas plataformas dentro de las cuales se destacan la OMAP35x la DM365 y la DM355 Dentro de las utilidades que el SDK incluye se encuentran paquetes como el gestor de arranque una versi n del kernel GNU Linux y aplicaciones y bibliotecas tales como GStreamer Ot D Bus entre otros 24 La creaci n de un SDK 24 est basado en un conjunto de programas y secuencias de comandos tales como o El sistema de GNU Make 23 o Archivos de comandos de l nea script de shell utilizados para automatizar tareas o Un conjunto de Makefiles personalizados para cada aplicaci n y utilizado para integrar Un gestor de arranque bootloader Un n cleo de Linux basado en kconfig Un sistema de archivos file system Una cadena de herramientas toolchain
9. en c digo objeto que pueda ser interpretado por el procesador 24 En la figura 2 8 se puede observar el flujo de trabajo del compilador con respecto a un archivo de c digo fuente Archivos Compilador archivo obj Representaci n Intermedia Bibliotecas Externas Figura 2 8 Proceso de Compilaci n Normalemente las operaciones que realiza un compilador son 15 o An lisis morfol gico donde el compilador se encarga de crear una representaci n intermedia del programa fuente o An lisis sint ctico que contruye un modelo abstracto del c digo fuente o An lisis sem ntico que agrega al modelo abstracto reglas para la producci n de c digo objeto o Generaci n de c digo objeto donde se genera el archivo ejecutable posiblemente optimizado Cuando se trabaja con un sistema embebido usualmente el software o las aplicaciones se desarrollan y se crean en otra arquitectura por ejemplo en una computadora de escritorio Para el desarrollo de software embebido se necesita un compilador que sea capaz de crear c digo objeto para el sistema en cuesti n A esto se le denomina desarrollo cruzado o compilaci n cruzada El compilador GNU tiene la capacidad de realizar esta funci n para diferentes arquitecturas como es el caso de este proyecto donde se utiliza un procesador ARM No solo soporta c digo C sino que tambi n traduce c digo C FORTRAN ADA y JAVA a lenguaje de m quina entre otros 15 Entre o
10. que permite compilar los paquetes de software para la arquitectura deseada 11 Una configuraci n propia de cada arquitectura y tarjeta El DVSDK dedicado a aplicaciones de multimedia o Detecci n e instalaci n de las herramientas necesarias para compilar El gestor de arranque El kernel GNU Linux El sistema de archivos Las bibliotecas de GNU Linux Las aplicaciones extra El SDK de RidgeRun automatiza el proceso de compilaci n as como la instalaci n de los componentes de software en la tarjeta stos pueden ser configurados mediante un men principal con sub men s de configuraci n por componente tal como muestra la figura 2 4 _ Architecture configurations gt i lt Select gt Figura 2 4 Men principal de configuraci n del SDK A continuaci n se explican detalladamente los bloques escenciales que conforman la herramienta de desarrollo provista por RidgeRun 2 2 2 Gestor de arranque Bootloader GNU Linux no puede iniciar sin un c digo especializado para cada tarjeta que permita arrancar el sistema Se requiere un gestor de arranque para configurar la memoria del sistema y copiar la imagen del kernel de un medio de almacenamiento persistente a una direcci n de memoria de arranque de sistema Una vez que se completa esta fase el gestor de arranque ya no es necesario y le transfiere el control al kernel 11 12 La caracteristica principal del gestor de arranque es que se encuentra
11. 100 16 100 32 77 100 81 14 98 17 100 26 78 100 82 21 101 25 99 25 Promedio 99 9 84 9 24 99 9 25 4 99 9 20 5 82 Table 6 9 Cuadros por segundo para los casos de video Tiempo casol caso2 caso3 caso4 caso5 caso6 caso7 s fps fps fps fps fps fps fps 1 18 20 23 14 21 17 24 2 26 21 24 13 20 14 23 3 26 21 24 12 21 13 24 4 21 21 23 11 24 15 24 5 10 19 24 10 23 15 24 6 9 18 23 10 22 15 23 7 8 18 24 8 22 14 24 8 8 18 24 8 22 14 24 9 8 18 24 7 21 14 24 10 9 18 24 7 21 14 23 11 9 18 24 7 21 15 24 12 8 18 24 7 22 15 24 13 9 18 24 6 22 15 24 14 9 18 24 6 22 15 23 15 9 18 24 6 22 15 23 16 9 18 24 6 23 15 24 17 9 18 23 7 22 15 24 18 9 18 24 6 21 15 23 19 9 18 24 6 21 15 24 20 9 18 24 6 21 15 24 21 9 18 24 6 22 15 23 22 9 18 24 6 23 15 24 23 9 18 24 6 23 15 23 24 9 18 23 7 23 14 24 25 9 18 24 6 22 15 24 26 9 18 24 6 22 14 23 27 9 19 23 6 22 15 24 28 9 18 23 6 23 15 23 29 9 18 23 7 23 15 23 30 9 18 24 7 22 15 24 31 9 18 24 7 22 15 24 32 9 18 24 6 23 15 24 33 9 18 24 6 22 16 23 34 9 18 24 6 21 16 24 35 9 18 24 6 22 16 23 36 9 18 24 6 22 16 24 83 Tiempo casol caso2 caso3 caso4 caso5 caso6 caso7 s fps fps fps fps
12. 2 D para un instante particular de tiempo como se muestra en la figura 2 22 La secuencia de video representa la escena sobre un periodo de tiempo determinado utilizando im genes como muestras en el tiempo del espacio Figura 2 22 Imagen de una escena 3 D en una imagen de video Una imagen digital es generada a trav s del muestreo de una se al espacial anal gica La representaci n m s com n para una imagen muestreada es un rect ngulo o cuadr cula que posee un largo y un ancho con los puntos muestreados posicionados en esta cuadr cula A esto se le denomina matriz de pixeles como se muestra en la figura 2 23 Figura 2 23 Muestreo Espacial Cada pixel es una muestra espacial con un valor determinado que representa el brillo luminancia y el color de una muestra Entre mayor sea la cantidad de puntos de muestreo mayor debe ser la capacidad de almacenamiento de las muestras memoria y menor el tiempo para tratar cada muestra en aplicaciones de video Una escena real es continua tanto en tiempo como en espacio Para obtener una se al de video digital se necesita muestrear la escena real tanto en el espacio proyectado como en tiempo 35 figura 2 24 Una secuencia de imagenes muestreo temporal captadas y desplegadas a una tasa de por lo menos 24 a 60 im genes por segundo permite crear una ilusi n de movimiento fluido En la tablas 2 5 y 2 6 se muestran tama os de imagenes y tasas de muestreo temporal para vi
13. 2000 34 Texas Instuments xDAIS DM Digital Media User Guide Literature Number SPRUECS8B January 2007 35 Texas Instruments XDC Consumer User Guide Literature Number SPRUEX4 July 2007 36 Texas Instruments Codec Engine Application Developer User s Guide Literature Number SPRUE67D September 2009 37 Texas Instruments TMS320C64x DSP Image Video Processing Library v2 0 1 Literature Number SPRUF30A October 2007 Revised May 2008 38 Texas Instruments AMI7x AM18x ARM Microprocessor Liquid Crystal Display Controller LCDC User Guide Literature Number SPRUFV5 March 2010 39 Texas Instruments AMI7x AM18x ARM Microprocessor Multichannel Audio Serial Port McASP Literature Number SPRUFV6 March 2010 40 Texas Instruments 7MS320C6748 Fixed Floating Point Digital Signal Processor Literature Number SPRUGJ7D August 2009 41 Texas Instruments TMS320 DSP Algorithm Standard Rules and Guidelines Literature Number SPRU352G June 2005 Revised February 2007 42 Texas Instruments 7MS320 DSP Algorithm Standard API Reference Literature Number SPRU360E February 2005 Revised Febrero 2007 43 Texas Instruments TMS320 DSP BIOS v5 41 User s Guide Literature Number SPRU423H August 2009 44 Texas Instruments 7MS320C6000 Optimizing C Compiler Tutorial Literature Num ber SPRU425A August 2002 45 S J Sangwine and R E N Horne The Colour Image Processing Handbook Optoelec tronics Im
14. 8 6 9 6 10 Tal A l A 2 Consumo de GPP en flujos de video para los casos4y3 87 Tasa de datos en el despliegue de video para los casos4y5 88 Consumo de GPP en flujos de video para los casos6y7 88 Tasa de datos en el despliegue de video para los casos6y7 89 Esquema de LAD dentro del marco de trabajo creado 92 First Window Selection for the GenCodePkg Wizard 99 xDM and Codec Package Wizard oaoa 100 VI Indice de tablas 1 1 Areas de desarrollo de los sistemas embebidos 2 ool Componentes Al DVSDE aso G BREESE EEE RES AAA a 18 2 2 servicios que ofrece DSP BIOS lt aa 24442 ee bee ee He we ee 20 2 3 Servicios que ofrece el paquete DSPLink 5486456840 e bus 23 2 5 Tama os de im genes en video Tomado de 10 36 2 6 Tasas de muestreo temporal de un video digital Tomado de 10 36 2 7 Tabla del color para RGB sE NEE RA REO 38 3 1 Componentes de la versi n 03 20 00 08 DaVinci PSP 53 6 1 Caracter sticas de la muestra de audio utilizada con audio modificado 72 6 2 Elementos de GStreamer utilizados para las pruebas de rendimiento 74 6 3 Procesador en el cual se ejecutan los procesos o 74 6 4 Consumo de GPP para los casos de audio o 75 6 5 Tabla Resumen de consumo de recursos para archivos AAC 78 6 6 Tabla Resumen de consumo de GPP para archiv
15. E 46 X ES q 7 ES 4 6 Se puede expresar como Y z 1 WO _Fat atl at a s z 4 con El filtro expresado en 4 6 suma la entrada con la respuesta de la cascada de los tres filtros peine cada uno con 1152 ceros sobre un circulo unitario El primer filtro peine esta desfasado m 1152 y el segundo en 7 2304 y el ltimo en 7 2304 a El tama o del b fer de entrada es igual al tama o del b fer de salida a La frecuencia de muestreo es fs 44100 Hz nes el n mero de muestras por b fer y se obtiene de acuerdo a los c lculos presentados en la secci n 2 33 a partir de 2 9 La figura 4 7 esquematiza el diagrama de bloques que ejemplifica la implementaci n del algoritmo presentado en 4 2 63 x n G1 y n D Figura 4 7 Implementaci n del filtro tipo peine 4 2 2 Manejo de los b feres Se implementa un manejo de los b feres como se muestra en la figura 4 9 donde se almacenan 3 bloques de datos para poder realizar 4 5 2304 Bytes B fer descartado B fer de entrada 2304 Bytes 2304 Bytes B fer 3 B fer 1 2304 Bytes B fer 2 Figura 4 8 Secuencia de copia de los b feres Cada uno de los b feres contiene 2304 bytes que representan 1152 muestras como se puede observar en la figura 4 9 64 2304 Bytes 1152 muestras y cS o 230223035 eo KEARE M3454 M3455 B fer2 M3456 M3457 EM46061 M46071 B fers M4608 M4609 er
16. TMS320C6748 sin embargo el DSP act a como un perif rico esclavo del ARM JTAG Interface ARM Subsystem DSP Subsystem ARM926EJ S CPU C674x Input PLL Clock With MMU DSP CPU Clock s pe Controlador 4KB ETB AET de vide General System Control 16KB Controlador mers De de audio _ Controller B 8KB RAM RTC Vector Table 32 k Hz Pin osc Multiplexing 64KB ROM 16KB 32KB 32KB D Cache L1 Pgm L1 RAM 256KB L2 RAM Peripherals I l DMA Audio Ports Serial Interfaces l Display Video Parallel Port Internal Memory Customizable Interfac l Mcasp Pc UART Lco 128KB PRU Subsystem wiFiFo x2 es ctr RAM As g A Control Timers Connectivity External Memory Interfaces USB2 0 USB1 1 EMAC MMC SD EMIFA 8b 16B pa OTG Ctir onci ctir 10 100 8b sata NAND Fiash POR2MDDR PHY PHY MIV RMIl x2 16b SDRAM Figura 2 1 Diagrama funcional de bloques de la arquitectura OMAP L138 Tomado de 47 El n cleo ARM tiene una arquitectura segmentada pipeline lo que permite al procesador y a la memoria del sistema operar continuamente El OMAP L 38 est destinado al desarrollo de aplicaciones basadas en procesamiento digital de se ales y se destaca en el sector industrial para desarrollo de dispositivos de audio aplicaciones m dicas y teleco
17. Y de video Pero use misma fila de muestras para Cb y para Cr F M todo imaglib Y Cr Cb RG565 Figura 4 4 Diagrama funcional del algoritmo de conversi n 1420 a RGB565 60 4 1 3 Integraci n del modulo de video con el marco de Universal Para poder utilizar el algoritmo de conversi n de colores en el DSP se debe enmascarar la implementaci n anterior con el marco de Universal En la figura 4 5 se puede observar un resumen del m dulo del algoritmo de video implementado con los principales elementos y funciones del est ndar Universal refi rase a 34 Objeto UNIVERSALCSC_TI_Obj esc Variable objeto que permite manejar una referencia a un algoritmo de este tipo B fers de trabajo XDM1_BufDesc inBufs Buffer de 1420 XDM1_BufDesc outBufs Buffer de RGB565 Par metros del objeto ICSC_Params ICSC_PARAMS Coeficientes de la ecuaci n para convertir 1420 a RGB565 sizeof ICSC_Params 8192 Coeficiente 1 11229 Coeficiente 2 2757 Coeficiente 3 5720 Coeficiente 4 14192 Coeficiente 5 320 Ancho 240 Altura y C lculos Funci n 1420 a RGB565 IMG_yuv420pl_to_rgb565 Y puntero Cr puntero Cb puntero RGB puntero valor ancho valor de altura R 1 0000 0 0000 1 3707 y 16 G 1 0000 0 3365 0 6982 x Cb 128 B 1 0000 1 7324 0 0000 Cr 128 Asignaci n de memoria Bufer de entrada Memoria est tica contigua de tama o del Bufer de 1420 Bufer de salida
18. agregar sus aplicaciones especialmente para DSP sin preocuparse por controladores de hardware u otros inconvenientes de firmware en la arquitectura La integraci n de las herramientas tiene como base un conjunto de secuencias de comandos scripts que incluyen e integran los m dulos provistos por Texas Instruments adaptados a la arquitectura OMAP L138 El SDK est compuesto por una serie de componentes tales como un gestor de arranque una versi n del kernel de GNU Linux un compilador cruzado gcc para el procesador ARM un sistema de archivos un instalador el DVSDK y bibliotecas de c digo abierto que han sido integradas anteriormente para otras plataformas Dentro de estas bibliotecas se encuentran Ot GStreamer y D Bus El DVSDK incluye herramientas de software embebido propiedad de Texas Instruments las cuales se utilizan para el desarrollo de aplicaciones multimedia tanto para el procesador ARM como para la construcci n de algoritmos de DSP Este paquete est integrado por componentes especializados y enlazados entre s o DSPLink o DPSBios o CodecEngine o TI CodeGen Tools o XDAIS o Dmai o XdcTools o CodecServer El paquete DVSDK adaptado para la arquitectura OMAP L138 permite la construcci n automatizada de los componentes mencionados anteriormente para que el usuario solamente dirija su atenci n a la construcci n del algoritmo y la aplicaci n encargada de ejecutarlo El enfoque de la soluci n actual
19. and M C Ph Understanding the Linux Kernel Third Edition O Reilly Media 3 ed November 2005 8 Texas Instruments DaVinci PSP SDK Product Downloads DaVinci_03_20 Product Download Page March 2010 Online Available http software d1 ti com dsps dsps_public_sw sdo_tii psp LinuxPSP DaVinci_03_20 index html Accessed January 10 2010 9 G D Micheli W Wolf and R Ernst Readings in Hardware Software Co Design San Francisco CA USA Morgan Kaufmann Publishers Inc 2001 10 I E G Richardson Video Codec Design Developing Image and Video Compression Systems Wiley 2002 11 J Lombardo Embedded Linux Thousand Oaks CA USA New Riders Publishing 2001 12 J G Proakis and D K Manolakis Digital Signal Processing 4th Edition Prentice Hall Hardcover 2006 13 K Hilman Kernel development tree for ti davinci family of processors 2009 Online Available http git kernel org p linux kernel git khilman linux davinci git a summary Accessed December 15 2009 14 Logic Corporate OMAP L138 Zoom Evm development kit Innovate product solu tions July 29 2009 Online Available http www logicpd com products development kits zoom omap 1138 evm development kit Accessed De cember 15 2009 94 15 M Barr and A Massa Programming Embedded Systems With C and GNU Development Tools O Reilly Media Inc 2006 16 M Bramberger J Brunner and B Rinner
20. audio mp3 Contenedor de audio Flujo de datos de Gstreamer utilizado gst launch filesrc location davincieffect mp3 mad audioconvert dt_audioeffect g1 4 g2 4 g3 4 g4 4 audioconvert alsasink 108 A 3 2 Flujo de datos de Gstreamer de video para medir consumo de CPU A 3 2 1 Caso 1 de video Decodificador Conversion de Espacio de colores Formato de video Contenedor de video Resolucion Cuadros por segundos alcanzados Flujo de datos de Gstreamer utilizado ffdec_h264 ARM Simpegcolorspace ARM h264 mp4 320x240 pixels 8al0 fps gst launch filesrc location ShowoffIntro_h264 mp4 ffmpegcolorspace fbdevsink qtdemux ffdec_h264 A 3 2 2 Caso 2 de video Decodificador Conversion de Espacio de colores Formato de video Contenedor de video Resolucion Cuadros por segundos alcanzados Flujo de datos de Gstreamer utilizado TIViddec2 DSP Simpegcolorspace ARM h264 mp4 320x240 pixels 17a18 fps gst launch filesrc location ShowoffIntro_h264 mp4 qtdemux fbdevsink TIViddec2 ffmpegcolorspace A 3 2 3 Caso 3 de video Decodificador Conversion de Espacio de colores Formato de video Contenedor de video Resoluci n Cuadros por segundos alcanzados TIViddec2 DSP dt_colorspace DSP h264 mp4 320x240 pixels 24a25 fps 109 Flujo de datos de Gstreamer utilizado Conversion
21. b sicos de software en un dispositivo Adem s es el paquete que permite la integraci n de aplicaciones multimedia que puedan hacer uso de interfaces necesarias para ejecutar los algoritmos de DSP La compilaci n de la mayor a de estos paquetes depende de rutas espec ficas del kernel Por lo tanto la construcci n del DVSDK consiste en un proceso de compilaci n y enlace donde se deben corregir las rutas de los archivos de cabecera del kernel de GNU Linux 2 6 32 que son utilizados por estos paquetes En esta tarea existe el riesgo que de una versi n a otra se renombren archivos o incluso se eliminen De ah la importancia del registro que se lleva en los sistemas de control de versiones Entre los paquetes del DVSDK a los cuales se les debi realizar modificaciones almacenados como parches de software est n o Codec Engine 54 o DSPLink o Codec Server o DMAI Dentro del paquete de DSPLink es donde se generan los m dulos de CMEM y de DSPLink El paquete de software de CMEM v ase secci n 2 3 2 permite instalar un m dulo denominado cmem ko dentro del kernel de GNU Linux para reservar una secci n de memoria contigua que permite el acceso de datos entre procesadores Para lograr lo anterior se deben de especificar los par metros necesarios en los archivos Makefile de este paquete para utilizar los scripts espec ficos de configuraci n para una arquitectura OMAP L138 Adem s se debe conocer el mapa de memoria RAM de
22. de evaluaci n y finalmente el desarrollo de software para el lanzamiento y mantenimiento de un producto al mercado 6 La tabla 1 1 muestra reas para las cuales se desarrollan sistemas embebidos as como ejemplos en cada una de ellas Tabla 1 1 Areas de desarrollo de los sistemas embebidos Mercado Dispositivo Inyecci n electr nica Frenos Control de Vidrios Control de Asientos Autom viles Televisi n DVD PDA Electrodom sticos Celulares Consumo gt C maras Reproductores Multmedia y GPS Control industrial Sistemas de Rob tica y de Control rm Bombas de transfusi n Medicina y 35 C maras de alta definici n Routers Redes Gateways Hube Fax Fotocopiadoras Oficinas Impresoras Monitores Los sistemas operativos basados en el kernel de GNU Linux se han introducido con solidez en el desarrollo de sistemas empotrados y a la fecha se estima que el 40 de los sistemas empotrados existentes en el mercado utilizan GNU Linux empotrado 3 El inter s principal al utilizar ARM Linux como tambi n se le conoce radica en los siguientes puntos 3 O Oo Libre de costos de regal as en tiempo de ejecuci n Variedad de herramientas que pueden ser descargadas libremente bibliotecas compi ladores archivos de comandos Mayor disponibilidad de controladores de dispositivos en comparaci n con los sistemas Operativos propietarios Disponibilidad y contro
23. de Espacio de colores Formato de video Contenedor de video Resolucion Cuadros por segundos alcanzados Simpegcolorspace ARM mpeg4 mp4 512x288 13a14 pixels Jps 110 gst launch filesrc location ShowoffIntro_h264 mp4 qtdemux TIViddec2 dt_colorspace fbdevsink A 3 2 4 Caso 4 de video Decodificador ffdec_h264 ARM Conversi n de Espacio de colores ffmpegcolorspace ARM Formato de video h264 Resoluci n 368x246 pixels Cuadros por segundos alcanzados 6a8 fps Flujo de datos de Gstreamer utilizado gst launch filesrc location davinci_cif h264 typefind ffdec_h264 ffmpegcolorspace fbdevsink A 3 2 5 Caso 5 de video Decodificador TIViddec2 DSP Conversi n de Espacio de colores dt_colorspace DSP Formato de video h264 Resoluci n 720x480 pixels Cuadros por segundos alcanzados 17a20 fps Flujo de datos de Gstreamer utilizado gst launch filesrc location davincieffect_ntsc 264 typefind TIViddec2 dt_colorspace fbdevsink A 3 2 6 Caso 6 de video Decodificador ffdec_mpeg4 ARM Flujo de datos de Gstreamer utilizado gst launch filesrc location prueba mp4 qtdemux ffdec_mpeg4 ffmpegcolorspace fbdevsink A 3 2 7 Caso 7 de video Decodificador TlViddec2 DSP Conversion de Espacio de colores dt_colospace ARM Formato de video mpeg4 Contenedor de video mp4 Resoluci n 512x288 pixels h2Cuadros por segundos alcanzados 24a25 fps Flujo de datos de Gstreame
24. de algoritmos destinados a procesar audio y video 3 El rendimiento del sistema como un conjunto mejora cuando los procesadores ARM y DSP ejecutan tareas en paralelo brindando al usuario la posibilidad de acceder a un sistema donde los procesos y los servicios pueden coexistir en conjunto sin saturar las capacidades del dispositivo Dado que ejecutar diversas aplicaciones concurrentes nicamente en el procesador ARM conlleva a una saturaci n del sistema es posible afirmar que la realizaci n del proyecto busca solucionar esta problem tica Antes de realizar este proyecto no exist a un marco de trabajo que vinculara el conjunto de herramientas existentes y permitiese la construcci n de aplicaciones multimedia para la micro arquitectura del SoC OMAP L138 Esto restringe el aprovechamiento de las capacidades de procesamiento digital de se ales DSP disponibles en el dispositivo para crear y ejecutar algoritmos DSP para procesamiento de audio y video Al inicio del desarrollo con la tarjeta OMAP L138 ZoomEvm el soporte oficial del fabricante solamente incluye una imagen precargada del gestor de arranque u boot y una imagen del kernel de GNU Linux en su sistema Con respecto a la perspectiva de un desarrollador la tarjeta presenta software cuya configuraci n es desconocida y no necesariamente adecuada para lo que se requer a implementar en el proyecto actual Dentro de este entorno de software el desarrollo de aplicaciones enfoca
25. ejecutan la API de DSP BIOS a trav s de c digo C o ensamblador Las herramientas de configuraci n permiten definir objetos que pueden utilizarse en los programas que se crean Lo siguiente es compilar y enlazar el programa 19 Tabla 2 2 Servicios que ofrece DSP BIOS Funciones Descripci n Interrupciones de hardware Interfaz de interrupici n de hardware en el n cleo de DSP BIOS Interrupciones de Software Hilos preemptivos o anticipados que utilizan la pila de programa Tareas Hilos independientes de ejecuci n que pueden llamar al procesador Funciones Peri dicas Tareas ejecutadas cada cierto tiempo Sem foros Intercambio de datos sincronizados entre tareas Colas Sem foros contables Relojes Enlace de listas at micas Streaming Intercambio de datos de entrada y salida para las tareas Flujo de datos Flujo de datos de entrada y salida para interrupciones de software Manejo de Memoria Baja sobrecarga en la asignaci n de memoria din mica Los plugins de DSP BIOS permiten monitorizar el programa desde el lado del anfitri n con el programa Code Composer Studio utilizando variables como el uso de CPU tiempos ejecuci n de hilos y m s La implementaci n de este paquete permite el seguimiento y la depuraci n a nivel de hardware memoria de procesos datos registros y otros componentes pertenecientes al DSP de los programas creados que se e
26. en el DSP El rendimiento con respecto a la utilizaci n de GPP y el despliegue de cuadros por segundo para estos casos se puede observar en la figuras 6 4 y 6 5 respectivamente y la informaci n detallada con respecto al flujo de datos de GStreamer utilizados se pueden observar en los ap ndices A 3 2 1 A 3 2 2 y A 3 2 3 80 Table 6 8 Consumo de GPP para video Tiempo caso 1 caso 2 caso 3 caso 4 caso 5 caso 6 caso 7 s Co 0 0 0 0 0 0 0 0 1 96 105 122 103 111 101 73 2 101 103 39 99 120 99 16 3 97 103 15 100 100 100 13 4 96 103 14 100 32 100 22 5 100 100 13 100 17 100 15 6 101 98 17 100 19 100 17 7 98 95 17 100 13 100 15 8 99 96 15 100 15 100 15 9 102 75 11 100 12 100 18 10 99 11 14 100 14 100 13 11 100 76 21 101 16 100 31 12 101 75 22 99 14 100 23 13 100 77 32 101 17 99 19 14 100 90 22 100 14 100 25 15 100 80 25 99 18 100 26 16 99 85 20 100 15 102 23 17 100 91 44 100 18 101 23 18 100 84 63 101 18 101 29 19 102 86 11 100 18 100 22 20 100 82 10 100 23 100 19 21 100 87 13 100 19 100 20 22 100 106 15 100 19 100 21 23 100 104 15 100 20 100 21 24 100 104 14 100 18 100 20 25 100 81 21 101 18 100 18 26 100 75 26 99 20 101 17 27 99 76 28 100 18 99 19 28 100 77 21 100 19 100 21 29 102 74 21 100 24 100 32 30 100 75 24 99 18 100 26 31 100 84 22 100 17 100 25 32 100 87 60
27. enmascarar la imple mentaci n anterior con el marco de Universal En la figura 4 11 se puede observar una 66 recapitulaci n de las principales elementos y funciones del est ndar Universal refi rase a 34 para el m dulo del algoritmo de audio Objeto AUDIO_EFFECT_TI_Obj audio_effect Variable objeto que permite manejar una referencia a un algoritmo de este tipo B fers de trabajo XDM1_BufDesc inBufs Buffer de entrada XDM1_BufDesc outBufs Buffer de salida XDAS_Int32 bifer0 XDAS_Int32 bifer1 XDAS_Int32 b fer2 Parametros del objeto C lculos y n 3 x n x n 1152 1 x n 2304 x n 3456 Asignaci n de memoria Bloque de memoria del b fer de entrada pasa a ser el bloque de memoria bifer0 Bloque de memoria bifer0 pasa a ser bloque de memoria b ferl Bloque de memoria b ferl pasa a ser bloque de memoria b fer2 Funciones Necesarias del est ndar iUniversal AUDIO_EFFECT_TL alloc Realiza la petici n de memoria para el algoritmo AUDIO_EFFECT_TI_free Libera la memoria del algoritmo y la referencia al algoritmo AUDIO_EFFECT_TI_initObj Carga al objeto del algoritmo los valores est ticos iniciales que necesite durante su ejecuci n Esta funci n se comunica con el marco de CodecEngine cada vez que se necesite crear una instancia del algoritmo AUDIO_EFFECT_TLI process Esta funci n se comunica con el marco de CodecEngine cada vez que se necesite ejecutar
28. es crear una infraestructura de software que permita construir algoritmos basados en el procesamiento digital de se ales en una arquitectura como la OMAP L138 El desarrollo de aplicaciones de este tipo requiere de la integraci n de un canal de comunicaci n entre los procesadores ARM y DSP que permita un flujo bi direccional de datos entre ambos As la aplicaci n que hace uso del algoritmo se ejecuta en el procesador ARM mientras que el algoritmo de procesamiento de datos multimedia se ejecuta en el DSP Como parte de la soluci n se desarrollaron tanto un algoritmo de procesamiento de video conversi n de espacio de colores como un algoritmo de audio filtro FIR que ejemplifican el uso de la API de Universal 34 extensi n de la API XDAIS de TI para la creaci n de algoritmos DSP est ndar Finalmente la ejecuci n de los algoritmos se efectu por medio de una aplicaci n basada en GStreamer Los algoritmos se encapsulan con elementos de GStreamer en un canal de comunicaci n est ndar demostrando las capacidades del DSP para procesamiento matem tico y en general la utilidad del marco de integraci n generado por el SDK 1 3 Objetivos y Estructura del Trabajo Este trabajo ha tenido como objetivo implementar una plataforma de desarrollo de software SDK para la arquitectura OMAP L138 que sirve como base para la integraci n de algoritmos de audio y video enfocados a la arquitectura del DSP Para este prop sito es necesario i
29. excludes lt M gt modularizes features Press lt Esc gt lt Esc gt to exit lt gt for Help lt gt for Search Legend built in excluded lt M gt module lt gt module capable Enable loadable module support Enable the block layer gt System Type gt Bus support gt Kernel Features gt Boot options gt CPU Power Management gt Floating point emulation gt Userspace binary formats gt Power management options gt Networking support gt Device Drivers gt lt Exit gt lt Help gt Figura 2 7 Men de configuraci n para el Kernel de Linux 2 2 4 Cadena de Herramientas ToolChain Es un conjunto de herramientas de desarrollo que se utilizan para crear una aplicaci n o 14 programa y representan diferentes etapas en la obtenci n de c digo maquina ejecutable para un determinado procesador Un conjunto de herramientas involucra un editor de c digo fuente un compilador y un enlazador linker para transformar c digo fuente en c digo ejecutable bibliotecas para proveer interfaces un sistema operativo y un depurador El GNU Toolchain es uno de los tantos paquetes de c digo abierto que realizan las funciones anteriormente mencionadas y se describe dentro de los siguientes apartados 2 2 4 1 Compilador GNU Un compilador es un programa que permite transformar c digo fuente escrito en un lenguaje de programaci n de alto nivel C C etc
30. g 1 S Transmit one a K 4 state AUXCLK Transmit la i o machine id 1 5 Transmit generator ES ane se 5 gt _ ACLKX 1 1 sequencer Frame sync 2 pe oes i Receive a i stato AUXCLK Receive gt _ AFSX i i ooo Racek generator ACLKR i ES bled Frame sync DMA events gonoralor O ee DMA events 4 U AXEVT Control AXEVT 1 SmS e AFSR AREVT 4an _ AMUTE Interrupts AXINT Error check pes AMUTEIN Clock check circuit Figura 2 3 Diagrama de bloques del controlador McASP Tomado de 39 10 2 2 El SDK de RidgeRun La construcci n de software para sistemas embebidos se traduce en una tarea de compilaci n especializada es decir que cada paquete debe de ser compilado para una plataforma en espec fico a trav s de un proceso espec fico 26 El SDK de RidgeRun fue dise ado con el fin de simplificar el proceso de construcci n de aplicaciones de software empotrado en las plataformas para las que se ofrece soporte La construcci n del paquete de software tiene como base un conjunto de secuencias de comandos que construyen un kit de de desarrollo compatible tanto con la aquitectura a utilizar como con la tarjeta correspondiente 24 El SDK de RidgeRun es una herramienta destinada al desarrollo de aplicaciones de alto nivel ya que brinda al usuario la capacidad de desarrollar sus aplicaciones sin tener que preocuparse por la estructura de capas inferiores
31. gst plugins good Contiene el conjunto de elementos soportados que usan licencias preferidas libres por los desarrolladores de GStreamer gst plugins ugly Contiene el conjunto de elementos soportados pero que podr an tener problemas para su libre distribuci n gst plugins bad Contiene el conjunto de aquellos elementos menos desarrollados que no han pasado las rigurosas pruebas de calidad de los desarrolladores Una herramienta para entender c mo funciona GStreamer es gst launch version por ejemplo gst launch 0 10 En dado caso que se quiera reproducir un archivo mp3 se podr a ejecutar una l nea de comando desde la terminal de GNU Linux como se muestra en la figura 2 36 gst launch 0 10 filesrc location archivo mp3 mad alsasink conjuntoting pipeline to PAUSED Pipeline is PREROLLING Pipeline is PREROLLED conjuntoting pipeline to PLAYING Figura 2 36 Flujo de datos reproducci n de audio El diagrama presentado en la figura 2 37 ejemplifica una secuencia de reproducci n pipeline usando GStreamer con los siguientes pasos a Se lee el archivo fuente desde un sistema de archivos a Se decodifica el archivo fuente El decodificador elemento escencial de la secuencia de reproducci n convierte el archivo normalmente comprimido en mp3 o aac en muestras de PCM para que puedan ser interpretadas por el elemento sink que puede ser la tarjeta de sonido ALSA ALSA traduce la inf
32. is to add your codec to the current codec server provided by the dvsdk or you can create a new codec server Adding the codec to the current codec server provided by the dvsdk Add the codec Modify the file at For adding your codec as follows var MYCODEC xdc useModule ti sdo codecs mycodec ce MYCODEC Module Config MYCODEC alg watermark false MYCODEC alg codeSection DDR2 MYCODEC alg dataSection DDR2 MYCODEC alg udataSection DDR2 Array of algorithms Then you should add your algorithm to the array of algorithms Server algs name mycodec mod MYCODEC threadAttrs stackMemId 0 priority Server MINPRI 1 groupld 2 104 Validate the codec Add you codec to the validate function at file DEVDIR proprietary lt DVSDK gt lt CODEC_SERVER gt packages ti sdo server cs package xs Validate your new codec with the code shown below function validate validate_one_codec ti sdo codecs mycodec MYCODEC Compile the codec server 105 A 2 Ridgerun RidgeRun Embedded Solutions specialize in Embedded Software We have Linux software development kits SDKs customized Linux kernels and drivers complete reference applications and engineering services RidgeRun is a full solution Linux software and services business We are a complete provider for your embedded Linux needs Starting a new product development effort Our team can provide a customized
33. la arquitectura para definir d nde se instalar la partici n de CMEM En la figura 3 3 se muestra las direcciones de memoria virtual de RAM del kernel instalado La configuraci n hecha para el kernel de GNU Linux que se utiliza en la tarjeta establece que el total de memoria RAM utilizable sea de 64MB a pesar de que se dispone de una memoria RAM de 128 MB Con este valor y conociendo la posici n de memoria f sica donde se guarda el kernel en memoria RAM se puede establecer el espacio correspondiente al m dulo de CMEM Para este proyecto se establece un espacio de 16 MB para CMEM Conociendo las direcciones virtuales de inicio y fin del kernel de GNU Linux se evita el traslape de este m dulo en memoria RAM con el kernel El paquete DSPLink genera un m dulo denominado dsplink ko y al igual que el m dulo de CMEM se configura a trav s de los archivos Makefile del paquete los scripts dedicados para la arquitectura OMAP L138 que permite reservar un espacio de memoria RAM en tiempo de ejecuci n para manejar los datos y el c digo que realiza la comunicaci n entre procesadores a trav s del protocolo IPC El paquete Codec Engine no necesita compilarse pero su integraci n en el DVSDK es necesaria para utilizar su c digo fuente API en la construcci n tanto de la aplicaci n que ejecuta los m dulos de algoritmos de DSP como en la creaci n de stos Otro paquete que necesita ser configurado es el Codec Server Codec S
34. marco de Universal M dulo de Audio o acd dee asar asa 4 2 1 Implementaci n del m dulo 2 2 2 kb tS Ged ESE Ee ES 4 2 2 Manejo Ge los feres oc co s eres ena tia i RE SS 4 2 3 Representaci n num rica e 4 2 4 Diagrama de flujo del algoritmo 4 2 5 Integraci n del m dulo de audio con el marco de Universal Aplicaci n basada en GStreamer IL 3 2 Aplicaci n PENTA cias ss a AAA Flujo de datos de GStreamer utilizado para el m dulo de audio An lisis y Resultados 6 1 6 2 6 3 Resultados de Audio 2 0 8 ce eee eee eee nee Resultados de Video RESUMO domos da Se OE Re Ee ee eR BERD ORR ER SG Conclusiones y Recomendaciones TA Conclusiones 26 6 4 6 4 cross eee Es 7 2 Recomendaciones co ee ee ae Bibliografia A Apendices A l Manual deusuario 000 eee ee ee ee ee 51 51 54 57 57 57 58 61 62 62 64 65 65 66 A 2 A 3 AA a 6 oP E REE ER EAH RERE Ee ER SER SO TEREX 106 Casos de estudio cfu ke ek Oe Ee ey ROH EE REY he 107 A 3 1 Flujo de datos de Gstreamer de audio para medir consumo de CPU 107 A 3 2 Flujo de datos de Gstreamer de video para medir consumo de CPU 109 Licencia de la biblioteca Imglib 6 6 46 ek Swe a 112 HI Indice de figuras Ll 1 2 PAN om cS 2 4 20 2 0 Pats 29 29 2 10 21
35. modelos de memoria de alguna cadena de herramientas de compiladores Otros mecanismos permiten a los productores generar versiones de un paquete en particular 4 Configuraci n Desde la perspectiva del consumidor la configuraci n RTSC es til para la integraci n de los paquetes RTSC para el uso final dentro de un programa de aplicaci n que se ejecuta en alguna plataforma de hardware El proceso comienza con una parte dedicada a comandos de configuraci n con el meta lenguaje RTSC que identifica cada elemento de software requeridos para una correspondiente aplicaci n Por medio de los scripts basados en JavaScript se detalla en recetas los m dulos o interfaces de un paquete de RTSC que se quieren utilizar Adem s se describe en estos archivos la configuraci n de la plataforma de hardware a la que se quiere integrar la aplicaci n para compilarla y enlazarla 5 An lisis Adem s de orientar la integraci n de m dulos RTSC en programas 26 ejecutables tambi n se puede participar activamente en el an lisis en tiempo de ejecuci n del comportamiento del m dulo a trav s de un depurador en un sistema anfitri n Por lo tanto la creaci n de aplicaciones que utilizan paquetes de software basado en XDC sigue un desarrollo que se basa en las t cnicas tradicionales de programaci n C Los paquetes XDC estandarizan la entrega de software TI y de socios y facilitan la integraci n de dicho software Una vez que el proceso de configura
36. n de un algoritmo de audio en 3D ejecut ndose en el DSP implementado a partir de filtros FIR En este caso el ingeniero a cargo del proyecto se encontraba relacionado con la estructura de un SDK y logr implementar e integrar el algoritmo junto a una aplicaci n con las herramientas provistas en el SDK en un tiempo de 2 a 3 semanas lo que representa un 87 5 en la mejora del tiempo con respecto al primer caso De estos tres casos se deduce que la documentaci n y el SDK permiten mejorar el tiempo de integraci n de un algoritmo m dulo de DSP y las herramientas implementadas disminuyen la carga en la curva de aprendizaje considerablemente con respecto a la de este proyecto tanto para personas no relacionadas con el ambiente del SDK como para ingenieros de la empresa Ridgerun Resumiendo los casos analizados tanto para audio como para video demuestran que la integraci n implementada con las herramientas del SDK para la creaci n de algoritmos que utilicen la arquitectura de DSP permiten obtener mejoras en una arquitectura dual en los siguientes rubros tiempo de implementaci n de algoritmos DSP aplicaciones de prueba rendimiento del GPP y cantidad de datos a procesar y adem s contienen herramientas que permiten medir el consumo de los procesadores ARM y DSP para observar los rendimientos de los algoritmos y las aplicaciones creadas 90 7 Conclusiones y Recomendaciones 7 1 Conclusiones Los tres casos de estudio anali
37. significa exactamente rojo verde o azul es lo que se conoce como espacio de color no absoluto ste es el espacio de color producido en una pantalla CRT tubo de rayos cat dicos cuando se aplican los valores de los p xeles en una tarjeta de gr ficos RGB puede ser visualizado como un cubo con los tres ejes correspondientes a rojo verde y azul Se puede visualizar ejemplos acerca de las 37 combinaciones RGB en la tabla 2 7 Usando este sistema son necesarios entonces 3 x 8 24 bits para representar el color de un pixel 2 Tabla 2 7 Tabla del color para RGB Valorrojo Valoryerde ValOfazu Valorgex Color 0 0 0 000000 Negro 255 255 255 FFFFFF Blanco 2 4 3 1 RGBs565 El espacio de colores RGB565 es un espacio de 16 bits por pixel formado por 5 bits para el rojo 6 bits para el verde y 5 bits para el azul como se muestra en la figura 2 25 Para calcular el tama o en bytes de una imagen representada en el formato RGBs5gs se utiliza thytes 2Xwxh 2 1 Donde h es la altura y w es el ancho de la imagen en pixeles a desplegar Ancho w B fer de RGB 2 w h bytes xX X X XIX X g lt x xX X XxX X Imagen en Pixeles 5 bits 6bits 5 bits Figura 2 25 Formato RGB565 2 4 4 YC C La vista humana es m s sensible a la luminancia que al color y es m s eficiente representar el color en una imagen separando la luminancia de
38. sistema ha sido ejecutado por largos periodos de tiempo CMEM se establece como un m dulo en el kernel de GNU Linux a trav s de la instalaci n del controlador respectivo cmemk ko ste reserva un bloque de memoria RAM de tal modo que no se traslape con ningun otro bloque Su construcci n y configuraci n debe ser establecida para cada arquitectura en particular 2 3 3 Herramientas XDC Las herramientas eXpress DSP XDC contienen los implementos necesarios para crear probar hacer uso e instalar componentes RTSC Real Time Software Components Estos conforman un programa dise ado para llevar el desarrollo para programadores de C basado en componentes llamados paquetes y que est n optimizados para sistemas embebidos de tiempo real Adem s utilizan interfaces que no son dependientes del hardware y permiten el soporte automatizado v a scripts para la configuraci n de estos paquetes Un paquete XDC es una colecci n de archivos que forman una unidad de control de versiones Cada paquete se establece en un directorio con un nombre en espec fico y su contenido dentro de un sistema de archivos 35 Los usuarios de XDC se dividen en desarrolladores denominados los consumidores y los productores Se puede observar en la figura 2 13 c mo se relacionan los desarrolladores de paquetes XDC o Los consumidores integran dentro de sus aplicaciones los denominados paquetes con contenido destinado al desarrollo de m dulos p
39. 0 es que el primero tiene el doble de muestras de crominancia que el segundo por lo que la biblioteca imglib se puede utilizar con la modificaci n de que por cada dos filas de muestras Y se puede utilizar la misma fila de muestras de crominancias para realizar la conversi n Los valores correspondientes a los coeficientes en 4 1 son co 1 0000 lt cy 0 3365 c2 1 7324 c3 1 3707 59 c4 0 6982 Esta conversi n espera valores enteros de Y en los rangos de 16 a 235 y valores enteros de Cb y Cr entre 16 y 240 que es lo que el decodificador da en su salida El decodificador otorga valores enteros con rangos de corrimiento en las muestras de Y con un valor de 16 y en las muestras de Cb y Cr con un valor de 128 Cuando se recibe un b fer de una im gen de video de 1420 ste es procesado por el algoritmo de DSP para obtener uno de RGB565 como se ilustra en la figura 4 4 Nuevo B fer Video formato 1420 Datos Imagen de video H alto W ancho p xeles Tama o 3 2 H W Bytes Muestra de Y luminancia Posici n del puntero base Tama o H W Bytes Muestra de Cb Crominancia en Azul Posici n del puntero base H W Tama o H W 4 Bytes Muestra de Cb Crominancia en rojo Posici n del puntero base H W 4 Tama o H W 4 Bytes Para j 0 j lt H j j 2 M todo imglib Y Cr Cb RG565 Fin de b fers Salte fila de
40. 0 96 93 39 80 44 68 100 95 96 47 80 43 69 100 93 93 44 80 45 70 100 92 90 38 79 46 Promedio 99 93 86 31 93 20 18 87 77 84 44 87 76 Porcentaje 120 80 CASO1 CASO2 60 CASO3 CASO4 CASOS5 40 CASO6 20 0 10 20 30 40 50 60 70 so Tiempols Porcentajes de consumo del GPP Figura 6 2 Comparaci n del consumo de GPP en los casos de audio La figura 6 3 es la representaci n gr fica para el consumo del recursos en el procesador DSP se muestran los casos 2 y 4 donde destaca m dulos de algoritmos que se ejecutan en el procesador antes mencionado Sus valores promedio se pueden observar en la tabla 6 5 Porcentaje 20 Caso2_Audio 10 Caso4_Audio 0 10 20 30 40 50 60 70 80 Consumo DSP Figura 6 3 Consumo de DSP para los casos 2 y 4 11 Se puede observar de los resultados con respecto al consumo de recursos en el DSP mostrados en la figura 6 3 que stos no sobrepasan el 14 para el caso extremo en el cual ambos m dulos de algoritmos se ejecutan en el DSP Tabla 6 5 Tabla Resumen de consumo de recursos para archivos AAC Caso Consumo de GPP Mejora Consumo de DSP Elementos en el DSP caso 1 99 93 caso 2 86 31 13 26 6 4 Decoficador caso 3 93 20 6 73 Filtro caso 4 18 87 81 12 13 9 Decodificador y filtro El rendimiento con respecto a la utilizaci n de GPP para los casos de reproducci n de archivos en forma
41. 1 2 12 213 2 14 PAIT 2 16 217 2 18 2 19 2 20 Ded 2 22 2 23 2 24 223 2 26 Zoom EVM tarjeta producida por LogicPD Diagrama generalizado de construcci n del SDK Diagrama funcional de bloques de la arquitectura OMAP L138 Tomado de A E eK Oa Hon HK ee G 8 Diagrama del Controlador de Despliegue de Video LCD Tomado de 38 9 Diagrama de bloques del controlador McASP Tomado de 39 10 Men principal de configuraci n del SDK 12 Gestor de Arranque de Ridgerun para la OMAP L138 13 Abstracci n de capas esquematizada ooo a 14 Men de configuraci n para el Kernel de Linux 14 Proceso d Compilaci n REE 15 Estructura de las herramientas de TI para el desarrollo de algoritmos de DSP 18 DSP BIOS configurado a trav s de CodeComposer Tomado de 33 21 Capas para la utilizaci n de los protocolos IPC Tomado de 46 22 Diagrama de la arquitectura de DSP BIOS Link Tomado de 43 23 Relaci n Consumidor Productor Tomado de 35 25 Ciclo de un paquete XDC 6 6 ke Rh REE RES REE RED RES ES 23 Interfaz IALG para el est ndar XDAIS o oo 28 Relaci n entre xDM y XDAIS Tomado de 34 29 Interfaz de XDAIS Tomado de 34 30 Interfaz de xDM para un algoritmo Tomado de 34 30 Arquitectura del marco de trabajo de C
42. 100 21 100 20 33 102 86 37 100 23 100 14 34 101 78 16 100 24 100 15 35 98 86 14 100 20 100 14 36 101 83 17 100 24 100 19 81 Tiempo caso 1 caso 2 caso 3 caso 4 caso 5 caso 6 caso 7 s y 37 100 80 15 99 18 100 19 38 100 84 12 100 25 100 19 39 101 84 16 100 26 100 17 40 100 90 16 100 25 100 13 41 101 106 19 101 21 99 16 42 99 105 29 100 28 100 17 43 100 97 26 100 20 99 15 44 103 76 32 100 21 100 15 45 99 78 19 100 22 100 18 46 100 74 31 100 19 100 15 47 100 78 25 100 15 100 16 48 100 74 25 101 21 100 19 49 103 76 21 99 49 100 16 50 100 75 103 100 116 100 13 51 101 75 17 99 97 99 22 52 101 82 15 100 32 100 15 53 98 78 16 100 12 100 17 54 99 85 17 100 17 99 15 55 100 83 15 99 12 100 15 56 98 82 14 100 18 100 18 57 100 81 14 100 17 100 13 58 100 83 18 100 13 100 31 59 100 80 10 100 19 100 23 60 100 84 27 100 22 99 19 61 100 84 25 100 32 100 25 62 100 95 24 99 15 100 26 63 102 100 22 100 20 100 23 64 100 101 21 100 15 100 23 65 101 84 26 100 12 100 29 66 100 78 19 100 19 100 22 67 100 78 22 100 16 100 19 68 100 78 86 100 13 100 20 69 101 77 37 100 16 100 21 70 99 76 15 100 19 100 21 71 100 76 15 100 23 100 20 72 100 76 12 100 22 100 18 73 100 76 13 100 20 99 17 74 100 83 11 100 19 100 19 75 99 81 10 100 19 100 21 76 100 81 9
43. 2 100 65 97 0 77 44 13 100 65 88 1 77 43 14 101 77 88 1 77 43 15 99 86 96 0 76 42 16 100 79 93 0 76 43 17 100 77 94 1 76 42 18 100 89 97 0 76 44 19 100 92 95 0 76 42 20 100 93 92 0 77 42 21 100 88 95 2 76 43 22 100 89 91 0 76 41 23 100 93 95 0 76 4 24 100 90 93 1 76 40 25 100 92 96 1 76 42 26 100 90 93 0 76 44 27 100 90 94 0 76 45 28 100 91 94 0 76 44 29 100 93 91 0 77 44 30 100 88 95 1 77 43 75 Tiempo caso 1 caso 2 caso 3 caso 4 caso 5 caso 6 s 31 100 91 94 1 78 44 32 99 92 94 1 77 43 33 100 91 93 1 77 45 34 99 91 94 1 77 43 35 100 91 92 3 77 43 36 100 92 93 3 77 44 37 100 94 93 8 77 42 38 100 94 90 4 77 42 39 100 93 93 14 77 4 40 99 94 93 13 78 43 4 100 94 95 22 78 45 42 99 91 98 38 79 46 43 101 94 93 42 78 45 44 99 94 92 27 78 45 45 100 94 95 39 78 44 46 100 95 94 38 78 45 47 100 94 92 37 78 44 48 100 92 90 42 78 46 49 100 96 92 38 78 44 50 100 94 95 39 78 44 51 100 91 92 47 79 45 52 101 93 95 44 79 43 53 100 93 92 41 80 43 54 99 92 90 38 79 42 55 100 92 91 42 79 44 56 100 93 94 38 79 46 57 100 92 93 38 79 47 58 100 95 95 40 79 46 59 100 91 92 38 79 46 60 100 95 96 43 79 45 61 100 96 93 4 80 46 62 100 95 91 45 81 45 63 100 93 92 47 80 47 64 100 97 95 46 80 45 65 101 95 93 42 80 46 66 100 95 91 38 80 44 67 10
44. 204 DSP BIOS 6 52 5 6 4644 ig triant ERE EE ESSER ES 19 Pate CMEM a cee Leese Shee ewe tee heed 24 eo Heramientas ADO bd aca dead eba errar 24 2 3 4 XDAIS eXpressDSP Algorithm Standard 27 2 3 5 XDAIS DM xDM y iUniversal on ad ee we we wes 28 2 5 6 Codec Engine 6 es ba eh OER Ee REE EERE ES REE ES 30 23 DMAIL erat BOR ER EE ew ESE ES 33 2 3 8 Herramientas de Generaci n de C digo CodeGen Tools 34 2 4 Concepto de Video Digital o 34 2 4 1 Dominios Espacio Temporal 35 2 4 2 Despliegue de video y Espacios de Colores 37 2 4 3 Espacio RGB 22 sa ke eR RE Ree eR ER EE SR ERE 37 PE DAA AA A 38 24 5 Conversionde YTCODCTa RGB ici dora 42 2 2 6 Audio Digital vicio tk Ae EE ee RO HESS Re SE ee 2 5 1 Frecuencia de muestreo 4 45 5 66 bow ee ew ew eG eS 2 5 2 Formato de la muestra coronar bus bas 23 Manejo del b ferdeaudio isis Ee Bw Es 2 5 4 Filtro FIR tipo peine comb filter E E Estructura del SDK para la Arquitectura OMAP L138 Jl ER El SDK para la tarjeta OMAP L138 Zoom Evm Integraci n del DVSDK en el SDK de la OMAP L138 Zoom Evm Creaci n de los m dulos multimedia 4 1 4 2 Mod l de VICO osos AE A a oa 4 1 1 Descripci n del m dulo 64286644 88 ee eee EEE RE 4 1 2 Algoritmo de conversi n de espacio de colores 4 1 3 Integraci n del m dulo de video con el
45. D MATERIALS HAVE NOT BEEN TESTED OR CERTIFIED BY ANY GOVERNMENT AGENCY OR INDUSTRY REGULATO RY ORGANIZATION OR ANY OTHER THIRD PARTY ORGANIZATION YOU AGREE THAT PRIOR TO USING INCORPORATING OR DISTRIBUTING THE LICENSED MATERIALS IN ANY COMMERCIAL PRODUCT THAT YOU WILL THOROUGHLY TEST THE PRODUCT AND THE FUNCTIONALITY OF THE LICENSED MATERIALS IN THAT PRODUCT AND BE SOLELY RESPONSIBLE FOR ANY PROBLEMS OR FAILURES THE LICENSED MATERIALS ARE PRO VIDED AS IS TI MAKES NO WARRANTIES OR REPRESENTATIONS EX PRESS IMPLIED OR STATUTORY INCLUDING ANY IMPLIED WARRANTIES OF MERCHANTABILITY FITNESS FOR A PARTICULAR PURPOSE LACK OF VIRUSES ACCURACY OR COMPLETENESS OF RESPONSES RESULTS AND LACK OF NEGLIGENCE TI DISCLAIMS ANY WARRANTY OF TITLE QUIET ENJOYMENT QUIET POSSESSION AND NON INFRINGEMENT OF ANY THIRD PARTY INTELLECTUAL PROPERTY RIGHTS WITH REGARD TO THE LICENSED MATERIALS OR YOUR USE OF THOSE MATERIALS IN NO EVENT SHALL TI OR ANY APPLICABLE LICENSOR BE LIABLE FOR ANY SPECIAL INDIRECT INCIDENTAL OR PUNITIVE DAMAGES HOWEV ER CAUSED ARISING IN ANY WAY OUT OF THIS AGREEMENT OR YOUR USE OF THE LICENSED MATERIALS WHETHER OR NOT TI HAS BEEN AD VISED OF THE POSSIBILITY OF SUCH DAMAGES THESE EXCLUDED DAM AGES INCLUDE BUT ARE NOT LIMITED TO COST OF REMOVAL OR REIN STALLATION PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES OUT SIDE COMPUTER TIME LABOR COSTS LOSS OF DATA LOSS OF GOOD WILL LOSS OF PROFITS LOSS OF SAVINGS LOSS
46. Instituto Tecnol gico de Costa Rica Escuela de Ingenier a en Electr nica Plataforma de software empotrado para la implementaci n de algoritmos de audio y video en el DSP de la arquitectura OMAP L138 Informe de Proyecto de Graduaci n para optar por el t tulo de Ingeniero en Electr nica con el grado acad mico de Licenciatura Esteban A Z iga Mora Jorge A Hidalgo Chaves Cartago I semestre 2010 Esteban A Z iga Mora Jorge A Hidalgo Chaves Plataforma de software empotrado para la implementaci n de algoritmos de audio y video en el DSP de la arquitectura OMAP L138 IE ITCR I semestre 2010 INSTITUTO TECNOLOGICO DE COSTA RICA ESCUELA DE INGENIERIA ELECTRONICA PROYECTO DE GRADUACION TRIBUNAL EVALUADOR ACTA DE EVALUACION Proyecto de Graduaci n defendido ante el presente Tribunal Evaluador como requisito para optar por el t tulo de Ingeniero en Electr nica con el grado acad mico de Licenciatura del Instituto Tecnol gico de Costa Rica Miembros del tribunal 4 MSEE ng Juan Scott Chaves Dr Ing Carlos Meza Benavides Prof lector Profesor lector A f r 7 La Al EA fo Y pee Solo CACA La E Dr Ing Pablo Alvarado Moya Profesor asesor Los miembros de este Tribunal dan fe de que el presente trabajo de graduaci n ha sido aprobado y cumple con las normas establecidas por la Escuela de Ingenier a Electr nica Cartago I semestre 2010 Declaramos que el presente proyecto
47. L_CSC xdc universal_csc c universal cac_ti h universal_csc_ti_priv h ce UNIVERSAL_CSC xdc UNIVERSAL_CSC xs config bldl package bld package mak package xdc 11b universal_csc a64P gt archivo que se va a generar link xdt package bld package xdc package xs csc c Archivo que invoca la librer a de TI Figura 4 6 Estructura del codec de video Para una explicaci n m s detallada de c mo construir un m dulo de estos para luego integrarlo dentro de un codecServer se puede observar el manual t cnico de la secci n A 1 4 2 M dulo de Audio 4 2 1 Implementaci n del m dulo Se ha seleccionado para ejemplificar un algoritmo de audio procesado en el DSP de la OMAP L138 la implementaci n de un filtro FIR tipo peine con la ecuaci n de diferencias y n Gix n G2x n d1 G3x n 2d Gax n 3d 4 2 a d 1152 Ee 10 G 1 4 G3 1 4 VA 62 El b fer de entrada est compuesto por una secuencia de muestras x n 8 01 X2 Xn 1 Xn 4 3 El b fer de salida esta compuesto por una secuencia de muestras y n ia da Nat 4 4 Finalmente luego de aplicar los coeficientes se puede observar la implementaci n del filtro y n x n x n 1152 T x n 2304 i x n 3456 4 5 La funci n de transferencia del filtro en el plano de z esta dado por 4 6 Y z 1 1 152 1 2304 L _ 3456 ONE D a By
48. MP3 que se 78 ejecute en el DSP Al limitarse la cantidad de pruebas se debe de hacer uso solamente del decodificador de MP3 por defecto de GStreamer mad Para los casos 5 y 6 se presenta una mejora en el porcentaje de consumo de GPP con respecto a la reproducci n de los archivos con formato AAC Cuando ambos elementos decodficador y efecto se ejecutan en el GPP detaca un consumo del 77 84 un valor 22 1 m s eficiente que el valor presentado en su caso hom logo para la reproducci n de AAC caso 1 Cuando se agrega un elemento de GStreamer que se ejecuta en el DSP existe una mejora del 42 36 con respecto al caso anterior caso 5 Los casos anteriores demuestran que la integraci n implementada con las herramientas del SDK para la creaci n de algoritmos de DSP con respecto a audio permite obtener una mejora en el consumo de GPP Una optimizaci n de los algoritmos ya existentes para el GPP en el DSP llevar a a obtener un menor consumo del GPP y por ende un mejor aprovechamiento del procesador GPP lo que favorece la ejecuci n de procesos simult neos en la plataforma 6 2 Resultados de Video Una forma de medir el rendimiento para los casos de video es comparar el consumo de GPP cuando se ejecuta un flujo de datos de GStreamer Se hace uso de algoritmos de decodificaci n y de conversi n de espacio colores para el despliegue de video en el GPP y elementos con funci n similar que integran algoritmos de DSP Los resultados so
49. Mapa de Memoria establecido para la arquitectura OMAP L138 Secuencia de elementos de GStreamer utilizado para el algoritmo de video Formato de pixeles para b feres de video de GStreamer Diagrama de conversi n de formato YUV a RGB565 Diagrama funcional del algoritmo de conversi n 1420 aRGB565 Marco de implementaci n del algoritmo de conversi n de 1420 a RGB565 Estructura del codec de video coso asu eee ee eS Implementaci n del filtro tipo peine o o secuencia de copia de los b feres 2 046 ea 0 9 05 6 Manejo de los DITSTOE cias A a we S Diagrama de flujo del algoritmo de audio Marco de implementaci n del algoritmo de audio filtro FIR Estructura del codec de audio Aplicaci n de GStreamer Tomado de 30 Diagrama de flujo de la aplicaci n de gstreamer Secuencia de elementos de GStreamer utilizado para el algoritmo de audio Audio resultante del proceso DSP o o Comparaci n del consumo de GPP en los casos de audio Consumo de DSP para los casos 2y 4 o oo Consumo de GPP en flujos de video para los casos 1 2 3 Tasa de datos en el despliegue de video para los casos 1 2 3 Consumo de DSP para los casos 2 y 3 de video 57 58 59 60 61 62 64 64 65 66 67 68 69 70 71 6 7 6
50. OF USE OR INTERRUP TION OF BUSINESS OR OTHER ECONOMIC LOSS IN NO EVENT WILL TTS AGGREGATE LIABILITY UNDER THIS AGREEMENT OR ARISING OUT OF YOUR USE OF THE LICENSED MATERIALS EXCEED FIVE HUNDRED USS DOLLARS U S 500 Because some jurisdictions do not allow the exclusion or limitation of incidental or consequential damages or limitation on how long an im plied warranty lasts the above limitations or exclusions may not apply to you 5 Export Control You hereby acknowledge and agree that unless prior authorization 114 is obtained from the United States Department of Commerce neither you nor your customers will export re export or release directly or indirectly any technology software or software source code as defined in Part 772 of the Export Administration Regulations of the U S Department of Commerce EAR received from TI or export directly or indirectly any direct product of such technology software or software source code as defined in Part 734 of the EAR to any destination or country to which the export re export or release of the technology software software source code or direct product is prohibited by the EAR The assurances provided for herein are furnished to TI by you in compliance with Part 740 Technology and Software Under Restriction of the EAR Governing Law Jurisdiction and Severability This Agreement will be governed by and interpreted in accordance with the laws of the State of Tex
51. Real time video analysis on an embedded smart camera for traffic surveillance in RTAS 04 Proceedings of the 10th IEEE Real Time and Embedded Technology and Applications Symposium Washington DC USA p 174 IEEE Computer Society 2004 17 M Jan Digital Audio Technology A Guide to CD MiniDisc SACD DVD A MP3 and DAT electronic version Elsevier San Diego CA 2001 18 M Kahrs and K Brandenburg Applications of digital signal processing to audio and acoustics Norwell MA USA Kluwer Academic Publishers 1998 19 M Kaufmann Digital Video and HDTV Algorithms and Interfaces San Francisco CA USA Poynton C Publishers Inc 2003 20 M Wang and X Fu 15 127 Enhanced Variable Rate Speech Coder Multichannel TMS320C62x Implementation C6000 Applications Texas Instruments Literature Number SPRA566A June 1999 21 A Author Document title Webpage name Source production information Date of internet publication Format Available internet address Accessed Date of access 22 O S Community Gstreamer open source multimedia framework 2005 Online Available http www gstreamer net Accessed January 12 2010 23 R M Stallman Richard M and P D Smith GNU Make Manual GNU Project Free Software Foundation FSF 3 81 ed April 2006 24 RR I Community SDK FAO RidgeRun Developer Connection February 2010 Online Available https www ridgerun c
52. a a 1 1 1 Implementaci n 1 Llamadas Algoritmo en c digo C Figura 2 15 Interfaz IALG para el est ndar XDAIS 2 3 5 XDAIS DM xDM y Universal El est ndar de xDM es una serie de API relacionados con diferentes m dulos codecs multimedia para una f cil integraci n e interoperabilidad xDM es construido sobre XDAIS 34 En 2009 TI introduce la API de Universal en sus paquetes de software la cual agrega una funcionalidad que extiende la utilidad del est ndar VISA y permite integrar m dulos que no solo impliquen algoritmos de codecs multimedia 28 En la figura 2 16 se muestra la relaci n entre xDM y XDAIS 34 y c mo xDM extiende la interfaz de JALG de XDAIS dentro de interfaces dedicadas a m dulos codecs de audio y video 34 y con la inclusi n de Universal a m dulos de algoritmos que no impliquen codecs multimedia xDM IVIDDEC IVIDENC IAUDDEC IAUDENC ISPHDEC ISPHEND IIMADEC IIMGENC Figura 2 16 Relaci n entre xDM y XDAIS Tomado de 34 xDM define nueve interfaces Ocho de stas son dedicadas a codecs multimedia y son conocidas con el nombre de VISA Video Image Speech Audio o IVIDENCx Interfaz gen rica para codificadores de video o IVIDDECx Interfaz gen rica para decodificadores de video o JAUDENCx Interfaz gen rica para codificadores de audio o JAUDDECx Interfaz gen rica para decodificadores de audio o ISPHENCx Interfaz gen rica para codifica
53. a indicar que otro mensaje puede ser puesto en esta memoria Dependiendo de la plataforma soportada el sistema operativo y la versi n de DSPLink se provee los servicios listados en la tabla 2 3 22 DSPLink provee una serie de caracter sticas y capacidades que lo hacen conveniente para el desarrollo de sistemas multi n cleo ya que encapsula detalles espec ficos de hardware de la plataforma a utilizar Adem s el controlador dsplink ko de DSPLink se puede a adir O integrar al kernel de GNU Linux como un m dulo m s v ase figura 2 12 encargado de enmascarar las funciones mencionadas anteriormente las cuales dejan al usuario exento de Tabla 2 3 Servicios que ofrece el paquete DSPLink Funciones Descripci n Control B sico de Procesadores Configuraci n del sistema para permitir el acceso a los recursos del DSP a trav s del GPP Cargas del DSP con un eje cutable de DSP presente en el sistema de archivos desde el GPP Iniciar el DSP a trav s del GPP Detener el DSP a trav s del GPP Carga y finalizaci n del contro lador de DSPLink Protocolos de comunicaci n entre procesadores Protocolos completos para el manejo de diferente tipos de transferencia de datos MSGQ Mensajes de colas Memo ria circular c clica Bloques de construcci n de comunicaciones entre procesadores Bloques de bajo nivel usado por protocolos Cada bloque es enmascarado como una API para permitir a los desarrollado
54. ador DSP o Los elementos c y e representan los acoples al m dulo estos son necesarios ya que las capacidades que puede recibir el m dulo son limitadas y en caso que no sean compatibles deben de transformarse El elemento se llama audioconvert o El elemento d representa el algoritmo y recibe como par metros G1 G2 G3 G4 Estos sirven para modificar la atenuaci n en los c lculos de las muestras o Finalmente el elemento f representa la capa del hardware es el encargado de hacer la conexi n entre GStreamer y el controlador de audio de la tarjeta 71 6 Analisis y Resultados 6 1 Resultados de Audio En la figura 6 1 se muestra una gr fica del audio en funci n del tiempo generado con el software GNU Octave La gr fica superior representa el audio original y la gr fica inferior representa el audio modificado por el m dulo algoritmo DSP creado En la tabla 6 1 se muestra la informaci n referente al flujo de GStreamer utilizado para obtener el audio presentado en la figura 6 1 Tabla 6 1 Caracter sticas de la muestra de audio utilizada con audio modificado Variables Caracter sticas Codificaci n Con signo 16 bits PCM Ordenamiento Little endian Canales 2 canales est reo Frecuencia de muestreo 44100 Hz Decodificador de audio mad GPP Efecto de audio dt_audioeffect DSP Formato de audio mp3 gst launch filesrc location Vertigo_high mp3 mad Flujo de datos de GStream
55. aging and Sensing Secaucus NJ USA Springer Verlag New York Inc 1998 46 S Preissig Programming Details of Codec Engine for DaVinci TM Technology Texas Instruments Literature Number SPRY091 November 2006 47 Texas Instruments OMAP L138 Low Power Applications Processor Literature Num ber SPRS586A June 2009 Revised August 2009 48 W Denk Das u boot source tree Online Available http git denx de p u boot git a summary Accessed January 5 2010 49 X Amatriain and U Zolzer DAFX Digital Audio Effects John Wiley amp Sons 2002 50 U Z lzer Digital audio signal processing John Wiley amp Sons 1997 96 A Apendices A 1 Manual de usuario How to Create DSP Algorithm Package with RidgeRun SDK Esteban Z iga Mora esteban zuniga Oridgerun com Jorge Hidalgo Chaves jorge hidalgo ridgerun com Introduction This document will be an easy way to create a new DSP algorithm based on TMS320C6748 DSP processor It will target these algorithms and assists the reader with making the algorithms compliant with the TMS320 DSP algorithm standard which is part of TPs eXpressDSP technology initiative The document proposes a simple approach to running xDAIS iUniversal algorithms with a Codec Engine CE application The wizard selected is responsible for creating an xDAIS algorithm iUniversal and providing the necessary packaging to enable these algorithms to be consumed and configure
56. al de entrada obteniendo variaciones en su salida Com nmente se utiliza para atenuar o amplificar frecuencias 12 Los filtros digitales de Respuesta Impulsiva Finita o filtros FIR son filtros que a la salida producen un n mero finito de t rminos siempre y cuando la entrada sea finita Estos filtros tienen todos los polos en el origen por lo que son estables La estructura de la se al a la salida del filtro se basa en la combinaci n lineal de las entradas actuales y anteriores y se puede expresar de forma general como la convoluci n de la entrada x n con la respuesta a impulso del filtro h n 12 M 1 y n y h n x n k h n xx n 2 12 k 0 donde M es el orden del filtro que tambi n coincide con el nimero de coeficientes del filtro Aplicando la transformada z a la respuesta al impulso del filtro FIR A n donde se tiene H z Y nr M0 HAD03 1 hM 1 2 0D 2 13 k 0 Su representaci n en diagrama de bloques esta dada en la figura 2 34 46 Figura 2 34 Implementaci n de un filtro FIR Tomado de 12 2 5 4 2 Filtro peine Comb Filter En el procesamiento de se ales un filtro peine se produce al sumarle a la se al original una versi n retrasada en el tiempo de s misma causando as interferencia constructiva y destructiva La estructura general de un filtro peine es mostrada en la figura 2 35 y esta descrita por y n x n a x n K 2 14 donde K es el tama o del retraso medido en
57. al property laws and treaties The Licensed Materials are licensed not sold to you and can only be used in accordance with the terms of this Agreement TI retains title and ownership of the Licensed Materials including all intellectual property rights in the Licensed Materials and all copies of the Licensed Materials a Host License Subject to the terms of this Agreement TI hereby grants to you a limited non exclusive license to use the Licensed Materials to generate applications that execute solely and exclusively on semiconductor devices manufactured by or for TI Use of any software applications generated using the Licensed Materials on semiconductor devices manufactured by or for an entity other than TI is a material breach of this Agreement It is also a material breach of this license to use the Licensed Materials to assist in the design development or verification of a device that is instruction set compatible with or functionally equivalent to a TI semiconductor device b Target License The Licensed Materials may include TI proprietary software programs in an object code format that are designed specifically for use in target applications TI hereby grants to you a limited non exclusive license to 112 reproduce and distribute an unlimited number of copies of such programs solely and exclusively for use with semiconductor devices manufactured by or for TI The Licensed Materials may also include libraries or applicat
58. almacenado en una memoria no volatil cada vez que se inicializa la tarjeta el gestor de arranque es cargado autom ticamente desde posiciones predeterminadas en la memoria de almacenamiento llamadas vectores de arranque Normalmente ste reside en una unidad de almacenamiento de tipo NOR o una tipo NAND La mayoria de las tarjetas OMAP utilizan Das U Boot Universal Boot Loader 48 como gestor de arranque El gestor de arranque carga una aplicaci n por l nea de comandos a trav s de una terminal serial que representa la comunicaci n entre la tarjeta y la computadora como se muestra en la figura 2 5 Este intercambio de informaci n se realiza mediante herramientas como Minicom TeraTerm y otros que interpretan la informaci n que la tarjeta env a al puerto serial como secuencias de caracteres ASCII UBL customized by RidgeRun Booting TI User Boot Loader UBL Version 1 65 UBL Flashtype SPI Starting SPI Memory Copy Valid magicnum 0x55424CBB found at offset 0x00010000 DONE Jumping to entry point at 0xC1080000 U Boot customized by RidgeRun U Boot 2009 01 Feb 16 2010 14 16 33 64 MB serial serial serial ARM Clock 300000000 Hz DDR Clock 300000000 Hz Ethernet PHY GENERIC 0x00 Hit any key to stop autoboot 0 L138 EVM L138 EVM L138 EVM L138 EVM L138 EVM L138 EVM Figura 2 5 Gestor de Arranque de Ridgerun para la OMAP L138 2 2 3 N cleo o kernel de GNU Linux El rol principal del k
59. and its dependencies The package name must reflect the directory structure under the ti codecs 101 requires ti sdo ce universal requires ti sdo codecs mycodec package xdc Provides MYCODEC interface adapter for ti sdo codecs mycodec codec package ti sdo codecs mycodec ce 1 0 0 module MYCODEC package bld package bld Pkg attrs exportAll true Root Codec Directory MYCODEC xdc At the root directory of the codec create a file named MYCODEC xdc MYCODEC metaonly module MYCODEC watermark config Bool watermark false Code Section config String codeSection DDR2 Uninitialized Data Section config String udataSection DDR2 Initialized Data Section config String dataSection DDR2 package bld File located at the root codec directory where the sources of your algorithm has to be added Describes the steps required to build and release the package Contains JavaScript instructions for building any libraries object files or executables that are part of the package and specifications of what goes into a release package Additionally any source and header files needed to build the artifacts and any pre built files to be included in a release package must be included in the package directory The source or header files used in
60. ara el procesador DSP como para el procesador ARM 34 Los paquetes m s relevantes que forman parte de un DVSDK se pueden observar en la tabla 2 1 y se explicar n con m s detalle en la secci n 2 3 Tabla 2 1 Componentes del DVSDK Componente del DVSDK Secci n correspondiente DSP BIOS 2 3 1 CMEM Ze TI CodeGen Tools 2 33 CodecServer 2 3 4 XDAIS 2 3 6 CodecEngine i DMAI 2 3 8 2 3 Herramientas de software de Texas Instruments Paquete XDC API Visa iUniversal Codec Engine Algoritmos con Estandar XDAIS xDM Figura 2 9 Estructura de las herramientas de TI para el desarrollo de algoritmos de DSP La integraci n de las herramientas provistas por TI en el SDK de la arquitectura OMAP L138 permite el desarrollo de aplicaciones y algoritmos multimedia tanto para el procesador 18 ARM como para el DSP Esta integraci n se extiende desde el espacio de la aplicaci n de usuario y del algoritmo hasta las capas de programaci n de hardware ARM o DSP En la figura 2 9 se muestra la estructura de software que se puede implementar para la ejecuci n de algoritmos de DSP en una arquitectura dual Antes de la realizaci n de este proyecto no exist a un marco de trabajo que incluyera el conjunto de paquetes de software provistos por Texas Instruments y compatibles para la arquitectura OMAP L138 Para lograr vincular los paquetes de software como se muestra en la figura 2 9 lo
61. ara DSP controladores de dispositivos o Los productores son los encargados de crear los paquetes que los consumidores utilizan 24 algoritmos a psp Controlador es Consumidor Codificador audio Decodificador video Figura 2 13 Relaci n Consumidor Productor Tomado de 35 XDC introduce herramientas y la infraestructura en un proceso de cinco fases que abarca el ciclo de vida de un paquete implementado en C desde la producci n hasta su consumo En la figura 2 14 se ilustra este ciclo y a continuaci n se explican cada una de las fases Especificaci n Implementaci n Empaquetado Configuraci n An lisis O AAA COMPILADOR EN A O AAA p ENLAZADOR COMPILADOR Proceso Productor Proceso Consumidor Figura 2 14 Ciclo de un paquete XDC 1 Especificaci n RTSC introduce un lenguaje de especificaci n especial para C que se usa para definir formalmente los l mites de programaci n entre productor y consumidor m s alla de archivos encabezados h propios del lenguaje C El lenguaje de especificaci n de programaci n RTSC promueve tres componentes no compatibles 25 directamente con C pero necesarios si se utiliza C para implementar los componentes que participan en una aplicaci n o M dulo un conjunto coherente de constantes tipos y funciones con una especifi caci n p blica y una implementaci n privada o Interfaz un m dulo abstracto espec
62. argado de ajutar las capacidades alsasink Elemento que accesa el controlador de audio Se analizan diversos escenarios con el fin de evidenciar el rendimiento de una aplicaci n basada en GStreamer en funci n del consumo del GPP usando elementos con procesamiento en el DSP y sus hom logos en el procesador GPP Dentro de los escenarios destacan pruebas con formatos de audio AAC y MP3 con las combinaciones mostradas en la tabla 6 3 Tabla 6 3 Procesador en el cual se ejecutan los procesos Caso Formato Decodificador Efecto de audio Caso 1 GPP GPP Caso 2 ACC GPP DSP Caso 3 DSP GPP Caso 4 DSP DSP Caso 5 GPP GPP Caso 6 MP3 GPP DSP La tabla 6 4 muestra los datos tomados para la reproducci n de un mismo archivo de audio con una duraci n de 70 segundos y tomando una muestra de consumo de GPP cada segundo La figura 6 2 es la representaci n gr fica para la tabla 6 4 y seguidamente se detalla su representaci n 74 Table 6 4 Consumo de GPP para los casos de audio Tiempo caso 1 caso 2 caso 3 caso 4 caso 5 caso 6 s 1 98 91 92 27 91 75 2 100 70 93 14 76 51 3 100 54 95 17 76 56 4 101 51 90 6 77 49 5 100 65 91 0 76 55 6 99 69 94 1 77 48 7 100 52 94 0 76 44 8 100 53 93 0 76 42 9 100 60 93 1 77 46 10 100 53 94 0 77 44 11 100 62 96 0 76 43 1
63. arnos la fortaleza para nunca rendirnos y acabar con grandes xitos A la empresa RidgeRun por abrirnos las puertas para poder realizar nuestro proyecto de graduaci n y convertirse en una familia para nosotros A nuestro asesor Dr Pablo Alvarado M por confiar en nuestra capacidad y aconsejarnos cuando m s lo necesitamos Al Ing Diego Dompe por su dedicaci n y empe o por ayudarnos a salir adelante durante las etapas cr ticas de nuestro proyecto A todos nuestros compa eros que forman parte de la familia RidgeRun por hacernos sentir bienvenidos Cada uno de ellos realiz aportes importantes a nuestro proyecto que nos ayudaron a crecer profesional y personalmente Gracias Indice general 1 Introduccion 1 L1 La Sistemas EMSIITOS shoe O a A OR ee we SO ed A 1 1 2 Algoritmos de DSP y su relaci n con la arquitectura OMAP L138 3 1 3 Objetivos y Estructura del Trabajo cc cc kk Pe ESR ios 6 Marco Te rico 8 2 1 Arquitectura OMAP L138 y la ZoomEvwM lt 8 2 2 ELSDK CO RidgeRun cso RAR AR A ew 11 2 2 1 Caracter sticas del SDK de RidgeRun o 000 lt 0 lt 11 2 2 2 Gestor de arranque Bootlodder 244 25226444424 48 12 2 2 3 N cleo o kernel de GNU Linux xoxo a 13 2 2 4 Cadena de Herramientas ToolChain 14 pd Sistema dearcDiyoS s o gresg ittuen taora 17 226 DVS cpcp Ke ee EK Oe taa EE Se REE 17 2 3 Herramientas de software de Texas Instruments 18
64. as without reference to that state s conflict of laws principles This Agreement shall not be governed by the United Nations Convention on Contracts for the International Sale of Goods nor shall it be governed by the Uniform Computer Information Transactions Act Any dispute arising out of or related to this Agreement will be brought in and each party consents to exclusive jurisdiction and venue in the state and federal courts sitting in Dallas County Texas Each party waives all defenses of lack of personal jurisdiction and forum non conveniens and agrees that process may be served on either party in a manner authorized by applicable law or court rule If for any reason a court of competent jurisdiction finds any provision of the Agreement to be unenforceable that provision will be enforced to the maximum extent possible to effectuate the intent of the parties and the remainder of the Agreement shall continue in full force and effect Entire Agreement This is the entire Agreement between you and TI and supercedes any prior agreement between the parties related to the subject matter of this Agreement No amendment or modification of this Agreement will be effective unless in writing and signed by a duly authorized representative of TI You hereby warrant and represent that you have obtained all authorizations and other applicable consents required empowering you to enter into this Agreement 115
65. c properties relevant to the Codec Engine 100 The file MYCODEX xdc declares the xDM class we are trying to implement and the algorithm function table The file MYCODEC xs provides the getStackSize function which is used when building an application for the Codec Engine to declare the combined amount of stack usage for the algorithm Inside the ti sdo codecs codecs mycodec ce directory create the files package xdc and package bld Creating ce directory Go to the codec path and create the ce directory cd cslomap packages ti sdo codecs mycodec mkdir ce Move the MODULE xdc and the MODULE xs to ce directory mv MYCODEC xdc ce mv MYCODEC xs ce edit Modifing the files MODULE xdc Modify the file MODULE xdc and add the code highlighted as shown below metaonly module MYCODEX inherits ti sdo ce universal IUNIVERSAL readonly config ti sdo codecs mycodec MYCODEC Module alg ti sdo codecs mycodec MYCODEC override readonly config String ialgFxns MYCODEC_TI_MYCODEC package xdc It declares the name of the package and the module it contains Furthermore it uses the requires statement to specify its dependency on the algorithm and adapter package Hence when the server package is configured to use this CE consumable package it picks up the correct libraries from the packages it requires The package xdc file is the package definition file which defines your Codec Server s name
66. caci n con los enlaces de VISA o Universal a las funciones remotas del algoritmo tambi n creados con los esqueletos est ndares de VISA o Universal API del N cleo del ENGINE API de algoritmos VISA A M ao ose un 2 a 2 z amp Aplicaci n de Usuario Algoritmo Remoto XDM o E Esqueleto de 2 span gt a codificaci n z ee VISA VISA S PLS VISA tee Enlace xDM Esqueleto Capa Funcional del Engine Capa Funcional del Engine E Procesador Codificaci n MP3 i i i a VC1 codificaci n DSP Link Capa IPC S W DSP Link Capa IPC S W Procesador DSP Bloque de memoria Compartida Capa fisica IPC a b Figura 2 20 Marco de trabajo de CodecEngine en una arquitectura dual Tomado de 36 El funcionamiento de este marco de trabajo en una arquitectura con GPP y DSP se puede observar en la figura 2 20 Aqu se muestran los procesos que se ejecutan en el procesador GPP y los que se ejecutan en el DSP Los enlaces y los esqueletos son los encargados de realizar el proceso de comunicaci n entre la aplicaci n ejecutada desde el GPP y el Con objeto se refiere al concepto tal y como se hace en lenguajes orientados a objetos como C Java 32 algoritmo de DSP a trav s de la capa de DSPLink Por lo tanto se tiene un procesador cliente ARM y un procesador servidor DSP En este caso e
67. caci n de GStreamer es un enmascaramiento de las capas inferiores de software dentro de las cuales destacan XDAIS Universal CodecEngine DSPLink entre otros Los sumideros sinks reciben los datos desde las fuentes sources de otros elementos El elemento creado se encarga de codificar la informaci n de tal modo que los paquetes codecs o algoritmos puedan procesarla Los b fers de CMEM son el flujo de informaci n especializada para producir cadenas de datos codificadas y en conjunto con DSPLink funcionan como el canal de informaci n entre la aplicaci n y el m dulo DSP v ase figura 5 1 E 1 ITransmisi n l de datos z de audio sv 1 i A y video ree i Recepci n H de i 1 1 datos de 1 1 audio I Elemento GStreamer Creado Figura 5 1 Aplicaci n de GStreamer Tomado de 30 69 Una vez que la informaci n ha sido codificada se env a al m dulo el cual es encargado de llamar las funciones que se ejecutan en el DSP y gracias a los b feres de salida de CMEM el flujo de datos procesado es retornado al elemento de GStreamer donde el bloque fuente src se encarga de pasar la informaci n al siguiente elemento La figura 5 2 presenta el diagrama de flujo referente al elemento de GStreamer creado Inicio pasa estado NULL a Ready Negociar Capacidades Definir los par metros del elemento 1 Iniciar la capa funcional de Codec Engine 2 Instanciar el Codec Server Instanciar el m d
68. ci n se integra en su proceso de generaci n los pasos para crear una aplicaci n que utiliza contenido basado en XDC son los siguientes a Configuraci n de la aplicaci n b La escritura de c digo en C c Compilar y vincular la aplicaci n El objetivo principal se centra en la escritura de c digo C 2 3 4 XDAIS eXpressDSP Algorithm Standard La implementaci n de algoritmos de DSP depende de las pol ticas de manejo de memoria o mecanismos de entrada y salida espec ficos de cada sistema La falta de consistencia en la integraci n de sistemas o de est ndares de programaci n complica el proceso de crear un algoritmo de DSP para ser usado en m s de un sistema o una aplicaci n sin tener que pasar por un proceso de reingenier a reintegraci n y prueba Como parte de la soluci n a este problema se encuentra lo que Texas Instuments denomina como eXpressDSP Algorithm Standard XDAIS 34 como una forma de estandarizar los algoritmos especialmente para sus tecnolog as Para que un algoritmo sea compatible con XDAIS debe ser programado siguiendo la interfaz TALG 42 que se incluye dentro de este est ndar y que puede ser programado en lenguaje C o ensamblador Adem s este c digo debe integrar una serie de reglas 41 como por ejemplo una convenci n de nombres nunca acceder directamente a dispositivos perif ricos y ser c digo totalmente reubicable Por medio de esta interfaz se configura el manejo de memoria de
69. ci n de un algoritmo de filtro FIR en una aplicaci n de GStreamer demuestra la capacidad del SDK para integrar aplicaciones que involucran procesamiento de audio en el sistema embebido OMAP L138 ZoomEvm a trav s del marco de trabajo de Codec Engine y Universal Con esta implementaci n se logr 91 Mejorar el consumo de CPU para formato AAC hasta un 81 12 a Mejorar el consumo de CPU para formato MP3 hasta un 42 36 Un consumo no mayor al 14 del DSP 7 2 Recomendaciones Existe una soluci n complementaria para una arquitectura que solo utilice el DSP ya que la ZoomEvm permite cambiar el SoC que contiene DSP ARM a uno que solo contiene un DSP El marco de trabajo base se desarrollar a a trav s de un sistema operativo nativo para DSP denominado DSP BIOS Este acercamiento conlleva el excluir el marco de trabajo de CodecEngine y enfocarse en la creaci n de los m dulos DSP igualmente compatibles con el estandar XDAIS a trav s de la API de Universal La implementaci n de este paquete permite el seguimiento y la depuraci n a nivel de hardware memoria de procesos datos registros y otros componentes pertenecientes al DSP de los programas creados que se ejecuten en este procesador lo que permite una mayor interacci n con la arquitectura del DSP Actualmente con el marco de trabajo creado s lo una aplicaci n en tiempo de ejecuci n es capaz de acceder al CodecServer Aplicaci n de Otra
70. colores y filtros tipo FIR que son los modelos implementados para ejemplificar la funcionalidad de la herramienta final Los cap tulos 3 4 y 5 detallan la implementaci n realizada de los algoritmos su integraci n con el marco de Universal y el uso de las herramientas a adidas en el SDK para ejecutar algoritmos de DSP a trav s de una aplicaci n de GStreamer En el cap tulo 6 se muestran las pruebas de rendimiento efectuadas a los algoritmos creados con el marco de herramientas que ofrece el SDK Se muestra una serie de resultados de consumo de CPU que comparan el sistema durante la ejecuci n de una aplicaci n que usa el procesador DSP y otra que solamente se ejecuta en el procesador ARM Se discuten los resultados de las pruebas tanto para audio como para video y se efect a el an lisis respectivo Finalmente el cap tulo 7 resume el trabajo efectuado en una serie de conclusiones referentes al rendimiento de las aplicaciones cuando hacen uso del DSP y cuando solamente se ejecutan en el ARM El cap tulo finaliza con recomendaciones alrededor de las limitaciones experimentadas durante el desarrollo del proyecto y se explora su soluci n para trabajos futuros 2 Marco Teorico 2 1 Arquitectura OMAP L138 y la Zoom Evm La tarjeta OMAP L138 ZoomEvm es un kit de desarrollo utilizado para evaluar la funcionalidad de la arquitectura OMAP L138 Est dotada de un procesador ARM926EJ S que funciona en paralelo con un procesador DSP
71. d by Codec Engine A We assume readers have a basic understanding of the elements in a Codec Engine application including VISA APIs xDM servers and codecs 97 References For details see the following documents a TMS320 DSP Algorithm Standard Rules and Guidelines SPRU352E a TMS320 DSP Algorithm Standard API Reference SPRU360E a TMS320 DSP Algorithm Standard Developer s Guide SPRU424C a Codec Engine Algorithm Creator User s Guide SPRUED6C Based on the Codec Engine GenCodecPkg Wizard GenCodecPkg The most important care abouts in a typical Codec Engine configuration Codec Engine configuration en breve Requirements for the GencodecPkg Wizard Engine 2 25 or later CE 2 25 02 improves the GUI a interface XDAIS 6 25or later a XDAIS 6 25 02 improves the code templates a XDCtools 3 16 or later Making a basic package xDAIS 8 xDM compliant Those steps shown above has to be followed to complete a memcpy DSP algorithm If you desire to add new features new functions and others refer to previous section links for more details Adding the wizard support to DVSDK makefile The GenCodecPkg wizard generates the files and packaging required for integrating an algorithm into Codec Engine Assuming your using a RR SDK you have a complete integration with a TI DVSDK release then you likely have already defined paths to all your tools in the Rules make Those generated Codec Packages can be integrated into a Server and the
72. das al uso de algoritmos dedicados a DSP basados en tecnolog a de Texas Instruments TMS320C6000 implica dominio de conocimento detallado acerca del software y hardware de la tarjeta Debe invertirse una cantidad de tiempo considerable para lograr tal objetivo tiempo valioso que los clientes o los usuarios no desean utilizar por razones de producci n tiempo de lanzamiento al mercado o falta de personal capacitado para dicha tarea La soluci n propuesta es un kit de desarrollo de software empotrado Software Development Kit SDK con una estructura similar a los que RidgeRun ha implementado para otras plataformas a las cuales da soporte Dm 6446 Dm 355 Dm 365 OMAP 3x etc Espec ficamente el proyecto se enfoca en crear un marco de trabajo que incorpore herramientas encargadas de dar soporte a algoritmos de DSP en conjunto con las herramientas que Texas Instruments provee para la creaci n y ejecuci n de aplicaciones que utilicen este tipo de algoritmos La figura 1 2 muestra la estructura de bloques que representa la soluci n planteada Cada uno de los bloques representa una parte del SDK a implementar Gestor de Arranque Controladores Audio y video Kernel GNU Linux SDK OMAP L138 Sistema de RidgeRun Zoom Evm Archivos FS Figura 1 2 Diagrama generalizado de construcci n del SDK El objetivo del proyecto es que un usuario pueda utilizar el SDK resultante para la arquitectura de la OMAP L138 ZoomEvm y pueda
73. de 368 x 246 pixeles mientras que para su contraparte se utiliza una imagen de tama o 720 x 480 pixeles Comparando rendimientos para ambos casos se demuestra que una imagen de mayor tama o no satura el procesador gracias a la integraci n de los procesos en el DSP adem s la tasa de im genes por segundo pasa de un promedio de 11 5 a 22 5 cuadros s Lo anterior demuestra que adem s de mejorar el rendimiento de GPP y la tasa de transferencia la cantidad de datos de video a procesar tambi n puede aumentar Porcentaje 120 100 80 CASO 6 60 CASO 7 40 20 o 10 20 30 40 50 60 70 80 Consumo de CPU Figura 6 9 Consumo de GPP en flujos de video para los casos 6 y 7 88 El caso 6 utiliza un elemento de decodificiaci n de audio en el procesador GPP y efecto de audio en el procesador GPP El rendimiento con respecto a utilizaci n de GPP se puede observar en la figura 6 10 y la informaci n referente al flujo de GStreamer utilizado se puede obsevar en la secci n A 3 2 6 Tasa cuadros s 30 25 CASO6 CASO7 15 10 Figura 6 10 Tasa de datos en el despliegue de video para los casos 6 y 7 Los casos 6 y 7 utilizan un archivo de video con formato mpeg4 sin contenedor mp4 El caso 6 de estudio utiliza un elemento de decodificaci n de video para formatos mpeg4 y un elemento de conversi n de espacio de colores en el en el procesador GPP y el caso 7 es la contraparte en el DSP El re
74. de Graduacion ha sido realizado enteramente por nosotros utilizando y aplicando literatura referente al tema e introduciendo conocimientos propios En los casos en que hemos utilizado bibliografia hemos procedido a indicar las fuentes mediante las respectivas citas bibliograficas En consecuencia asumimos la responsabilidad total por el trabajo realizado y por el contenido del correspondiente informe final Cartago semestre 2010 Resumen Las demandas de espacio de almacenamiento y rendimiento para los sistemas empotrados destinados al procesamiento digital de sefiales DSP han impulsado el desarrollo de nuevas tecnologias enfocadas en el procesamiento de audio digital y procesamiento de gr ficos de alta calidad entre otras funciones Dichos sistemas empotrados han logrado expandirse en el mercado mundial de los dispositivos electr nicos gracias a su amplio rango de aplicaci n Es por este motivo que fabricantes de circuitos electr nicos como Texas Instruments TI se han dado a la tarea de desarrollar dispositivos destinados espec ficamente al procesamiento digital de se ales DSP RidgeRun la empresa para la cual se desarrolla el proyecto descrito en esta t sis provee soluciones de software para diversas plataformas que integran Sistemas en Chip SoC de la familia DaVinci y OMAP dise ados y producidos por Texas Instruments y se encuentra interesada en el desarrollo de herramientas de software basadas en la
75. ded in the Licensed Materials to human perceivable form You also agree that you will use your best efforts to prevent your employees and contractors from unlocking decompiling reverse engineering disassembling modifying or translating the Licensed Materials In no event may you alter remove or destroy any copyright notice included in the Licensed Materials TI reserves all rights not specifically granted under this Agreement 3 Upgrades Updates and Plug ins If the Licensed Materials are labeled as an upgrade update or plug in you must be properly licensed to use the product identified by TI as being eligible for such upgrade update or plug in to use the Licensed Materials An upgrade update or plug in replaces or supplements a previously licensed eligible product You may use the resulting upgraded product only in accordance with the terms of this Agreement and only to generate applications for use with semiconductor devices manufactured by or for TI Notwithstanding the foregoing nothing in the Agreement will be construed as an obligation for TI to maintain or support the Licensed Materials or to provide upgrades updates or plug ins to the 113 Licensed Materials 4 Warranties and Limitations YOU ACKNOWLEDGE AND AGREE THAT THE LICENSED MATERIALS ARE NOT INTENDED FOR PRODUCTION APPLICA TIONS AND MAY CONTAIN IRREGULARITIES AND DEFECTS NOT FOUND IN PRODUCTION SOFTWARE FURTHERMORE YOU ACKNOWLEDGE AND AGREE THAT THE LICENSE
76. del an lisis del ruido y de la intensidad m xima a registrar 49 En la figura 2 32 se detalla el manejo de un b fer de audio y la manipulaci n de la muestra seg n el tama o y la precisi n de la misma Por ejemplo un disco compacto de audio utiliza un tama o por muestra de 16 bits con una precisi n de 16 bits lo que corresponde a alrededor de 5 d gitos decimales de precisi n Muestra 1 Muestra 2 Muestra n 1 Muestra n 2 UN Precisi n m2 Precisi n m1 Precisi n M n 1 T 7 Y N Precisi n mn Tama o de la muestra es dado en bits La precisi n de la muestra es dado en bits Figura 2 32 Tama o y precisi n de la muestra de audio 2 5 3 Manejo del b fer de audio El manejo de los datos se define seg n una serie de caracter ticas presentadas a continuaci n Valor del tama o de la muestra Valor de la precisi n Tama o en bytes del b fer 44 2304 Bytes B fer de audio con N muestras Canal Canal Canal Canal Canal Canal Canal 1 2 1 2 1 _ 1 2 Muestra 1 2 3 4 5 n 1 n Flujo de informaci n entrelazada con dos canales est reo Precisi n 16 bits Tama o de la muestra 16 bits Figura 2 33 Manejo del flujo de datos de audio La figura 2 33 ilustra un caso concreto sobre el manejo del flujo de informaci n de audio estand r establecido por la sociedad de ingenier a en audio AES 50 Dados B el n me
77. deo digital respectivamente Figura 2 24 Dominios espacio temporal de video digital Tomado de 10 Tabla 2 5 Tama os de im genes en video Tomado de 10 Tama o de la imagen N mero de puntos de muestreo Equivalente en video an logo 352 x 288 101376 Video VHS Transmisiones de televisi n en formatos 704 x 576 405504 como PAL o NTSC 1440 x 1152 1313280 Televis n Alta Definici n Tabla 2 6 Tasas de muestreo temporal de un video digital Tomado de 10 Tasa de video cuadros s Apariencia 10 Lento movimiento poco natural 10 20 Movimientos lentos se ven bien no as los r pidos 20 30 Movimiento razonablemente fluido 50 60 Movimineto muy fluido 36 2 4 2 Despliegue de video y Espacios de Colores A pesar de que se puede describir el color mediante la medici n de su distribuci n espectral de potencia la intensidad de la radiaci n electromagn tica visible para la percepci n humana esto conlleva cierto grado de redundancia puesto que las muestras de color que toma la retina del ojo utiliza s lo tres bandas que corresponde aproximadamente a la luz roja verde y azul La sensibilad a se ales de color conos junto con los de la intensidad se combinan en el cerebro para dar varias sensaciones del color 2 Entre las m s importantes sensaciones se pueden mencionar o Luminosidad percepci n de un rea con m s o menos luz o Matiz asociado a la frecue
78. document will explain the way to append the new codec into TI s Codec Server 98 Checking your DVSKD Makefile Support cd DEVDIR propietary dvsdk gedit Makefile On the Makefile check if the gencodecpkg macro is activated if it s already added please ignore next step Inside the Makefile from the DVSDK cd DEVDIR propietary dvsdk gedit Makefile Append the following rule gencodecpkg XDC xs xdcpath CE_INSTALL_DIR packages XDAIS_INSTALL_DIR packages ti sdo ce wizards gencodecpkg Make sure you use a tab instead spaces Running the wizard From your DVSDK directory you can invoke gencodecpkg with the following command cd DEVDIR proprietary dvsdk_ make gencodecpkg At the First Screen Help What type of Codec package would you like to create Select the method in which XDM algorithm information is obtained In some cases specify a valid XDAIS Install Dir and C6000 TI cgtools Dir W O Create a CE compatible Codec package from a genalg file previously created using the XDAIS O Create a CE compatible Codec package from an existing XDAIS library file Y Create a CE compatible Codec package from scratch including complete starter codec sources Set XDAIS Insta s DEVDIR proprietary dvsdk_1_00_00 0MAP_L138_arm_1_00_00_08 xdais_6_25_01_08 Set C6000 TI cc opt TI TI_CGT_C6000_6 1 9 lt Back Next gt Finish Cancel Figura A 1 Firs
79. dores de voz o ISPHDECx Interfaz gen rica para decodificadores de voz o TIMGENCx Interfaz gen rica para codificadores de im genes o IIMGDECx Interfaz gen rica para decodificadores de im genes La novena interfaz definida en estos est ndares es o 1UNIVERSALx interfaz gen rica para cualquier tipo de algoritmo La interfaz XDAIS permite tener una comunicaci n entre una aplicaci n y un algoritmo de DSP como lo muestra la figura 2 17 con su interfaz IMOD y IALG Cuando se incluye el est ndar xDM dentro de XDAIS el algoritmo utiliza una de las nueve interfaces est ndar predefinidas en este paquete xDM es un superconjunto de la interfaz JALG 29 Interfaz Especifica del algoritmo Interfaz xDAIS IMOD IALG Figura 2 17 Interfaz de XDAIS Tomado de 34 A trav s de stas se puede ajustar un determinado algoritmo o aplicaci n mediante la extensi n de la interfaz IMOD a la interfaz xDM En casos m s sencillos IMOD ser id ntico a la interfaz xDM Lo anterior se puede observar en la figura 2 18 Interfaz Espec fica del algoritmo IMOD Interfaz Media digital xDM Interfaz xDAIS IALG Figura 2 18 Interfaz de xDM para un algoritmo Tomado de 34 2 3 6 Codec Engine Codec Engine 36 es un marco de trabajo que permite a las aplicaciones instanciar y trabajar con algoritmos usando una API com n Esta API posee las siguientes caracter sticas o Algori
80. ecci n 2 2 4 Sin embargo las herramientas de generaci n de c digo no solo compilan c digo para el DSP sino que se encargan de optimizarlo bas ndose en banderas de compilaci n Texas Instruments recomienda la versi n CGTc6000 como compilador cruzado para el desarrollo de software para DSP Este paquete ofrece ventajas significativas al usuario ya que deja al compilador realizar la selecci n de la instrucci n m s adecuada Adem s controla el paralelismo la canalizaci n del flujo de datos y el direccionamiento de registros parallelizing pipelining and register allocation 44 Esto permite que el usuario se centre en su aplicaci n y no en el manejo de capas inferiores Gracias a este control el c digo se vuelve mantenible y modificable ya que todo est basado en un est ndar Las CGTools se describen en el documento TMS320C6000 Optimizing C Compiler 44 2 4 Concepto de Video Digital El video digital es parte integral en aspectos de negocios educaci n y entretenimiento desde la televisi n digital hasta los videos a trav s de la web El video digital es informaci n visual representada en forma discreta adecuada para el almacemamiento y o la transmisi n a trav s de dispositivos electr nicos digitales 10 A continuaci n se describe una serie de conceptos relacionados al despliegue de video digital 34 2 4 1 Dominios Espacio Temporal Una imagen es una proyecci n de una escena tridimensional en un plano
81. el 2 6 32 y del U Boot con la herramienta del SDK se crean parches de software que modifican algunos de sus archivos para que los men s de configuraci n propios del kernel y del U Boot se encuentren a disposici n en el men de configuraci n principal del SDK Este software al ser especializado para la arquitectura OMAP L138 permite que en los men s de configuraci n se puedan habilitar los controladores de audio y de video Ver secci n 2 1 El sistema de archivos implementado permite la opci n en el men de configuraci n del SDK de ser tipo NFS que puede ser accesado por red y uno que puede ser almacenado en una memoria SD Las bibliotecas que se a aden en el sistema de archivos permiten al usuario crear aplicaciones Dentro de estas bibliotecas destacan GStreamer Ot D Bus entre otras 3 2 Integraci n del DVSDK en el SDK de la OMAP L138 Zoom Evm Una vez que los componentes b sicos se integran en un paquete unificado se procede a agregar el software propietario y con el fin de no modificar el c digo se realizan pilas de parches las cuales se encargan de modificar el c digo sin perder la informaci n de los archivos originales y poder as distribuir el c digo en otros kit de desarrollo de software empotrado SDK sin tener la necesidad de almacenar los paquetes propietarios El DVSDK es una colecci n de componentes de software integrados para demostrar la interoperabilidad funcionalidad y desempe o de elementos
82. el algoritmo Figura 4 11 Marco de implementaci n del algoritmo de audio filtro FIR En la figura 4 12 se puede observar la estructura del directorio que se genera cuando se crea el m dulo de algoritmo xDM a trav s de la estructura de paquetes utilizadas con las XDCTOOLS que permiten luego utilizar este paquete dentro del proceso de creaci n del codecServer el cual genera el archivo ejecutable que contiene el m dulo de audio y que puede ser llamado por una aplicaci n en el ARM a trav s del marco de CodecEngine cuando se requiera ejecutar el algoritmo 67 AUDIO_EFFECT version 1 0 0 wizardversion 0 5 3 AUDIO_EFFECT xdc audio_effect c audio_effect_ti h audio_effect_ti_priv h ce AUDIO_EFFECT xdc AUDIO_EFFECT xs package bld package mak package xdc Iib audio_effect a64P gt archivo que se va a generar lt Link xdt package bld package xdc package xs audio_algorithm c audio_algorithm h Figura 4 12 Estructura del codec de audio Para una explicaci n m s detallada de c mo construir un m dulo para DSP para luego integrarlo dentro de un codecServer se puede observar el manual t cnico de la secci n A 1 68 5 Aplicacion basada en GStreamer 5 1 Aplicaci n general La aplicaci n de referencia est basada en el paquete de GStreamer v ase secci n 2 6 y est escrita en Vala Como se observa en la figura 5 1 la apli
83. elay 500000000 intensity 0 6 feedback 0 4 audioconvert alsasink A 3 1 2 Caso 2 de audio Decodificador TlAuddecl DSP Efecto audioecho ARM Formato audio acc Contenedor de audio Flujo de datos de Gstreamer utilizado gst launch filesrc location davincieffect aac typefind TIAuddec1 audioconvert audioecho delay 500000000 intensity 0 6 feedback 0 4 audioconvert alsasink A 3 1 3 Caso 3 de audio Decodificador faad ARM Efecto dt_audioeffect DSP Formato audio acc Contenedor de audio z 107 Flujo de datos de Gstreamer utilizado gst launch filesrc location davincieffect aac faad dt_audioeffect g1 4 g2 4 g3 4 g4 4 audioconvert alsasink A 3 1 4 Caso 4 de audio Decodificador TlAuddecl DSP Efecto dt_audioeffect DSP Formato audio acc Contenedor de audio E Flujo de datos de Gstreamer utilizado gst launch filesrc location davincieffect aac typefind TIAuddec1 dt_audioeffect g1 4 g2 4 g3 4 g4 4 audioconvert alsasink A 3 1 5 Caso 5 de audio Decodificador mad ARM Efecto audioecho ARM Formato audio mp3 Contenedor de audio Flujo de datos de Gstreamer utilizado gst launch filesrc location davincieffect mp3 mad audioconvert audioecho delay 500000000 intensity 0 6 feedback 0 4 audioconvert alsasink A 3 1 6 Caso 6 de audio Decodificador mad ARM Efecto dt_audioeffect DSP Formato
84. er utilizado audioconvert dt_audioeffect gl 2 g2 4 g3 4 g4 4 filesink audio modificado wav 712 2000 4000 6000 8000 10000 Q 2000 4010 6000 8000 10000 Figura 6 1 Audio resultante del proceso DSP Se muestra en la figura 6 1 el resultado de procesar el audio a trav s del m dulo creado para DSP El filtro FIR implementado deb a adicionar en una se al resultante muestras anteriores en este caso se muestra como se reproduce la se al en tres ocaciones A continuaci n se presenta una comparaci n en el consumo de GPP que tienen los flujos de datos de GStreamer usando combinaciones de elementos de GStreamer que son procesados en el GPP y en el DSP En la tabla 6 2 se muestran los elementos de GStreamer que se ejecutan en el GPP y los elementos creados espec ficamente para el procesamiento en el DSP Durante la ejecuci n de los archivos AAC se hace uso de un paquete DSP que no fue creado para el proyecto sino que se reutiliza con el fin de comparar el consumo de GPP con m s de un elemento de GStreamer siendo ejecutado en el DSP se trata del elemento TlAuddec l Tabla 6 2 Elementos de GStreamer utilizados para las pruebas de rendimiento Elementos GPP Elementos DSP Funci n filesre Abrir una fuente o archivo faad TIAuddecl Decodificador de audio en formato aac mad Decodificador de audio en formato mp3 audioecho dt_audioeffect efecto de audio audioconvert elemento enc
85. ernel GNU Linux en el sistema es proveer una interfaz consistente entre las aplicaciones y el hardware Este recurso aisla los programas de las capas de hardware y administra el tiempo del procesador calendarizaci n que los programas utilizan El kernel trata los programas como procesos cada programa es independiente y solamente puede hacer peticiones de uso de hardware sin accederlo directamente Dicho proceso de acceso al hardware se muestra en la figura 2 6 13 Aplicaciones Aplicaciones Bibliotecas Nucleo J Manejo Manejo Manejo de de de Procesos Memoria Dispositivos Hardware J Memoria CPU Perif ricos Figura 2 6 Abstracci n de capas esquematizada El kernel de GNU Linux se ocupa adicionalmente de gestionar los recursos de la memoria del sistema decide cu ndo y qu proceso accede al sistema de archivos controla el acceso a los perif ricos y negocia los paquetes a trav s de la red entre otras funciones Esto permite a los programas evitar la implementaci n de esas capas Gracias al sistema kconfig presente en el SDK de RidgeRun para modificar las caracter sticas del kernel basta con habiltar las funciones en el men de configuraci n y re compilar el c digo fuente para disponer de los m dulos necesarios V ase la figura 2 7 Kernel configuration Arrow keys navigate the menu lt Enter gt selects submenus gt Highlighted letters are hotkeys Pressing lt Y gt includes lt N gt
86. erver genera un archivo ejecutable denominado servidor encargado de administrar la memoria dedicada al DSP para el manejo de datos c digo objetos de los m dulos de algoritmos que se integran a este ejecutable ste a su vez es almacenado en un espacio determinado de memoria RAM en tiempo de ejecuci n para su uso Dentro de este ejecutable es donde se van a manejar las referencias de los m dulos de algoritmos de DSP y es creado a partir de un proceso de compilaci n que incluye una serie de archivos y est ndares manejados por las XDCTOOLS y el compilador de TI Su construcci n va de la mano con la construcci n de los m dulos de algoritmos de DSP con el marco de referencia iUniversal que se explicar m s adelante 55 En la figura 3 3 se muestra la segmentaci n de memoria RAM que se estableci en tiempo de ejecuci n gracias a la configuraci n de CMEM DSPLink y Codec Server CMEM 16 MBytes iL DDRALGHEAP 10 MBytes DDR3 MBytes iim J tor de Reset 128 B 64 MBytes 128 MBytes Memoria no utilizada Memoria RAM Figura 3 3 Mapa de Memoria establecido para la arquitectura OMAP L138 Las particiones referidas por DDRALGHEAP y DDR son particiones de memoria dedicadas al DSP La partici n DDRALGHEAP contiene toda la memoria din mica de los algoritmos de DSP que se integran en el CodecServer y la partici n DDR contiene el c digo de DSP y los datos est ticos para los algoritmos
87. es Figura 4 9 Manejo de los buferes 4 2 3 Representaci n num rica La representaci n de punto fijo utiliza un n mero fijo de d gitos para representar el entero y las fracciones de los n meros reales Se usa la notaci n Q i f para representar una variable de tama o de punto fijo de f i representa los d gitos utilizados para la parte entera y f d gitos utilizados para representar la parte fraccionaria Los principales obst culos asociados con la aritm tica de punto fijo son el desbordamiento m ximo y el desbordamiento m nimo Para el desarrollo de m dulo de audio se utiliza la notacion 024 8 Dicho formato de punto fijo utiliza 24 bits de n mero entero y 8 bits de decimal Representaci n entera Representaci n decimal Oxh000000 Oxh00 Como el flujo de datos se trabaja con muestras de 16 bits se debe de convertir cada muestra a la representaci n Q24 8 y para lograrlo se realiza un corrimiento de 8 posiciones Utilizando el siguiente ejemplo se puede ilustrar c mo se realiza la transformaci n de datos en formato 16 bits a formato 024 8 valor corrimiento valor entero valor decimal OhOEAO 8 gt OhOEAO 00 4 2 4 Diagrama de flujo del algoritmo En la figura 4 10 se muestra el diagrama del algoritmo de audio La ejecuci n del algoritmo tiene 4 etapas que sobresalen la carga de los par metros la transformaci n de las muestras el procesamiento de los datos y finalmente el corrimiento e
88. esoluci n de crominancia vertical Bloque de referencia T resoluci n de crominancia total 0 Muestra de Crominancia e Centroide de un p xel de crominancia O No hay Crominancia P xel de crominancia r Esquina de bloque de p xel 4 4 4 ale ic eile a BE aaa BAYRAK A ele H 4 1 e o ojo ojo oleo 1410 4 010 o o o V 1 1 4 aa T 1 1 ojo ojoj o o ojo e eoe o o o ooo e o o oo o o o e o o o o ooo 4 2 2 H 1 2 oe r a N ve 422 2 QW 11 ele Ta 2lo 0 e lojoe oseslo e lt ojeloje oe lo e lt ojeloloe velo 4 2 0 Fo aa Tanta etn ne 420 2elaolelo eloalelo H 1 2 LACAN A lo Vv 1 2 0186 616 6 Jolololo T 1 4 _ EAM A4242 22 E E e ole olelole lo olololololololo Figura 2 27 Muestreos de formatos YCbCr Tomado de 5 El submuestreo 4 4 4 significa que las tres componentes Y C Cp tienen la misma resoluci n y por ende cada componente existe en cada posici n de un pixel El n mero indica el muestreo relativo de cada componente en la direcci n horizontal por ejemplo por cada 4 muestras de luminancia existen 4 de C y de Cp 40 En el submuestreo 4 2 2 el nimero indica que por cada 4 muestras de luminancia horizontal hay 2 muestras de C y 2 muestras de Cp El submuestreo 4 2 0 indica que C y C tienen la mitad de
89. f you are building an ARM application and this codec package gets consumed the condition above is false and the getLibs return an empty library name which is what you want when you don t provide any libraries for the ARM In the file package xs at the root directory of the codec append the code shown below This code is used by the linker getSects function getSects var template null if Program build target isa 64P template ti sdo codecs audio_effect link xdt return template link xdt Create a file named link xdt at the root directory of codec and modify this file Change MYCODEC by your codec name Change VENDOR by your vendor name 103 SECTIONS if this MYCODEC dataSection const string gt this AUDIO_EFFECT dataSection ht if this MYCODEC codeSection text _algorithm gt this MYCODEC codeSection text algProcess _MYCODEC_VENDOR_process gt this MYCODEC codeSection text algInit MYCODEC_VENDOR_initObj gt this MYCODEC codeSection text algAlloc MYCODEC_VENDOR_alloc gt this AMYCODEC codeSection text algFree MYCODEC_VENDOR_free gt this MYCODEC codeSection text algControl MYCODEC_VENDOR_control gt this MYCODEC codeSection ht Usually the codec should be integrated with the codec server that comes with the dvsdk out of the box Codec server integration There are two options here one of them
90. genes o cuadros por segundo que se despliega en pantalla y para los casos 2 y 3 espec ficamente se tom el consumo de DSP Todas las pruebas se realizaron con muestras tomadas cada un segundo en un lapso de 80 segundos por prueba Tabla 6 10 Tabla Resumen de consumo de recursos para los casos de video 1 2 3 Caso Consumo de GPP Mejora Consumo de DSP Elementos 9 9 DSP caso 1 99 9 caso 2 84 9 13 26 22 71 Decodificador caso 3 24 6 73 35 74 Decodificador y Algoritmo de Video Para obtener estos datos se utiliz un elemento de GStreamer que permite acceder a los datos de calendarizaci n y consumo del GPP ARM llamado dmaiperf que tambi n permite obtener el flujo de datos de video que se est n transmitiendo en la salida video Estos se pueden observar en las tablas 6 8 y 6 9 respectivamente Dentro de los escenarios destacan pruebas con formatos de video h264 y mpeg4 adem s de un caso con un contenedor mp4 Los casos 1 2 y 3 utilizan un archivo de video con formato h264 con contenedor mp4 Se utiliza un demultiplexador para obtener el flujo de datos de video en h264 adem s se hace uso de un elemento de decodificaci n de h264 y conversi n de espacio de colores El caso 1 ejecuta ambos elementos en el procesador GPP El caso 2 ejecuta el algoritmo decodificador en en el DSP y el algoritmo convertidor de espacio de colores en el GPP Por ltimo el caso 3 ejecuta ambos algoritmos
91. i n inicializar el DSP y controlar cu l algoritmo de DSP deb a de ejecutarse para una tarea en espec fico El paquete DSPLink permite manejar las tareas anteriomente mencionadas a trav s de un conjunto de servicios dedicados V ase figura 2 11 21 Dispositivo Cliente Dispositivo Servidor Capa de Software IPC Capa de Software IPC Figura 2 11 Capas para la utilizaci n de los protocolos IPC Tomado de 46 DSPLink est basado en protocolos de llamadas a procedimientos remotos RPC El procesador emisor de comandos GPP es conocido como el dispositivo cliente y el procesador ejecutor de comandos DSP es conocido como el dispositivo servidor El cliente env a comandos y par metros al servidor sobre el medio f sico de comunicaciones IPC Una vez que el servidor completa la ejecuci n del comando env a un mensaje de regreso sobre el mismo medio al cliente que provee alg n valor de retorno del procedimiento que ejecuta Gracias al uso de memoria compartida y se ales de interrupci n entre dispositivos ambos procesadores acuerdan una direcci n de memoria predeterminada para mensajes desde el ARM hasta el DSP y viceversa Un procesador env a mensajes al otro procesador escribiendo el mensaje en la direcci n predeterminada de memoria y env a una interrupci n para se alar al otro procesador que un mensaje nuevo est disponible El otro procesador una vez que lee el mensaje marca una bandera en la memoria compartida par
92. ificaciones solamente que otras interfaces pueden heredar y que los m dulos en ltima instancia implementan o Paquete un espacio de nombres de programaci n de alto nivel que a su vez contiene m dulos e interfaces dentro de su mbito de aplicaci n 2 Implementaci n Los m dulos XDC est n formados por dos implementaciones que se complementan o Implementaci n con la arquitectura objetivo contenido basado en C para un posterior uso en aplicaciones enfocadas a una plataforma de hardware espec fico o Implementaci n con la metainformaci n contenido de alto nivel para la configu raci n y an lisis con estas aplicaciones RTSC introduce un meta lenguaje basado en est ndares de la tecnolog a JavaScript 3 Empaquetado los paquetes RTSC sirven como contenedores l gico y f sicos Adem s de proporcionar un espacio de nombres de programaci n que incluyen los m dulos e interfaces RTSC cada uno se integra como un directorio dentro de un sistema de archivos que siguen una serie de convenciones pero que puede albergar archivos como bibliotecas encabezados scripts documentos y hasta otros paquetes Para ayudar a manejar el desaf o del productor el envasado RTSC simplifica el proceso de construcci n de varias bibliotecas utilizando compiladores m ltiples C aprovechando las instancias de una receta que prescribe las medidas necesarias para compilar archivos de c digo fuente C para un conjunto particular de instrucciones y
93. ions software in a source code format You may use these programs to create modified or derivative programs that may be reproduced and distributed by you provided that such programs execute solely and exclusively on semiconductor devices manufactured by or for TI and provided further that such programs are distributed only in an object code or executable format You may not distribute publish rent lease or sub license the Licensed Materials or any portion or derivative thereof in a source code format or transfer or assign this Agreement without TT s prior written permission c Termination This license is effective until terminated Without prejudice to any other rights TI may terminate your right to use the Licensed Materials and any applications generated using the Licensed Materials under this Agreement if you fail to comply with the terms of this Agreement In such event you shall destroy all copies of the Licensed Materials including all portions and derivatives thereof in your possession custody or control 2 Intellectual Property Rights The Licensed Materials contain copyrighted material trade secrets and other proprietary information In order to protect the Licensed Materials and except as specifically permitted by statute by a provision that cannot be waived by contract you may not unlock decompile reverse engineer disassemble or otherwise translate any binary or object code versions of the software programs inclu
94. jecuten en este procesador lo que permite una mayor interacci n con la arquitectura del DSP 33 20 ORDENADOR ANFITRION Herramientas De Configuraci n cdb Base HA Dedos DSP BIOS API De Config Cra cmd Herramientas Cfg s6x Generacion Cfg h6x eee 7 f Compilador Ensamblador i Enlazador 3 Aplicaci n l PLUGIN 1 Usando RTDX I l EXTRA Depurador de Code Composer Studio Soporte de emulaci n en el PC anfitri n Figura 2 10 DSP BIOS configurado a trav s de CodeComposer Tomado de 33 El enfoque del proyecto como se introdujo anteriormente es una combinaci n de procesos entre el procesador ARM y el DSP para la ejecuci n de algoritmos de DSP DSP BIOS proporciona un marco de trabajo denominado DSP BIOS Link que facilita la comunicaci n entre el procesador ARM de prop sito general GPP y el DSP que permite el intercambio datos e informaci n de control entre el GPP y el DSP 2 3 1 1 DSP BIOS Link DSPLink como se le llama tambi n est dise ado para facilitar la comunicaci n entre microprocesadores de prop sito general y los DSP a trav s de una capa de comunicaciones entre procesadores IPC En el pasado el desarrollo de aplicaciones que involucraban o resid an tanto en el GPP como en el DSP de las arquitecturas de TI requer an del desarrollo de software para la comunicaci n entre procesadores que permitiera el intercambio de datos y de informaci n Adem s el microprocesador deb a tamb
95. l algoritmo Tambi n se debe seguir una interfaz espec fica para cada algoritmo denominada IMOD la cual es definida por el desarrollador del algoritmo que extiende la interfaz JALG para poder implementar las funciones que describen la funcionalidad del algoritmo o acceder la biblioteca que implementa el algoritmo 32 Resumiendo un algoritmo se puede hacer compatible utilizando los siguientes pasos 27 o Implementar la interfaz IALG en el c digo 42 con sus funciones de inicio destrucci n reserva de memoria control etc o Implementar la interfaz espec fica IMOD en el c digo aportada por el desarrollador o Definir las funciones principales de la estructura XDAIS en una secci n de c digo que se denomina V Table para que el compilador reconozca tales funciones o Verificar que se cumplan con las reglas est ndares de XDAIS o Crear la biblioteca y el archivo de encabezado Otros pasos adicionales son o Dividir la memoria en varios bloques o Implementar las funciones complementarias de la interfaz IALG como por ejemplo de activaci n y desactivaci n el algoritmo De esta forma la funcionalidad de XDAIS se puede definir como un enmascaramiento m dulo de las funciones del algoritmo de DSP para que una aplicaci n pueda administrar una instancia del algoritmo al llamar a la tabla de punteros a funciones V Table esto para poder crear eliminar y ejecutar el algoritmo Ver figura 2 15 para una ilustraci n p
96. l motor central de ejecuci n se divide en una secci n que se encuentra en el procesador ARM y la otra en el DSP La parte que se encuentra del lado del DSP se denomina com nmente CodecServer funciona como un servidor remoto que comunica los dos frentes y ser explicada en la siguiente secci n 2 3 6 1 Codec Server Este paquete se utiliza solamente cuando se tienen arquitecturas duales DSP GPP y se desea que alg n algoritmo sea ejecutado en el DSP remotamente El Codec Server es un archivo ejecutable que integra los algoritmos creados con el est ndar XDAIS y sus marcos de trabajo por ejemplo DSP BIOS y los controladores de DSPLink que se carga y se inicia en memoria RAM y es ejecutado por el DSP El servidor puede ser utilizado por las aplicaciones que se encuentran en el GPP para acceder informaci n acerca del servidor del DSP y para controlarlo M s a n estas API permiten a una aplicaci n de GPP obtener informaci n sobre el n mero de bloques de memoria configurada en el servidor de DSP conocer el uso actual de un bloque individual de memoria y reconfigurar la base y el tama o del servidor de DSP para los algoritmos 36 La creaci n del Codec Server debe tener dos pasos de configuraci n uno que permita configurar DSP BIOS a trav s de un archivo llamado TConf script y el otro que configure el resto de los paquetes Esto a trav s de las herramientas de compilaci n XDC sobre los componentes de CodecEngine DSPLi
97. l sobre el c digo fuente Disponibilidad de proyectos de c digo abierto dise ados para GNU Linux adem s de un apoyo permanente de la comunidad de c digo abierto 1 2 Algoritmos de DSP y su relaci n con la arquitectura OMAP L138 La tarjeta OMAP L138 ZoomEvm es fabricada por Logic PD 14 Este dispositivo utiliza un SoC OMAP L138 que integra un microprocesador ARM 9 y un procesador DSP con capacidades de punto flotante de la familia C674X basados en la tecnolg a DaVinci de Texas Instruments para procesamiento multimedia El dispositivo embebido posee una serie de perif ricos que permiten el desarrollo de aplicaciones multimedia tales como puertos de entrada y salidas de audio y video puerto Ethernet puertos USB decodificadores de audio y decodificadores de video En la figura 1 1 se observa un modelo de la ZoomEvm acompa ada de su tarjeta de expansi n As mismo puede a adirse como hardware adicional a la tarjeta una pantalla t ctil con dimensiones de 480 x 272 pixeles Figura 1 1 Zoom EVM tarjeta producida por LogicPD Al ser esta tarjeta una plataforma que incluye un procesador DSP su uso y funcionalidad pueden ser explotados para el desarrollo de algoritmos espec ficos a este tipo de aplicaciones Estos algoritmos son utilizados principalmente para construir aplicaciones orientadas al procesamiento de audio video im genes y voz La realizaci n de este proyecto se centra en la integraci n para el desarrollo
98. la informaci n de color RGB no puede tomar ventaja de esto ya que en cada componente de color de ese espacio existe luminancia Un espacio de color que toma ventaja de esto es el Y C Cp donde Y es la componente 38 de luminancia C y Cp son conocidos como la diferencia de color o crominancia C es la crominancia en rojo y Cp la crominancia en azul Relacionado con el espacio de color RGB la crominancia se comporta representando la variaci n de la intensidad de color y el fondo que da la luminancia de la imagen C ky R Y 2 2 Cy kpx BY 2 3 Cs ke G Y 2 4 La suma de C Cg Cp es una constante por lo que solo 2 de las 3 componentes de crominancia se codifican La tercera puede ser calculada de las otras dos Por eso es que este espacio solo utiliza C y Cp como componentes de crominancia En este formato la componente de luminancia se transmite con todo detalle mientras a las componentes de crominancia se les puede reducir el detalle haciendo un submuestreo filtrado o promedio reduciendo as la cantidad de datos requeridos sin tener una p rdida de calidad visual en la imagen 2 4 4 1 Formatos de submuestreo de crominancia El submuestreo en una imagen de video para el formato Y CC es designado por una cadena de 3 o 4 enteros separados por dos puntos L a b c como se muestra en la figura 2 26 La relaci n entre los n meros enteros indica el grado de submuestreo vertical y horizontal o L M
99. mer y gracias al ambiente que se establece en la tarjeta OMAP L138 ZoomEvm para habilitar el controlador de hardware para el despliegue de video en la pantalla LCD se puede decodificar convertir el espacio de color y desplegar en pantalla un archivo de video en formato MPEG4 o H264 Como se muestra en la figura 4 1 EE Decodificador Poi Salida De video Pp De video colores Filesrc fodevsink Archivo de Ls eee Ffmpegcolorspace Al controlador ecco Vides con Conversi n De video MPEG4 o formatos TUV RGR h264 Figura 4 1 Secuencia de elementos de GStreamer utilizado para el algoritmo de video La secuencia a ejecutar es la siguiente o A trav s de un sistema de archivos enlazado con el kernel de GNU Linux se lee un archivo con formato mpeg4 o h264 o Un algoritmo de decodificaci n descomprime el archivo a datos de video o Se pasa por el tranformador de espacio de colores de 1420 a RGB565 o Se pasa el flujo de datos al elemento de GStreamer fbdevsink 57 o El elemento fbdevsink se comunica con el m dulo del kernel de GNU Linux que maneja el dispositivo de video LCDC controller Como una forma de utilizar las herramientas integradas en el SDK para la arquitectura OMAP L138 para integrar algoritmos de DSP con el est ndar iUniversal se sustituye el elemento de conversi n de espacio de colores que se ejecuta en el ARM por un elemento que ejecuta un algoritmo conversor de espacio de colores en el DSP 4 1 2 Algoritmo de c
100. mplementar e instalar en la tarjeta un gestor de arranque de c digo abierto un sistema operativo y un sistema de archivos file system como ambiente base para control y comunicaci n con el hardware Con la integraci n del sistema operativo GNU Linux se habilitan los m dulos controladores de los dispositivos de reproducci n de audio y video de la tarjeta en uso Una vez hecho lo anterior se integran en el SDK los paquetes o interfaces provistos por Texas Instruments para establecer la comunicaci n entre el DSP y el ARM en la tarjeta y tambi n se crea el l Existen otras APIs conocidas como VISA que son tambi n extensiones de XDAIS dedicadas a la construcci n de algoritmos decodificares y encodifcadores de audio video e im genes marco de referencia para la construcci n de un algoritmo de DSP con la interfaz Universal que suministra el paquete CodecEngine Una forma de comprobar la funcionalidad de las herramientas integradas para la construcci n y ejecuci n de algoritmos es la creaci n de un algoritmo de audio y uno de video siguiendo los est ndares de XDAIS e integrarlos en una aplicaci n de GStreamer para demostrar las capacidades del hardware y del software El cap tulo 2 describe la estructura de un SDK de RidgeRun as como de los paquetes que Texas Instruments provee estos paquetes est n descritos en la secci n 2 2 6 Adem s en este cap tulo se dedica una secci n a la teor a b sica de espacios de
101. muestras y a es un factor de escalamiento aplicado a la se al retrasada La funci n de transferencia del sistema descrito por 2 14 en el dominio de z Y 2 Xo lta z 2 15 Figura 2 35 Estructura de un filtro comb FIR tipo Feedforward 47 2 6 GStreamer GStreamer es un marco de trabajo framework dise ado especialmente para crear aplica ciones multimedia Esta herramienta fue disefiada especialmente para crear aplicaciones de audio y video sin embargo es capaz de procesar otros tipos de flujo de informacion La API est escrita en C y est basada en GObject y Glib lo que permite manejo de informaci n orientada a objetos y herencia 24 Est dise ado para ser utilizado en distintas plataformas como x86 PowerPC ARM Solaris entre otros Adem s existen diversas interfaces de GStreamer para varios lenguajes de programaci n entre ellos destacan Python C Ruby y finalmente Vala lenguaje utilizado en la realizaci n de la aplicaci n del proyecto La t cnica utilizada por GStreamer para procesar archivos multimedia consiste en enlazar un conjunto de elementos en una secuencia de reproducci n llamada pipeline El elemento la parte fundamental dentro de la clase de objetos en GStreamer permite crear una cadena de componentes enlazados entre s y logra que la informaci n fluya a trav s de ella Un elemento tiene funciones espec ficas como o Leer datos de un archivo o Decodificar l
102. municaciones entre otros 47 La tarjeta proporciona un entorno de desarrollo de software para procesamiento digital de se ales e incluye perif ricos especialmente seleccionados para aprovechar al m ximo las capacidades que ofrece la arquitectura El diagrama de bloques provisto por el fabricante se muestra en la figura 2 1 en donde se resaltan los m dulos de hardware que se utilizan en este proyecto para el despliegue de video controlador de LCD y la reproducci n de audio controlador McASP Estos m dulos de hardware pueden configurarse para ser utilizados a trav s de las opciones de construcci n del kernel de GNU Linux con el objetivo de habilitar los perif ricos respectivos de la tarjeta Zoom Evm La figura 2 2 muestra el diagrama de bloques del controlador de LCD ste se compone de dos controladores independientes el controlador Raster y el controlador de la interfaz de pantalla LIDD Cada bloque funciona de manera independiente y s lo uno de ellos est activo a la vez El camino que sigue el flujo de datos de video est resaltado con l neas gruesas a rc I I LCD_CLK gt LCD block I I A A I i DMA TFT i i I Palette Gray scaler Output i LCD_D 15 0 RAM serializer FIFO I i i I I i Raster I controller 1 I i i i LCD_VSYNC LCD_HSYNC l DMA l control LIDD LOD_PCLK mra registers controller 1 LCD_AC_ENB_CS CPU i LCD_MCLK Figura 2 2 Diagrama del Cont
103. n en el DSP en el caso 2 se logra aumentar el rendmiento del GPP En este caso se observa como los procesos en el GPP alcanzan un promedio del 85 El procesador deja de estar saturado en el 100 como en el caso anterior liberando al procesador GPP para que pueda ejecutar otros procesos en paralelo al despliegue de video Tambi n se puede observar c mo en este caso la tasa de im genes por segundo aument a un promedio de 19 5 cuadros s Por ltimo se a adi el elemento de conversi n de espacio de colores creado en este proyecto dt_colorspace ejecutado en el DSP Las gr ficas 6 4 y 6 5 muestran c mo para este caso el consumo de GPP decae hasta un promedio de consumo de 24 y si se eval a la tasa de cuadros por segundo sta aumenta a un valor promedio de 23 5 fps que significa una mejora de un 20 5 con respecto al caso 2 y una mejora de un 74 5 con respecto al caso 1 en este rubro En la figura 6 5 se puede observar para el caso 1 con respecto a la tasa de cuadros por segundo que al inicio de sta gr fica existe un pico m ximo que luego se estabiliza Este pico se debe al preprocesamiento de la aplicaci n que permite tener datos de video listos representados por b feres disponibles para ser desplegados una vez que inicia la aplicaci n De esta forma la tasa de cuadros por segundo desplegada alcanza un m ximo para luego 86 estabilizarse aproximadamente despu s de 6 segundos ya cuando otros servicios recargan al
104. n comparaciones entre l neas de procesos que utilizan elementos propios de GStreamer y los elementos creados en este proyecto En la tabla 6 7 se encuentran las contra partes de los elementos que son de GStreamer y se ejecutan en el GPP y los elementos creados espec ficamente para el procesamiento en el DSP El elemento para archivos de h264 o mpeg4 de GStreamer que ejecuta el algoritmo para decodificaci n en el DSP se denomina TIViddec2 Este elemento forma parte de un paquete de Texas Instruments El elemento que se cre en este proyecto se denomina dt_colorspace Tabla 6 7 Elementos de GStreamer utilizados para las pruebas de rendimiento Elementos GPP Elementos DSP Funci n filesrc Abrir una fuente o archivo ffmpegcolorspace dt_colorspace Conversi n de espacio de colores 1420 a RGB565 ffdec_h264 TIViddec2 Decodificar archivos formato h264 ffdec_mpeg4 TIViddec2 Decodificador de archivos de mpeg4 qtdemux demultiplexor de sefiales de archivos en containers como mp4 fbdevsink Elemento que accesa el controlador de video 79 A continuaci n se presenta una serie de pruebas que permiten observar el comportamiento con respecto al consumo de GPP y cuadros por segundo desplegadas en una secuencia de video para diferentes escenarios de ejecuci n Para todos los casos se generan gr ficas que representan el consumo del GPP durante la ejecuci n de la aplicaci n y otra que representa el n mero de im
105. n el arreglo de b fers 65 En la primera etapa los par metros son recibidos por el algoritmo provenientes del elemento de GStreamer donde son definidos por el usuario En la transformaci n de las muestras los datos son cambiados del formato nt16 a un formato punto fijo 024 8 Esta tranformaci n se da con el fin de no perder precisi n en los c lculos y evitar desbordamientos de los datos Una vez que los c lculos se completan el dato de salida debe ser convertido nuevamente a un formato de nf16 para que pueda ser retornado a la aplicaci n El lazo se repite hasta que la cantidad de b feres retorne nulo o bien se termine la ejecuci n del archivo de audio Inicio Algo Nuevo B fer f Los b feres Nuevos Par metros se procesan En 32 bits con formato Se calcula n mero de Muestras para el b fer i Corrimientos en actual i Los bloques de informaci n i Q24 8 Para 0 hasta i lt de muestras i a oe temporallil buferli Pasa buf a bufo temporal i gananciali Pasa bufO a bufl Pasa bufl a buf2 J Pasa salida a 16 bits Guarda valor en b fer de salida Fin de los b feres No Si Fin de la ejecuci n Si n mero De muestras Figura 4 10 Diagrama de flujo del algoritmo de audio 4 2 5 Integraci n del m dulo de audio con el marco de Universal Para poder utilizar el m dulo implementado en el DSP se debe
106. ncia dominante del espectro percibido o Croma o saturaci n relacionado con la pureza de la frecuencia dominante En el despliegue de im genes o videos digitales se utiliza el concepto de espacios de color que son modelos matem ticos abstractos mediante los que se identifica el color a trav s de tuplas de n meros por lo general 3 4 por ejemplo el color azul se puede representar por la tupla 0 0 255 en el espacio RGB o por 240 100 100 en el espacio HSI Una imagen monocrom tica puede ser representada usando solamente una dimensi n de color Esta dimensi n indica el brillo o la luminancia de cada muestra que lo que describe es escala de grises Una muestra con solo esta dimensi n es representada por n bits siendo 0 el valor de negro y 2 1 el valor del blanco Con solo tener la componente de luminancia en una imagen es posible que el sistema visual humano reconozca las figuras presentes ya que ste es m s sensible a la luminancia que al color La luminancia es generalmente representada en 8 bits pero para aplicaciones especiales Rayos X se pueden utilizar 12 bits A continuaci n se explica los espacios de color RGB y Y C C que conciernen a este proyecto 2 4 3 Espacio RGB El espacio RGB es un m delo de color basado en la s ntesis aditiva con el que es posible representar un color mediante la adici n de los tres colores de luz primarios rojo verde y azul El modelo de color RGB no define por s mismo lo que
107. ndimiento con respecto a la utilizaci n de GPP y el despliegue de cuadros por segundo para estos casos se puede observar en la figuras 6 9 y 6 10 respectivamente y la informaci n detallada con respecto al flujo de datos de GStreamer utilizados se pueden observar en los ap ndices A 3 2 6 y A 3 2 7 Su comportamiento en cuanto a la mejora de rendimientos es similar a los casos 4 y 5 donde el rendimiento de GPP y los cuadros por segundo aumentan cuando se utilizan los algoritmos de DSP 89 6 3 Resumen Una vez implementado el marco de trabajo propuesto para la creaci n de m dulos de DSP con el est ndar de iUniversal junto a las herramientas que brinda Texas Instruments y las herramientas de trabajo integradas en el SDK para la creaci n ejecuci n y manipulaci n dentro de la arquitectura OMAP L138 para determinar el incremento en la puesta en marcha de un m dulo de stos se evaluaron tres casos de estudio El primero consisti en la realizaci n misma del SDK que parte de ninguna integraci n de herramientas y poca experiencia de los ingenieros El proceso de creaci n del m dulo tom de 5 a 6 meses El segundo caso consiste en la puesta en marcha de un m dulo ya usando el SDK por parte de dos estudiantes del ITCR que requirieron de 2 a 3 meses para la implentaci n de un algoritmo filtro FIR en el DSP de esta arquitectura En el tercer caso se evalu un proyecto de la empresa Ridgerun el cual constaba de la creaci
108. ner G se puede extraer de la representaci n Y C Cp restando C y Cp a Y Las constantes se definen de acuerdo al est ndar que se quiera tener Las constantes k1 k2 k3 y k4 se encuentran relacionadas con las constantes de 2 2 2 4 y 2 3 2 5 Audio Digital El sonido es una onda mec nica longitudinal que se propaga a trav s de un medio el stico Fisicamente el sonido esta conformado por oscilaciones de la presi n de aire que son capturadas y percibidas en el cerebro Para que dichas oscilaciones sean audibles por un ser humano stas deben estar aproximadamente entre los 20Hz y los 20kHz El audio digital es la codificaci n de una se al el ctrica que representa una onda sonora y se obtiene a partir de dos procesos el muestreo y la cuantificaci n digital de la se al el ctrica 49 ENTRADA AUDIO AUDIO SALIDA AUDIO DIGITALIZACI N fs 1 T PROCESADO Figura 2 30 Digitalizaci n y procesamiento de una se al Tomado de 49 42 Actualmente existen dispositivos que permiten almacenar procesar y reproducir sonidos Se muestra en la figura 2 30 el proceso de digitalizacion que sufre una se al anal gica as como el proceso al cual debe someterse hasta que es reproducido Existen dos factores que determinan la calidad de una grabacion digital la frecuencia y el formato de la muestra 2 5 1 Frecuencia de muestreo Dispositivo De muestreo Se al de entrada Se al de salida Figura 2 31 Muestre
109. nk y los algoritmos m dulos basados en XDAIS El Codec Server funciona como una interfaz de configuraci n que se encarga de crear un servidor utilizado para a adir los algoritmos dentro del DSP y adem s manejar las respectivas referencias de los algoritmos en tiempo de ejecuci n 2 3 7 DMAI DMAI es una capa de software que se encuentra encima del sistema operativo Linux o DSP BIOS y de Codec Engine como una forma de asistir aplicaciones portables dentro del marco de Codec Engine y la tecnolog a DaVinci Esta capa se basa en m dulos que usando una API con una abstracci n de b fer no solo enmascara datos de video audio voz sino que tambi n poseen informaci n que describen al b fer tama o tipo direcciones caracter sticas utilizado por CodecEngine para poder realizar el manejo de datos entre el GPP y el DSP En la figura 2 21 se muestra el nivel 33 que ocupa la capa de software de DMAI Puede observarse que la aplicaci n puede escoger cu ndo usar DMAI el sistema operativo o Codec Engine GNU Linux o DSP BIOS Figura 2 21 Bloque del Diagrama de DMAI 2 3 8 Herramientas de Generaci n de C digo CodeGen Tools El desarrollo de la industria DSP ha llevado a TI a crear un m delo de validaci n para compilar c digo C en una estaci n de trabajo y luego portar los ejecutables a una tarjeta de desarollo compatible Este modelo es muy similar al compilador de la cadena de herramientas analizada en la s
110. o de una se al anal gica Tomado de 17 La conversi n anal gica digital conversi n A D consiste en realizar de forma peri dica medidas de la amplitud tensi n de una se al en un peri do de tiempo definido en la figura 2 31 se muestra un proceso de muestreo de una se al anal gica a una frecuencia de muestreo fs 1171 Seg n el criterio de Nyquist cuando una se al es muestreada la frecuencia de muestreo debe de ser al menos dos veces la el ancho de banda de la se al original 17 En la realizaci n de este proyecto se desean digitalizar se ales de audio dentro del rango audible es decir de 20 Hz a 20 kHz Bastar a con hacer uso de una frecuencia de muestreo equivalente a 40000 Hz para obtener una respuesta valida de acuerdo al teorema de Nyquist Sin embargo en aplicaciones de audio se utiliza una frecuencia de 44100 Hz 17 Una frecuencia de muestreo con un margen de 4100 Hz permite compensar las p rdidas por la pendiente finita entre la banda de paso y la banda supresora que tienen los filtros utilizados anti aliasing durante la conversi n anal gica digital 43 2 5 2 Formato de la muestra El formato de la muestra define el tama o de cada muestra en bits width as como como la precisi n de la misma depth El formato de la muestra determina la precisi n en funci n de la amplitud de las muestras de audio El tama o de las muestras necesario en un proceso de cuantificaci n digital se determina a partir
111. ocused on digital audio processing and high quality graphics processing among other functions These embedded systems have grown in the worldwide market for electronic devices thanks to its wide range of application It is for this reason that electronics manufacturers like Texas Instruments TI have been devoted to the task of developing devices intended specifically to digital signal processing DSP RidgeRun the company where the project described in this thesis has been developed provides software solutions for various platforms that integrate system on Chip SoC families DaVinci and OMAP designed and produced by Texas Instruments and is interested in the development of software tools based on DSP technology With the aim of creating a framework reference based on the existing software tools for the construction of DSP applications the micro architecture OMAP L138 specifically the Zoom Evm card has been chosen as a development platform Before this project a standard framework reference to build multimedia applications in the micro architecture of the System on Chip SoC OMAP L138 capable to exploit the features of digital signal processing DSP available for audio and video through algorithms specially designed for these devices was not available The toolkit implemented is based on open source components provided by the GNU Linux community and adapted by Texas Instruments to OMAP technology The elements are unified in a
112. odecEngine Tomado de 36 31 Marco de trabajo de CodecEngine en una arquitectura dual Tomado de 36 32 Bloque del Diagrama de DMAI cc c lt 9 34 Imagen de una escena 3 D en una imagen de video 35 Muestreo Espacial occiso dire 35 Dominios espacio temporal de video digital Tomado de 10 36 F tmat RGB36J cocos ros ORR eK ee BRS A 38 Submuestreo de crominancia e 40 IV 22d 2 28 2 29 2 30 Zl Boks Bias 2 34 2 35 2 30 foals 3 1 3 2 J 4 1 4 2 4 3 4 4 4 5 4 6 4 7 4 8 4 9 4 10 4 11 4 12 Sl I2 3 3 6 1 6 2 6 3 6 4 6 5 6 6 Muestreos de formatos YCbCr Tomado de 5 YC C empaguetado AR kg eb ey Dee ew ewe eee Gwe SE Estructura de un b fer del formato 1420 Digitalizaci n y procesamiento de una se al Tomado de 49 Muestreo de una se al anal gica Tomado de 17 Tama o y precisi n de la muestra de audio Manejo del flujo de datos de audio ocio oo oe Implementaci n de un filtro FIR Tomado de 12 Estructura de un filtro comb FIR tipo Feedforward Flujo de datos reproducci n de audio 2 2 ee ee ee Secuencia b sica de reproducci n con GStreamer Diagrama generalizado de construcci n del SDK Esquema generalizado de la soluci n o o
113. om developer wiki index php SDK_F A Q Accessed May 15 2010 25 RR I Community RidgeRun embedded solutions home page February 2010 Online Available http www ridgerun com Accessed May 25 2010 26 RR I Community Software developer kit user s guide February 2006 27 J C Russ Image Processing Handbook Fourth Edition CRC Press Inc 2002 28 Sourcery g lite 2009q1 203 for ARM GNU Linux 1997 Online Avail able http www codesourcery com sgpp lite arm portal release858 Accessed January 10 2010 Sastar 29 Texas Instruments Davinci psp software development kit sdk 03 20 updates May 2010 v03 20 00 08 Online Available http software dl ti com dsps dsps_public_sw sdo_tii psp LinuxPSP DaVinci_03_20 03_20_00_08 index_FDS html Accessed May 22 2010 30 Texas Instruments Ti gstreamer dmai plug in for davinci and omap processors gstreamer ti software folder November 2009 Online Available http focus ti com docs toolsw folders print gstreamer html Accessed December 2 2010 31 Texas Instruments How to Create Delay based Audio Effects on the TMS320C672x DSP Literature Number SPRAAAS November 2005 95 32 Texas Instruments Making DSP Algorithms Compliant with the eX pressDSP Litera ture Number SPRA579A January 2000 33 Texas Instruments 7MS320C6000 DSP BIOS User s Guide Literature Number SPRU303B March
114. onversi n de espacio de colores A trav s del elemento de decodificaci n de video de GStreamer se pueden obtener b feres de video interpretables como muestra la figura 4 2 Cada b fer representa una imagen muestra temporal de video con un tama o de W x H p xeles y con un formato 1420 Ancho w Altura h Figura 4 2 Formato de pixeles para b feres de video de GStreamer El diagrama de la figura 4 3 muestra la conversi n a realizar para pasar un b fer de 1420 a RGBS565 El algoritmo que convierte estos espacios debe ejecutar la siguiente ecuaci n R CO 0 C3 y 16 G co c c4 Cb 128 4 1 B co co 0 Cr 128 58 T Bufer de 1420 Bufer de RG565 Altura H Algoritmo Bytes 2 H W H 4 Bytes H 4 W 4 5 bits 6 bits 5 bits H 4 X Representa un pixel de RGB565 aul Bytes H 4 W 4 O Representa 1 byte de datos a as a Figura 4 3 Diagrama de conversion de formato YUV a RGB565 La ecuaci n 4 1 es utilizada para resolver la conversi n de formatos y est implementada dentro de la biblioteca imglib 37 v ase licencia en el ap ndice A 4 que se encuentra en c digo C precompilada para DSP y desarrollada por Texas Instruments La funci n IMG_ycbcr422p_rgb565 de dicha biblioteca permite convertir 2 pixeles de YCbCr 4 2 2 a 2 pixeles RGB565 El formato 1420 es de tipo YCbCr 4 2 0 la nica diferencia entre YCbCr 4 2 2 y YCbCr 4 2
115. operating environment small foot print latest Linux Kernel and drivers for your hardware platform We also sell pre packaged SDK s to help your team build network based media based or wireless solutions Need help with getting your software done RidgeRun provides excellent software engineering services at near shore competitive rates Informacion de la Empresa Nombre RidgeRun Embedded Solutions Zona Cartago La Union San Juan Direcci n exacta Del Hipermas de Curridabat 400 mts este carretera a Tres Rios Centro Comercial PLaza Magnolia Tel fono 22 71 14 87 Fax Apartado Actividad Principal Dise o y desarrollo de sistemas embebidos Asesor en la empresa Nombre Diego Dompe Gamboa Puesto que ocupa Embedded Software Team Lead Departamento SDK Team Profesi n Ing en software Grado acad mico Bachiller Tel fono 88 66 54 45 Email diego dompe Oridgerun com 106 A 3 Casos de estudio M dulo de CMEM utilizado para las pruebas de rendimiento de Audio y Video modprobe cmemk phys_start 0xC2200000 phys_end 0xC3200000 pools 1x5250000 12x 806400 10x153600 A 3 1 Flujo de datos de Gstreamer de audio para medir consumo de CPU A 3 1 1 Caso 1 de audio Decodificador faad ARM Efecto audioecho ARM Formato audio acc Contenedor de audio z Flujo de datos de Gstreamer utilizado gst launch filesrc location davincieffect aac faad audioconvert audioecho d
116. ormaci n en sonido audible que puede ser escuchado por parlantes o aud fonos 49 sumidero sumidero Fuente Fuente Archivo fuente Decodificador Hardware Audio Video Audio Video Controlador Audio Controlador Video Figura 2 37 Secuencia b sica de reproducci n con GStreamer 50 3 Estructura del SDK para la Arquitectura OMAP L138 3 1 El SDK para la tarjeta OMAP L138 Zoom Evm La soluci n planteada es implementar un SDK con un esquema similar a los que la empresa maneja para otras plataformas Espec ficamente se enfoca en crear un marco de trabajo que se adapte al SDK e incorpore las herramientas necesarias para habilitar un m todo de creaci n de algoritmos DSP para que se construyan tomando como base la API de iUniversal Se propone un esquema de trabajo en el cual se integra un SDK b sico componente fundamental para el soporte de la tarjeta OMAP L138 ZoomEvm donde se incluyen los siguientes paquetes de software o El gestor de arranque o El sistema operativo embebido kernel de GNU Linux o El sistema de archivos o El sistema de instalaci n o Aplicaciones como alsamixer GStreamer Qt D Bus etc o DVSDK En la figura 3 1 se muestra la estructura de bloques de la soluci n planteada para el SDK A trav s de secuencias de comandos se construye un directorio de trabajo con componentes de software especializados Dichos componentes se encuentran almacenados en un repositorio de subversion y a trav
117. os AAC 78 6 7 Elementos de GStreamer utilizados para las pruebas de rendimiento 79 6 10 Tabla Resumen de consumo de recursos para los casos de video 1 2 3 80 6 8 Consumo de GPP para video oaaae 81 6 9 Cuadros por segundo para los casos de video 83 VII VIII Indice de abreviaturas API Application Programming Interface ALSA Advance Linux Sound Architecture ADC Analog to Digital Convertor CCS Code Composer Studio CE Codec Engine CS Codec Server CPU Central Processing Unit DAC Digital to Analog Convertor DMA Direct Memory Access DMAI Davinci Media Aplication Interface DVSDK Digital Video Software Development Kit DSP Digital Signal Processing GCC GNU Compiler Collection GPP General Porpuse Proccesor IPC Inter Processor Comunication JFF2 Journalling Flash File System version 2 RC Inter Integrate Circuit LAN Local Area Network LCD Liquid Crystal Display McASP Multichannel Audio Serial Port MMU Memory Management Unit NFS Network File Sytem OMAP Open Multimedia Application Platform IX OHCI Open Host Controller Interface OTG On The Go RPC Remote Procedure Call RTSC Real Time Software Components SDK Software Development Kit SDRAM Synchronous Dynamic Random Access memory SoC System On Chip TI Texas Instruments TICGT Texas Instruments Code Generation Tools UART Universal asynchronous receiver transmitter VISA Video Image Speech and Audio XDAIS eXpressDsp Algo
118. os datos o Enviar datos a una tarjeta de sonido u otro dispositivo Al colocar en una cadena distintos elementos se pueden realizar tareas espec ficas como reproducci n o captura multimedia GStreamer provee de una colecci n de elementos separados en paquetes seg n su funcionalidad soporte y estabilidad Los elementos pueden ser conectados siempre y cuando sean compatibles dependiendo de las caracter sticas que soporten A la negociaci n de caracter sticas entre elementos se le llama pads Estos son usados para definir los enlaces y el flujo de datos entre elementos de GStreamer 22 Los Pads pueden ser de entrada src pads o de salida sink pads El src pad se encarga de enlazar el archivo o la fuente de multimedia al flujo de datos mp3 m4a mp4 avi ogg Vorbis entre otros y el sink pad se encarga de enlazar el flujo de datos al hardware multimedia Se pueden definir los pipelines como contenedores para una colecci n de elementos Son una sub clase de la clase element por tanto se pueden manejar como tal Su utilidad est en por ejemplo cambiar el estado de todos los elementos de un flujo de datos cambiando solo el estado de la cadena contenedora 22 La estructura de la API de GStreamer tiene una organizaci n de bloques o elementos llamados plugins Dichos elementos estan separados en cuatro clases 48 gst plugins base Contiene el conjunto b sico de elementos soportados
119. ponentes compatibles para las diferentes plataformas que distribuyen El n cleo de GNU Linux utilizado proviene de una rama del kernel git DaVinci 13 y el gestor de arranque procede de una rama del bootloader de git U Boot 48 En la integraci n del SDK de la OMAP LI38 ZoomEvm se hizo uso del paquete de 52 software DaVinci_03_20 03_20_00_08 que se puede obtener en la p ginas oficiales de Texas Instruments 29 y contiene los componentes mencionados en la tabla 3 1 Espacio de Usuario Sistema de Archivos Archivos mp3 Archivos mp4 Archivos aac Archivos h264 Aplicaciones Qt Vala D Bus Gstd Bibliotecas GStreamer Extra ae Se Codec Engine API de VISA iUniversal API xDM iUniversal fs CODECSERVER W Codec X audio_effect colorspace_conversion Figura 3 2 Esquema generalizado de la soluci n Tabla 3 1 Componentes de la versi n 03 20 00 08 DaVinci PSP Componente Versi n Referencia Etiqueta DaVinci Linux Kernel 2 6 32 rc6 13 d9d2b372d8641f93 720da204a6a756e7 U Boot 2009 08 48 v2009 08 ToolChain ARM 2009q 1 203 28 GCC 4 3 3 53 DaVinci PSP provee una plataforma b sica de desarrollo sin ning n tipo de integraci n automatizada donde el usuario es el encargado de portar las im genes o el c digo fuente manualmente a la tarjeta de desarrollo En este proyecto para realizar la integraci n con la versi n del kern
120. r utilizado gst launch filesrc location prueba mp4 qtdemux TIViddec2 dt_colorspace fbdevsink 111 A 4 Licencia de la biblioteca Imglib Software License Agreement Important Read carefully If you do not agree with the following terms you may not use the software programs or associated documentation for any purpose This Software License Agreement or Agreement is a legal agreement between you either an individual or entity and Texas Instruments Incorporated TP The Licensed Materials subject to this Agreement include the downloadable software programs and documentation that accompany this Agreement and any on line or electronic documentation associated with the software programs Any applications included with the Licensed Materials are specifically designed and licensed for execution solely and exclusively on semiconductor devices manufactured by or for TI By installing copying or otherwise using the Licensed Materials you agree to abide by the terms of this Agreement This Agreement is displayed for you to read prior to downloading and using the Licensed Materials If you choose not to agree with these provisions do not download or install the Licensed Materials 1 Intellectual Property Title and Limited License Grant The Licensed Materials are protected by copyright laws international copyright treaties and trade secret laws as well as other intellectu
121. res definir sus propios protocolos en sus aplicaciones POOL Manejador de memoria compartida no compartida PROC_read PROC_write Lectura o escritura a la memoria del DSP estas preocupaciones API de enlace DSP BIOS Manejador de Procesador DSP BIOS GPP Capa d Enlace Controlador Controlador Otros PEE erativ De De Controladores S 0 S gt Enlace Enlace Figura 2 12 Diagrama de la arquitectura de DSP BIOS Link Tomado de 43 23 2 3 2 CMEM CMEM es una API o biblioteca que permite el manejo de uno o varios bloques de memoria f sica contigua Provee servicios para la conversi n de memoria virtual a memoria f sica as como una API para el manejo de memoria cach Esta memoria contigua es usada en dispositivos que no tienen MMU y no pueden leer direcciones virtuales como por ejemplo el DSP o aceleradores de hardware DMA los cuales comparten datos en memoria en tiempo de ejecuci n de alg n programa En este caso en espec fico se utiliza para manejar el flujo de datos entre el DSP y el procesador ARM DSPLink es uno de los paquetes que utiliza memoria para poder cumplir con el paso de mensajes entre procesadores que maneja el protocolo RPC sobre el que est basado A trav s del uso de la configuraci n de bloques de memoria CMEM evita a los usuarios la fragmentaci n de memoria asegurando bloques f sicos de memoria contigua disponibles a n despu s de que el
122. resoluci n tanto vertical como horizontal 10 Con respecto al almacenamiento de los datos los formatos de YC C se pueden clasificar en planares o empaquetados El formato empaquetado tiene muestras de Y Cp y C que se encuentran agrupadas en macropixels almacenados en una sola matriz y los formatos planares almacenan cada componente por separado como una matriz y la imagen final es una fusi n de los tres planos distintos Un formato empaquetado tipo 4 2 2 tiene la configuraci n mostrada en la figura 2 28 Macro pixel 2 Pixeles ee EE EEE Figura 2 28 YCpC empaquetado 4 2 2 El formato 7420 es un formato planar de la forma 4 2 0 En la figura 2 29 se muestra su configuraci n El cuadro completo representa un bufer de 7420 y cada subsecci n representa muestras de Y Cp C que tienen un tama o de byte cada una Para calcular el tama o en bytes de una imagen representada en este formato se utiliza tbytes 3 2xwxh 2 5 Donde h es la altura y w el ancho de la imagen en pixeles a desplegar Ys v6 Y12 v12 va Figura 2 29 Estructura de un b fer del formato 1420 41 2 4 5 Conversion de YCbCr a RGB La conversi n entre estos espacios implica el despeje de 2 2 2 3 2 4 y teniendo el concepto de que la suma de las tres crominancias es una constante se llega a una forma de obtener RGB a trav s de YC C R Y k C 2 6 G Y kCy k3C 2 7 B Y kC 2 8 Se puede observar que para obte
123. rithm Interoperability Standard xDM eXpressDSP Digital Media 1 Introduccion 1 1 Los Sistemas Embebidos La tecnologia electr nica est asociada a la utilizaci n de dispositivos y sistemas computa cionales tales como circuitos integrados microprocesadores y redes de comunicaci n entre otros Estos se orientan al manejo de informaci n y control de procesos que permiten incre mentar la productividad de las empresas la seguridad de los equipos y el ahorro energ tico entre otros con el fin de mejorar la calidad de vida 4 Un sistema empotrado es un dispositivo computacional producto de la combinaci n de elementos de software y hardware con el fin de realizar aplicaciones de prop sito espec fico Se pueden enfocar de una manera especializada para ejecutar tareas en tiempo real y adem s pueden ser configurados para minimizar su consumo de energ a dependiendo de la funci n para la cual son dise ados 9 Algunas aplicaciones en donde se utilizan sistemas empotrados son 6 o La televisi n digital o Autom viles o Medicina o Sistemas de control industrial o Redes o Telefon a El mercado de los sistemas embebidos involucra varias etapas desde el dise o hasta la fabricaci n y venta del producto Es dentro de la etapa del desarrollo de un sistema empotrado que interact an varias compa as encargadas cada una de tareas como la elaboraci n de los circuitos integrados dise o e implementaci n de sensores y tarjetas
124. ro de bytes por b fer Bm el n mero de bytes por muestra el n mero total de muestras por b fer Mg esta dado por 1 Mpg Bp x 2 9 Bm Si se condiciona al hecho que el audio utilizado es est reo 2 canales de audio y que cada muestra es representada con 2 bytes por muestra con precisi n del 100 del tama o de la muestra 2 bytes con un alineamiento entrelazado y una frecuencia de muestreo de 44100 Hz se puede describir el caso aplicando Mpg 2304 bytes x j 1152 muestras 1 2 bytes Por otro lado a partir de los par metros antes mencionados junto a fs la frecuencia de muestreo Bm el n mero de bytes por muestra y Bp el n mero de bytes por b fer se puede obtener el tiempo total por b fer tg 1 1 tp Bp X F x Bn 2 10 Aplicando 2 10 tg 2304 bytes x 37102 X zpr 0 02612 5 26 12 ms Sea nc el n mero de canales utilizados tg el tiempo total por b fer y Mg el n mero total de muestras por b fer se obtiene el retardo existente entre muestras tar con 45 1 ty t 2 11 At nex tmx yy Aplicando 2 11 1 2 26 12 s i P mene opus 2 5 4 Filtro FIR tipo peine comb filter 2 5 4 1 Filtro FIR Se ha seleccionado para ejemplificar un algoritmo de audio procesado en el DSP de la OMAP L138 la implementaci n de un filtro FIR tipo peine Comb filter Un filtro digital es un sistema que dependiendo de sus par metros realiza un proceso de discriminaci n de una se
125. rolador de Despliegue de Video LCD Tomado de 38 Estos controladores son responsables de administrar apropiadamente el despliegue de datos El procesador ARM est acompa ado de un dispositivo de DMA Acceso Directo a Memoria que proporciona un flujo constante de datos de la memoria a la pantalla LCD 9 externa a trav s de los controladores Tambi n existe acceso del CPU para leer y escribir los registros Con respecto al dispositivo de audio multi canal serial McASP ste funciona como un puerto de audio de prop sito general Dicho dispositivo est optimizado para las necesidades de las aplicaciones de audio El McASP es til para formatos de transmisi n como multiplexaci n por divisi n de tiempo TDM el protocolo Inter IC Sound 2 125 y la interfaz de transmisi n digital intercomponente de audio DIT El McASP transmite y recibe secciones de datos que pueden operar en forma sincronizada o de forma independiente con relojes separados por medio de diferentes modos de transmisi n con diferentes formatos para el flujo de stos En la figura 2 3 se muestra un diagrama completo de la estructura que compone el McASP integrado en la arquitecura OMAP L138 Audio i FIFO 1 ms 1 os Transmit 32 i t o 32 Receive 32 dl Er 1 2 format unit 4f e 1 T a E 172 go la Control 7 a E a
126. s de comandos especializados licenciados por RidgeRun llamados RRTools se descarga cada uno de ellos El diagrama de la figura 3 2 modela la soluci n desarrollada a nivel de la arquitectura Se muestra la distribuci n de las capas de software sobre los dos procesadores de la tarjeta a trav s de la integraci n de un sistema operativo con el debido soporte para la arquitectura OMAP L138 51 SISTEMA DE ARCHIVOS Qt alsa utils Gstreamer tslib a etc Fa ko so x64p EA ra bin gt Jusr bin sbin i A sate cs SS nae Controladores lt a i Audio encia de N a fheme Video l comandos uar SPI Construye j home A i 12C R Sistema de archivos i export al lib gt usr lib tftpboot Pi I 1 i i k KERNEL GNU Linux Secuencia de N comandos l Construye Nuevo directorio de trabajo y Gestor de arranque SDK OMAP L138 Algoritmos Multimedia DSP HA TT N N Secuencia Comandos l Construye DVSDK A Cadena de haerramientas CMEM Codec Engine DVSDK Figura 3 1 Diagrama generalizado de construcci n del SDK Un kit de desarrollo est dise ado para simplificar la implementaci n de aplicaciones de software Gracias a la divisi n de software DaVinci PSP de Texas Instruments existen kits con im genes precompiladas y c digo fuente del Kernel de GNU Linux as como del gestor de arranque entre otros com
127. s paquetes deben ser configurados para el Sistema en Chip de TI que se desea utilizar A continuaci n se presenta una descripci n de las herramientas y la importancia de integrar y adaptar cada una de ellas con el SoC utilizado para el proyecto 2 3 1 DSP BIOS Este paquete incluye el n cleo de un sistema operativo en tiempo real escalable para el DSP Dise ado espec ficamente por Texas Instruments para la familia de procesadores TMS320 serie de plataformas con DSP habilitados Presenta la posibilidad de ser integrado con la arquitectura por medio del entorno de desarrollo Code Composer Studio 43 Adem s ste provee una serie de servicios dedicados al desarrollo de aplicaciones que no comprometen los plazos de tiempo de ejecuci n de procesos para un sistema en tiempo real como por ejemplo multi hilos preemptivos abstracci n de hardware y an lisis de se ales en tiempo real No requiere derechos de licencia en tiempo de ejecuci n e incluye soporte profesional de parte de TI 43 Los servicios que provee este n cleo pueden ser invocados por aplicaciones que utilizan funciones en lenguaje C o en lenguaje ensamblador y est dise ado para implementar la comunicaci n entre el sistema anfitri n host y el objetivo target 43 como se muestra en la figura 2 10 Algunos de los servicios de este n cleo se listan en la tabla 2 2 Con este marco de trabajo en el lado del anfitri n host se construyen los programas que
128. s sistemas embebidos existen distintos tipos de sistemas de archivos utilizados con frecuencia dentro de los cuales destacan el NFS el JFF2 y el EXT2 A continuaci n se describe el NFS NES Network File System Es un sistema de archivos compartido sobre Redes de rea Local LAN Este tipo de sistema de archivos posibilita que distintos sistemas conectados a una misma red accedan a archivos remotos como si se encontraran localmente Dentro de sus principales ventajas destaca que no es necesario un puerto RS232 para accederlo desde una computadora de escritorio Existen diversos tipos de sistemas de archivos NFS tales como NFSv2 NFSv3 NFSv4 y WebNES 2 2 6 DVSDK El paquete de desarrollo de software de video digital DVSDK forma parte del contenido de las herramientas licenciadas por Texas Instruments que se integran en un SDK de RidgeRun Este paquete contiene c digo basado en interfaces de programaci n de aplicaciones API para las tecnolog as DaVinci y OMAP Estas interfaces incluyen el soporte para diferentes plataformas de hardware y permiten crear aplicaciones multimedia que pueden ser ejecutadas en un sistema embebido compatible con las tecnolog as mencionadas 17 Las herramientas incluyen paquetes de compilaci n depuraci n as como notas t cnicas y documentaci n de apoyo El c digo fuente es de propiedad libre por lo que puede ser modificado a la necesidad del usuario El DVSDK permite integrar aplicaciones tanto p
129. software development kit in charge of automating the construction and compilation of software components which include a boot loader the kernel of GNU Linux and a file system and the mechanisms such as software installation on a development board Keywords DSP Algorithms System on Chip OMAP L138 Embedded System Audio Video Open Source Software GNU Linux Dedicatoria Dedico este trabajo a mi familia por su paciencia y amor incondicional durante esta etapa en mi vida gracias por preocuparse y apoyarme siempre en los momentos m s dif ciles En especial a mi padre y a mi madre mis dos motivaciones mis dos razones para nunca rendirme Gracias Esteban A Z iga M Our greatest weakness lies in giving up The most certain way to succeed is always to try just one more time Thomas A Edison Este proyecto culmina con una etapa m s de mi vida Deseo dedicar pero sobre todo agradecer el apoyo incondicional de mi familia su paciencia y el amor que siempre han brindado en mi vida para nunca rendirme y seguir mis sue os En especial a mi padre y a mi madre dos pilares que han sembrado en m actitudes de las cuales me siento orgulloso Su apoyo y amor nunca han faltado Gracias Jorge A Hidalgo Chaves Lo que sabemos es una gota de agua lo que ignoramos es el oc ano Sir Issac Newton Agradecidimiento Primeramente queremos dar gracias a Dios por acompa arnos en esta etapa de nuestras vidas y d
130. t Window Selection for the GenCodePkg Wizard 1 Choose the 3rd option I want to create an algorithm from scratch 99 2 Point to the xDAIS directory Point to the root of the compiler installation CGTOOLS 3 Click on next At the Second Screen File Help Create an XDM Algorithm and Codec Package Verify modify the algorithm and package information Specify a valid Output Repository and press Finish Please enter a valid Output Repository Module mycopEc Base Interface i Vendor RIDGERUN Package Name ti sdo codecs mycodec Interface IMYCODEC Target ti targets c64P Set Output Rep S DEVDIR proprietary dvsdk_1_00_00 0MAP_L138_arm 1_00_00_08 cs1omapl138_1_00_0 7 Generate CCSv4 project lt Back Next gt Finish Cancel Figura A 2 xDM and Codec Package Wizard a Fill the spaces according with the name of your new package Keep the capital letters on the names as it s shown on the table placed below Space Examples Module MYCODEC Vendor RIDGERUN Interface IMYCODEC Package name ti sdo codecs mycodec Base Interface IUNIVERSAL Target ti targets C64P Output Dir DVSDK csomapl138 packages a Click Finish to generate the starter files Create the CE Consumable Codec Package After creating the xDM algorithm and Codec Package Structure made an extra package called ti sdo codecs codecs ce where is the codec eg mycodec that declares stati
131. the package build process are not included in a release package unless you explicitly add them using if you desire to add new sources modify the code eg var SRCS mycodec c algorithm c Where mycodec is the UNIVERSAL interface and the algorihtm c is the where you DSP algo will be located For example by adding the following line to package bld all files in the src and include directories and the file readme txt are released 102 Pkg otherFiles src the whole src subdirectory include the whole include subdirectory gt readme txt In order to include a library legacy lib which was built outside the package using a legacy build system you can copy the library into the package directory and include it in Pkg otherFiles in the package bld file Pkg otherFiles legacy lib readme txt package xs Package properties that can vary across platforms and configurations The getLibs function returns the library name that the package exports The XDC build system calls this special function whenever an XDC application uses a package to link against the package library matching the program s configuration The exported library does not have to be built using the housing package s build script It can be built with any legacy build system and placed into the package The string 64P is a code for DSP target binaries ARM target binaries have a different code MVArm9 I
132. tmos que se ejecutan localmente en el GPP o remotamente en el DSP o Plataformas que pueden ser conformadas por un GPP DSP un DSP solamente o un GPP o Todos los dispositivos GPP y DSP soportados utilizan la misma API o Todos los sistemas operativos soportados utilizan la misma API Desde la perspectiva del usuario basada en la construcci n de una aplicaci n Codec Engine es un conjunto de bibliotecas que se utilizan para instanciar m dulos de algoritmos con el est ndar de XDAIS por ende tambi n es capaz de instanciar m dulos de algoritmos 30 xDM 34 Esto a trav s de una API para el manejo de los est ndares VISA y Universal 36 Codec Engine es un paquete dise ado para resolver inc gnitas asociadas al desarrollo de aplicaciones en un Sistema en Chip dado dentro de las cuales destacan o El manejo de memoria para DSP o Comunicaci n inter procesadores o El control de tareas que se ejecutan en tiempo real o La depuraci n en procesadores heterog neos o Eficiencia en el desarrollo de algoritmos Desde el punto de vista del desarrollador Codec Engine especifica cu l algoritmo debe ejecutarse y en que momento agrega nuevos algoritmos usando los correctos est ndares y t cnicas y provee una API independiente de la plataforma o del m dulo algoritmo que se quiera crear Aplicaci n Del Usuario jecuci n del Codec Engine 1 I API del cleo del ENGINE API de algoritmos VISA A A nal
133. to AAC se puede observar en la figura 6 2 y la informaci n detallada con respecto al flujo de datos de GStreamer utilizados se pueden observar en los ap ndices A 3 1 1 A 3 1 2 A 3 1 3 y A 3 1 4 Cuando se ejecuta un solo elemento DSP en el flujo de GStreamer la mejora en el consumo de GPP se encuentra entre 6 73 y 13 26 El elemento de decodificaci n de audio presenta un mejor rendimiento en un flujo de reproducci n de GStreamer ya que tiene un porcentaje de consumo de GPP menor equivalente a 86 31 Dicho resultado se puede observar en la tabla comparativa 6 5 Para los escenarios de reproducci n de audio en formato AAC destaca una mejora del 81 12 cuando el elemento de decodificaci n y el elemento que describe el efecto de audio se ejecutan en el DSP dichos resultados se muestran en la tabla 6 5 Tabla 6 6 Tabla Resumen de consumo de GPP para archivos AAC Caso Consumo de GPP Mejora Elementos DSP caso 5 77 84 0 caso 6 44 87 42 36 1 El rendimiento con respecto a la utilizaci n de GPP para los casos de reproducci n de archivos en formato MP3 se puede observar en la figura 6 2 y la informaci n detallada con respecto al flujo de datos de GStreamer utilizados se pueden observar en los ap ndices A 3 1 5 y A 3 1 6 Los escenarios de reproducci n de audio en formato MP3 se limitan a hacer uso del efecto de audio ejecutado en el DSP ya que no se dispone de un decodificador de
134. tras arquitecturas soportadas se pueden mencionar o PowerPC o SPARC o SuperH o x86 2 2 4 2 Herramientas binarias GNU BinUtils Son una colecci n de herramientas de programaci n para la manipulaci n de c digo objeto Dentro de estas utilidades existen dos herrramientas 15 1 as Transforma c digo ensamblador generado por gcc en un binario 2 Id El enlazador que genera el c digo objeto y lo interpreta en una biblioteca o en un archivo ejecutable 2 2 4 3 Depurador GNU El depurador tambi n es parte de la cadena de herramientas como un depurador eruzado 1 5 Se utiliza para depurar y optimizar aplicaciones que se ejecutan en el equipo de destino 16 sistema embebido En el mundo de de los sistemas embebidos un depurador muy usado es GDB 2 2 5 Sistema de archivos El sistema de archivos es una estructura de almacenamiento de la informaci n como una colecci n de archivos Formalmente un sistema de archivos es un conjunto de tipos de datos abstractos que son implementados para el almacenamiento la organizaci n jer rquica la manipulaci n el acceso el direccionamiento y la recuperaci n de datos 24 Los sistemas de archivos almacenan datos acerca de los mismos archivos conocidos como meta informaci n metainfo Dentro de los datos que se almacenan se pueden citar o Nombre del archivo o Fechas de creaci n o ltima modificaci n o Tama o del archivo o Permisos del archivo En lo
135. uestreo de referencia horizontal para la componente de luminancia Y Generalmente el valor es 4 lo que representa es que por cada pixel existe una muestra de luminancia o a N mero de muestras relativas horizontales de crominancia Cr Cb con respecto a la luminancia Si es 4 representa que se va a tener la misma cantidad de muestras horizontales de Cb y Cr con respecto a Y Un 2 significa que se va a tener la mitad de muestras horizontales con respecto a Y o b Si este tercer d gito es igual al segundo no hay un submuestreo vertical Si el valor es cero hay un submuestreo vertical de 2 1 tanto de la muestra Cb como de Cr o d Si aparece este d gito debe ser id ntico al primero indicando la presencia de una cuarta se al que contiene informaci n de transparencia canal alfa con muestreo id ntico a la luminancia 39 Muestreo Horizontal de referencia para la Luminancia Factor Horizontal de Cb y Cr relativo al primer digito Igual que el segundo digito solo que referido al Factor Vertical Si el valor es cero indica que Cb y Cr son submuestreados 2 1 verticalmente 4 2 2 4 Si esta presente indica la componente alfa Figura 2 26 Submuestreo de crominancia En la figura 2 27 se observan diferentes configuraciones de los formatos anteriormente mencionados a Imagen y pixeles de crominancia b notaci n del patr n de alineamiento centrado submuestreo H resoluci n de crominancia horizontal V r
136. ulo de algoritmo xDM Esperar hasta que Definir los par metros del m dulo haya nuevo b fer Reservar b fer Memoria f sica Pasar el b fer al siguiente elemento Pasar de estado PLAY a NULL Fin de la aplicaci n Figura 5 2 Diagrama de flujo de la aplicaci n de gstreamer 70 En la figura 5 2 se ilustran las etapas que deben de cumplirse en la ejecuci n de una aplicaci n de GStreamer Adem s se mencionan las funciones que conforman la ejecuci n de un m dulo con algoritmos DSP 5 2 Flujo de datos de GStreamer utilizado para el m dulo de audio Decodificador Efecto 5 Arenivo de audio H Acoplador gt de audio gt Acoplador gt salda de DSP ARM DSP ARM a b c d e f Figura 5 3 Secuencia de elementos de GStreamer utilizado para el algoritmo de audio Como se observa en la figura 5 3 el flujo de datos de GStreamer contiene seis elementos o El elemento a representa el archivo fuente este puede tener dos tipos de formatos mp3 O aac o El decodificador de audio mostrado en el elemento b puede variar entre los decodificadores compatibles se encuentran mad Decodificador de mp3 ejecutado en el procesador ARM es parte del paquete gst plugins good faad Decodificador de aac ejecutado en el procesador ARM es parte del paquete gst plugins bad TlAuddecl Decodificador de aac ejecutado en el proces
137. zados en la secci n 6 3demuestran que el kit de desarrollo de software desarrollado permite pasar de 6 a 2 meses el tiempo de desarrollo de un m dulo DSP compatible con la aquitectura OMAP L138 para personas ajenas al SDK y para un ingeniero de la empresa el tiempo de desarrollo y puesta en marcha se disminuy de 6 meses a 3 semanas La integraci n de herramientas de software permiti a la empresa RidgeRun obtener la primera versi n estable de un kit de desarrollo de software empotrado para la arquitectura OMAP L138 que incluye soporte para la implementaci n de m dulos DSP con una estrutura basada en iUniversal La integraci n del paquete DVSDK en el kit de desarrollo de software pone a disposici n una serie de herramientas que permiten medir el consumo de recursos de los procesadores GPP y DSP cuando se ejecutan aplicaciones que utilizan m dulos de algoritmos para DSP La implementaci n de un algoritmo de conversi n de espacios de color en una aplicaci n de GStreamer demuestra la capacidad del SDK para integrar aplicaciones que involucran procesamiento de video en el sistema embebido OMAP L138 ZoomEvm a trav s del marco de trabajo de Codec Engine y iUniversal Con esta implementaci n se logr Mejorar la tasa de cuadros por segundo hasta en un 70 Mejorar el consumo de CPU hasta un 76 Aumentar hasta dos veces la cantidad de datos procesados en un video digital Un consumo no mayor al 45 del DSP La implementa
Download Pdf Manuals
Related Search
Related Contents
NOTA - Brother Home Decorators Collection 3323310110 Instructions / Assembly 一一一一一一一一 一 一 一一一一一一一 一 一 一 一 一 - QTC Low and high voltage electric motors Motores Eléctricos de Evaporators / Air Coolers IOM_SPA Pana$0"曜 取扱説明書 Samsung DV80F5E5HGW/EO Instrukcja obsługi Refrigerator Kühlschrank Réfrigérateur Koelkast Frigorífico Optoma ES522 User Guide Manual Copyright © All rights reserved.
Failed to retrieve file