Vitooki est une boîte à outil vidéo: streaming, codecs, mpeg-7 et mpeg-21. C'est pour ces deux derniers que je regarde ce que propose le projet.
J'ai un problème assez étrange sous Ubuntu Intrepid Ibex: Vitooki utilise
xvidcore-1.1.0-beta2, et avec cette version d'ubuntu le
bootstrap.sh refuse de générer le
config.sub et
config.guess... donc pas de
configure, plutôt embêtant pour compiler le projet !
C'est d'autant plus embêtant car le projet intègre
Muvino, un outil pour générer du mpeg-7 avec
TemporalDecomposition qui m'intéresse un brin...
Cependant, sous Hardy, ça fonctionne impeccablement, c'est assez étrange... et question: il y a t-il des logs d'
autoconf ou
autoreconf quelque part ?
C'est corrigé avec une bidouille à la barbarian (j'ai pas le temps pour autre chose): remplacer
xvidcore-1.1.0-beta2 par la 1.1.2 téléchargeable
ici (ou directement
xvidcore-1.1.2).
Il faut compiler avec
g++-4.2 et
gcc-3.4.
Mais j'ai maintenant une erreur de compilation de paragui que je ne comprends pas... une commande de compilation
gcc demande
-lstdc++, ce qui ne lui plaît pas:
/usr/bin/ld: cannot find -lstdc++, solution barbarian encore une fois: softlinker un
/usr/lib/libstdc++.so vers
/usr/lib/libstdc++.so.6.
Autre problème: avec la compilation de ffmpeg:
In file included fro mathematics.c
common.h:598: error: static declaration of 'lrintf' follows non-static declaration
De même solution babarian: suppression de la macro
#ifndef HAVE_LRINTF, ça me fait plein de warning mais ça passe, on verra bien...
Autre problème: dans libebml, 'memcpy' was not declared in this scope.
=> addon 2009-05-13: Je laisse tomber, compiler ce projet sous une distribution GNU/Linux récente semble bien compliqué...
Dans le cadre d'un prototype sur mes recherches, j'investigue sur
MPEG-7.
Au début, j'avais définit un format de fichier de description, j'ai écrit une grammaire
XML assez sommaire pour avancer assez rapidement, et produire des fichiers
XML pour décrire, stocker des descripteurs, et annoter mes documents multimédia, mais au fur et à mesure que j'avançais, je m'approchais vraiment de ce que propose la norme.
C'est pourquoi depuis quelques temps, je m'attaque à un
XML binding en Java de la norme
MPEG-7.
Le langage Java propose dans son
API un mécanisme de
XML binding (depuis Java1.6, dans les versions précédente de Java c'était l'
API Jaxb, Java
API for
XML binding, qui était située dans un package externe, le JWSDP Java Web Services Developer Pack), et pour les normes comme
MPEG-7 basé sur des
XML-schemas, c'est très pratique.
(J'aurais bientôt a travailler sur
MPEG-21 pour les besoins d'un projet de labo, j'essayerai la même approche pour la production d'une requête
MPEG-21, j'en reparlerai ici en temps et en heure).
Pour la génération du binding, il y a JAXB (Sun) et XMLBeans (Apache), avec ces 2 frameworks, il y a des problèmes de compilations du bindings (grammaire non valide), dans les deux cas il semble y avoir un problème avec des définitions d'éléments au noms identique, ce n'est pas un problème de définition dans la norme, mais plutôt des outils JAXB et XMLBeans2.3 qui ne gèrent pas correctement l'inheritance à outrance utilisé dans la norme
MPEG-7. (réf. nécessaire).
Quelques liens web parlant du problème:
Il semble plus sérieux d'utiliser XMLBeans2.3, car malgré une petite modification aux schemas
MPEG-7 à faire, la modification reste acceptable.
JAXB quand à lui nécessite de modifier le nom de certains éléments, ce qui pourrait amener à des problèmes (fichiers
MPEG-7 générés non
MPEG-7 compliant).
Avec JAXB
Avec JAXB (version java1.6) des collisions de noms sont un problème, voir
http://cbvr.ims.tuwien.ac.at/user-documentation/mpeg7-java-binding-1.pdf. Il y en a plusieurs, c'est bloquant. La correction à apporter aux schemas est de modifier les noms de plusieurs éléments (à priori pas très pratique donc, car le
MPEG-7 résultant ne valide plus la norme). La correction proposée ci-dessous pour XMLBeans2.3 fonctionne également avec JAXB, mais elle ne suffit pas, il y a des propriétés au nom identique dans
mds-2001.xsd et Jaxb génère une erreur "already define";
Une solution pour contourner cela semble l'utilisation de
custumizations JAXB.
Avec XMLBeans
Avec XMLBeans2.3, il y a un problème dans
audio-2001.xsd mais qui peut être corrigé rapidement, voir
http://iiss039.joanneum.at/cms/index.php?id=231 (recherche menée par Joanum Research propose également un profile mpeg-7, le DAVP detailed AudioVisual Profile, pour la description de contenu audiovisuel simple, dans le sens de single);
Quelques liens:
- VizIR web server project: équipe autrichienne, membre du noe DELOS, utilise JAXB pour la génération du binding;
- le laboratoire Joaennum propose une librairie en C++ pour manipuler des documents MPEG-7, (avec un XML-binding en C++ développé maison), cette librairie de contient pas de features extractors. Ce laboratoire propose également une génération de XML-binding en Java utilisant XMLBeans (déjà cité plus haut);
- mpeg-7 and mpeg-21 community portal, voir dans la section "software and tools" une liste de projet autour de ou utilisant MPEG-7;
- LAS, Lightweigth Application Server for mpeg-7, utilise XMLBeans, dans le cadre du projet MECCA;
- un projet d'élève de l'université polytechnique de catalogne d'annotation de photographie, utilise XMLBeans. D'autres projets d'élèves de la même université qui utilise également XMLBeans;
- le site du NIST pour récupérer les schemas, et qui propose un validateur;
LIRe, Lucene Image Retrival, c'est une library de Mathias Lux, j'ai découvert son blog par del.ico.us, http://www.semanticmetadata.net/.
LIRe create a Lucene index of image feature for CBIR.
Three of the available image retrieval features are taken from the
MPEG-7 standard: ScalableColor, ColorLayout, EdgeHistogram, and an Auto Color Correlogram.
LIRe is part of Caliph&EMIR project.
Rien à voir avec le projet européen EMIR.
EMIR, European Multilingual Information Retrieval, finalisé en 1994, c'est un projet ancien maintenant, spirit est de la même époque.
Le système SPIRIT est monolingue, repose sur une analyse linguistique du document et une pondération statistique.
PRISME a pour objectif la conception et la réalisation d'un outil de veille technologique multilingue sur Internet.
PRISME utilise les technologies multilingues développées dans le cadre du projet européen EMIR, et du produit SPIRIT de T.GID.
Un test rapide de LireDemo, une application en java pour tester LIRe, ne fonctionne pas, pourtant sur le site de l'auteur il est bien indiqué qu'un JDK1.6 est requis mais des exceptions sont catchées lors de la construction de l'index.
Jannach, Leopold (2007)
UMA, Universal Multimedia Access, article de Pereire, Burnett, 2003.
DIA, Digital Item Adaptation, article de Vetro, Timmerer, 2005.
the
MPEG-21 DIA framework.
MPEG-7, Martinez (2002), (c'est monsieur
MPEG-7 lui...)

