domingo, 22 de febrero de 2009

SISTEMA OPERATIVO ANDROID de GOOGLE

El gigante Google hasta en la “sopa”.


Todo el mundo que navega por internet conoce la palabra Google. En el certamen 3GSM celebrado en Barcelona el presente año se ha convertido en realidad la presentación de Android. Para los que no estamos muy puestos en el tema, y a modo de introducción, contestaremos rápidamente a unas preguntas básicas:


¿Qué es Android? Android es una plataforma de software y un sistema operativo para dispositivos móviles basado en el kernel de Linux. Desarrollado por Google y la "Open Handset Alliance." Permite escribir código en lenguaje Java con algunas librerías desarrolladas por Google y destinadas para controlar el móvil.


¿Cómo se distribuirá este 'Sistema Operativo'? Será 'free' con el sentido de 'gratis'. Su código fuente está abierto para todos aquellos interesados (Ver apartado curiosidades).


Texas Instruments y Google: dos gigantes Estadounidenses.


La compañía estadounidense Texas Instruments (TI) ha presentado el primer dispositivo basado en la plataforma Android de Google sobre 2 “teléfonos” diferentes.

1.

Uno está basado en su OMAP850, un chip único que contiene un procesador de aplicaciones para Android y un procesador de banda base para controlar el interfaz radio del teléfono.

2.

El otro terminal contiene un procesador de aplicaciones multimedia OMAP3430 de Texas Instruments, capaz de decodificar señales de televisión de alta definición a una resolución de 720 p. que requiere un procesador de banda base independiente y está diseñado para móviles multimedia de alta calidad.


Conectando con el blog de Francisco que nos habla acerca del la familia OMAP de TI, se refiere a esta como una plataforma que “ofrece una variedad de aplicaciones de alto rendimiento con procesadores rápidos, energía portátil y una sólida red de apoyo con un catálogo que incluye software de fuente abierta”.


Veamos una imagen ofrecida por TI del procesador OMAP 3430:



Conclusiones


Si estaís realmente interesados por el tema, os recomiento visitar:


http://www.androidgoogle.net/


En primer lugar señalar que un fabricante mundialmente conocido de DSP como Texas Instruments ha sabido aprovechar la oportunidad y el “boom” internacional ofrecido por Android poniendo el nombre de sus DSP OMAP 859 y 3430 (e inevitablemente de la compañía) al lado de tan esperado software.


Por otra parte, en tiempos de crisis no resulta descabellado afirmar que el futuro está en el software “free”. En un contexto mundial donde las compañías están obsesionadas con recortar gastos y poder superar estos tiempos difíciles, resulta lógico pensar que paulatinamente irá decreciendo el número de dispositivos móviles que funcionan con Microsoft.


Concluyendo el post, tan solo apuntar que me parece muy inteligente la trayectoria de Google. Sacar al mercado un software libre no les hace ganar dinero directamente, pero la cosa cambia cuando está destinado a proporcionar un gran avance en el acceso a internet desde terminales móviles. Así pues, se verán aumentados sin duda alguna los ingresos del gigante Estadounidense Google en cuanto a publicidad.



ENLACES y CURIOSIDADES

- El móvil de google “dream”:

http://zonadigital.excite.es/noticias/3039/Google-presenta-su-movil-Dream

- Lógicamente, está disponible el código fuente del SO… si os atrevéis aquí está el enlace:

http://source.android.com/download

- Más información técnica de los DSP empleados por TI para Andorid en:

http://focus.ti.com/pr/docs/preldetail.tsp?sectionId=594&prelId=sc08019

- Demostración Android (videos)

http://www.youtube.com/watch?v=yOnV5lAvW4Y

http://www.youtube.com/watch?v=sOSk9TW7z-4

http://www.youtube.com/watch?v=inRMILwJa-U

La información ha sido extraída de:

www.ti.com

www.idg.es/

wikipedia

www.androidgoogle.net/

JUGAR CON IEEE 754

Buenas, ante todo comentar que publico este comentario también en mi blog dado que es cuestión de horas que Mamen se cambié el blog de la UA. Os paso un código en Matlab que convierte un número decimal a IEEE 754 (previa conversión decimal-hexadecimal-binario). Permite elegir entre precisión simple y doble. Así podremos hacernos mejor una idea.

Se compone de 2 funciones:

1º) Convierte el número de hexadecimal a binario

function x=h2b(y)
% Función que convierte de hexadecimal a binario
X = ['0000'; % 0
'0001'; % 1
'0010'; % 2
'0011'; % 3
'0100'; % 4
'0101'; % 5
'0110'; % 6
'0111'; % 7
'1000'; % 8
'1001'; % 9
'1010'; % a
'1011'; % b
'1100'; % c
'1101'; % d
'1110'; % e
'1111']; % f
x = X(sscanf(y,'%x')+1,:);
end

