Indexation dans une description de document multimédia Indexing in a multimedia document description
La présente invention concerne d'une manière générale la recherche de document multimédia, c'est- à-dire de tout document audio ou vidéo comportant par exemple des images fixes ou animées, de la musique et/ou des dialogues. Elle concerne plus particulièrement la recherche de portions temporelles dans des documents multimédias.The present invention relates generally to the search for a multimedia document, that is to say any audio or video document comprising for example still or moving images, music and / or dialogues. It relates more particularly to the search for time portions in multimedia documents.
Face à l'accroissement rapide du volume de données multimédias, le groupe d'experts MPEG (Moving Pictures Experts Group) a décidé de normaliser un langage et un vocabulaire de description, constituant un dictionnaire (métabase) de données numériques multimédias Cmétadonnées) de manière à faciliter des opérations de recherche et d'indexation dans des bases de document multimédia. La norme correspondante MPEG-7 vise ainsi à normaliser la description (métadonnées) du contenu des documents multimédias, et non pas les moteurs de recherche et les mécanismes de définition des descriptions, afin de faciliter la gestion de documents multimédias. En référence à la figure 1, un document multimédia DM ayant une étendue dans le temps t est défini par une description qui prend typiquement la forme d'une liste de descripteurs contribuant chacun à la description d'une ou plusieurs portions temporelles restreintes respectives du document, appelées segments temporels de description SG. La liste de descripteurs est de préférence organisée comme une arborescence. Des segments associés à des descripteurs concernant l'ensemble du document, tel que le segment SGR au niveau supérieur dans la figure
1, se trouvent vers la racine de l'arborescence, et s'étendent quasiment sur tout le document ; des segments associés à des descripteurs concernant des détails du document multimédia constituent des feuilles, telles que le segment SGF au niveau d'une quatrième ligne dans la figure 1. Un descripteur associe une ou plusieurs valeurs à une ou plusieurs caractéristiques d'information du document multimédia. Par exemple, suivant la hiérarchie des segments de haut en bas dans la figure 1, un descripteur peut être relatif à des données textuelles générales relatives à un titre, à la date de publication, à l'auteur et au producteur du document multimédia (audiovisuel), ou au rythme d'une mélodie contenue dans le document DM, ou à la panoplie des couleurs d'une image contenue dans le document DM.Faced with the rapid increase in the volume of multimedia data, the group of experts MPEG (Moving Pictures Experts Group) decided to standardize a description language and vocabulary, constituting a dictionary (metabase) of digital multimedia data (metadata) to facilitate search and indexing operations in multimedia document databases. The corresponding MPEG-7 standard thus aims to standardize the description (metadata) of the content of multimedia documents, and not search engines and description definition mechanisms, in order to facilitate the management of multimedia documents. With reference to FIG. 1, a multimedia document DM having a time span t is defined by a description which typically takes the form of a list of descriptors each contributing to the description of one or more respective restricted time portions of the document , called SG description time segments. The descriptor list is preferably organized like a tree structure. Segments associated with descriptors for the entire document, such as the SGR segment at the top level in the figure 1, are located towards the root of the tree structure, and extend almost over the entire document; segments associated with descriptors relating to details of the multimedia document constitute sheets, such as the SGF segment at the level of a fourth line in FIG. 1. A descriptor associates one or more values with one or more information characteristics of the document multimedia. For example, according to the hierarchy of the segments from top to bottom in FIG. 1, a descriptor can relate to general textual data relating to a title, to the date of publication, to the author and to the producer of the multimedia document (audiovisual ), or to the rhythm of a melody contained in the DM document, or to the range of colors of an image contained in the DM document.
Le segment SGR associé notamment à des données textuelles générales décrivant le document multimédia DM chevauche tous les autres segments, tandis que le segment SG chevauche sept segments sous-jacents . En général, un "instant" t du document DM est décrit par plusieurs descripteurs attachés à plusieurs segments. Comme montré à la figure 2, l'instant t du document DM est décrit par les descripteurs de quatre segments se chevauchant g, d, b et a, indiqués en ligne grasse .The SGR segment associated in particular with general textual data describing the multimedia document DM overlaps all the other segments, while the SG segment overlaps seven underlying segments. In general, an "instant" t of the document DM is described by several descriptors attached to several segments. As shown in FIG. 2, the instant t of the document DM is described by the descriptors of four overlapping segments g, d, b and a, indicated in bold line.
Pour établir la liste des descripteurs de segment qui s'appliquent à un instant donné t, une application exploitant les métadonnées doit consulter la liste des segments. L'établissement de la liste des descripteurs est également nécessaire lorsque la description du document multimédia est en cours de construction ; chaque descripteur du document à
introduire doit être inséré au bon endroit dans la hiérarchie déjà existante des descripteurs.To establish the list of segment descriptors that apply at a given time t, an application using the metadata must consult the list of segments. The establishment of the list of descriptors is also necessary when the description of the multimedia document is under construction; each document descriptor to introduce must be inserted in the right place in the already existing hierarchy of descriptors.
L'établissement de la liste des descripteurs à l'instant t est en fait long et donc coûteux puisque dans le pire des cas, la liste des descripteurs de tout le document doit être parcourue pour être sûr de trouver tous les descripteurs pertinents à l'instant t. Pour constituer ou exploiter un arbre comportant N segments correspondant à une liste de N descripteurs, le nombre d'opérations à effectuer est de l'ordre de N2logN ou N2.The establishment of the list of descriptors at time t is in fact long and therefore expensive since in the worst case, the list of descriptors of the entire document must be searched to be sure to find all the descriptors relevant to the instant t. To constitute or exploit a tree comprising N segments corresponding to a list of N descriptors, the number of operations to be performed is of the order of N 2 logN or N 2 .
La présente invention vise à réduire le temps de recherche de descripteurs pertinents à l'instant donné t de manière à accéder rapidement à la description de tout instant donné d'un document multimédia. Plus précisément, l'invention fournit un procédé d'indexation pour document multimédia qui évite l'exploration de la liste complète des descripteurs du document multimédia à chaque requête de manière à réduire la durée et donc le coût de l'établissement d'une réponse comportant une liste de descripteurs, à environ NlogN ou N opérations.The present invention aims to reduce the search time for relevant descriptors at the given instant t so as to quickly access the description of any given instant of a multimedia document. More specifically, the invention provides an indexing method for multimedia document which avoids the exploration of the complete list of descriptors of the multimedia document with each request so as to reduce the duration and therefore the cost of establishing a response. including a list of descriptors, about NlogN or N operations.
A cette fin, un procédé pour exploiter des descripteurs de segments temporels d'un document multimédia dans un moyen de traitement de données est caractérisé en ce qu'il comprend une construction d'une structure d'indexation en arbre binaire ayant des noeuds qui sont constitués par des bornes temporelles prédéterminées de tous les segments, à raison d'une borne prédéterminée 'par segment, et à chacun desquels des pointeurs vers des segments qui chevauchent temporellement le noeud sont associés.
Grâce à la structure d'indexation dont l'arborescence est distincte de celle de la liste de descripteurs du document multimédia, l'accès à la description du document multimédia à n'importe quel instant de celui-ci est rapide.To this end, a method for exploiting descriptors of time segments of a multimedia document in a data processing means is characterized in that it comprises a construction of a binary tree indexing structure having nodes which are constituted by predetermined time across all segments at the rate of a predetermined terminal 'segment, and each of which pointers to segments that overlap in time the node are associated. Thanks to the indexing structure, the tree structure of which is distinct from that of the list of descriptors of the multimedia document, access to the description of the multimedia document at any time thereof is rapid.
Particulièrement, la construction de la structure d'indexation selon l'invention peut comprendre les étapes suivantes pour chaque segment courant du document multimédia : - si la borne prédéterminée du segment courant ne constitue pas un noeud déjà créé dans la structure d'indexation, créer un noeud correspondant à la borne prédéterminée et associer au noeud créé des pointeurs vers des segments chevauchant la borne prédéterminée, si la borne prédéterminée du segment courant constitue déjà un noeud créé, ajouter un pointeur vers le segment courant à la liste de pointeurs associée au noeud déjà créé, - puis ajouter le pointeur vers le segment courant aux listes des pointeurs associées à tous les noeuds chevauchant temporellement le segment courant. L'invention prévoit également les étapes suivantes pour retirer un segment prédéterminé du document multimédia : retirer tous les pointeurs vers le segment prédéterminé associés à des noeuds de la structure d'indexation, et retirer un noeud de la structure d'indexation si le noeud n'est associé à aucun pointeur vers d'autres segments, c'est-à-dire lorsque le noeud a été créé seulement pour le segment prédéterminé et aucun pointeur n'a été associé au noeud après sa création.
Lorsqu'un utilisateur souhaite rechercher la description du document à un instant prédéterminé, le procédé peut comprendre les étapes suivantes :In particular, the construction of the indexing structure according to the invention can comprise the following steps for each current segment of the multimedia document: - if the predetermined terminal of the current segment does not constitute a node already created in the indexing structure, create a node corresponding to the predetermined terminal and associate pointers to segments overlapping the predetermined terminal with the created node, if the predetermined terminal of the current segment already constitutes a created node, add a pointer to the current segment to the list of pointers associated with the node already created, - then add the pointer to the current segment to the lists of pointers associated with all the nodes temporally overlapping the current segment. The invention also provides the following steps for removing a predetermined segment from the multimedia document: removing all the pointers to the predetermined segment associated with nodes of the indexing structure, and removing a node from the indexing structure if the node n 'is associated with no pointer to other segments, that is to say when the node was created only for the predetermined segment and no pointer was associated with the node after its creation. When a user wishes to search for the description of the document at a predetermined instant, the method can comprise the following steps:
- parcourir l'arbre binaire de la structure d'indexation en commençant par la racine de l'arbre et en comparant l'instant prédéterminé successivement à tous les noeuds jusqu'à trouver le noeud sensiblement le plus proche de l'instant prédéterminé, et - constituer une réponse avec des descripteurs des segments qui sont associés au noeud trouvé .browse the binary tree of the indexing structure, starting with the root of the tree and comparing the predetermined instant successively with all the nodes until finding the node substantially closest to the predetermined instant, and - constitute a response with descriptors of the segments which are associated with the node found.
Lorsque par exemple les bornes prédéterminées des segments sont les bornes temporelles inférieures du segment et la recherche est effectuée à gauche de la racine de l'arbre d'indexation, le noeud sensiblement le plus proche de l'instant prédéterminé est le noeud associé à la borne temporelle inférieure la plus élevée qui est inférieure ou égale à l'instant prédéterminé. De même, lorsque les bornes prédéterminées des segments sont les bornes temporelles supérieures du segment et la recherche est effectuée à gauche de la racine de l'arbre d'indexation, le noeud sensiblement le plus proche de l'instant prédéterminé est le noeud associé à la borne temporelle supérieure la plus faible qui est supérieure ou égale à l'instant prédéterminé.When for example the predetermined limits of the segments are the lower time limits of the segment and the search is carried out to the left of the root of the indexing tree, the node substantially closest to the predetermined instant is the node associated with the the highest lower time bound which is less than or equal to the predetermined time. Likewise, when the predetermined limits of the segments are the upper time limits of the segment and the search is carried out to the left of the root of the indexing tree, the node substantially closest to the predetermined instant is the node associated with the lower upper time bound which is greater than or equal to the predetermined instant.
D'autres caractéristiques et avantages de la présente invention apparaîtront plus clairement à la lecture de la description suivante de plusieurs réalisations préférées de l'invention en référence aux dessins annexés correspondants dans lesquels :
la figure 1 est un diagramme temporel schématique de segments de description décrivant un document multimédia, déjà commentée ;Other characteristics and advantages of the present invention will appear more clearly on reading the following description of several preferred embodiments of the invention with reference to the corresponding appended drawings in which: FIG. 1 is a schematic time diagram of description segments describing a multimedia document, already commented on;
- la figure 2 est analogue à la figure 1 et montre par des segments en ligne grasse des segments de description relatifs à l'instant donné t ;- Figure 2 is similar to Figure 1 and shows by segments in bold line of the description segments relating to the given time t;
- la figure 3 est un diagramme temporel d'une liste de bornes prédéterminées de segments dans une structure d'indexation selon l'invention ; - la figure 4 montre schématiquement une structure d'indexation associée à l'arborescence du document multimédia montrée aux figures 1 et 2 ;- Figure 3 is a time diagram of a list of predetermined bounds of segments in an indexing structure according to the invention; - Figure 4 schematically shows an indexing structure associated with the tree structure of the multimedia document shown in Figures 1 and 2;
- la figure 5 est un algorithme de construction de structure d'indexation selon l'invention ; - la figure 6 est un algorithme de déconstruction de structure d'indexation selon 1 ' invention ;- Figure 5 is an indexing structure construction algorithm according to the invention; FIG. 6 is an algorithm for deconstruction of an indexing structure according to the invention;
- la figure 7 est un algorithme de recherche de description de document au moyen de la structure d'indexation ; et la figure 8 est une autre structure d'indexation, après réorganisation de la structure montrée à la figure 4 suite à un accès à un noeud.- Figure 7 is a document description search algorithm using the indexing structure; and FIG. 8 is another indexing structure, after reorganization of the structure shown in FIG. 4 following access to a node.
Une structure d'indexation SI selon l'invention, associée à la description (métadonnées) d'un document multimédia DM montrée à la figure 3 est illustrée selon un exemple à la figure 4. La structure d'indexation SI indexant les métadonnées comprend des première et deuxième parties.An indexing structure SI according to the invention, associated with the description (metadata) of a multimedia document DM shown in FIG. 3 is illustrated according to an example in FIG. 4. The indexing structure SI indexing the metadata comprises first and second parts.
Afin de fixer les idées, le document multimédia peut être un document avec des images fixes et/ou animées et des sons dans une banque de documents multimédias, un programme de télévision reçu en continu, un programme horaire de divertissement par
exemple de télévision ou de cinéma, ou un agenda, etc .In order to fix ideas, the multimedia document can be a document with still and / or moving images and sounds in a multimedia document bank, a television program received continuously, an hourly program of entertainment by example of television or cinema, or an agenda, etc.
La première partie est une liste de bornes temporelles prédéterminées ta à tp, par exemple les bornes inférieures situées à gauche, de tous les segments temporels a à p de la description de document multimédia DM. Les bornes ta à tp sont montrées à la figure 3 et la liste de ces bornes est organisée comme un arbre binaire montré à la figure . En variante, les bornes prédéterminées sont les bornes temporelles supérieures situées à droite de tous les segments, telles que la borne TS du segment courant SG au lieu de sa borne inférieure TI, comme montré à la figure 1. La deuxième partie de la structure d'indexation montrée à la figure 4 est un ensemble de listes de pointeurs Pa à Pp vers des segments. Chaque noeud ou feuille ta à tp de l'arbre binaire correspondant à une borne inférieure de segment de description est associé à une liste respective Pa à Pp qui contient l'ensemble des pointeurs vers des segments qui chevauchent la borne. Par exemple, la borne inférieure td d'un premier segment sur une troisième ligne dans la figure 3 chevauche les segments sus- jacents a et b, ce qui constitue une liste de pointeurs Pd = [d, b, a] ; selon un autre exemple les bornes inférieures te et to des derniers segments sur des deuxième et cinquième lignes dans la figure 3 sont alignées verticalement si bien qu'elles sont associées à une liste commune de pointeurs Pc = Po = [o, e, c, a]. Chaque noeud porte ainsi une liste de pointeurs vers les segments qui chevauchent la borne associée à ce noeud.The first part is a list of predetermined time limits ta to tp, for example the lower limits situated on the left, of all the time segments a to p of the description of multimedia document DM. The terminals ta to tp are shown in FIG. 3 and the list of these terminals is organized like a binary tree shown in the figure. As a variant, the predetermined limits are the upper time limits situated to the right of all the segments, such as the terminal TS of the current segment SG instead of its lower terminal TI, as shown in FIG. 1. The second part of the structure d the indexing shown in FIG. 4 is a set of lists of pointers Pa to Pp to segments. Each node or leaf ta to tp of the binary tree corresponding to a lower description segment terminal is associated with a respective list Pa to Pp which contains all of the pointers to segments which overlap the terminal. For example, the lower bound td of a first segment on a third line in Figure 3 overlaps the overlying segments a and b, which constitutes a list of pointers Pd = [d, b, a]; according to another example the lower limits te and to of the last segments on the second and fifth lines in FIG. 3 are aligned vertically so that they are associated with a common list of pointers Pc = Po = [o, e, c, at]. Each node thus carries a list of pointers to the segments which overlap the terminal associated with this node.
Comme on le verra plus loin, la structure d'indexation supporte des recherches rapides pour
accéder à la description DM d'un endroit précis du document multimédia.As we will see below, the indexing structure supports fast searches for access the DM description of a specific place in the multimedia document.
En pratique, le document multimédia (données) et la description (métadonnées) DM de celui-ci et la structure d'indexation SI sont enregistrés dans un moyen d'enregistrement commun • ou des moyens d'enregistrement respectifs, par exemple dans une mémoire, le disque dur ou un CD-ROM d'un moyen de traitement de données, tel qu'un serveur de base de document multimédia, ou un ordinateur personnel par exemple. Dans la mémoire ROM du moyen de traitement de données sont de préférence implémentés des algorithmes de construction-déconstruction AC-AD et de recherche AR selon l'invention, décrits ci-après.In practice, the multimedia document (data) and the description (metadata) DM thereof and the indexing structure SI are recorded in a common recording means • or respective recording means, for example in a memory , the hard disk or a CD-ROM of a data processing means, such as a multimedia document base server, or a personal computer for example. In the ROM of the data processing means are preferably implemented construction-deconstruction algorithms AC-AD and search AR according to the invention, described below.
Le moyen de traitement de données peut être encore un téléviseur afin de détecter un endroit précis d'un programme audiovisuel reçu, ou bien un assistant numérique personnel ou un radiotéléphone par exemple adapté à l'affichage de page WAPThe data processing means can also be a television set in order to detect a precise location of a received audiovisual program, or a personal digital assistant or a radiotelephone, for example suitable for displaying WAP pages.
(Wireless Access Protocol) pour 'détecter une page précise dans un menu déroulant, en tant que document multimédia, transmis par exemple par un site internet .(Wireless Access Protocol) to 'detect a specific page in a drop-down menu, as a multimedia document, transmitted for example by a website.
La structure d'indexation SI associée à la description (métadonnées) de document multimédia DM peut être construite dynamiquement au fur et à mesure de la création de la description de document DM et ainsi de l'écriture des segments avec leurs descripteurs (métadonnées) , en fonction des descripteurs, avant d'être enregistrée dans un fichier de métadonnées en mémoire dans le moyen de traitement de données, ou bien au fur et à mesure de la lecture du fichier de métadonnées, déjà créé, en
mémoire dans le moyen de traitement de données, avant la première exploitation du document DM. La structure d'indexation ne fait donc pas nécessairement partie du fichier de métadonnées. Selon une autre variante, lorsque la description de document multimédia est transmise au moyen de traitement de données, la structure d'indexation participe à la gestion des métadonnées et données reçues.The indexing structure SI associated with the description (metadata) of multimedia document DM can be built dynamically as the creation of the description of document DM and thus of the writing of the segments with their descriptors (metadata), as a function of the descriptors, before being recorded in a metadata file in memory in the data processing means, or alternatively as the metadata file, already created, is read, in memory in the data processing means, before the first use of the DM document. The indexing structure is therefore not necessarily part of the metadata file. According to another variant, when the multimedia document description is transmitted by means of data processing, the indexing structure participates in the management of the metadata and data received.
En référence à la figure 5, une structure d'indexation selon l'invention est construite essentiellement en enregistrant un à un les pointeurs des segments de description selon l'algorithme de construction AC d'étapes C0 à C9 montré à la figure 5. A l'étape de construction initiale C0, le premier segment a au niveau supérieur, à gauche dans l'arbre de description de document DM montrée à la figure 3, est désigné en tant que segment courant SG.With reference to FIG. 5, an indexing structure according to the invention is constructed essentially by recording the pointers of the description segments one by one according to the construction algorithm AC of steps C0 to C9 shown in FIG. 5. A the initial construction step C0, the first segment a at the upper level, on the left in the document description tree DM shown in FIG. 3, is designated as the current segment SG.
A l'étape Cl, la borne inférieure TI du segment courant SG, correspondant aux bornes ta à tp des segments a à p selon l'exemple illustré, est lue dans la mémoire contenant la description de document DM. Pour le segment courant, l'algorithme de construction AC vérifie si la borne TI est un noeud déjà existant dans la structure d'indexation arborescente à l'étape C2.In step C1, the lower terminal TI of the current segment SG, corresponding to the terminals ta to tp of the segments a to p according to the example illustrated, is read from the memory containing the description of document DM. For the current segment, the construction algorithm AC checks whether the terminal TI is a node already existing in the tree indexing structure in step C2.
Si la borne TI n'est pas un noeud déjà créé, notamment lorsque le segment courant est le premier segment traité ayant la borne TI, tel que le segment a, b, c, ... h, j, k, ... n, p, dans la figure 1, la borne TI du segment courant constitue alors un noeud d'indexation à l'étape C3. Le noeud d'indexation ainsi créé est marqué en mémoire en association avec le segment courant SG. Puis l'étape C4 enregistre en mémoire les pointeurs de tous les segments sus-
jacents, qui ont été déjà traités, chevauchant la borne TI du segment courant SG. Par exemple, lorsque le segment courant SG est le segment g avec la borne tg qui chevauche trois segments sus-jacents d, b et a, la liste Pg de pointeurs associée à cette borne est constitué par des pointeurs vers le segment courant g et les trois segments précités : Pg = [g, d, b, a].If the TI terminal is not a node already created, in particular when the current segment is the first segment processed having the TI terminal, such as the segment a, b, c, ... h, j, k, ... n, p, in FIG. 1, the terminal TI of the current segment then constitutes an indexing node in step C3. The indexing node thus created is marked in memory in association with the current segment SG. Then step C4 stores in memory the pointers of all the above-mentioned segments. overlapping, which have already been dealt with, overlapping the TI terminal of the current segment SG. For example, when the current segment SG is the segment g with the terminal tg which overlaps three overlying segments d, b and a, the list Pg of pointers associated with this terminal is constituted by pointers to the current segment g and the three aforementioned segments: Pg = [g, d, b, a].
A l'étape suivante C5, la partie de l'arbre de description que le segment courant SG chevauche temporellement est parcourue jusqu'à la borne supérieure TS du segment SG afin d'ajouter à chaque noeud sus-jacent le pointeur vers le segment courant SG. Par exemple, lorsque le segment courant est le segment e associé à la borne te, le pointeur associé au segment e est ajouté dans la liste Pc de pointeurs associée au segment c puisque la borne te est comprise entre les bornes inférieure et supérieure du segment e, afin que la liste Pc passe de [c, a] à [e, c, a].In the next step C5, the part of the description tree that the current segment SG overlaps in time is traversed up to the upper terminal TS of the segment SG in order to add to each overlying node the pointer to the current segment SG. For example, when the current segment is the segment e associated with the terminal te, the pointer associated with the segment e is added to the list Pc of pointers associated with the segment c since the terminal te is between the lower and upper bounds of the segment e , so that the list Pc goes from [c, a] to [e, c, a].
Finalement, à l'étape C6, le segment courant SG passe au prochain segment sur le même niveau, ou au premier segment sur le niveau suivant inférieur. A l'étape C7 le procédé revient à l'étape Cl tant que les bornes inférieures de tous les segments n'ont pas été traitées. Sinon l'algorithme de construction passe à l'étape finale C9.Finally, in step C6, the current segment SG goes to the next segment on the same level, or to the first segment on the next lower level. In step C7 the method returns to step C1 as long as the lower bounds of all the segments have not been processed. Otherwise the construction algorithm goes to the final step C9.
En revenant à l'étape C2, lorsque la borne inférieure TI du segment courant SG est déjà confondue avec un noeud d'indexation précédemment créé, la liste de pointeurs associée à ce noeud est complétée par le pointeur vers le segment courant SG. Par exemple, si le segment courant est le segment o correspondant à la borne to sur l'avant-dernière ligne dans la figure 3 et confondue avec le noeud te
déjà créé pour le segment sus-jacent c, le pointeur vers le segment o est ajouté à la liste Pc = [e, c, a] associée au segment o.Returning to step C2, when the lower limit TI of the current segment SG is already confused with an indexing node previously created, the list of pointers associated with this node is completed by the pointer to the current segment SG. For example, if the current segment is the segment o corresponding to the terminal to on the penultimate line in figure 3 and confused with the node te already created for the overlying segment c, the pointer to the segment o is added to the list Pc = [e, c, a] associated with the segment o.
Puis après l'étape C8, l'algorithme de construction AC passe à l'étape C5 déjà décrite.Then after step C8, the construction algorithm AC goes to step C5 already described.
Selon l'exemple précédent, le pointeur vers le segment o est alors ajouté à la liste Pn = [n, e, c, a] associée au segment n.According to the previous example, the pointer to the segment o is then added to the list Pn = [n, e, c, a] associated with the segment n.
Selon un autre exemple, lorsque la borne TI du segment courant est la borne ti confondue avec la borne te, le pointeur vers le segment i est ajouté à la liste de pointeurs Pe = [e, b, a] à l'étape C8, et le pointeur vers le segment i n'est ajouté dans aucune autre liste de pointeurs à l'étape C5 puisque le segment i n'est pas chevauché par d'autres bornes.According to another example, when the terminal TI of the current segment is the terminal ti merged with the terminal te, the pointer to the segment i is added to the list of pointers Pe = [e, b, a] in step C8, and the pointer to segment i is not added to any other list of pointers in step C5 since segment i is not overlapped by other bounds.
Après l'étape C7, l'étape C9 détermine la racine de la structure d'indexation SI et par suite établit l'arbre binaire de la structure d'indexation SI afin qu'il soit relativement équilibré, c'est-à-dire qu'il présente une profondeur la plus petite possible. Selon l'exemple montré à la figure 4, la racine tj se trouve sensiblement au milieu de la durée du document multimédia, ou d'une portion de celui-ci lorsque celui-ci est divisé initialement, afin d'avoir sensiblement une répartition équilibrée des noeuds et feuilles de part et d'autre de la racine. La structure SI ainsi construite et équilibrée est enregistrée dans le moyen de traitement de données. L'équilibrage de la structure d'indexation intervient après toute insertion ou retrait de noeud, mais également après chaque recherche de noeud, comme on le verra plus loin.After step C7, step C9 determines the root of the indexing structure SI and consequently establishes the binary tree of the indexing structure SI so that it is relatively balanced, that is to say that it has the smallest possible depth. According to the example shown in FIG. 4, the root tj is located approximately in the middle of the duration of the multimedia document, or of a portion of it when the latter is divided initially, in order to have substantially a balanced distribution. knots and leaves on either side of the root. The SI structure thus constructed and balanced is recorded in the data processing means. The indexing structure is balanced after any node insertion or removal, but also after each node search, as we will see below.
Lorsque le moyen de traitement de données reçoit une requête pour retirer un segment prédéterminé SG
dans la description de document multimédia DM montrée à la figure 4, l'algorithme de déconstruction AD montré à la figure 6 comprenant des étapes DO à D7 est exécuté. L'algorithme AD est également activé lorsque l'utilisateur ne souhaite pas conserver des parties anciennes du document multimédia, devenues caduques ; par exemple lorsque le document multimédia est un programme de télévision continu, les parties de celui-ci reçues déjà visualisées sont détruites automatiquement; selon un autre exemple, un programme hebdomadaire de télévision n'est détruit qu'à la fin de la semaine.When the data processing means receives a request to withdraw a predetermined segment SG in the description of multimedia document DM shown in FIG. 4, the deconstruction algorithm AD shown in FIG. 6 comprising steps DO to D7 is executed. The AD algorithm is also activated when the user does not wish to keep old parts of the multimedia document, which have lapsed; for example when the multimedia document is a continuous television program, the parts of it received already viewed are automatically destroyed; in another example, a weekly television program is not destroyed until the end of the week.
A des étapes initiales DOl et D02, après avoir déterminé le segment prédéterminé, éventuellement caduque, SG = [TI, TS] à retirer, un noeud courant ND est d'abord constitué par la borne inférieure TI du segment SG. L'algorithme de déconstruction AD vérifie à l'étape Dl si le pointeur vers le segment SG à retirer appartient au noeud courant ND. Comme le pointeur vers le segment à retirer SG appartient nécessairement au premier noeud courant ND = TI, l'étape D2 retire le pointeur vers le segment prédéterminé SG dans le noeud ND = TI.At initial steps DO1 and D02, after having determined the predetermined segment, possibly lapsed, SG = [TI, TS] to be removed, a current node ND is first constituted by the lower terminal TI of the segment SG. The deconstruction algorithm AD checks in step D1 whether the pointer to the segment SG to be removed belongs to the current node ND. As the pointer to the segment to be removed SG necessarily belongs to the first current node ND = TI, step D2 removes the pointer to the predetermined segment SG in the node ND = TI.
Puis à l'étape D3, l'algorithme AD vérifie s'il existe dans la liste des pointeurs associée au noeud courant ND, un pointeur vers un segment sous-jacent au segment prédéterminé SG. Si la liste de pointeurs pour le noeud courant ND ne comporte pas au moins un pointeur vers un noeud sous-jacent, c'est-à-dire si le noeud ND est un véritable noeud de création marqué à l'étape C3, sans adjonction de pointeur ultérieure à l'étape C5 après la création du noeud, l'étape D4 retire le noeud courant ND ; par exemple, si le noeud courant ND est la borne inférieure tg ou tk, la liste de pointeurs Pg = [g, d, b, a] ou Pk = [k, e, a] est
retirée de la structure d'indexation SI à l'étape D . Plus généralement, l'étape D4 est assurément exécutée lorsque le noeud courant ND n'est associé à aucun pointeur vers un segment autre que le segment prédéterminé.Then in step D3, the algorithm AD checks whether there is in the list of pointers associated with the current node ND, a pointer to a segment underlying the predetermined segment SG. If the list of pointers for the current node ND does not include at least one pointer to an underlying node, that is to say if the node ND is a real creation node marked in step C3, without adding pointer subsequent to step C5 after the creation of the node, step D4 removes the current node ND; for example, if the current node ND is the lower bound tg or tk, the list of pointers Pg = [g, d, b, a] or Pk = [k, e, a] is removed from the SI indexing structure in step D. More generally, step D4 is certainly executed when the current node ND is not associated with any pointer to a segment other than the predetermined segment.
Par contre, à l'étape D3, si la liste attachée au noeud courant ND contient un pointeur vers le segment sous-jacent, l'algorithme passe au noeud suivant à l'étape suivante D5. L'étape D3 est également suivie par 1 ' étape D5 lorsque le noeud courant n'est pas confondu avec la borne inférieure TI du segment prédéterminé SG ; par exemple, seulement le pointeur vers le segment prédéterminé c est retiré à l'étape D2 lorsque le noeud courant est te, puisque le noeud to relatif à la borne inférieure du segment o sous-jacent au segment c doit être conservé à l'étape D3.On the other hand, in step D3, if the list attached to the current node ND contains a pointer to the underlying segment, the algorithm goes to the next node in the next step D5. Step D3 is also followed by step D5 when the current node is not merged with the lower limit TI of the predetermined segment SG; for example, only the pointer to the predetermined segment c is removed in step D2 when the current node is te, since the node to relating to the lower bound of the segment o underlying the segment c must be kept in step D3.
Après l'étape Dl ou D3 ou D4 , l'étape D5 passe au noeud suivant inférieur à la borne supérieure TS du segment prédéterminé SG, et à l'étape D6, tant que le noeud suivant devenant le noeud courant existe, l'algorithme AD est réitéré à partir de l'étape Dl . Lorsque tous les noeuds entre les bornes TI et TS du segment prédéterminé SG ont été traité, l'algorithme AD passe de l'étape Dβ à l'étape D7 pour retirer le segment courant SG de la structure d'indexation SI.After step D1 or D3 or D4, step D5 goes to the next node below the upper bound TS of the predetermined segment SG, and to step D6, as long as the next node becoming the current node exists, the algorithm AD is repeated from step D1. When all the nodes between the terminals TI and TS of the predetermined segment SG have been processed, the algorithm AD passes from step Dβ to step D7 to remove the current segment SG from the indexing structure SI.
Lorsqu'une requête contenant un "instant" prédéterminé t est reçue par le moyen de traitement de données contenant la structure d'indexation SI montrée à la figure 4, relative à la description de document multimédia DM montrée à la figure 3, le moyen de traitement met en oeuvre l'algorithme de recherche AR pour comparer 1 ' instant t aux noeuds de la structure d'indexation jusqu'à trouver
l'intervalle de noeuds successifs auquel l'instant t appartient et choisir par exemple le noeud formant la borne inférieure de cet intervalle, comme noeud le plus proche de l'instant t. Grâce à la structure arborescente d'indexation SI, la recherche est très rapide .When a request containing a predetermined "instant" t is received by the data processing means containing the indexing structure SI shown in FIG. 4, relating to the description of multimedia document DM shown in FIG. 3, the means of processing implements the AR search algorithm to compare the instant t with the nodes of the indexing structure until finding the interval of successive nodes to which the instant t belongs and choosing for example the node forming the lower bound of this interval, as the node closest to the instant t. Thanks to the tree structure of indexing SI, the search is very fast.
Comme montré à la figure 7 et illustré par des segments en ligne grasse à la figure 4, l'algorithme de recherche AR commence par la racine de la structure arborescente d'indexation SI, en comparant 1 ' instant prédéterminé t à la borne inférieure formant racine, en l'occurrence la borne tj selon la figure 4. Puis à des étapes suivantes R2, R3, R4, R5 si t < tj, l'instant t est comparé successivement au moins à l'une des bornes th, tf, tb, ta selon leur ordre décroissant le long de la branche principale de gauche de l'arbre d'indexation jusqu'à trouver l'une de ces bornes la plus élevée qui est inférieure ou égale à l'instant prédéterminé t ; de même, à des étapes suivantes R6, R7, R8 si t > tj , l'instant t est comparé successivement au moins à l'une des bornes tl, te et tp selon leur ordre croissant le long de la branche principale de droite de l'arbre d'indexation jusqu'à trouver la borne la plus élevée qui est supérieure à l'instant prédéterminé t. Si l'instant t est plus petit que toutes les bornes décroissantes th, tf, tb et ta ou est plus grand que toutes les bornes croissantes tl, te et tp, l'instant t n'appartient pas au document DM à l'étape R58 et le moyen de traitement répond par un refus d ' information .As shown in FIG. 7 and illustrated by segments in bold line in FIG. 4, the search algorithm AR begins with the root of the tree structure of indexing SI, by comparing the predetermined instant t with the lower bound forming root, in this case the terminal tj according to FIG. 4. Then at the following steps R2, R3, R4, R5 if t <tj, the instant t is successively compared at least with one of the terminals th, tf, tb, ta according to their decreasing order along the left main branch of the indexing tree until one of these highest limits is found which is less than or equal to the predetermined instant t; similarly, in following steps R6, R7, R8 if t> tj, the instant t is successively compared at least with one of the limits tl, te and tp according to their increasing order along the main branch of right the indexing tree until the highest bound is found which is greater than the predetermined instant t. If the instant t is smaller than all the decreasing bounds th, tf, tb and ta or is larger than all the increasing bounds tl, te and tp, the instant t does not belong to the document DM in step R58 and the processing means responds with a refusal of information.
En revanche, si l'instant prédéterminé t est supérieur à l'une des bornes croissantes, par exemple t > tf selon la figure 4, c'est-à-dire si l'algorithme AR a parcouru les segments de branche
[tj, th] et [th, tf], une étape R31 vérifie si une feuille à partir du noeud trouvé tf existe. S'il n'y a pas de feuille, alors la réponse est constituée par la liste de descripteurs relatifs aux segments [f, d, b, a] pointés au noeud trouvé tf. Si une feuille existe à partir du noeud tf, comme montré à la figure 4, l'étape R3 est suivie par l'étape R31 qui compare l'instant prédéterminé t à l'extrémité de feuille tg. Si t < tg à une étape R32, c'est-à-dire si tf < t < tg, alors la réponse est constituée par la liste des descripteurs des segments Pf = [f, d, b, a]. Si t > tg à l'étape R32, c'est-à-dire si tg < t < th, la réponse est constituée par la liste des descripteurs des segments Pg = [g, d, b, a] pointés au noeud trouvé tg.On the other hand, if the predetermined instant t is greater than one of the increasing bounds, for example t> tf according to FIG. 4, that is to say if the algorithm AR has traversed the branch segments [tj, th] and [th, tf], a step R31 checks whether a leaf from the node found tf exists. If there is no sheet, then the response consists of the list of descriptors relating to the segments [f, d, b, a] pointed at the node found tf. If a leaf exists from the node tf, as shown in FIG. 4, step R3 is followed by step R31 which compares the predetermined instant t with the leaf end tg. If t <tg at a step R32, that is to say if tf <t <tg, then the response is constituted by the list of descriptors of the segments Pf = [f, d, b, a]. If t> tg in step R32, that is to say if tg <t <th, the response is constituted by the list of descriptors of the segments Pg = [g, d, b, a] pointed at the node found tg.
Ainsi lorsqu'une borne th à, ta selon l'ordre décroissant est trouvée inférieure à l'instant prédéterminé t, l'étape respective R2, R3, R4 , R5 est suivie d'étapes respectives R21-R23, R31-R33, R41- R43, R51 en fonction de l'existence de feuilles respectives sous-jacentes, et lorsqu'une borne tl à tp selon l'ordre croissant est trouvée supérieure à l'instant prédéterminé t, l'étape respective Rβ, R7 , R8 est suivie d'étapes respectives R61-R63, R71-R73, R81-R83 en fonction de l'existence de feuilles respectives sous-jacentes . Par exemple, si ta < t < tb, l'étape R51 désigne le descripteur du segment a comme unique réponse ; selon un autre exemple, lorsque tj < t < tk, l'étape R62 introduit la liste des descripteurs des segments Pj = [j , e, b, a] dans la réponse.Thus when a terminal th to, ta in decreasing order is found to be less than the predetermined instant t, the respective step R2, R3, R4, R5 is followed by respective steps R21-R23, R31-R33, R41 - R43, R51 as a function of the existence of respective underlying sheets, and when a terminal tl to tp in ascending order is found to be greater than the predetermined instant t, the respective step Rβ, R7, R8 is followed by respective steps R61-R63, R71-R73, R81-R83 depending on the existence of respective underlying sheets. For example, if ta <t <tb, step R51 designates the descriptor of segment a as the sole response; according to another example, when tj <t <tk, step R62 introduces the list of descriptors of the segments Pj = [j, e, b, a] in the response.
Les descripteurs attachés aux segments trouvés chevauchant 1 ' instant prédéterminé t informent des caractéristiques du document DM à l'instant prédéterminé t. Grâce à l'indexation, la recherche
est rapide puisqu'une petite partie de la structure d'indexation et donc du document DM est parcourue.The descriptors attached to the segments found overlapping the predetermined instant t inform of the characteristics of the document DM at the predetermined instant t. Thanks to indexing, the search is fast since a small part of the indexing structure and therefore of the DM document is traversed.
L'arbre binaire de la structure d'indexation SI selon l'invention a la particularité d'être réorganisé automatiquement dans le moyen de traitement de données après chacune des étapes R22, R23, R32, ... R51, R62, R63, R72, ... R83 de façon à diminuer la durée des prochaines recherches particulièrement au voisinage de l'instant dernièrement recherché. La réorganisation à chaque requête d'accès consiste en ce que le noeud trouvé, typiquement le noeud tg trouvé à l'étape R33 avec les pointeurs [g, d, b, a] selon l'exemple montré à la figure 4, constitue la racine de l'arbre de la structure d'indexation, comme montré à la figure 8. La constitution de réponses à des requêtes suivantes vers ce noeud trouvé formant la racine ou vers des noeuds proches de celui-ci est ainsi extrêmement rapide. L'accès local à de tels noeuds est répété relativement souvent dans de nombreuses applications ce qui permet de réduire les temps de recherche et d'accès conformément à l'objectif visé par 1 ' invention.The binary tree of the indexing structure SI according to the invention has the particularity of being automatically reorganized in the data processing means after each of the steps R22, R23, R32, ... R51, R62, R63, R72 , ... R83 so as to reduce the duration of the next searches, particularly in the vicinity of the most recently searched time. The reorganization at each access request consists in that the node found, typically the node tg found in step R33 with the pointers [g, d, b, a] according to the example shown in FIG. 4, constitutes the root of the tree of the indexing structure, as shown in figure 8. The constitution of responses to subsequent requests to this found node forming the root or to nodes close to it is thus extremely fast. Local access to such nodes is repeated relatively often in numerous applications, which makes it possible to reduce the search and access times in accordance with the objective sought by the invention.
Dans la description ci-dessus, il a été supposé que la description du document multimédia est disponible entièrement pendant toute la succession d'opérations. Dans certaines applications, les métadonnées du document multimédia comportant les descripteurs des segments sont susceptibles d'être reçues et traitées de façon continue, en mode "streaming", par le moyen de traitement de données. La réception des données n'aboutit pas nécessairement à une fin, et la structure d'indexation selon l'invention est alors construite progressivement et
utilisable au fur et à mesuré de la réception continue des segments de description (métadonnées) du document multimédia DM. Ainsi les étapes de construction C0 à C9 sont exécutées pour chaque nouveau segment de description reçu et sont entrelacées dans le moyen de traitement avec des étapes de recherche selon un algorithme similaire à 1 ' algorithme AR pour la recherche de descripteurs de segments du document multimédia à un instant prédéterminé t. Pour éviter que la taille de la structure d'indexation ne croisse sans limite, la structure d'indexation est "déconstruite" en continu, selon l'algorithme AD montré à la figure 6, en enlevant au fur et à mesure les segments caduques trop éloignés dans le passé pour être utiles. Les étapes de déconstruction D0 à D7 montrées à la figure 6 pour le retrait au moins d'un segment du document multimédia sont alors entrelacées avec les étapes des algorithmes de construction et de recherche AC et AR. La structure d'indexation peut être ainsi maintenue dans une "fenêtre" glissante dans le temps, et donc bien adapté au mode de réception et traitement continus "streaming".In the description above, it has been assumed that the description of the multimedia document is available entirely during the entire succession of operations. In certain applications, the metadata of the multimedia document comprising the descriptors of the segments may be received and processed continuously, in "streaming" mode, by the data processing means. The reception of the data does not necessarily lead to an end, and the indexing structure according to the invention is then gradually built up and usable as measured by the continuous reception of the description segments (metadata) of the multimedia document DM. Thus the construction steps C0 to C9 are executed for each new description segment received and are interleaved in the processing means with search steps according to an algorithm similar to the AR algorithm for searching for descriptors of segments of the multimedia document to a predetermined instant t. To prevent the size of the indexing structure from growing without limit, the indexing structure is "deconstructed" continuously, according to the AD algorithm shown in Figure 6, gradually removing the deciduous segments too distant in the past to be useful. The deconstruction steps D0 to D7 shown in FIG. 6 for removing at least one segment from the multimedia document are then interleaved with the steps of the construction and search algorithms AC and AR. The indexing structure can thus be maintained in a "window" sliding over time, and therefore well suited to the continuous "streaming" reception and processing mode.
Grâce à la propriété précédente de construction/déconstruction en continu de la structure d'indexation selon l'invention, celle-ci peut constituer avantageusement un support pour gérer l'état de la description (métadonnées) dans le moyen de traitement qui reçoit la description. Comme déjà dit, la description elle-même du document multimédia livrée de façon continue est susceptible de croître sans limite dans le moyen de traitement qui reçoit le flux de description. Pour éviter la saturation, le moyen de traitement de données élimine les parties
caduques. La structure d'indexation comprend toute information nécessaire pour cette tâche.
Thanks to the previous property of continuous construction / deconstruction of the indexing structure according to the invention, this can advantageously constitute a support for managing the state of the description (metadata) in the processing means which receives the description. . As already said, the description itself of the multimedia document delivered continuously is liable to grow without limit in the processing means which receives the description flow. To avoid saturation, the data processing means eliminates the parts deciduous. The indexing structure includes all the information necessary for this task.