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
Philips AZ-2050 User's Manual  Sandberg Genderchanger 25F-25F  Supermicro X7SBE motherboard  取扱説明書  1 ISTRUZIONI ITALIANO CAPPA EVOLUTION CUPPONE  誰でもヒーポンチラシ    Copyright © All rights reserved. 
   Failed to retrieve file