Brevet FR2842979A1 — publié le 20040130

i La présente invention se rapporte à un procédé et à un dispositif de traitement de données numériques. L'invention s'applique plus particulièrement au traitement de données audio vidéo. Lorsqu'un document vidéo est codé à l'aide de données numériques et stocké sur un support d'enregistrement, il est connu de traiter ces données de façon à permettre à un utilisateur de modifier le sens et/ou la vitesse d'affichage du document lors de sa relecture depuis le support d'enregistrement. Dans la suite du document, on considère qu'un sens et une vitesse d'affichage donnés définissent un mode d'affichage. Un procédé connu de mise en oeuvre de différents modes d'affichage exige la production en mémoire et le stockage de données qui décrivent le flux vidéo numérique enregistré. Pour un flux codé selon la norme MPEG (acronyme anglais de " Motion Picture Expert Group "), ces données sont constituées de l'accumulation de descripteurs des syntaxes définies par la norme MPEG ( Séquences, Pictures, GOPs (acronyme anglais de " Group Of Pictures "), PES (acronyme anglais de " Packet Elementry Streams ") Packets). Un descripteur est constitué d'un type l'identifiant (Séquence, Picture, GOP ou paquet PES, d'attributs utiles ( " ouvert " ou " fermé " pour le GOP, alignement pour les paquets PES, type de prédiction pour l'image, etc...) et d'informations sur la localisation de la syntaxe décrite dans le flux enregistré afin que cette syntaxe puisse être retrouvée sur le support d'enregistrement. Ainsi, sur la figure 1, alors que le flux vidéo numérique Fi et les composantes associées traversent une unité d'indexage 10 avant d'être stockés sur un support d'enregistrement (CD, DVD, disque dur...) 3 0 11, les informations d'indexage produites par l'unité d'indexage 10 sont traduites en descripteurs et rangées dans un tampon mémoire 12 avant d'être elles même sauvegardées sur un support d'enregistrement 11. Sur la figure 2, lors de la relecture des données dans le support d'enregistrement 11, les descripteurs stockés dans le support d'enregistrement 11 sont rechargés dans un tampon mémoire 13 puis traités par un contrôleur 14 pour réaliser le mode d'affichage requis en alimentant de manière adaptée un décodeur 15 avec les images du flux Fp enregistré sur un support d'enregistrement 1 1. Sur la figure 3, un dispositif 100 utilisant différents modes d'affichage comprend généralement une mémoire vive contenant au moins deux tampons 102 et 104 utilisés, respectivement, pour effectuer le stockage des descripteurs, et pour effectuer la lecture de ces descripteurs et comprend également un support d'enregistrement 108. Le stockage des descripteurs sur le support d'enregistrement 108 est organisé en unités de description 110 de taille maximale prédéfinie de 32ko pouvant être sauvegardées ou rechargées entre le support d'enregistrement 108 et les tampons mémoire 102 et 104. Cette solution permet de ne conserver qu'une petite partie des descripteurs en mémoire pendant leur acquisition ou leur exploitation et de les ranger sur le support d'enregistrement 108 ou de les charger du support d'enregistrement 108 au fur et à mesure des besoins. Les unités 106 représentent les unités de stockage des données vidéo associées aux descripteurs stockées dans les unités de description 110. Il s'ensuit que pendant l'enregistrement d'un flux vidéo numérique sur le support d'enregistrement 108, les descripteurs produits rentrent dans la construction d'une unité de description dans un tampon mémoire 102. Dès que l'unité de description remplit les conditions requises pour sa sauvegarde, elle est stockée sur le support d'enregistrement 108, et la construction d'une nouvelle unité de description commence. Pendant la relecture simultanée du flux en cours d'enregistrement, les unités de description nécessaires à l'analyse du flux enregistré sont chargées du support d'enregistrement 108 en mémoire 104. 3 tampons mémoire 104a, 104b, 104c sont utilisés à cet effet et gérés comme les lignes d'une mémoire cache afin de conserver les derniers descripteurs analysés en mémoire pendant l'analyse d'un nouveau descripteur. Ce mécanisme facilite les 1o changements de direction dans l'analyse du flux qui nécessiteraient de recharger rapidement les derniers flux analysés. La présente invention résulte de la constatation que, lorsqu'une unité de description est en cours de formation, les images dont les descripteurs sont en cours de stockage ne sont pas accessibles jusqu'à ce que l'unité de description soit sur le support d'enregistrement, ce qui peut prendre plusieurs secondes ou dizaines de secondes. Dans le cas d'images codées selon la norme MPEG, si la taille des descripteurs est de l'ordre de 40 octets, que chaque paquet PES, chaque image MPEG, et chaque séquence MPEG sont indexés, à raison de 12 images par séquence, plus de 10 secondes de vidéo seront décrites dans une unité de stockage de 32Ko. Il faut alors attendre plus de 10 secondes pour visualiser un programme après le début de son enregistrement, ce qui est très pénalisant pour réaliser une relecture différée proche de l'enregistrement direct. A cet effet l'invention propose un procédé de traitement de descripteurs de données numériques stockés sous la forme d'unités de description de taille prédéterminée, dans lequel - on construit et on stocke dans des tampons mémoires des unités de description préalablement à leur enregistrement sur un support 3 0 d'enregistrement, - on exploite des unités de description simultanément à la construction et à l'enregistrement d'unités de description du même flux. Selon l'invention, - on utilise un même tampon mémoire pour la construction et l'exploitation des unités de description. Selon un mode préféré de réalisation, les données étant groupées en séquence, les descripteurs associés à ces données étant également groupés en séquence, on constitue une unité de description à partir d'au moins une séquence contenant au moins un descripteur, chaque unité de description ne contenant que des séquences complètes de descripteurs. Dans une unité de description, les descripteurs sont groupés en séquences logiques telles que le traitement, encore appelé l'exploitation, d'une séquence de descripteurs ne nécessite pas les descripteurs d'une autre séquence. Ainsi, dans le cas d'un flux codé selon la norme MPEG, tous les descripteurs se rapportant aux syntaxes contenues dans une même séquence MPEG appartiennent à une même séquence logique: descripteur de la séquence, du GOP, de toutes les images qu'elle contient et des paquets PES qui contiennent ces images. Selon un mode préféré de réalisation, on transfère une unité de description complète à partir du tampon mémoire sur le support d'enregistrement lorsque la place disponible dans le tampon mémoire est inférieure à la place mémoire nécessaire pour y enregistrer une séquence de descripteur complète. Ainsi, une unité de description est sauvegardée sur le support d'enregistrement lorsque la place restante dans le tampon mémoire n'est pas 3 0 suffisante pour contenir une autre séquence de descripteurs de même taille. Selon un mode préféré de réalisation, lorsque les séquences de descripteurs sont de taille variable, on transfère une unité de description à partir du tampon mémoire sur le support d'enregistrement lorsque à l'issue de l'ajout d'un descripteur dans le tampon mémoire, le tampon mémoire est plein. Selon un mode préféré de réalisation, suite à l'enregistrement de séquences de descripteurs complètes d'un tampon mémoire vers le support d'enregistrement, on transfère les descripteurs contenus à la fin du tampon mémoire et appartenant à une séquence de descripteurs incomplète au début du tampon mémoire. Selon un mode préféré de réalisation, à l'issu du stockage d'une unité de description dans le support d'enregistrement, on construit une nouvelle unité de description dans le tampon mémoire associée à ladite unité de description si les unités de description contenues dans ce tampon mémoire ne sont pas en cours d'exploitation et dans un autre tampon mémoire si ces unités de description sont en cours d'exploitation. Selon un mode préféré de réalisation, à l'issu de l'exploitation d'une unité de description, si l'unité de description suivante n'est pas encore accessible sur le support d'enregistrement, alors on exploite l'unité de description en cours de construction. Selon un mode préféré de réalisation, lorsqu'une unité de description est simultanément en cours de construction et d'exploitation dans un même tampon mémoire, on exploite uniquement les séquences de descripteurs complètes. L'invention concerne également un produit programme d'ordinateur comprenant des instructions de codes de programme pour l'exécution des 3 0 étapes du procédé de traitement de descripteurs de données numériques selon l' invention, lorsque ledit programme est exécuté sur un ordinateur. L'invention concerne également un dispositif de traitement de descripteurs de données numériques stockés sous la forme d'unités de description de taille prédéterminée, comprenant - des moyens de construire et de stocker dans des tampons mémoires des unités de description préalablement à leur enregistrement sur un support d'enregistrement, - des moyens d'exploiter des unités de description simultanément à la construction et à l'enregistrement d'unités de description du même flux. Selon l'invention, - les moyens de construction et d'exploitation sont prévus pour utiliser un même tampon mémoire pour la construction et l'exploitation des unités de description. D'autres caractéristiques et avantages de l'invention apparaîtront dans la description effectuée ci-dessous, à titre non limitatif, en référence aux figures suivantes: - La figure 1, déjà décrite, représente un dispositif mettant en oeuvre l'enregistrement de descripteurs sur un support d'enregistrement selon l'art antérieur. - La figure 2, déjà décrite, représente un dispositif mettant en oeuvre la relecture de descripteurs sur un support d'enregistrement selon l'art antérieur. - La figure 3, déjà décrite, représente le fonctionnement d'un dispositif permettant d'utiliser différents modes d'affichages de données vidéo codées sous le format MPEG, - La figure 4 représente une première configuration des tampons mémoire selon un mode de réalisation de l'invention, - La figure 5 représente une seconde configuration des tampons mémoire selon un mode de réalisation de l'invention. - La figure 5 représente une seconde configuration des tampons mémoire selon un mode de réalisation de l'invention. - Les figures 6a, 6b, 7a, 7b, 8a et 8b représentent des modes de fonctionnement de ressources de stockage conformes à un mode de réalisation de l'invention. Sur la figure 4, le tampon mémoire 20 contient trois séquences de descripteurs 21, 22, et 23. Comme le dernier descripteur rentrant dans la séquence 23 vient d'être rangé dans le tampon mémoire 20, il apparaît que la place restante 24 dans le tampon mémoire 20 n'est pas suffisante pour contenir une séquence de descripteur de la taille de la séquence 23. On en déduit donc que dans ce cas, l'unité de description 25 constituée des séquences de descripteurs 21, 22 et 23 est complète et peut être sauvegardée sur le support d'enregistrement. La figure 5 représente un cas de configuration dans lequel les séquences de descripteurs n'ont pas toutes les mêmes tailles. Lorsque les séquences de descripteurs n'ont pas toujours la même taille, ceci rend difficile l'estimation de la place nécessaire à leur stockage complet, on sauvegarde une unité de description lorsqu'il n'y a plus de place dans le tampon mémoire servant à sa construction. Dans ce cas, l'unité de description est sauvegardée immédiatement avec les séquences complètes la constituant. La séquence incomplète restant à la fin du tampon mémoire est alors recopiée dans le nouveau tampon de construction et constitue le début de la nouvelle unité de description. Le tampon mémoire 30 contient trois séquences de descripteurs 31, 32, et 33. Le dernier descripteur produit, entrant dans la séquence 33, vient d'être rangé dans le tampon mémoire 30 qui est maintenant plein. Les séquences 31 et 32 constituent donc une unité de description 35 complète qui est sauvegardée sur le support d'enregistrement. La séquence incomplète 33 est recopiée au début d'un tampon mémoire et appartiendra à la prochaine unité de description. Cette méthode a l'avantage de ne pas nécessiter de tampon mémoire d'une taille supérieure à la taille maximale prédéfinie des unités de description. Elle va permettre d'utiliser des tampons mémoire de cette même taille indifféremment pour construire les unités de stockage pendant l'enregistrement ou traiter les unités de stockage pendant la relecture. En effet, pendant la relecture du flux vidéo simultanément avec son enregistrement, il est avantageux de pouvoir traiter l'unité de description qui est en cours de construction pour pouvoir afficher la vidéo associée qui, elle, est déjà sauvegardée sur le support d'enregistrement. Ainsi, si à la fin de l'exploitation d'une unité de description chargée depuis le support d'enregistrement, il apparaît que l'unité de description suivante n'est pas encore sauvegardée sur le support d'enregistrement, il faut alors pouvoir traiter l'unité de description qui est en cours de construction. On accède alors au tampon mémoire présentement utilisé pour cette construction. Grâce à un tel procédé, les descripteurs en cours de stockage sous la forme d'unités sont rapidement accessibles, leur transfert vers un support d'enregistrement tel un disque dur n'étant pas nécessaire pour qu'ils soient accessibles à une lecture. De ce fait, les temps d'accès aux descripteurs lors d'un changement de mode d'affichage sont considérablement réduits. Pour garantir la cohérence des descripteurs utilisés, seules les séquences de descripteurs contenues dans le tampon mémoire et qui possèdent l'attribut " complète " pourront être traitées. Ainsi, seules les séquences 31 et 32 peuvent être traitées pour contrôler le mode d'affichage. Un autre avantage de ce procédé vient du fait que les derniers descripteurs acquis 3 o dans la séquence encore incomplète, décrivent des syntaxes vidéo d'une portion du flux vidéo qui a été indexée mais qui n'est peut être pas encore déjà disponible sur le support d'enregistrement à cause des latences liées au mode d'accès à cette unité. Le procédé permet donc de garantir la cohérence entre les données disponibles dans le tampon mémoire pour l'exploitation et la vidéo associée disponible sur le support d'enregistrement. Il s'ensuit que, à la fin de la construction et de la sauvegarde d'une unité de description, si on exploite cette même unité de description, on utilise un autre tampon mémoire pour construire la prochaine unité de description. Le tampon mémoire qui a été remis à jour à partir du support d'enregistrement depuis le plus longtemps sera alors choisi. Lorsque l'unité de description nouvellement construite n'est pas en cours d'exploitation, la construction de la nouvelle unité de description pourra se poursuive dans le même tampon mémoire. Les données contenues dans le tampon mémoire seront alors progressivement remplacées par celles de la nouvelle unité de description. Sur la figure 6a est représentée une mémoire 300 conforme à un mode de réalisation de l'invention, c'est-à-dire utilisée pour générer des unités regroupant des descripteurs relatifs à des données vidéo numériques et pour lire ces unités lorsqu'une modification du mode d'affichage de données vidéo est requise. Dans cette réalisation préférée, la mémoire 300 est divisée en quatre blocs 300a, 300b, 300c et 300d, chaque bloc ayant une taille unique de 32 KOctets. Ainsi, les unités de description générées dans ces blocs à partir de descripteurs de données MPEG ont une taille inférieure à cette valeur. A cet effet, un pointeur 304 d'écriture effectue le stockage de ces descripteurs dans un bloc. Dans la figure 6a, ce pointeur 304 d'écriture effectue un stockage de descripteurs dans une unité de description formée dans le bloc 300b. Parallèlement, pour effectuer la lecture d'une unité stockée dans le bloc 300c, un pointeur 302 de lecture est utilisé de façon à transmettre les informations sur les descripteurs stockés dans ce bloc 300c. Au fur et à mesure que le pointeur 302 de lecture parcourt le bloc 300c (figure 6b), le pointeur 304 d'écriture stocke des données dans le bloc 300b en générant une unité de telle sorte que, à un instant donné, la taille maximale d'une unité est atteinte. A cet instant, l'unité générée peut être transmise au disque tandis qu'une nouvelle unité peut être générée par le pointeur 304 dans le bloc 300b (figure lo 6b). Sur la figure 7a est représentée une situation telle que le pointeur 302 de lecture et le pointeur 304 d'écriture traitent des informations stockées dans le même bloc 300b. Au fur et à mesure que le pointeur 304 d'écriture forme une unité, le pointeur de lecture 302 lit les informations comprises dans cette unité. Sur la figure 7b, lorsque la taille maximale d'une unité est atteinte, le pointeur 304 d'écriture utilise un nouveau bloc 300d pour continuer à former une unité de description. Ainsi, les informations stockées dans le bloc 300b sont accessibles au pointeur 302 de lecture sans requérir une transmission au support d'enregistrement du dispositif de cette unité. Dans cette variante de l'invention, on considère des descripteurs de données MPEG transmises selon des flux de paquets PES de même taille. Dès lors, il est possible de prévoir à quel instant une nouvelle unité de description doit être formée par le pointeur d'écriture de telle sorte qu'on n'effectue plus la transmission d'informations stockées dans un bloc dans un autre bloc. Sur la figure 8a, il est possible que les flux de paquets ou les groupes d'images traités soient de tailles variables. Dans ce cas, le pointeur d'écriture 304 stocke ces données dans un bloc tant que l'unité de description formée n'atteint pas la valeur seuil. Lorsque cette valeur seuil va être atteinte, un maximum de deux descripteurs (de flux et de groupe) doivent être retranscrits dans un nouveau bloc (figure 8b), auquel cas le délai de lecture de ces informations n'est accru que d'une demi-seconde. Revendications 1. Procédé de traitement de descripteurs de données numériques stockés sous la forme d'unités de description (25, 35) de taille prédéterminée, dans lequel - on construit et on stocke dans des tampons mémoires (20, 30, 300a, 300b, 300c, 300d) des unités de description (25, 35) préalablement à leur enregistrement sur un support d'enregistrement (11,108), - on exploite des unités de description (25, 35) simultanément à la construction et à l'enregistrement d'unités de description (25, 35) du même flux, caractérisé en ce que - on utilise un même tampon mémoire (20, 30, 300a, 300b, 300c, 300d) pour la construction et l'exploitation des unités de description (25, 35). 2. Procédé selon la revendication 1 caractérisé en ce que les données étant groupées en séquence, les descripteurs associés à ces données étant également groupés en séquence (21, 22, 23, 31, 32, 33), - on constitue une unité de description (25, 35) à partir d'au moins une séquence (21, 22, 23, 31, 32, 33) contenant au moins un descripteur, chaque unité de description (25, 35) ne contenant que des séquences (21, 22, 23, 31, 32, 33) complètes de descripteurs. 3. Procédé selon la revendication 2 caractérisé en ce que l'on transfère une unité de description (25, 35) complète à partir d'un tampon mémoire (20, 30, 300a, 300b, 300c, 300d) sur le support d'enregistrement (11, 108) lorsque la place disponible dans le tampon mémoire (20, 30, 300a, 300b, 300c, 300d) est inférieure à la place mémoire nécessaire pour y enregistrer une séquence (21, 22, 23, 31, 32) de descripteur complète. 4. Procédé selon la revendication 2 caractérisé en ce que lorsque les séquences (21, 22, 23, 31, 32, 33) de descripteurs sont de taille variable, on transfère une unité de description (25, 35) à partir du tampon mémoire sur le support d'enregistrement (11, 108) lorsque à l'issue de l'ajout d'un descripteur dans le tampon mémoire (20, 30, 300a, 300b, 300c, 300d), le tampon mémoire (20, 30, 300a, 300b, 300c, 300d) est plein. 5. Procédé selon la revendication 3 caractérisé en ce que, suite à l'enregistrement de séquences (21, 22, 23, 31, 32) de descripteurs complètes d'un tampon mémoire (20, 30, 300a, 300b, 300c, 300d) vers le support d'enregistrement (11, 108), on transfère les descripteurs contenus à la fin du tampon mémoire (20, 30, 300a, 300b, 300c, 300d) et appartenant à une séquence (33) de descripteurs incomplète au début du tampon mémoire (20, , 300a, 300b, 300c, 300d). 6. Procédé selon l'une des revendications 3 à 5 caractérisé en ce que, à l'issu du stockage d'une unité de description (25, 35) dans le support d'enregistrement (11, 108), on construit une nouvelle unité de description (25, ) dans le tampon mémoire (20, 30, 300a, 300b, 300c, 300d) associée à ladite unité de description (25, 35) si les unités de description (25, 35) contenues dans ce tampon mémoire (20, 30, 300a, 300b, 300c, 300d) ne sont pas en cours d'exploitation et dans un autre tampon mémoire (20, 30, 300a, 300b, 300c, 300d) si ces unités de description (25, 35) sont en cours d'exploitation. 7. Procédé selon l'une des revendications 3 à 5 caractérisé en ce que, à l'issu de l'exploitation d'une unité de description (25, 35), si l'unité de description (25, 35) suivante n'est pas encore accessible sur le support d'enregistrement (11 108), alors on exploite l'unité de description (25, 35) en cours de construction. 8. Procédé selon la revendication 7 caractérisé en ce que, lorsqu'une unité de description (25, 35) est simultanément en cours de construction et d'exploitation dans un même tampon mémoire (20, 30, 300a, 300b, 300c, 300d), on exploite que les séquences (21, 22, 23, 31, 32) de descripteurs complètes. 9. Produit programme d'ordinateur comprenant des instructions de codes de programme pour l'exécution des étapes du procédé de traitement de descripteurs de données numériques selon l'une des revendications 1 à 8, lorsque ledit programme est exécuté sur un ordinateur. 10. Dispositif de traitement de descripteurs de données numériques stockés sous la forme d'unités de description (25, 35) de taille prédéterminée, comprenant - des moyens de construire et de stocker dans des tampons mémoires (20, 30, 300a, 300b, 300c, 300d) des unités de description (25, 35) préalablement à leur enregistrement sur un support d'enregistrement (11, 108), - des moyens d'exploiter des unités de description (25, 35) 2 0 simultanément à la construction et à l'enregistrement d'unités de description (25, 35) du même flux, caractérisé en ce que - les moyens de construction et d'exploitation sont prévus pour utiliser un même tampon mémoire pour la construction et l'exploitation des unités de description (25, 35).