3.5. Acceso al contenido
3.5.1. Descripci´ on detallada
En cualquier aplicaci´on de an´alisis o procesamiento de contenido multimedia, su funcio- nalidad m´as b´asica es la que permite acceder a cada uno de los elementos de este contenido. La capa de acceso al contenido multimedia cubrir´ıa lo que en un sistema operativo ser´ıa la gesti´on del sistema de ficheros. La gesti´on de un sistema de ficheros debe ofrecer a las apli- caciones un interfaz de programaci´on que les permita abrir, leer, procesar y escribir ficheros. Esta capa permite a las aplicaciones abstraerse del tipo de sistema de ficheros en el que se encuentra almacenado (FAT, NTFS, HFS, EXT2, . . . ) y tambi´en de su localizaci´on f´ısica (NFS, SAMBA, . . . ). An´alogamente las aplicaciones que trabajan con contenido multime- dia requieren de funcionalidad que les permita acceder a estos contenidos, permitiendo una abstracci´on de localizaci´on f´ısica y de formato.
Aunque la analog´ıa es v´alida, el concepto de abstracci´on de formato es diferente en ambas situaciones. Los sistemas de ficheros permiten organizar el contenido de ´estos de diferentes maneras dentro del medio f´ısico. Las aplicaciones pueden obviar este nivel f´ısico, ya que se les ofrece una interfaz de programaci´on que lo abstrae en la forma de un fichero contiguo al que pueden acceder secuencial y aleatoriamente. En el caso de los contenidos multimedia, la abstracci´on debe ser doble: en primer lugar la correspondiente al fichero f´ısico que se acaba de explicar; en segundo, la correspondiente a la codificaci´on propia del formato multimedia. La necesidad de ´este segundo nivel de codificaci´on (en este caso, puramente software) viene dada por la complejidad de los datos multimedia. El espacio necesario para almacenar una hora de v´ıdeo y audio en crudo es de m´as de 125GB (considerando una resoluci´on espacial de 720x576 p´ıxeles y temporal de 29,97 fotogramas por segundo). Los formatos de codificaci´on y multiplexaci´on de elementos multimedia se crearon con la intenci´on de resolver los problemas asociados al almacenamiento y reproducci´on de este tipo de contenido. El objetivo es por tanto reducir las necesidades de almacenamiento y multiplexar eficientemente en el sistema de ficheros los diferentes streams de datos con los que cuenta una entidad multimedia.
El primer problema, la elevada complejidad espacial, se soluciona utilizando t´ecnicas de compresi´on de datos. Las t´ecnicas cl´asicas de compresi´on de datos pueden ser utilizadas (los datos multimedia son, en esencia, datos) aunque no son una soluci´on suficiente para el proble- ma. Las t´ecnicas m´as utilizadas hacen uso de la correlaci´on temporal de los fotogramas y de las limitaciones sensoriales humanas (a la hora de percibir ciertas frecuencias de las se˜nales) para eliminarlas de la se˜nal original. De esta manera se reducen dr´asticamente los requisitos espaciales para el almacenamiento de contenido multimedia a expensas de perdida de calidad de la se˜nal resultante (tanto m´as perceptible como mayores sean las limitaciones de espacio). La reconstrucci´on de la se˜nal a la hora de la reproducci´on se realiza siguiendo el proceso inverso. Es pr´actica habitual que el algoritmo de comprensi´on (que llamaremos codificaci´on) vaya acompa˜nado del algoritmo de descompresi´on (que llamaremos decodificaci´on). Al con- junto formado por estos dos algoritmos se le denominacodec(codificador/decodificador). El n´umero decodecs existentes en la actualidad es considerablemente grande, haciendo pr´acti- camente imposible la compatibilidad de las aplicaciones con todos ellos. El grupo MPEG ha creado algunos de los m´as utilizados, como el MPEG-2 que se emplea en la codificaci´on del v´ıdeo en los DVDs. Sin embargo, no existe un est´andar mayoritario. Las aplicaciones de- ben limitarse por tanto a trabajar ´unicamente con aquellos contenidos que puede decodificar seg´un el conjunto decodecs que soporta.
El problema del multiplexado de los contenidos se deriva del hecho de que los contenidos multimedia constan habitualmente de varios elementos que adem´as deben presentarse sin- cronizadamente. Volviendo al ejemplo de un DVD, el usuario tiene la opci´on de seleccionar la pista de audio correspondiente al idioma que prefiera (e incluso una pista adicional de subt´ıtulos). Es decir, en un s´olo fichero el DVD almacena al menos una pista de v´ıdeo, varias de audio y otras m´as de texto. A esta funcionalidad de contenedor, hay que a˜nadir tambi´en la necesidad de que los contenidos se presenten sincronizadamente, i.e. cada fotograma del v´ıdeo debe ser presentado en consonancia con la muestra de audio y frase del subt´ıtulo ade- cuado. A los est´andares que definen la manera de almacenar los diferentes elementos de una entidad multimedia se les conoce con el nombre de formatos. Los formatos no son normal-
mente estructuras triviales: no es una soluci´on satisfactoria guardar losstreams de manera consecutiva, ya que al estar asociadas la muestras de cada stream se producir´ıan multitud de operaciones seek() dentro del fichero para ir accediendo a los puntos correspondientes de los streams. La forma m´as habitual de almacenar la informaci´on dentro del contenedor es mediante la segmentaci´on de losstreams en fragmentos (a ser posible que contengan un subelemento completo) y encapsulando esa porci´on en un paquete de datos, con una cabecera que identifica el tipo de datos (audio, v´ıdeo, . . . ), el tiempo de presentaci´on e informaci´on adicional necesaria para la decodificaci´on. Al igual que ocurre con los codecs, el n´umero existente de formatos es muy elevado.
La complejidad para acceder a contenido multimedia viene causada principalmente por la inmensa cantidad de combinaciones de formatos y codecs en los que pueden venir encap- sulados. La funcionalidad necesaria para tratar con esta complejidad es la que est´a recogida dentro de lo que se ha denominado, en el contexto de esta arquitectura, capa de acceso al contenido multimedia.