2º) Calcula el número IEEE 754

function x=dec_a_754(r,precision)
% Devuelve el número decimal de entrada r en formato IEE754
% La precisión puede ser 'simple' o 'doble'

% En primer lugar determinamos la precisión
if (strcmp(precision,'simple'))
y = sprintf('%tx',r);
elseif (strcmp(precision,'doble'))
y = sprintf('%bx',r);
% Si no es simple o doble --> error
else
error('La precisión puede ser ''simple'' o ''doble''\n');
end

y
x = '';
% Concatenamos cadenas
for i=1:length(y)
x = strcat(x,h2b(y(i)));
end


Trastear un rato las funciones de Matlab ayudan a hacerse una idea de las operaciones que se realizarían internamente en un DSP. Saludos. David.

jueves, 19 de febrero de 2009

Procesamiento de señales a tiempo real basados en PC: WaveProc

Introducción

Desarrollar un algoritmo de audio implica una primera fase donde se ajusta y depura el algoritmo hasta obtener el funcionamiento y la calidad deseada. El objetivo es proponer un prototipo para un sistema rentable y rápido. La forma más sencilla de conseguirlo es con un ordenador personal, un software matemático como MatLab y DSP’s para manejar el procesamiento a tiempo real.

Habitualmente, es preciso para el tratamiento de señales a tiempo real un hardware dedicado, compuesto normalmente por convertidores analógico-digital, digital-analógico y procesadores DSP. La idea es aprovechar las facilidades que ofrece un PC como interfaz del prototipo (pantalla, teclado, ratón…).

Un PC como plataforma de un DSP

Un software adecuado para programar es, por ejemplo C ++, aunque para la fase de desarrollo del algoritmo se recomienda Matlab ya facilita la representación de datos, funciones, implementación de algoritmos, creación de interfaces de usuario (GUI) y comunicación con programas en otros lenguajes y dispositivos hardware.

Procesadores de señal orientados a objeto

Al procesar una señal de audio, son frecuentes las repeticiones de código usado una y otra vez en un algoritmo, por lo que se pensó en emplear un objeto como componente básico. El sistema, llamado WaveProc, ha sido desarrollado con ventanas DLL así que puede ser llamado como una función de MatLab.






El controlador ASIO (Audio Stream Input Output) es compatible con muchas tarjetas de sonido de alta calidad (24 bits, con tasas de de muestreo de hasta 96 KHz) y permite trabajar con VST, DirectX y demás protocolos, con lo que es posible su uso en la mayoría de aplicaciones de audio. Por medio de la aplicación waveproc.dll se consigue que los bloques que más se utilicen durante la ejecución del programa se añadan a un nuevo algoritmo.

El número de canales en cada bloque y el enrutamiento de la señal entre los mismos, es programable. Otra cuestión importante es que el tratamiento de la señal en cada bloque se realiza tomando una muestra por muestra. Si fuera necesario un bucle de realimentación, MatLab decidirá que secuencia trata en cada bloque. El sistema WaveProc, permite a cada bloque ejecutar una vez por muestra de entrada, P veces por muestra de entrada o una vez cada muestra de entrada de Q.

Funcionamiento

El funcionamiento de un DSP sobre una plataforma PC depende de muchos factores, no sólo la frecuencia de reloj principal. En muchos casos se produce un embotellamiento en el acceso a memoria, en particular cuando el algoritmo requiere ejecutar grandes bloques en como por ejemplo filtros FIR o FFT. En la aplicación WaveProc el componente básico es un filtro IIR, que tiene la siguiente función de transferencia:



Los datos manejados por el filtro son de coma flotante de 64 bits. Sobre un PC estándar de oficina (1.8 GHz el Pentium) una cascada de 500 biquads que controlan una tasa de muestreo de 48 KHz en solo canal, consume el 65 % del uso de CPU. Sobre DSP dedicado, 24 bit Motorola de coma fija, un biquad puede ser ejecutado en más o menor 7 ciclos.

Ejemplo: Si la tasa de muestreo es 48.000 Hz y la frecuencia de reloj del DSP es 150 MHz, sólo (150M/48K) / 7 = 446 biquads pueden ser ejecutados por muestra.

El código de control empleado en MatLab es:



La función WaveProc permite poner en práctica su propio tratamiento de señal (muestra por muestra) y utiliza la flexibilidad y la facilidad de MatLab como un regulador. La principal desventaja del sistema es la latencia de la entrada digital a la salida digital, que hace el sistema inaplicable si por ejemplo en el empleo de bucles de realimentación. Esta latencia es debido a los buffers de entrada/salida, los cuales aíslan el tratamiento de señal del sistema operativo. Es posible reducir la latencia mediante buffers de protección, y es recomendable el uso de sistemas operativos como Linux.

Artículo original: TC electronic MATLAB libraries.