Proyecto: Un sistema web basado en la digitalización de audio-vídeo para el análisis de experimentos de física y de fenómenos de la vida cotidiana Documento: Instrucciones generales para el análisis de archivos multimedia. Autor: Alberto Ramil Rego Fecha: 16 de septiembre de 2002 Contenido Análisis de archivos multimedia....................................................................................... 1 Imágenes fijas (fotografías) .......................................................................................... 1 ¿Qué es una imagen digital?..................................................................................... 1 Análisis Geométrico ................................................................................................. 2 Análisis del Brillo y Color........................................................................................ 6 Ficheros de vídeo (Películas)...................................................................................... 10 ¿Qué es un vídeo digital?........................................................................................ 10 Análisis temporal.................................................................................................... 11 Análisis cinemático ................................................................................................ 12 Ficheros de audio........................................................................................................ 14 ¿Qué es un archivo de sonido? ............................................................................... 14 Análisis temporal.................................................................................................... 15 Análisis Espectral o de Fourier............................................................................... 16 Referencias ..................................................................................................................... 21 Libros.......................................................................................................................... 21 Enlaces de interés ....................................................................................................... 21 Programas para análisis de vídeo ........................................................................... 21 AVI ......................................................................................................................... 21 PAL......................................................................................................................... 21 WAV....................................................................................................................... 21 Instrucciones generales para el análisis de archivos multimedia Análisis de archivos multimedia Se presentan a continuación los aspectos generales del análisis de archivos multimedia clasificándolos en imágenes, vídeo y sonido. Para cada tipo de archivo se dará una pequeña descripción de su contenido así como de las herramientas más comunes para su análisis. Los detalles específicos para el análisis de cada fichero de la colección se encuentran en el documento “Fichas para el Alumno” que se puede completar con el libro “Métodos Experimentales para el Laboratorio de Física”(Ref. 4) y las referencias que en él aparecen. Imágenes fijas (fotografías) Las imágenes fijas proporcionan información de tipo geométrico (posiciones, distancias, ángulos, ...) y de tipo fotométrico (brillo y color) que puede emplearse para objetivos muy diversos. ¿Qué es una imagen digital? Una imagen digitalizada se compone de un conjunto de elementos de brillo y color homogéneos, denominados píxeles, a cuyas propiedades se les asigna un valor numérico entero. En general estos elementos son de forma cuadrada y se disponen en forma matricial llenando una superficie rectangular por lo que, para especificar su posición, basta con conocer la fila y la columna que ocupa. Esta es la manera en la que se presentan las imágenes en la pantalla de un ordenador y la manera en la que se guardan en ficheros la mayoría de las imágenes. Dependiendo del tamaño de los píxeles y de los valores posibles del brillo y color se obtienen imágenes digitales con mayor o menor calidad y también con mayor o menor tamaño para su almacenamiento. En la tabla siguiente se muestran algunos ejemplos de los estándares de vídeo: Formato MDA Hercules Año CGA 1981 EGA 1984 VGA 1987 SVGA XGA 1990 SXGA UXGA número de píxeles 720x348 sólo texto 720x348 160x200 640x200 640x350 720x400 (modo texto) 640x480 320x200 800x600 640x480 1024x768 1280x1024 1600x1200 brillo / color monocromo (1 bit) monocromo 16 colores (4 bites) monocromo (1 bit) 16 colores monocromo 16 colores 256 colores según memoria paleta1 de colores 16 2 64 262144=218 262144=218 16 millones=224 65536=216 según memoria según memoria 232 232 Tabla 1. Formatos estándar de vídeo más frecuentes y sus características. 1 La paleta es el conjunto de todos los colores que se pueden utilizar en un sistema. El número de ellos que pueden utilizarse simultáneamente puede ser inferior y es el que se indica en “brillo / color”. 1 Alberto Ramil Rego, Universidad de La Coruña, 2002 Análisis Geométrico La base del análisis geométrico de las imágenes es la determinación de coordenadas de puntos. A partir de ellos, siguiendo las técnicas habituales, pueden determinarse distancias, ángulos, áreas, perímetros, etc. La posición (fila, columna) que ocupa un píxel dentro de una imagen puede identificarse inmediatamente con un sistema cartesiano de coordenadas planas, en las que la abscisa sería el número columna (empezando por la izquierda) y la ordenada el número de fila (empezando por arriba). Si los objetos de la imagen realmente se encontraban en un plano paralelo al plano focal de la cámara, la correlación entre las coordenadas reales y la posición de los píxeles es muy sencilla; basta una relación lineal para tener en cuenta el cambio de escala y las diferencia de origen y orientación de los dos sistemas cartesianos. xP P yP L YP XP O ϕ Figura 1. Los dos sistemas cartesianos de coordenadas: el “físico” y el de la imagen. Llamando (x,y) a las coordenadas ligadas a la imagen (que no son más que el número de columna y de fila) y llamando OXY a una referencia cartesiana con origen en el punto O cuyas coordenadas son los valores reales de la posición en el problema físico recogido en la imagen, para un punto cualquiera P se tiene la relación siguiente: X P cos ϕ Y = − sin ϕ P − sin ϕ E x (x P − xO ) − cos ϕ E y ( y P − y O ) (1) donde las constante (Ex, Ey) representan el cambio de escala entre las coordenadas horizontal-vertical de la imagen y las coordenadas reales. En la mayoría de los casos bastará tomar el mismo factor de escala para los dos ejes que se determinará a partir de las coordenadas de dos puntos de separación conocida. Si por ejemplo se eligen dos puntos situados a lo largo de una regla graduada separados una distancia L, 2 Instrucciones generales para el análisis de archivos multimedia Ex = E y = E = L (x1 − x2 )2 + (y1 − y 2 )2 (2) La obtención de las coordenadas reales sobre una imagen se basa en la determinación de la posición (columna, fila) de los píxeles correspondientes. Existen varias herramientas para realizar el proceso: • Usando VideoPoint 2.5 ®. Esta aplicación está pensada especialmente para dicha tarea y facilita enormemente el proceso puesto que toma las coordenadas del punto seleccionado pinchando con el ratón. Pinchando sobre dos puntos separados una distancia conocida calcula el factor de escala y realiza automáticamente la conversión de píxeles a metros. Permite elegir el origen y la orientación de los ejes coordenados y, si se quiere, también calcula las coordenadas polares. • Usando Matlab 5 ® (o posterior). Los archivos de imágenes pueden leerse con A=imread(‘nombre_archivo’), mostrarse en una ventana gráfica con image(A) y tomar la posición de los píxeles deseados con [x,y]=ginput. La obtención de las coordenadas reales es sencilla si se poseen unos conocimientos elementales de la aplicación. • Usando Microsoft Paint ®. Esta aplicación de dibujo, como muchas otras, informa al usuario de la posición en la que se encuentra el cursor. Tomando nota de estos valores y realizando las operaciones adecuadas pueda obtenerse de igual manera las coordenadas reales de los puntos de interés. Nota. Las herramientas citadas coinciden en lo esencial aunque puedan diferenciarse en pequeños detalles tales como que los píxeles se numeren empezando en 0 ó en 1 y cosas así. Ejemplo. Medida de la posición Partiendo de la imagen de la figura 1 (sexto fotograma del archivo fisica_1\pelota\incl_1.avi) el análisis con VideoPoint nos daría una posición del centro de la bola de xP=270.4 mm, yP=273.3 mm. 3 Alberto Ramil Rego, Universidad de La Coruña, 2002 Figura 2. Determinación de la posición con VideoPoint. Los cálculos efectuados por VideoPoint2 pueden reproducirse si más que utilizar las ecuaciones anteriores. En la tabla 2 se muestran las coordenadas en píxeles de los puntos necesarios y en la tabla 3 los resultados obtenidos. x (píxel) y (píxel) 334 105 766 272 204 87 202 528 447 364 origen (punto O) orientación eje X (punto Q) escala 1 (punto A) escala 1 (punto B) pelota (punto P) Tabla 2. Coordenadas de los puntos utilizados inclinación XY respecto xy yQ − yO ϕ = arctan xQ − xO 0.3689 rad (21.14º) longitud de referencia L 600 mm Escala coordenadas punto P E= L (x B − x A ) 2 + (y B − y A ) 2 XP=E (xP-xO) cosϕ + E (yP-yO) sinϕ 1.3605 mm/píxel (0.7350 píxel/mm) 270.454874 mm YP=-E (xP-xO) sinϕ + E (yP-yO) cosϕ 273.239647 mm Tabla 3. Cálculos efectuados con los datos de VideoPoint. 2 Nótese que en este caso VideoPoint transforma la imagen original (384x288) duplicando el número de píxeles. Además, los píxeles del eje vertical se numeran de abajo hacia arriba. 4 Instrucciones generales para el análisis de archivos multimedia Repitiendo el proceso con Matlab (los píxeles se numeran de izquierda a derecha y de arriba abajo empezando en 1) se obtienen los datos de la tabla 4 y los resultados de la tabla 5 que son muy similares a los de la tabla 3. x (píxel) y (píxel) 168 237 381 153 102 246 102 25 224 107 origen (punto O) orientación eje X (punto Q) escala 1 (punto A) escala 1 (punto B) pelota (punto P) Tabla 4. Coordenadas obtenidas con Matlab de los puntos utilizados para el análisis. yQ − yO ϕ = arctan − xQ − xO inclinación XY respecto xy longitud de referencia coordenadas punto P 0.3683 rad (21.52º) L E= Escala 600 mm L (x B − x A ) 2 + (y B − y A ) 2 XP=E (xP-xO) cosϕ - E (yP-yO) sinϕ YP=-E (xP-xO) sinϕ - E (yP-yO) cosϕ 2.715 mm/píxel (0.3683 píxel/mm) 270.9180539 mm 272.5543762 mm Tabla 5. Cálculos efectuados con los datos de Matlab. Incertidumbre La incertidumbre en la posición proviene de diferentes causas y produce efectos sistemáticos y de tipo aleatorio. Entre las causas de los primeros se encuentran inhomogeneidades en el CCD, defectos en el objetivo de la cámara, la falta de paralelismo entre el plano del suceso y de la focal de la lente, errores de paralaje entre escala y objeto, etc. Las fuentes más destacables de los segundos estarían en el proceso de conversión del CCD, en el ruido de la señal eléctrica escrita en la cinta, en la digitalización posterior de dichas señales y en el propio proceso de análisis de las imágenes. Todo eso hace realmente complicada una caracterización profunda de las incertidumbres que requerirían de una calibración en varias etapas. En general, consideraremos que las incertidumbres sistemáticas son inferiores a las de tipo aleatorio y estimaremos estás en base a razonamientos estadísticos. (Véase por ejemplo 21). Así, la incertidumbre de la posición de un píxel aislado será del orden del factor de escala. Cuando para determinar la posición de un objeto se utilicen varios píxeles esta incertidumbre puede reducirse bastante. Si se utilizan N puntos para obtener la posición del objeto a través de un promedio, la desviación típica de la media será 1/√N la desviación típica de cada punto. Así, por ejemplo, en el caso de la figura 2 y de acuerdo con los datos de la tabla 5 la incertidumbre en las coordenadas podría tomarse como el tamaño del píxel, es decir, ∆X= ∆Y=3 mm. Si ampliamos la pelota y convertimos la imagen en blanco y negro con un umbral del 20%, véase figura 3, se obtiene una región formada por NP=112 píxeles con su centro geométrico situados en (224.74 píxel, 107.64 píxel) con una incertidumbre estimada de 1/√NP píxel =0.09 píxel =0.2 mm. 5 Alberto Ramil Rego, Universidad de La Coruña, 2002 Figura 3. Ampliación de la pelota y su conversión en blanco y negro eligiendo como umbral el 20% del brillo máximo. Análisis del Brillo y Color Además de la información espacial contenida en una imagen también puede utilizarse al información almacenada sobre el brillo (intensidad) y el color (longitud de onda). Las aplicaciones más interesantes del análisis de esta información se encuentran en el mundo de la óptica y de los espectros atómicos. Para las imágenes en blanco y negro o en escala de grises sólo puede hablarse de brillo. El número de bites empleado marca los valores posibles entre el blanco y el negro. Los casos más frecuentes son 1 bit para las imágenes en blanco y negro y 8 bites para las de 256 niveles de gris. Figura 4. Escala de grises de 8 bites. Dependiendo del formato de la imagen la información del brillo y del color se almacenará usando más o menos bites para cada píxel. En el sistema llamado “color verdadero” se usan al menos 24 bites lo que da un número de colores de 16 millones que es superior a los que es capaz de distinguir el ojo humano (unos pocos millones). La forma en que reproducen esos colores sobre la pantalla de un ordenador es mezclando en diferentes proporciones la luz de tres colores; rojo, verde y azul. Este sistema se conoce por RGB (“Red-Green-Blue”) y es aditivo por lo que el negro es la ausencia de luz mientras que el blanco se obtiene con la cantidad máxima de los tres colores. Para las impresoras existe un sistema estándar diferente llamado CYMK (“Cyan-MagentaYellow-Black”) puesto que en este caso el color se obtiene filtrando la luz reflejada por el papel blanco y por lo tanto el sistema es substractivo. 6 Instrucciones generales para el análisis de archivos multimedia Figura 5. Modelos de color aditivo RGB y sustractivo CYM. Existen muchos otros modelos de color dentro de los que cabe destacar el HSV (“Hue-Saturation-Value”) con su variante HSL (“Hue-Saturation-Lightness”) y el XYZ de la Comisión Internacional de Iluminación. Estos modelos tienen en común su aproximación a la percepción que tiene el ojo de la sensación de color. El primero desde una perspectiva más artística coloca los tonos puros (longitud de onda única) en un círculo y asigna a cada color un ángulo (0º para el rojo, 120º para el verde y 240º para el azul). Por mezcla de los colores primarios se obtienen los secundarios en ángulos intermedios y así sucesivamente. La medida de ese ángulo daría el tono (Hue), la distancia al centro de la circunferencia la saturación (100% para los colores puros, 0% para el gris) y la tercera componente sería el valor (Value) o la luminosidad (Lightness) que está relacionada con el brillo: V=0 corresponde al negro y V=100% al máximo de brillo, mientras que L=0 corresponde al negro y L=100% al blanco. El sistema XYZ relaciona los colores con los valores de los tres tipos de estímulos a los que responde la retina. Verde Amarillo Cian Rojo Magenta Azul Figura 6. Posición angular de los colores primarios y secundarios del modelo HSV. La obtención del brillo y del color de uno o más píxeles puede realizarse con diferentes aplicaciones. • Usando Matlab 5 ® (o posterior). Para imágenes de “color verdadero” la función imread produce como resultado una matriz MxNx3 con la intensidad (de 0 a 255) de los 3 colores del sistema RGB para cada uno de los NxM píxeles de la imagen. A partir de esta matriz se pueden realizar operaciones sencillas (sumas, 7 Alberto Ramil Rego, Universidad de La Coruña, 2002 promedios, perfiles...) o manipulaciones mucho más sofisticadas para lo cual existen funciones específicas del tratamiento de imágenes. • Usando Corel Photo-Paint ®. Si dentro del menú “ver” se activa la persiana de información (Ctrl-F1) se mostrará en una ventana la posición (en píxeles o en otra unidad seleccionada) y el color en los dos sistema elegidos (RGB, CYM, CYMK, HSB, ...). También puede obtenerse el color de un píxel o el valor medio de un conjunto de píxeles con la herramienta cuentagotas activando la persiana de color (Ctrl-F2). Existe la posibilidad de obtener el histograma de cada uno de los componentes del sistema RGB o del conjunto para toda la imagen o para la región seleccionada. • Usando Microsoft Paint ®. Con la herramienta cuentagotas (seleccionar color) puede tomarse el color de un píxel pero para ver su valor numérico habrá que seleccionar “modificar colores” en el menú “colores” y una vez abierta la ventana pinchar en “definir colores personalizados”. Para tomar otro color habrá que cerrar previamente la ventana y luego volver a abrirla por lo que el método solo puede aplicarse con comodidad a un número pequeño de puntos. • Otros programas. Puede obtenerse el color de una línea de puntos seleccionada en una imagen con PixelProfile (se descarga de forma gratuita en http://homepages.borland.com/efg2lab/ImageProcessing/index.html). El resultado puede presentarse en forma gráfica o en una tabla de texto que puede pegarse en otra aplicación de Windows como, por ejemplo, una hoja de cálculo. Ejemplo. Medida del brillo y color Para el archivo fisica_2\difrac\d030.jpg y para el píxel (200,150) que se encuentra en la zona rosa del escudo se tienen los valores siguientes. Figura 7. Imagen d030.jpg y una ampliación de los alrededores del píxel (200, 150). 8 Instrucciones generales para el análisis de archivos multimedia Matlab PhotoPaint MSPaint PixelProfile R 163 H 0.9811 G 57 S 0.6503 B 69 V 0.6392 R 163 C 92 C 25 H 353º H 354º G 57 M 198 M 91 S 64% L 43% B 69 Y 186 Y 68 B 63% S 47% K 1 235 163 H R S 116 G 57 L 104 B 69 R 163 H 354 G 57 S 165 B 69 V 163 I 96 Tabla 6. Valores obtenidos para el color del (200, 150) de la figura d030.jpg con diferentes aplicaciones. Se aprecia claramente la coincidencia en todas las aplicaciones del sistema RGB mientras que para los otros modelos de color existen pequeñas diferencias. También se puede apreciar como los valores de RGB y CMY son complementarios (suman 255) y como la intensidad (I) es el valor medio de los tres colores RGB. En la figura siguiente se muestra el perfil de intensidades correspondiente a la línea que va desde el píxel (200, 100) al píxel (200, 150). Figura 8. Perfil de intensidad Incertidumbre De nuevo la incertidumbre en la determinación de un color tendrá una componente sistemática (balance de blancos, conversión de la señal del CCD en color, etc) y otra de tipo aleatorio. Esta última puede mejorarse si se toman varios píxeles con lo que se aumenta la estadística. Como ejemplo se presenta en la tabla siguiente el valor medio y la desviación típica de la media de los tres colores del sistema RGB, para regiones cuadradas centradas en el píxel (200, 150) y sucesivamente más grandes. 9 Alberto Ramil Rego, Universidad de La Coruña, 2002 N 1 9 25 49 81 R 163 165,1 164,8 166,2 166,4 valor medio G 57 59,3 59,5 60,6 61,1 B 69 68,6 67,8 69,3 69,7 desviación típica de las medias R G B 1,2 0,9 0,8 0,7 1,5 1,0 0,8 0,6 1,5 1,2 0,9 0,7 Tabla 7. Variación de la media y la desviación típica de la media para cada uno de los colores RGB tomando N píxeles con centro en (200, 150). Ficheros de vídeo (Películas) Los vídeos no son más que una colección de imágenes separadas temporalmente por lo que permiten medir tiempos y obtener dependencias temporales combinando la información geométrica y fotométrica de diferentes imágenes. Un caso particularmente interesante lo constituyen las medidas de magnitudes cinemáticas (velocidades, aceleraciones, rotaciones, ...). ¿Qué es un vídeo digital? Un archivo de vídeo está formado por un gran número de valores numéricos que corresponden a una serie de imágenes digitales tomadas en diferentes instantes de tiempo. En la mayoría de los casos el tiempo transcurrido entre dos imágenes sucesivas es el mismo y suele expresarse como una frecuencia en hercios o, más comúnmente, por el número de fps (“frames per second”). Como la frecuencia de refresco del ojo humano es de unos 10 Hz, las imágenes proyectadas a velocidades superiores se observan sin saltos y dan la sensación de movimiento continuo y suave. Así el cine se reproduce a 24 fps y la televisión a 25 fps (sistema PAL, “Phase Alternation Line”) o a 30 fps (sistema NTSC). Existe sin embargo una diferencia muy grande entre el cine y la televisión. En el caso de la televisión la imagen se forma por el barrido de la pantalla de una haz luminoso formando líneas horizontales (625 en el caso del sistema PAL). Estas líneas no se barren de forma consecutiva sino que se trazan primero las impares y luego las pares. El tiempo empleado en trazar cada campo es de 1/50 s mientras que el tiempo para formar un cuadro (campo impar + campo par) es de 1/25 s. Este hecho se traduce en que los objetos que se mueven a gran velocidad aparecen borrosos e incluso situados en dos posiciones distintas dentro de un mismo fotograma. Un ejemplo que ilustra la diferencia entre los dos campos de una imagen PAL es el fotograma 2 del archivo \fisica_2\oscila\hilo_pul.avi que se muestra en las figuras siguientes. 10 Instrucciones generales para el análisis de archivos multimedia Figura 9. Fotograma del movimiento de un hilo elástico en el que se ve una posición diferente en cada uno de los campos. Figura 10. Detalle del fotograma anterior, separando en la zona de interés las líneas impares (arriba) de las impares (abajo). Análisis temporal La base del análisis temporal de archivos de vídeo se basa en la frecuencia (fps) a que corresponden las diferentes imágenes que lo componen. Como ya se ha indicado, en el sistema PAL esta frecuencia es de 25 Hz pero en el proceso de edición y creación del archivo AVI se puede disminuir esta frecuencia reduciendo el número de fotogramas que se escriben. El cambio de frecuencia permite adaptar la velocidad del video a la del proceso físico y simplificar el análisis del mismo al eliminar el exceso de fotogramas 11 Alberto Ramil Rego, Universidad de La Coruña, 2002 con la notable disminución del tamaño de los archivos. Desgraciadamente sólo podemos disminuir la frecuencia y no aumentarla, algo que nos hubiera gustado en ciertas ocasiones. Por simplicidad, solamente se han utilizado los valores de fps siguientes: 25 (es el normal del PAL), 12.5 (se salvan 1 de cada 2 fotogramas), 5 (1 de cada 5 fotogramas), 2.5 (1 de cada 10) y 1 (1 de cada 25). El programa VideoPoint ® permite elegir la frecuencia de las imágenes (menú Movie, “Select Frame Rate”) de forma que la secuencia de tiempos se adapte a la del archivo de vídeo. Utilizando otras herramientas deberemos generar nosotros la secuencia de tiempos a partir del valor de fps, hecho que no presenta ninguna dificultad en Matlab ® (puede utilizarse linspace) o en una hoja de cálculo como Excel ® (crear serie). Análisis cinemático El cálculo de todas las magnitudes cinemáticas, e incluso dinámicas, se realiza a partir de la determinación de velocidades y aceleraciones de puntos. Al igual que ocurría con las posiciones, estas velocidades y aceleraciones se combinan con las reglas habituales para obtener el resto de las magnitudes. Nuevamente la forma más sencilla de determinarlas es utilizando VideoPoint, puesto que se trata de una herramienta diseñada para estas labores. De cualquier manera, los algoritmos necesarios para calcular las derivadas son sencillos y pueden programarse hasta en una hoja de cálculo. La velocidad se determina por interpolación parabólica utilizando la posición y el tiempo de los tres puntos más próximos en el tiempo. Llamando {t0, x0} al tiempo y la posición en que se quiere determinar la velocidad y {ta, xa}, {tp, xp} al tiempo y posición de los instantes anterior y posterior más próximos, la parábola que pasa por los tres puntos tiene por ecuación: x(t ) = ( ) ( ) x a t p − t (t 0 − t ) x 0 t p − t (t a − t ) x p (t a − t )(t 0 − t ) + + t p − t a (t 0 − t a ) t p − t 0 (t a − t 0 ) t a − t p t 0 − t p ( ) ( ) ( )( ) (3) Calculando la derivada para el instante t0 y teniendo en cuenta que la diferencia de tiempos es siempre un múltiplo entero de la inversa de fps, tp=t0+m ∆t, ta=t0-n ∆t con ∆t=1/fps, se tiene: v(t 0 ) = ( ) n 2 x p − x 0 + m 2 (x 0 − x a ) m n (m + n ) ∆t (4) x p − xa 2 n ∆t (5) que para m=n se convierte en: v(t 0 ) = La derivada segunda proporciona la aceleración: a (t 0 ) = 2 ( ) n x p − x0 − m(x 0 − x a ) m n (m + n ) ∆t 2 y su versión simplificada para m=n se convierte en: 12 (6) Instrucciones generales para el análisis de archivos multimedia a (t 0 ) = x p + xa − 2 x0 (n ∆t )2 (7) NOTA. Los valores de la aceleración que da VideoPoint no corresponden exactamente con la interpolación parabólica ni con la de orden 4. Parece como si los datos estuviesen suavizados para reducir las variaciones de la aceleración de un instante a otro. Ejemplo. Velocidad y aceleración El archivo fisica_1\mov_lin\mov_lin1.avi corresponde al movimiento de un planeador sobre una carril neumático que forma un determinado ángulo con la horizontal. Las posiciones y tiempos se indican en la tabla siguiente. En este caso como fps=5, ∆t=0.2 s. t [s] 0,0 0,2 0,4 0,6 0,8 1,0 1,2 1,4 1,6 Point S1 Point S1 Point S1 Point S1 x y v_x x-accel, [píxeles] [píxeles] [píxeles/s] [píxeles/s^2] 160 148 15,0 166 146 60,0 184 148 105,0 197,3 208 144 140,0 179,6 240 144 172,5 173,4 277 143 205,0 175,8 322 142 245,0 179,3 375 141 280,0 434 139 315,0 Tabla 8. Velocidades y aceleraciones calculadas con VideoPoint. Las derivadas (véase Ref. 1 en la página 914 y Ref. 5 en la página 115) de x respecto de t utilizando polinomios de orden 2 y orden 4 se encuentran en la tabla siguiente. Se observa que las velocidades correspondientes al polinomio de orden 2 coinciden con las de VideoPoint salvo en los valores primero y último. Las aceleraciones no coinciden con ninguno de los polinomios y presentan unos valores con menos oscilaciones. orden 2 orden 4 t v_x x-accel, v_x x-accel, [s] [píxeles/s] [píxeles/s^2] [píxeles/s] [píxeles/s^2] 0,0 0,0 300,0 -20,0 633,3 0,2 60,0 300,0 68,3 283,3 0,4 105,0 150,0 106,7 133,3 0,6 140,0 200,0 140,4 210,4 0,8 172,5 125,0 172,5 112,5 1,0 205,0 200,0 203,8 206,3 1,2 245,0 200,0 245,8 204,2 1,4 280,0 150,0 282,5 154,2 1,6 310,0 150,0 304,2 154,2 Tabla 9. Velocidades y aceleraciones calculadas con polinomios de orden 2 y 4. 13 Alberto Ramil Rego, Universidad de La Coruña, 2002 Ficheros de audio Permiten analizar en función del tiempo el nivel de sonido así como su composición espectral (frecuencias). ¿Qué es un archivo de sonido? En un archivo digital de sonido se almacenan, usando números enteros, la amplitud (nivel de presión sonora) de uno o más canales de audio en función del tiempo. Las muestras de amplitud se toman a una frecuencia fija FS y se emplean también un número fijo de bites NB para cada uno de los canales NC. Cuanto mayores sean estos números mayor será la calidad del sonido pero también crecerá de forma lineal el tamaño de los archivos. En la tabla siguiente se muestran los valores más típicos de estos parámetros y el número de octetos necesarias para registrar (sin compresión) 1 segundo de sonido. calidad teléfono radio CD FS [Hz] 11025 22050 44100 NB 8 8 16 NC 1 1 (mono) 2 (estéreo) tamaño de 1 segundo 11 mil octetos 22 mil octetos 172 mil octetos Tabla 10. Parámetros típicos de la digitalización de sonido. Los valores de estos parámetros se eligen de acuerdo con la aplicación particular y con las capacidades del oído humano, que son enormes. Así, el oído humano es sensible a frecuencias entre unos 20 Hz y 20 kHz (teniendo la máxima sensibilidad entre 2 y 5 kHz) y con diferencias de intensidad entre el umbral de audición y el umbral de dolor de más de 12 órdenes de magnitud (véase figura). Figura 11. Umbral de audición y umbral de dolor del oído humano a diferentes frecuencias. NOTA. La relación entre la amplitud de la onda de presión P y la intensidad (flujo de energía) I de una onda sonora es (véase Ref. 2): I = P 2 (2 ρ 0 c ) donde ρ0 es la densidad y c la velocidad de propagación. Debe mencionarse que la respuesta del oído tanto a la intensidad como a la frecuencia no es lineal sino más bien logarítmica. Así, los oídos humanos más sensibles 14 Instrucciones generales para el análisis de archivos multimedia son capaces de detectar cambios de intensidad de 0.3 dB3 y cambios en la frecuencia de vibración (tono) que correspondan al 0,03% de la frecuencia original, en el rango comprendido entre 500 y 8.000 hertzios. Esta es la razón por la que en acústica se utilizan tan frecuentemente escalas logarítmicas. Si nos fijamos en los parámetros de grabación de un CD vemos que el ancho de banda FS/2=22050 Hz es suficiente para la mayoría de los instrumentos musicales que producen muy pocos sonidos por encima de 10 kHz, y que los 16 bites de amplitud equivalentes a 96 dB de intensidad son suficientes para cubrir las diferencias de intensidad de una orquesta entre el “pianissimo” ≈20 dB y el “fortissimo” ≈100 dB. Figura 12. Rangos de la intensidad (en decibelios relativos a 10-12 W/m2) y frecuencia de la voz y la música. Existen varios formatos para almacenar audio en archivos aunque nosotros hemos empleado solamente el tipo WAV por ser el más sencillo (no hay compresión de datos) y puede reproducirse en todos los sistemas Windows ®. Análisis temporal El primer paso consiste en obtener los valores de la amplitud o intensidad del sonido en función del tiempo a partir de los valores numéricos escritos en el archivo. • Usando Matlab 5 (o posterior). Los archivos WAV se leen con la instrucción [Y,FS,NB]=wavread(file) cuyo resultados son la matriz de amplitudes Y, la frecuencia de muestreo FS y el número de bites NB. El número de muestras NS y el número de canales NC se obtiene fácilmente de las dimensiones de la matriz Y, [NS,NC]=size(Y). • Utilizando un lenguaje de programación. Los archivos WAV pueden leerse sin mucha dificultad escribiendo un pequeño programa en cualquier lenguaje. Estos 3 El decibelio, dB, es la décima parte del belio, B, que es nombre que se da al logaritmo decimal del cociente entre dos magnitudes eléctricas o acústicas como el nivel de potencia, el nivel de presión, la atenuación, etc. Así, 1 dB = 10*log10(I/I0) donde I0 es la magnitud que se toma como referencia. En el mundo de la acústica se suele utilizar como medida de la intensidad sonora tomando como referencia el umbral de audición a esa frecuencia (por ejemplo, I0=10-12 W/m2 a 1 kHz) pero debe destacarse que esta es una práctica desaconsejada por los organismos internacionales de metrología como queda expresado en la norma ISO 31. 15 Alberto Ramil Rego, Universidad de La Coruña, 2002 archivos son de tipo binario y tienen una cabecera con las características del archivo (tamaño, número de bites, número de canales, frecuencia de muestreo) y a continuación la amplitud de cada canal en cada uno de los instantes de tiempo. Una descripción detallada del formato WAV puede encontrarse en: http://ccrma-www.stanford.edu/CCRMA/Courses/422/projects/WaveFormat/ En cualquier caso obtendríamos una tabla con los valores (digitalizados en NB bites y a una frecuencia de muestreo FS) de la amplitud instantánea de la onda de presión ∆p(t)= p(t)-p0, siendo p0 la presión del aire sin perturbar (posición de equilibrio). El valor de esta amplitud instantánea oscila con el tiempo por lo que, al igual que ocurre con la corriente alterna, se define la presión sonora efectiva p como la desviación cuadrática media (para una onda armónica ∆p(t)= P*cos(ωt+δ) el valor efectivo es p=P/√2 del valor la a amplitud). La intensidad del sonido I viene dada por: I= p2 ρ0 c (8) donde ρ0 es la densidad y c la velocidad de propagación. A partir de estos valores se definen las diferentes escalas (nivel de presión sonora, nivel de intensidad, nivel sonoro, etc) en las que se toma como unidad el decibelio con distintos valores como referencia4. Análisis Espectral o de Fourier El siguiente paso sería obtener la frecuencia del sonido, o mejor dicho, pasar del dominio temporal a(t) al dominio de frecuencias A(f). Para funciones esta transformación se realiza por medio de la transformada de Fourier: A( f ) = +∞ ∫−∞ a(t )e 2πift dt (9) y su inversa a (t ) = 1 +∞ A( f )e − 2πift dt − ∞ 2π ∫ (10) Como solamente conocemos la amplitud a intervalos de tiempo fijo, la integral se transforma en una suma (véase Ref. 3 en la página 238) y se convierte en la transformada discreta de Fourier, DFT. Si denotamos las amplitudes por {ak, k=0,1,...,N-1}, la DFT tiene la expresión siguiente: N −1 ∑ a k e 2πijk / N , 0 ≤ j ≤ N − 1 (11) 1 N −1 A j e − 2πijk / N , 0 ≤ k ≤ N − 1 N j =0 (12) Aj = k =0 y su inversa ak = ∑ 4 Véase por ejemplo Recuero López, M., “Ingeniería Acústica”, Paraninfo (2000) y Beranek, L. L., “Acoustics”, Acoustic Society of America (1996). 16 Instrucciones generales para el análisis de archivos multimedia Como los valores de Aj son complejos y además son periódicos (AN-m = Am*) suele representarse la mitad inferior en valor absoluto, que es lo que se conoce por densidad spectral, PSD. Cuando se representan los espectros de sucesivos subconjuntos de muestras (ventanas) frente al tiempo se obtiene una superficie tridimensional (nivel de potencia, frecuencia y tiempo) que se llama espectrograma. Este tipo de diagrama es muy útil pues refleja en buena medida el funcionamiento del oído humano que responde a amplitud y frecuencia en pequeños intervalos de tiempo. Estos espectrogramas se utilizan a menudo en los sistemas de reconocimiento de voz, identificación de animales, evaluación de instrumentos musicales o sistemas de sonido y, en general, para el análisis de todo tipo de señales incluyendo el tratamiento de imágenes. • Usando Matlab 5 ® (o posterior). La DFT se realiza con YK=fft(Y). En la “Signal Processsing Toolbox” se encuentran las funciones para obtener la densidad espectral [PS,Freq]=psd(Y,[],FS) y el espectrograma [B,F,T]=specgram(Y,[],FS). • Usando Microsoft Excel ® (97 o posterior). La “Herramienta de Análisis de Fourier” realiza la DFT de un rango de datos que contenga un número de valores que coincida con una potencia de dos (hasta 4096). La salida contendrá los números complejos Aj a partir de los cuales puede obtenerse la amplitud y la fase con las funciones im.abs e im.argumento. Nota, puede que alguna de estas herramientas no esté disponible por lo que deberá efectuar una reinstalación de la aplicación. • Otros programas. Pueden encontrase en la web muchos programas gratis para la realización de la FFT (Fast Fourier Transform) y para obtener los espectrogramas como, por ejemplo, Spectrogram 5.0.8 que se puede descargar en: http://www.hitsquad.com/smm/programs/SPECTROGRAM/ Ejemplo. Análisis de un archivo de audio. Se ha tomado para el ejemplo el archivo del sistema c:\Windows\Media\notify.wav. En la tabla 11 se presentan las características del archivo. Nombre del archivo: número de muestras, N: número de canales, NC: frecuencia de muestreo, FS: número de bites, NB: tamaño: c:\windows\media\notify.wav 29823 2 22050 Hz 16 119384 octetos Tabla 11. Características del archivo de sonido. . La figura 13 muestra la amplitud de cada canal frente al tiempo. Para el canal 1 se ha realizado la DFT (ver figura 14) y se aprecia que la parte real / imaginaria es simétrica / antisimétrica respecto del punto medio N/2. 17 Alberto Ramil Rego, Universidad de La Coruña, 2002 Figura 13. Amplitud en función del tiempo (siendo t=k*∆t con ∆t=1/FS) para los dos canales (estéreo) del sonido notify.wav. Figura 14. Parte real e imaginaria de la amplitud en función de la frecuencia (siendo f=k*∆f con ∆f=FS/N) para el canal 1. Tomando el módulo de la DFT y calculando las frecuencias como f(k)=k*FS/N para la primera mitad (k= 0, ..., N/2) se tiene la figura 15 en la que se aprecia el valor máximo de la frecuencia FS/2=11 kHz. Las dos figuras siguientes muestran el espectrograma obtenido con Matlab ® y con Spectrogram 5.0.8 tomando grupos de 256 muestras. 18 Instrucciones generales para el análisis de archivos multimedia Figura 15. Densidad espectral de potencia PSD en función de la frecuencia. Figura 16. Espectrograma realizado tomando grupos de 256 muestras que dan 129 valores de la frecuencia para 231 intervalos de tiempo superpuestos en un 50%. 19 Alberto Ramil Rego, Universidad de La Coruña, 2002 Figura 17. Espectrograma realizado con Spectrogram 5.0.8 en grupos de 256 muestras. 20 Instrucciones generales para el análisis de archivos multimedia Referencias Libros 1. Abramowitz, M y Stegun, A., “Handbook of Mathematical Functions”, Dover (1972). 2. Alonso, M. y Finn, E. J., “Física. Volumen II, Campos y Ondas”, AddisonWesley Iberoamericana (1987). 3. Lindfield, G y Penny, J.,”Numerical Methods Using Matlab”, Ellis Horwood (1995). 4. López Díaz, Ana Jesús, “Métodos Experimentales para el Laboratorio de Física”, Tórculo (2002). 5. Wilson, H. B. y Turcotte, L. H., “Advanced Mathematics and Mechanics Applications using Matlab”, CRC press (1994). Enlaces de interés Programas para análisis de vídeo • VideoPoint: información, http://www.lsw.com/videopoint • World in Motion, http://members.aol.com/raacc/wima.htm • VideoGraph, http://webassign.net/pasnew/videograph/videograph.html actualizaciones, FAQs, etc. AVI • avi2bmp, convierte AVI a BMP (freeware). http://avi2bmp.free.fr • AviEdit, editor de películas AVI (shareware). http://www.am-soft.ru/avi • QuickView Pro 2.48, para ver http://www.mulimediaware.comm/qv • Descripción de los archivos http://www.jmcowan.com/avi.html películas AVI y AVI los desde MS-DOS, diferentes codecs. PAL • Definición del sistema PAL de televisión http://www.euskalnet.net/mikelats/television/pal.html (castellano). WAV • Formato de los archivos WAV. http://ccrma-www.stanford.edu/CCRMA/Courses/422/projects/WaveFormat/ http://www.technology.niagarac.on.ca/courses/comp630/WavFileFormat.html • Código en C++ y Pascal para leer / escribir archivos WAV http://www.intersrv.com/~dcross/wavio.html. 21