Brevet FR2781327A1 — publié le 20000121

PROCEDE POUR GERER TEMPORELLEMENT L'EXPLOITATION DE DONNEES ET DISPOSITIF METTANT EN OEUVRE LE PROCEDE L'invention concerne un procédé pour gérer temporellement I'exploitation de données détectées dans un flux de données ainsi que le dispositif mettant en oeuvre le procédé. L'invention trouve une application particulièrement avantageuse pour gérer temporellement l'affichage de sous-titres obtenus à partir de données numériques détectées dans un flux de données véhiculées selon la norme de transport MPEG 2 System. Dans la plupart des cas, un flux de données véhiculées selon la norme de transport MPEG 2 System comprend un signal de référence temporelle communément noté PCR (l'abréviation PCR provient de l'anglais "Programme Clock Reference"). Le signal de référence PCR permet d'établir une échelle des temps pour les données contenues dans le flux. Par ailleurs, le flux de données contient également des signaux de synchronisation communément notés PTS (l'abréviation PTS provient de l'anglais "Presentation Time Stamp"). Un signal de synchronisation PTS est un signal permettant de mettre en oeuvre une action sur certaines des données véhiculées dans le flux. Pour les données correspondant à un sous-titre, il peut s'agir, par exemple, de l'action d'affichage du sous- titre en synchronisation avec l'apparition d'une image. Le signal PTS d'affichage associé à un sous-titre est véhiculé dans l'en-tête du sous- titre. Sa valeur donne l'instant auquel le sous-titre doit être affiché. Les sous-titres sont généralement constitués de données codées. Il est donc nécessaire de les décoder avant de les afficher. Par données codées il faut entendre, par exemple, des données comprimées qu'il faut décomprimer avant affichage. Au cas o, par exemple, I'instant auquel un sous-titre doit être affiché est très, proche de l'instant auquel ce sous-titre est détecté dans le flux, I'affichage d'un sous-titre peut présenter des inconvénients. Par "très proche dans le temps", il faut entendre que la durée qui sépare l'instant auquel le sous-titre doit être affiché et l'instant auquel le sous-titre est détecté est du même ordre de grandeur ou inférieur à la durée nécessaire au décodage des données qui représentent le sous-titre. Dans ces conditions, la durée d'affichage du sous-titre peut être très courte et, à l'extrême, le sous-titre peut être perdu. Par ailleurs, dans d'autres cas, le flux de données véhiculées selon la norme MPEG 2 System ne contient pas de signal PTS d'affichage des soustitres. Ces cas correspondent, par exemple, au sous-titrage simultané pour lequel il est souhaité que les sous-titres soient affichés dès que possible après avoir été détectés et décodés. Dans ces cas, quand un sous-titre court succède à un sous-titre long, la durée d'affichage du sous- titre long est inférieure à la durée d'affichage du sous-titre court. En effet, la durée possible d'affichage AST1 d'un sous-titre ST1 est alors égale à AST1 = AT + DST2-DST1,o: AT est l'intervalle de temps séparant le premier sous-titre ST1 et le sous-titre ST2 qui succède au sous- titre ST1, DST1 est la durée de décodage du sous-titre ST1, et DST2 est la durée de décodage du sous-titre ST2. Pour des sous-titres ST1 et ST2 respectivement long et court, les durées DST2 et DST1 sont respectivement courtes et longues. Il s'ensuit que la durée d'affichage du sous-titre long ST1 est d'autant plus courte que le sous-titre ST2 est un sous-titre court et le sous-titre ST1 un sous- titre long. L'invention ne présente pas ces inconvénients. En effet, I'invention concerne un dispositif pour gérer temporellement l'exploitation de données détectées dans un flux de données et constituant au moins un ensemble de données, le dispositif comprenant un circuit de traitement des données détectées, une mémoire permettant de stocker les données détectées, les données en train d'être traitées, les données traitées destinées à être exploitées et les données traitées en cours d'exploitation, I'exploitation des données traitées devant être déclenchée à un instant théorique donné. Le dispositif comprend un circuit pour calculer une durée minimale d d'exploitation des données proportionnelle à la quantité de données contenues dans l'ensemble de données. L'invention concerne également un procédé pour gérer temporellement l'exploitation de données détectées dans un flux de données et constituant au moins un ensemble de données, le procédé comprenant une étape de stockage des données détectées, une étape de traitement des données stockées, une étape de stockage des données issues de l'étape de traitement et une étape d'exploitation des données stockées issues de l'étape de traitement, I'exploitation des données traitées devant être déclenchée à un instant théorique donné. Le procédé comprend une étape permettant de calculer une durée minimale d d'exploitation des données proportionnelle à la quantité de données contenues dans l'ensemble de données. L'invention trouve une application particulièrement avantageuse dans le cas o l'ensemble de données détectées dans le flux de données représente un sous-titre constitué de données codées, lequel sous-titre doit être affiché sur écran après décodage des données. Le décodage des données constitue alors le traitement des données et l'affichage des données constitue l'exploitation des données. Ainsi, I'invention concerne-t-elle également un dispositif tel que celui selon l'invention mentionné ci-dessus, caractérisé en ce que I'ensemble de données détectées représente un sous-titre constitué de données codées détectées dans un flux de données véhiculées selon la norme de transport MPEG 2 System et en ce que le circuit de traitement est un circuit de décodage des données codées, I'exploitation des données étant l'affichage des données décodées sur écran. L'invention concerne encore un décodeur fonctionnant selon la norme MPEG 2 vidéo, caractérisé en ce qu'il comprend un dispositif tel que celui selon l'invention mentionné ci-dessus. De même, I'invention concerne un procédé tel que celui selon l'invention mentionné ci-dessus, caractérisé en ce que l'ensemble de données détectées dans le flux de données représente un sous-titre constitué de données codées détectées dans un flux de données véhiculées selon la norme de transport MPEG 2 System, en ce que le traitement des données est le décodage des données codées et en ce que l'exploitation des données est l'affichage des données sur écran. L'objet de l'invention est de garantir une durée minimale d d'exploitation d'un ensemble de données proportionnelle à la quantité de données que contient cet ensemble. Une fois calculée, la durée minimale d est appliquée à un circuit de commande de la durée d'exploitation de façon que la durée d'exploitation des données ne puisse être inférieure à d. Dans le cadre de l'application particulière de l'invention à l'affichage de sous-titres, la durée minimale d'affichage du sous-titre peut être donnée par la donnée D(ST) telle que: D(ST) = KST x L, L étant la longueur du sous-titre et KST un nombre réel positif. La longueur L peut être l'information de longueur du sous-titre que contient le flux de données. La longueur L peut aussi être égale au nombre de pleines lignes du sous-titre décodé exprimé sous la forme d'un nombre réel. D'autres données relatives au sous-titre peuvent également être utilisées pour calculer la donnée D(ST). Il peut s'agir, par exemple, d'un paramètre m dépendant de la complexité de la langue dans laquelle le sous-titre doit être affiché. La donnée D(ST) s'écrit alors: D(ST) = KST X L x m. Ainsi, I'invention trouve-t-elle une application particulièrement intéressante pour la diffusion d'un même programme sur un territoire o sont utilisées différentes langues. Selon un perfectionnement de l'invention, la durée minimale d'exploitation des données est rendue compatible de contraintes de synchronisation, de durées de traitement des données avant exploitation et de mémoire vive à disposition pour stocker les données. La figure jointe représente un dispositif permettant la mise en oeuvre du perfectionnement de l'invention. A titre d'exemple non limitatif, ce perfectionnement est décrit dans le cadre de l'application particulière de l'affichage de sous-titres. Le dispositif comprend deux zones mémoire Z1 et Z2, un compteur CNT et un microprocesseur MP. Les zones mémoire Zl et Z2 sont des zones de mémoire vive de type RAM (l'abréviation RAM provenant de l'anglais "Random Access Memory"). La zone mémoire Zl est divisée en plusieurs espaces mémoire BR1, BR2,...., BRm qui seront par la suite appelés buffers de réception. De même, la zone mémoire Z2 est divisée en plusieurs espaces mémoire BV1, BV2,....BVn qui seront par la suite appelés buffers de visualisation. Comme cela est connu de l'homme de l'art, un buffer de visualisation est un espace mémoire capable de permettre l'affichage sur écran des données qu'il contient. Les données qui représentent les sous-titres constituent un signal ST transmis à la zone mémoire Z1. Selon l'invention, les données qui représentent un sous-titre sont stockées dans un premier buffer de réception BR1. Si le traitement des données effectué dans la zone mémoire Z2 n'est pas terminé, alors les données qui représentent le sous- titre suivant sont stockées dans un autre buffer de réception BR2. Les sous- titres stockés dans la zone mémoire Z1 sont transmis à la zone mémoire Z2 les uns après les autres de façon qu'un sous-titre transmis dans la zone Z2 soit toujours le plus ancien stocké dans la zone Z1. Selon le mode de réalisation préférentiel de l'invention, chaque buffer de la zone Z2 se trouve soit en état de décodage des données qu'il contient, soit vide de toute donnée, soit en état d'attente d'affichage, soit en état d'affichage. Par buffer en "état d'attente d'affichage", il faut entendre que les données contenues dans le buffer sont destinées à être lues pour affichage. Par buffer en "état d'affichage", il faut entendre que les données contenues dans le buffer sont en cours de lecture de facon à être affichées sur écran. Selon un autre mode de réalisation de l'invention, le décodage des données n'est pas effectué dans un buffer de visualisation de la zone Z2 mais dans un buffer de réception de la zone Z1. Il est alors possible que lI'opération de décodage des données s'effectue au fur et à mesure de leur réception. De façon préférentielle, la zone mémoire Z2 est divisée en 5 buffers de visualisation dont chacun est susceptible de se trouver soit en état de décodage, soit vide de données, soit en état d'attente d'affichage, soit en état d'affichage. Selon le mode de réalisation préférentiel de l'invention, un buffer de visualisation se trouve en permanence en état de décodage et un autre en état d'affichage. Il s'ensuit que les 3 autres buffers se trouvent soit vides de données, soit en état d'attente d'affichage. De façon générale, si n est le nombre de buffers que contient la zone Z2, alors n-2 buffers sont soit vides de données, soit en attente d'affichage. A chaque fois qu'un buffer passe à l'état d'attente d'affichage, une information I est transmise de la zone mémoire Z2 vers le microprocesseur MP. En retour, le microprocesseur MP transmet au compteur CNT une donnée D permettant d'incrémenter ce dernier d'une unité. Le compteur transmet alors à la zone mémoire Z2 une donnée E permettant d'étiqueter le buffer qui vient de passer à l'état d'attente d'affichage. Au moment de l'affichage, le buffer en état d'affichage est alors identifié comme étant celui dont l'étiquette signale qu'il est le plus ancien. De façon générale, la durée d d'affichage calculée par le microprocesseur MP à un instant t peut s'écrire: d = D(ST) x X(t), o D(ST) est la donnée proportionnelle à la longueur L du sous-titre telle que définie précédemment, et - X(t) une fonction croissante de la taille d'une zone de la mémoire Z2 ou Z1 +Z2 vide de données. Avantageusement, la durée minimale d'affichage d'un sous-titre peut ainsi être augmentée quand la taille de la zone de mémoire vide de données augmente et diminuée quand la taille de la zone de mémoire vide de données diminue. Selon un mode de réalisation particulier du perfectionnement de l'invention, la donnée X(t) est calculée de façon à tendre vers une donnée Xo qui ne peut être dépassée. Il est alors avantageusement possible d'éviter une accumulation du retard d'affichage des sous-titres. Selon le mode de réalisation préférentiel de l'invention, la donnée X(t) est calculée selon un algorithme mettant en oeuvre des calculs de type PID (de l'abréviation Proportionnel/Intégral/Différentiel). L'équation qui régit le régime proportionnel est donnée par la formule: Xp(t+At) = Kp x EM(t+At), o - Kp est un nombre réel positif, et EM(t+At) est une donnée représentant la taille d'une zone de mémoire vide de données à l'instant t+At, I'intervalle de temps At étant une durée représentant la détection de deux sous-titres successifs dans le flux. A titre d'exemple non limitatif, At peut être égal à la durée moyenne séparant la détection de deux sous-titres successifs calculée sur la base de n sous-titres précédemment détectés, n étant un nombre entier, par exemple, égal à 10. La donnée EM(t+At) peut être égale soit au nombre N de buffers de visualisation ou de réception entièrement vides de données à l'instant t+At, soit au nombre N de buffers de visualisation ou de réception entièrement vides de données à l'instant t+At plus, à ce même instant, l'espace mémoire vide de données du buffer de visualisation ou de réception en état de décodage. L'équation qui régit le régime intégral est donnée par la formule: Xi(t + At) =Ki x l(t +At), o l(t+At)=l(t) - R, avec l(t+At) tel que -11 positifs) et R= TA- TR. Les valeurs Il et 12 sont choisies de façon à limiter l'influence du terme intégral Xi(t+At). TA est l'instant o débute réellement l'affichage du sous-titre et TR l'instant théorique o le sous-titre doit être affiché. La quantité R représente ainsi le retard calculé algébriquement entre l'instant o débute réellement l'affichage du sous- titre et l'instant théorique o le sous-titre doit être affiché. Dans le cas o existe dans le flux un signal PTS relatif à l'affichage de sous-titre, I'instant T R est la valeur du PTS. Dans le cas o n'existe pas de signal PTS dans le flux, I'instant TR est une référence temporelle dont la valeur est telle que, par exemple, la quantité TA - TF soit égale à y% de la durée de décodage du sous-titre, TF étant l'instant o le sous-titre est détecté dans le flux. A titre d'exemple non limitatif, y peut être égal à 120. La durée d minimale d'affichage d'un sous-titre croît de la quantité R si R est négatif et décroît de la quantité R si R est positif. Le terme intégral Xi(t+At) permet ainsi une gestion avantageuse des retards R successifs. L'équation qui régit le régime différentiel est donnée par la formule: Xd(t + At) = - Kd x (EM(t + At)-EM(t))/At o Kd est un nombre réel positif. La contribution du terme différentiel à la fonction X(t) permet avantageusement de prendre en compte la vitesse avec laquelle évolue la taille de la zone de mémoire vide de données. Selon le mode de réalisation préférentiel mentionné ci-dessus, la durée d'affichage d d'un sous-titre est calculée selon un algorithme mettant en oeuvre des calculs de type PID. Il s'en suit qu'à l'instant t+At la durée d est proportionnelle à la grandeur Xp,i,d(t+At) telle que: Xp,i,d(t+At) = Xp(t + At) + Xi(t + At) + Xd(t+At) avec Xmin oeil humain ne prend plus conscience du passage d'un sous-titre à l'écran. L'invention concerne également d'autres algorithmes de calculs de la durée d. Il peut s'agir, entre autres, d'un algorithme de calculs de type proportionnel (seul le terme proportionnel tel que calculé ci- dessus intervient alors dans l'expression de X(t+At)), ou encore d'un algorithme de calculs de type proportionnel/intégral (seuls les termes proportionnel et intégral tels que calculés ci-dessus interviennent alors dans l'expression de X(t+At)). De façon générale, comme mentionné précédemment, l'algorithme de calculs de la durée d minimale d'affichage d'un sous-titre est une fonction croissante d'une zone de mémoire vive vide de données. L'algorithme de calcul selon l'invention peut être un algorithme mettant en oeuvre la logique floue. Une fois calculée, la durée minimale d'affichage d'un sous-titre d est appliquée à un circuit (non représenté sur la figure) qui commande l'affichage des données de sous-titres Dst issues du buffer de visualisation en état d'affichage. La durée d'affichage du sous-titre est alors garantie5 comme ne pouvant pas être inférieure à d. 2781327 REVENDICATIONS 1. Dispositif pour gérer temporellement l'exploitation de données détectées dans un flux de données et constituant au moins un ensemble de données, le dispositif comprenant un circuit de traitement des données détectées, une mémoire (Z1, Z2) permettant de stocker les données détectées, les données en train d'être traitées, les données traitées destinées à être exploitées et les données traitées en cours d'exploitation, I'exploitation des données traitées devant être déclenchée à un instant théorique donné (TR), 1o caractérisé en ce qu'il comprend un circuit (MP) pour calculer une durée minimrale (d) d'exploitation des données proportionnelle à la quantité (L) de données contenues dans l'ensemble de données. 2. Dispositif selon la revendication 1, caractérisé en ce que le calcul de la durée minimale (d) est réalisé selon une fonction croissante de la taille d'une zone de la mémoire (Z1, Z2) vide de données. 3. Dispositif selon la revendication 2, caractérisé en ce que le circuit (MP) calcule la durée minimale (d) proportionnellement, à l'instant t+At, à une grandeur Xp(t+At) définie par: Xp(t+At) = Kp x EM(t+At) o Kp est un nombre réel positif et EM(t+At) une donnée représentant la taille de la zone de la mémoire (Z1, Z2) vide de données à l'instant t+At, At représentant la durée séparant la détection de deux ensembles de données successifs. 4. Dispositif selon la revendication 3, caractérisé en ce que le circuit (MP) calcule la durée minimale (d) proportionnellement, à l'instant t+At, à une grandeur Xp,i(t+At) telle que: Xp,i(t+At) = Xp(t+At) + Ki x I(t+At), o Ki est un nombre réel positif, et l(t+At) = I(t) - R avec l(t+At) tel que -11 TR l'instant théorique o l'exploitation des données doit être déclenchée. 1 2781327 5. Dispositif selon la revendication 4, caractérisé en ce que le circuit (MP) calcule la durée minimale (d) proportionnellement, a l'instant t+At, a la grandeur Xp,i,d(t+At) telle que: Xp,i,d(t+At) = Xp,i(t+At) - Kd x (EM(t+A)-EM(t))/At), o Kd est un nombre réel positif. 6. Dispositif selon l'une quelconque des revendications 1 à 5, caractérisé en ce que la zone de la mémoire (Z1, Z2) permettant de stocker les données traitées destinées à être exploitées est divisée en différents espaces îo mémoire co ntenant chacun un ensemble de données et en ce qu'il comprend un compteur (CNT) permettant d'étiqueter les différents espaces mémoire au fur et à mesure de leur remplissage de façon que les données exploitées soient celles contenues dans l'espace mémoire étiqueté en premier. 7. Dispositif selon l'une quelconque des revendications 1 à 6, caractérisé en ce que l'ensemble de données détectées représente un sous- titre constitué de données codées détectées dans un flux de données véhiculées selon la norme de transport MPEG 2 System et en ce que le circuit de traitement est un circuit de décodage des données codées, I'exploitation des données étant l'affichage des données décodées sur écran. 8. Décodeur fonctionnant selon la norme MPEG 2 vidéo, caractérisé en ce qu'il comprend un dispositif selon la revendication 7. 9. Procédé pour gérer temporellement l'exploitation de données détectées dans un flux de données et constituant au moins un ensemble de données, le procédé comprenant une étape de stockage des données détectées, une étape de traitement des données stockées, une étape de stockage des données issues de l'étape de traitement et une étape d'exploitation des données stockées issues de l'étape de traitement, l'exploitation des données traitées devant être déclenchée à un instant théorique donné (TR), caractérisé en ce qu'il comprend une étape permettant de calculer une durée minimale (d) d'exploitation des données proportionnelle à la quantité de données (L) contenues dans l'ensemble de données. 12 2781327 10. Procédé selon la revendication 9, caractérisé en ce que la durée minimale (d) est une fonction croissante de la taille d'une zone de stockage des données vide de données. 11. Procédé selon la revendication 10, caractérisé en ce que la fonction croissante est proportionnelle à la grandeur Xp(t+At) telle que Xp(t+At) = Kp x EM(t+At), o Kp est un nombre réel positif et EM(t+At) une donnée représentant la taille de la zone de stockage de données vide de données à l'instant t+At, At io étant une cd'urée représentant la détection de deux sous-titres successifs. 12. Procédé selon la revendication 11, caractérisé en ce que la fonction croissante est proportionnelle à la grandeur Xp,i(t+At) telle que Xp,i(t+ At) = Xp(t+At) + Ki x l(t+At), o 1) Ki un nombre réel positif, et l(t+At) = I(t) - R avec i(t+At) tel que -I1 Kd est un nombre réel positif. 14. Procédé selon l'une quelconque des revendications 9 à 13, caractérisé en ce qu'il comprend une étape de comptage permettant que les données exploitées soient les données issues de l'étape de traitement stockées depuis le plus longtemps. 15. Procédé selon l'une quelconque des revendications 9 à 14, caractérisé en ce que l'ensemble de données détectées dans le flux de données représente un sous-titre constitué de données codées dans un flux de données véhiculées selon la norme de transport MPEG 2 System, en ce que la traitement des données est le décodage des données codées et en ce que l'exploitation des données est l'affichage des données décodées sur écran.