This paper bring out an extension to the MPEG-21 DIA (the part 7 of the MPEG-21) => avec un mécanisme qui apporte interopérabilité entre les
third-party tools.
Adaptation:
1- user's constraint: terminal capabilities, network bandwith, content preferences => MPEG-21 DIA
2- information about the requested source, actual encoding format for instance, in ordre to determine which sort of adaptation it is required or possible =>
MPEG-7
Un problème est qu'actuellement
MPEG-21 ne dit pas comment le serveur d'adaptation multimédia détermine et effectue les transformation, cette tâche est laissé au
tool vendor.
Pour cela, on a besoin des mécanisme suivant:
1- une représentation pour la description des capacité d'un outil arbitraire (the semantic of performing an adaptation operation, such that automatic construction of adaptation chains become possible).
2- invoke the tools in a standardized form once the adaptation sequence is determine.
3- intégrer ce mécanisme dans MPEG-21.
State Space Planning problem, Bratko (2000), it's a general problem-solving approach (an AI-planning approach).
A planning problem comprises a set of world-altering actions, which are provided by the system.
1. Each action are annotated with a set of preconditions that have to hold when the action should be applied
2. a list of effects when applying the action
3. a list of inputs and outputs (parameters) of the action when it is embeded in a action sequence
PDDL, Planning Domain Description Language, Fox, Lang (2003)
OWL, Harrock & al. (2003)
OWL-S, Martin & al. (2004)
Semantic Web Services, McIlraith, (2001): the main idea of that initiative is to semantically annotate the services that are available on the web with the goal that they can be automatically searched annd accessed by agents.
(=>spécification web services de XEDIX, fédération de bases, UDDI).
The rule langage SWRL (w3c recommandation) Semantic Web Rule Language, Harrocks, Pattek-Schneider (2004)
SWRL est inclus dans OWL-S, c'est la partie contrainte (precondition), par contre OWL-S n'impose rien sur le moteur d'inférence utiliser pour évaluer les contraintes.
However, it would be possible to re-write the parts of the standard in terms of an owl ontology, hunter (2001).
moteur de recherche CORESE, INRIA-ACACIA, et serveur web sémantique SEWESE (gérer les échanges et orchestrer les applications). CORESE est un moteur
RDF basé sur les CG, il utilise SPARQL, un langage de requête
RDF.
Les descriptions OWL-s apportent 3 types de connaissances à propos des services:
1. profile: what the service require from the user
2. process: how the service work?
3. grounding: how can access the service on the technical level (mapping avec WSDL)
WSDL = description de "messaging-capable collection of communication endpoints".
La spécification actuelle de WSDL décrits les bindings pour
SOAP,
HTTP GET/POST,
MIME
WSDL apporte l'information
low-level nécessaire à l'implémentation.
message -> abstract description of the data being exchanged
port type -> abstract collection of operation
binding -> port type + message + protocole
port -> network + address + binding
Service == a collection of related endpoints
The next important step towards bringing more intelligence to the Web can be seen in the development of "Semantic Web Service, McIlraith et al., 2001".
The main idea of that initiative is to semantically annonate the services that are available on the Web with the goal that they can be automatically searched and accessed by agents. In addition, software agents shall also be enabled to execute more complex tasks by combining the different services in an intelligente manner. One example for such an application from the domain of "travel planning" can be found in McIllraith et al. (2001), where an intelligent agent makes a complex travel arrangement on behalf of the user by exploiting several web services like online hotel reservations of flight bookings.
Today, a major obstacle to the successfull implementation of Semantic WS in many domains lies exactly in the problem of etablishing a shared ontology (even for well-understood applications domains like e-Commerce environments, many competing and partially incomptatible pseudo-standards can be found on the market). However, in the application domain of multimedia adaptation services, such a shared ontology is implicitly established by the existing
MPEG standards.
Building distributed multimedia systems with the goal of performing server-side resource adaptation is a research are with a quite long tradition. The main effort in that area for a long time were spent with the problem of coping with the hard real-time constraints when delivering continuous data. These challenges are in many cases mainly tackled with the development of lowlevel stream adaptation algorithms. Only few projects are known that try to exploit the extended metadata annotation available with the
MPEG standards.
ViTooKi, Video ToolKit project, [Schojer et al., 2003], [Boeszoermeny et al., 2003]
http://vitooki.sourceforge.net
Il existe le
MPEG-7 VariationSet Decription Scheme qui apporte des indices sur quand appliquer une adaptation et quel algorithme utiliser.
Ontologies in multimedia and semantic web technology:
- Addis & al. (2003), SCULPTEUR: Multimedia retrieval for Museums
- Kompatsiaris & al. (2004), Multimedia content indexing and retrieval using an ontology object
- Mezaris & al. (2004), Region-based image retrieval using an object ontology and relevance-feedback
- Qu & al. (2004), OREL: An Ontololy-based rights expression language