(19)
(11) EP 0 973 145 A1

(12) DEMANDE DE BREVET EUROPEEN

(43) Date de publication:
19.01.2000  Bulletin  2000/03

(21) Numéro de dépôt: 99401725.9

(22) Date de dépôt:  09.07.1999
(51) Int. Cl.7G09G 1/16, G06T 9/00
(84) Etats contractants désignés:
AT BE CH CY DE DK ES FI FR GB GR IE IT LI LU MC NL PT SE
Etats d'extension désignés:
AL LT LV MK RO SI

(30) Priorité: 17.07.1998 FR 9809158

(71) Demandeur: STMicroelectronics SA
94250 Gentilly Cedex (FR)

(72) Inventeur:
  • Bramley, Richard
    38100 Grenoble (FR)

(74) Mandataire: Casalonga, Axel 
BUREAU D.A. CASALONGA - JOSSE Morassistrasse 8
80469 München
80469 München (DE)

   


(54) Procédé et système d'élaboration d'images numériques résultant d'éléments graphiques auxiliaires incrustés dans des images principales


(57) On décode au vol les données comprimées d'un flot auxiliaire de données définissant ladite image auxiliaire, au cours de l'affichage de chaque image principale dans laquelle cette image auxiliaire doit être incrustée, de façon à délivrer successivement au cours de chaque décodage de l'image auxiliaire, pour les pixels successifs de cette image auxiliaire, des valeurs de luminance et de chrominance (Ya, Ua, Va) destinées à être mélangées avec celles (Yp, Up, Vp) des pixels homologues de l'image principale en cours d'affichage.




Description


[0001] L'invention concerne l'élaboration d'images numériques résultant d'éléments graphiques auxiliaires formant des images graphiques auxiliaires ou sous-images ("sub-pictures" en langue anglaise) destinées à être incrustées dans une zone prédéterminée d'un écran d'affichage en superposition d'images principales résultant en particulier d'un décodage de données comprimées, notamment selon les normes MPEG ("Motion Pictures Experts Group").

[0002] L'invention concerne plus particulièrement le décodage de ces images auxiliaires ou sous-images et s'applique avantageusement mais non limitativement au cas où ces sous-images résultent de données auxiliaires ou données de sous-images (sub-picture data) stockées de façon comprimée sur un disque numérique multifonctions (DVD : "Digital Versatile Disk" en langue anglaise).

[0003] L'une des utilisations de ces images graphiques auxiliaires ou sous-images concerne l'affichage de menus sur l'écran du téléviseur ou bien l'incrustation dans les images principales visualisées sur l'écran d'un téléviseur, de petites séquences animées, ou bien encore la visualisation de textes de chansons dans des applications de karaoké.

[0004] Une solution actuellement utilisée pour l'élaboration des images graphiques auxiliaires consiste à décoder les données graphiques auxiliaires comprimées et stockées sur le disque numérique de façon logicielle de façon à stocker dans une mémoire dynamique les images graphiques auxiliaires ainsi décodées et prêtes à être extraites de la mémoire, autant de fois que nécessaire, pour être affichées à chaque fois pixel par pixel.

[0005] Cependant, une telle façon d'opérer requiert une taille mémoire importante, notamment lorsque la taille des images graphiques auxiliaires est importante.

[0006] L'invention vise à apporter une solution à ce problème et propose une solution radicalement différente pour le décodage et l'élaboration de ces images graphiques auxiliaires, et l'élaboration des images résultant de leur superposition avec le flot d'images principales.

[0007] L'invention propose donc un procédé d'élaboration d'images numériques résultant d'éléments graphiques auxiliaires incrustés dans les images principales.

[0008] Selon une caractéristique générale de l'invention, le procédé comprend une réception d'au moins un flot auxiliaire comprenant un ensemble de données graphiques comprimées correspondant à des éléments graphiques formant au moins une image graphique auxiliaire destinée à être incrustée dans une zone prédéterminée d'un écran d'affichage, cette incrustation devant se produire à partir de l'instant d'occurence d'une image principale initiale prédéterminée et pendant une durée élémentaire prédéterminée, et ce, en superposition d'images principales. Le procédé comprend par ailleurs le stockage du flot auxiliaire dans une mémoire et des décodages successifs des données graphiques comprimées, ces décodages successifs étant respectivement effectués au cours des affichages des images principales successives, depuis l'affichage de l'image principale initiale jusqu'à l'expiration de ladite durée élémentaire prédéterminée, de façon à délivrer au cours de chaque décodage, au rythme d'affichage des pixels à l'écran et pour chaque pixel de l'image auxiliaire, des valeurs de luminance et de chrominance ainsi qu'un coefficient de mélange. Le procédé comporte également le mélange pixel à pixel dans ladite zone prédéterminée d'écran, des valeurs de chrominance et de luminance correspondant à l'image principale courante en cours d'affichage et à l'image graphique auxiliaire décodée, compte tenu desdits coefficients de mélange.

[0009] En d'autres termes, le procédé selon l'invention prévoit un décodage au vol des données graphiques comprimées d'une image graphique, au cours de l'affichage d'une image principale (en pratique au cours de l'affichage de chaque trame de l'image principale), ainsi que le redécodage des mêmes données correspondant à la même image graphique pour chaque image principale, c'est-à-dire au cours de l'affichage de chaque image principale, et ce, aussi longtemps que nécessaire. Ainsi, si par exemple une image graphique auxiliaire nécessite d'être incrustée sur l'écran d'affichage en superposition d'une image principale initiale et en superposition des 99 images principales suivantes, les données graphiques comprimées correspondant à chaque trame de cette image auxiliaire seront décodées successivement 100 fois, chaque décodage se produisant en temps réel au cours de l'affichage de l'image principale courante de façon à ce que le mélangeur reçoive de façon synchronisée, pour chaque pixel, les valeurs de luminance et de chrominance de l'image principale destinée à être affichée, et celles de l'image graphique auxiliaire décodée et destinée à être également affichée en superposition de cette image principale en cours d'affichage.

[0010] L'invention présente donc l'avantage notable de diminuer la taille mémoire nécessaire ainsi que la bande passante-mémoire utilisée puisque les données graphiques auxiliaires de chaque image graphique peuvent être maintenues stockées dans la mémoire sous une forme comprimée, et que le décodage de ces données ne nécessite aucun stockage dans la mémoire de l'image graphique auxiliaire décodée avant son affichage.

[0011] Le flot auxiliaire comprend généralement un en-tête, lesdites données graphiques comprimées, et au moins un ensemble de données de paramétrage, permettant de paramétrer le décodage de ladite image graphique. Par ailleurs, selon un mode de mise en oeuvre de l'invention, dans lequel les images principales sont affichées ligne par ligne en deux trames successives correspondant à des lignes de parités différentes, on effectue un traitement d'analyse desdites données de paramétrage entre chaque affichage d'une trame. Ceci étant, on pourrait également dans un autre mode de mise en oeuvre de l'invention, effectuer ce traitement d'analyse des données de paramétrage au cours de chaque retour ligne.

[0012] En fait, d'une façon générale, on effectue le traitement d'analyse des données de paramétrage pendant une période au cours de laquelle il n'y a aucun affichage de pixel à l'écran, et ce, de façon à ne pas perturber cet affichage.

[0013] L'ensemble de données graphiques comprimées peut correspondre à plusieurs images graphiques auxiliaires successives destinées chacune à être successivement superposées aux images principales pendant une durée élémentaire respective. Le flot auxiliaire comprend alors plusieurs ensembles de données de paramétrage permettant chacun de paramétrer le décodage d'une image graphique auxiliaire. Et, tant que ladite durée élémentaire correspondant à une image graphique auxiliaire n'est pas écoulée, on analyse l'ensemble de données de paramétrage correspondant à cette image entre chaque affichage d'une trame, puis on procède au décodage des données graphiques comprimées de cette image sur la base des données de paramétrage. Et, lorsque ladite durée élémentaire correspondante est écoulée, on passe automatiquement à l'analyse de l'ensemble de données de paramétrage correspondant à l'image graphique auxiliaire suivante, puis au décodage de données graphiques comprimées de cette image suivante sur la base de ces nouvelles données de paramétrage.

[0014] Selon un mode de mise en oeuvre particulièrement simple de l'invention, à la réception du flot auxiliaire, on initialise un compteur temporel à une valeur initiale prédéterminée (par exemple l'heure d'affichage de la première image graphique auxiliaire). Chaque ensemble de données de paramétrage comporte une indication temporelle, reliée à ladite valeur initiale prédéterminée (par exemple l'heure de début d'affichage de chacune de ces images graphiques auxiliaires), et représentative de l'instant de début du premier décodage de l'image graphique auxiliaire correspondante. Avant de commencer le décodage des données comprimées correspondant à la première image graphique auxiliaire, on stocke dans un registre l'indication temporelle de l'image graphique auxiliaire suivante et on effectue les décodages successifs de l'image graphique auxiliaire paramétrés par l'ensemble correspondant de données de paramétrage tant que la valeur du compteur est inférieure au contenu du registre. Et, quand la valeur du compteur devient supérieure ou égale au contenu du registre, cela signifie qu'il est temps de procéder au décodage et à l'affichage de l'image graphique auxiliaire suivante.

[0015] Selon un mode de mise en oeuvre de l'invention, le traitement d'analyse d'un ensemble de données de paramétrage comprend le stockage de groupes différents de couples "couleur-coefficient de mélange" dans des mémoires élémentaires respectives différentes (tables de recherche; "look-up tables" en langue anglaise). Le nombre de couples par groupe est inférieur à un premier nombre prédéterminé (par exemple quatre lorsque les tables sont adressées par 2 bits). Par ailleurs, le nombre de groupes est inférieur ou égal à un deuxième nombre prédéterminé (par exemple huit, ce qui correspond à un maximum de huit régions différentes par ligne d'image). Le décodage ligne par ligne de chaque image graphique auxiliaire comprend alors des adressages successifs par les données graphiques décodées, des différentes mémoires élémentaires désignées successivement par des données dites de désignation, contenues dans l'ensemble de données de paramétrage.

[0016] En d'autres termes, à titre d'exemple, une fois que plusieurs tables de recherches ont été programmées lors du traitement d'analyse des données de paramétrage, on adresse pour les premiers pixels de la ligne une première table de recherche puis, en fonction d'une donnée de désignation correspondant à la taille de la région (nombre de pixels par exemple), on commute après l'élaboration de ce nombre de pixels, sur une autre table de recherche que l'on va adresser à partir des données graphiques décodées suivantes, et ainsi de suite.

[0017] L'invention a également pour objet un système d'élaboration d'images numériques résultant d'éléments graphiques auxiliaires incrustés dans des images principales.

[0018] Selon une caractéristique générale de l'invention, ce système d'élaboration comprend :
  • des moyens de réception pour recevoir un flot principal comprenant des données comprimées codant des images numériques principales, et au moins un flot auxiliaire comprenant un ensemble de données graphiques comprimées correspondant à des éléments graphiques formant au moins une image graphique destinée à être incrustée dans une zone prédéterminée d'un écran d'affichage, à partir de l'instant d'occurence d'une image principale initiale pendant une durée élémentaire prédéterminée, en superposition des images principales,
  • une mémoire pour stocker le flot principal et le flot auxiliaire,
  • un décodeur principal (par exemple un décodeur MPEG si les images principales sont comprimées selon une norme MPEG), ce décodeur principal étant apte à décoder le flot principal de données comprimées et à délivrer pour chaque pixel d'une image principale décodée, des valeurs de luminance et de chrominance,
  • un dispositif d'élaboration des images résultantes comprenant des moyens de décodage (décodeur auxiliaire ou décodeur de sous-image : "sub-picture decoder" en langue anglaise) aptes à effectuer des décodages successifs des données graphiques comprimées contenues dans la mémoire, ces décodages successifs étant respectivement effectués au cours des affichages des images principales successives, depuis l'affichage de l'image principale initiale jusqu'à l'expiration de ladite durée élémentaire prédéterminée, de façon à délivrer au cours de chaque décodage, au rythme d'affichage des pixels à l'écran et pour chaque pixel de l'image auxiliaire, des valeurs de luminance et de chrominance ainsi qu'un coefficient de mélange. Le dispositif d'élaboration comprend par ailleurs des moyens de mélange aptes à effectuer le mélange pixel à pixel dans la zone prédéterminée d'écran, des valeurs de chrominance et de luminance correspondant à l'image principale courante et à l'image graphique auxiliaire décodée, compte tenu desdits coefficients de mélange.


[0019] Selon un mode de réalisation de l'invention, dans lequel le flot auxiliaire comprend un en-tête, lesdites données graphiques comprimées, et au moins un ensemble de données de paramétrage permettant de paramétrer le décodage de ladite image graphique, le décodeur auxiliaire (décodeur de sous-image) comporte une première mémoire du type "premier entré-premier sorti" (FIFO) apte à stocker les données graphiques comprimées, et une deuxième mémoire du type "premier entré-premier sorti" apte à stocker les données de paramétrage. Par ailleurs, les images principales étant affichées ligne par ligne et en deux trames successives correspondant à des lignes de parité différentes, le décodeur auxiliaire comporte des moyens d'analyse aptes, entre chaque affichage d'une trame, à délivrer lesdites données de paramétrage à la deuxième mémoire et à effectuer un traitement d'analyse de ces données de paramétrage. Le décodeur auxiliaire comporte également des moyens de traitement (comportant par exemple un décodeur à longueur variable (VLD) et un décodeur de chaîne de zéro (RLD)) aptes à décoder les données graphiques comprimées stockées dans la première mémoire, sur la base des données de paramétrage, et à délivrer aux moyens de mélange, pour chaque pixel de l'image graphique auxiliaire, les valeurs de luminance et de chrominance, ainsi qu'un coefficient de mélange.

[0020] Lorsque l'ensemble de données graphiques comprimées correspond à plusieurs images graphiques auxiliaires successives destinées à être successivement superposées aux images principales pendant une durée élémentaire respective, le flot auxiliaire comprend plusieurs ensembles de données de paramétrage permettant chacun de paramétrer le décodage d'une image graphique auxiliaire. Et, tant que ladite durée élémentaire correspondant à une image graphique auxiliaire n'est pas écoulée, les moyens d'analyse délivrent à la deuxième mémoire, entre chaque affichage d'une trame, lesdites données de paramétrage correspondantes et effectuent un traitement d'analyse de ces données de paramétrage. Les moyens de traitement décodent les données graphiques comprimées stockées dans la première mémoire sur la base des données de paramétrage, et, lorsque ladite durée élémentaire correspondante est écoulée, les moyens d'analyse délivrent à la deuxième mémoire, entre chaque affichage d'une trame, les données de paramétrage de l'image graphique auxiliaire suivante et effectuent un traitement d'analyse de ces nouvelles données de paramétrage. Les moyens de traitement décodent alors les données graphiques comprimées stockées dans la première mémoire et correspondant à cette image graphique auxiliaire suivante, sur la base de ces nouvelles données de paramétrage.

[0021] Selon un mode de réalisation de l'invention, les moyens d'analyse comportent un compteur temporel et des moyens de contrôle aptes à initialiser le compteur temporel à une valeur initiale prédéterminée. Chaque donnée de paramétrage comporte une indication temporelle, reliée à ladite valeur initiale prédéterminée, et représentative de l'instant de début du premier décodage de l'image graphique auxiliaire correspondante. Les moyens d'analyse sont alors aptes à stocker dans un registre, l'indication temporelle de l'image graphique auxiliaire suivante. Les moyens de traitement effectuent les décodages successifs des images graphiques auxiliaires courantes paramétrées par l'ensemble correspondant de données de paramétrage, tant que la valeur du compteur temporel est inférieure au contenu du registre.

[0022] Selon un mode de réalisation de l'invention, le décodeur auxiliaire (décodeur de sous-image) comporte des mémoires élémentaires (tables de recherche; "look-up tables"). Les moyens d'analyse sont aptes à stocker respectivement dans certaines au moins de ces mémoires élémentaires, des groupes différents de couples "couleur coefficient de mélange". Le nombre de couples par groupes est inférieur à un premier nombre prédéterminé, tandis que le nombre de mémoires élémentaires est inférieur ou égal à un deuxième nombre prédéterminé (par exemple 8). Les moyens de traitement comportent un bloc-décodeur auxiliaire (circuit VLD et circuit RLD) apte à décoder les données graphiques comprimées et à adresser les mémoires élémentaires avec les données graphiques décodées, ainsi qu'un multiplexeur dont les entrées sont reliées aux sorties des mémoires élémentaires. Le décodeur auxiliaire comporte également des moyens de commande du multiplexeur aptes à sélectionner les entrées du multiplexeur en fonction de données de désignation contenues dans les données de paramétrage, ces données de désignation permettant de sélectionner l'une des mémoires élémentaires (table de recherche).

[0023] D'autres avantages et caractéristiques de l'invention apparaîtront à l'examen de la description détaillée de modes de réalisation et de mise en oeuvre, nullement limitatifs, et des dessins annexés, sur lesquels :
  • la figure 1 est un synoptique schématique d'un système d'élaboration selon l'invention;
  • la figure 2 illustre plus particulièrement une partie du système de la figure 1;
  • la figure 3 illustre plus en détail mais toujours de façon schématique l'architecture interne d'un décodeur d'image auxiliaire (décodeur de sous-image);
  • la figure 4 illustre le découpage en régions d'une image graphique auxiliaire destinée à être superposée à une image principale;
  • la figure 5 illustre d'une façon générale l'architecture d'un flot auxiliaire correspondant à des images graphiques auxiliaires, ainsi qu'un mode de mise en oeuvre du procédé de décodage selon l'invention; et
  • la figure 6 illustre, sur un cas particulier, le fonctionnement du décodeur de sous-image selon l'invention ainsi qu'une mise en oeuvre du procédé selon l'invention.


[0024] Sur la figure 1, la référence SY désigne d'une façon générale un système d'élaboration d'images numériques incorporant par exemple un décodeur satellite et/ou un téléviseur.

[0025] Dans ce système SY, des moyens d'entrée IFE reçoivent, par exemple d'un disque numérique multifonctions (disque DVD : "Digital Versatile Disk", en langue anglaise), non représenté ici à des fins de simplification, un flot principal de données comprimées selon, par exemple, les normes MPEG, ainsi que des flots auxiliaires comprenant des ensembles de données graphiques également comprimées, et correspondant à des éléments graphiques formant des images graphiques auxiliaires destinées à être incrustées dans une zone prédéterminée d'un écran d'affichage AFF en superposition des images principales résultant du décodage des données principales comprimées.

[0026] Pour procéder au décodage des données principales comprimées, il est prévu un décodeur principal DCD, ou décodeur MPEG. Le système SY comprend par ailleurs un microprocesseur CPU pouvant par exemple gérer le décodage de différents canaux satellites, ainsi que des moyens de décodage auxiliaires DSP, plus simplement désignés dans la suite "décodeur auxiliaire" (décodeur de sous-image), destinés à effectuer le décodage des informations graphiques comprimées correspondant aux images graphiques auxiliaires.

[0027] Un autre élément de ce système est une mémoire dynamique MMP, par exemple une mémoire SDRAM, qui est partagée entre ces différents éléments. Il est particulièrement intéressant de pouvoir limiter la taille mémoire de cette mémoire, afin notamment d'en limiter le coût et l'encombrement. C'est l'un des buts de l'invention.

[0028] L'ensemble des éléments de la figure 1 dialogue via un bus bidirectionnel BBS.

[0029] La mémoire MMP comporte (figure 2) une zone mémoire Z1, dans laquelle sont écrites les données comprimées principales en attente de traitement, ainsi qu'une zone ZSP servant à stocker les flots auxiliaires correspondant aux images graphiques auxiliaires. En fait, la mémoire MMP comporte également au moins deux zones-mémoires supplémentaires (non représentées ici à des fins de simplification) et servant à stocker des images principales déjà décodées.

[0030] Fonctionnellement, le décodeur MPEG, DCD, fournit en sortie, après décodage et/ou extraction de la mémoire MMP, des valeurs de luminance Yp, et de chrominance Up et Vp, pour chacun des pixels de l'image principale à afficher.

[0031] Par ailleurs, comme on le verra plus en détail ci-après, le décodeur auxiliaire DSP coopère avec la zone ZSP de la mémoire MMP pour décoder au vol, les images graphiques auxiliaires et fournir, au rythme d'affichage des pixels sur l'écran, les valeurs de luminance et de chrominance Ya, Ua, Va, de chaque pixel de l'image graphique auxiliaire ainsi décodée. Les valeurs de chrominance issues du décodeur MPEG DCD, et du décodeur auxiliaire DSP, sont ensuite mélangées dans un mélangeur MIX, compte tenu d'un coefficient de mélange, pour donner, pour le pixel considéré de l'image résultante, des valeurs de luminance et de chrominance Yr, Ur et Vr. Il convient de noter ici qu'à des fins de simplification, le mélangeur MIX n'a pas été représenté sur la figure 1.

[0032] Si l'on se réfère maintenant plus particulièrement à la figure 3, on voit que le décodeur auxiliaire DSP comporte une première mémoire FF1, du type FIFO, et une deuxième mémoire FF2, également du type FIFO, ces deux mémoires étant susceptibles de recevoir des données des flots auxiliaires stockés dans la zone ZSP de la mémoire MMP. Mises à part ces deux mémoires, le décodeur auxiliaire est essentiellement réalisé à partir de portes et circuits logiques intégrés.

[0033] Comme on le verra plus en détail ci-après, la mémoire FF1 est consacrée au stockage des données graphiques comprimées formant la ou les images graphiques auxiliaires, tandis que la mémoire FF2 est plus particulièrement destinée au stockage des données de paramétrage DCSQ incorporées dans un flot auxiliaire et associées à une ou plusieurs images graphiques auxiliaires.

[0034] Les données graphiques comprimées contenues dans la mémoire FF1 sont décodées dans un bloc décodeur auxiliaire DCDA comportant notamment un circuit de décodage à longueur variable (VLD) et un circuit de décodage de chaîne de zéro (RLD) bien connus de l'homme du métier et qui sont classiques pour le décodage d'image.

[0035] Le bloc décodeur auxiliaire DCDA est par ailleurs contrôlé par un contrôleur CTRL qui reçoit également à des fins d'analyse et de traitement, les données de paramétrage DCSQ stockées dans la mémoire FF2. Le contrôleur CTRL coopère également avec un compteur temporel CTR ainsi qu'avec un registre RG1 dont on reviendra plus en détail ci-après sur la fonction.

[0036] Un contrôleur mémoire LMC dialogue avec le contrôleur CTRL, ainsi qu'avec les deux mémoires FF1 et FF2 (par l'intermédiaire de requêtes et d'acquittements), et gère l'adressage de la mémoire MMP. Ce contrôleur mémoire LMC est également relié au microprocesseur externe CPU.

[0037] Dans l'exemple décrit ici, le décodeur auxiliaire DSP comporte également huit mémoires élémentaires distinctes (ou huit zones mémoire disctinctes d'une même mémoire) référencées LUT1-LUT8 (en pratique, il peut être également prévu d'autres mémoires élémentaires permettant notamment d'activer des formes géométriques en sur-brillance). Ces mémoires élémentaires sont adressées dans l'exemple décrit par deux bits délivrés par le bloc décodeur auxiliaire DCDA et résultant du décodage des données graphiques auxiliaires comprimées. Par ailleurs, lors d'une phase de programmation, sur laquelle on reviendra plus en détail ci-après, le contrôleur CTRL peut également programmer, c'est-à-dire charger, le contenu de certaines au moins de ces mémoires élémentaires en fonction du contenu des données de paramétrage stockées dans la mémoire FF2.

[0038] Le contrôleur CTRL délivre également, lors du décodage des données graphiques comprimées, un signal de commande SCMD au multiplexeur MUX de façon à sélectionner l'une des mémoires élémentaires LUTi. Les données stockées dans cette mémoire élémentaire sélectionnée sont alors délivrées en sortie du multiplexeur. Plus précisément, une première partie de ces données, par exemple sur quatre bits, est délivrée à une mémoire finale MLUT contenant, à chaque adresse désignée par les quatre bits reçus en entrée, des valeurs de luminance et de chrominance Ya, Ua et Va sur huit bits et correspondant à une couleur prédéfinie. Une autre partie des données délivrées par la mémoire élémentaire LUTi sélectionnée forme un coefficient de mélange CM sur quatre bits qui va être délivré aux moyens de mélange MIX de façon à pondérer le mélange entre les valeurs de luminance et de chrominance du pixel de l'image principale et les valeurs de luminance et de chrominance du pixel de l'image graphique auxiliaire.

[0039] On va maintenant décrire plus en détail, en se référant plus particulièrement aux figures 4 et suivantes, un mode de fonctionnement du dispositif selon l'invention, ainsi qu'un mode de mise en oeuvre du procédé selon l'invention.

[0040] Selon une caractéristique générale de l'invention, on décode au vol les données comprimées d'un flot auxiliaire de données définissant une image auxiliaire, au cours de l'affichage de chaque image principale dans laquelle cette image auxiliaire doit être incrustée, de façon à délivrer successivement au cours de chaque décodage de l'image auxiliaire, pour les pixels successifs de cette image auxiliaire, les valeurs de luminance et de chrominance Ya, Ua, Va destinées à être mélangées avec celles Yp, Up, Vp des pixels homologues de l'image principale en cours d'affichage.

[0041] Une image auxiliaire IMAX (figure 4) est d'une façon générale destinée à être incrustée dans une zone prédéterminée de l'écran, en superposition avec l'image principale IMP. En fait, les mémoires élémentaires LUTi définissent chacune une table de recherche ("look-up table" en langue anglaise) stockant, dans le cas présent, puisque l'adressage de chacune de ces tables s'effectue sur deux bits, au maximum quatre couples "couleur-coefficient de mélange". Chaque table LUTi est donc associée à une région de l'image au sein de laquelle on ne pourra trouver au maximum que quatre couples différents "couleur-coefficient de mélange".

[0042] Puisque, dans le cas présent, il n'y a que huit mémoires élémentaires LUTi, il ne peut donc y avoir que huit régions différentes possibles pour l'image auxiliaire IMAX. Bien entendu, chaque ligne de l'image auxiliaire IMAX peut être décomposée en ces huit régions. Cependant, certaines lignes peuvent être décomposées en moins de huit régions.

[0043] Chaque région Ri peut être de taille différente, en ayant toutefois, dans l'exemple décrit ici, une taille minimale de huit pixels.

[0044] On voit sur la figure 5, qu'un flot auxiliaire stocké dans la zone ZSP de la mémoire MMP comporte d'une façon générale un en-tête H, des données graphiques comprimées BM destinées dans le cas présent à former plusieurs images graphiques auxiliaires différentes, et plusieurs paquets de données de paramétrage DCSQ1, DCSQ2, ..., respectivement associés à chaque ensemble de données graphiques comprimées correspondant à chaque image auxiliaire destinée à être affichée sur l'écran.

[0045] L'en-tête H comporte en particulier l'adresse @2 permettant de localiser dans la zone mémoire ZSP le début du paquet de données de paramétrage DCSQ1 de la première image graphique auxiliaire. Par ailleurs, chaque paquet de données de paramétrage comporte les données binaires relatives aux différents couples "couleur-coefficient de mélange" correspondant à chacune des régions de l'image graphique auxiliaire, ainsi que la taille de ces régions ligne par ligne, ces tailles correspondant à des données de désignation permettant, comme on le verra plus en détail ci-après, lors du décodage des images, à sélectionner telle ou telle table de recherche en fonction de la ligne et de la position du pixel dans la ligne.

[0046] Chaque paquet DCSQi comporte également l'adresse @3 correspondant au début des données graphiques comprimées de l'image graphique auxiliaire correspondant au paquet DCSQi. Enfin, chaque paquet DCSQi contient une indication temporelle (TS2 pour le paquet DSQ2) qui indique en fait à quelle image principale se réfère l'image graphique auxiliaire correspondant à ce paquet de données de paramétrage.

[0047] D'une façon classique, un train de données MPEG comporte des flots principaux de données vidéo comprimées, correspondant aux images principales, des flots de données audio, et des flots auxiliaires de données graphiques correspondant aux images graphiques auxiliaires. Ces flots sont transmis de façon multiplexée et sont précédés chacun d'un identifiant de présentation temporelle PTS.

[0048] Lorsque l'identifiant temporel PTS d'un flot auxiliaire correspondant à une ou plusieurs images graphiques auxiliaires, est détecté, le microprocesseur externe CPU délivre au contrôleur mémoire LMC l'adresse @ 1 permettant au pointeur d'adresse de pointer au début du flot auxiliaire (figure 5).

[0049] L'en-tête H du flot auxiliaire est alors par exemple stockée dans la mémoire FF2 et analysé par le contrôleur CTRL. Celui-ci détecte l'adresse @2 indiquant le début du paquet DCSQ1 et fournit cette adresse @2 au contrôleur mémoire LMC qui pointe sur l'adresse correspondante. Les données de paramétrage contenues dans le paquet DCSQ1 sont alors stockées notamment dans la mémoire FF2 aux fins d'analyse par le contrôleur CTRL.

[0050] Cette analyse comporte la programmation de l'une au moins des mémoires élémentaires LUTi, c'est-à-dire le stockage dans ces mémoires des données binaires relatives aux couples "couleur-coefficient de mélange" correspondant aux différentes régions de l'image graphique auxiliaire dont le décodage va être paramétré par les données de paramétrage contenues dans le paquet DCSQ1. Bien que, généralement, le contenu de la mémoire MLUT soit effectué en début d'une séquence d'images, il n'est pas exclu que son contenu puisse être également défini par les données de paramétrage contenues dans le paquet DCSQ1.

[0051] Par ailleurs, avant de commencer le décodage proprement dit des données graphiques comprimées correspondant à l'image graphique auxiliaire qui va être incrustée, les moyens de contrôle CTRL vont lire l'indication temporelle TS2 du paquet DCSQ2 correspondant à l'image graphique suivante et stocker cette indication dans le registre RG1. A cet égard, lors de la réception de l'identifiant temporel PTS du flot auxiliaire, le compteur CTR a été initialisé par le contrôleur CTRL à une valeur initiale prédéterminée. Cette valeur initiale peut être par exemple l'heure exacte de l'occurence de la première image principale dans laquelle devra être incrustée la première image graphique auxiliaire. En variante, il serait également possible d'initialiser le compteur CTR à la valeur zéro. Aussi, si l'heure exacte est stokée dans le compteur CTR, l'indication temporelle TS2 stockée dans le registre RG1 pourra être alors l'heure exacte à laquelle doit commencer le décodage de l'image graphique auxiliaire suivante correspondant au paquet DCSQ2. Si le compteur CTR est initialisé à la valeur zéro, l'indication temporelle TS2 stockée dans le registre RG1 pourra être alors simplement la durée de l'affichage de l'image graphique auxiliaire courante, en l'espèce l'image graphique auxiliaire correspondant au paquet DCSQ1.

[0052] Une fois l'opération d'analyse du paquet DCSQ1 effectuée (cette analyse étant effectuée à la montée du signal VSYNC pendant le retour trame), le contrôleur CTRL va lire l'adresse @3 contenue dans le paquet DCSQ1 et correspondant à l'adresse de début des données graphiques comprimées correspondant à l'image graphique auxiliaire qui doit être décodée.

[0053] Sur requête, les données graphiques comprimées sont alors stockées dans la mémoire FF1 pour être décodées au vol par le bloc décodeur auxiliaire DCDA. Ce bloc décodeur DCDA délivre successivement des paires de bits correspondant aux données graphiques comprimées. Ces paires de bits sont délivrées en tant qu'adresses, aux tables LUTi et celles-ci sont sélectionnées par le signal de commande SCMD délivré par le contrôleur CTRL en fonction du contenu des données de paramétrage DCSQ1, et notamment de la taille des différentes régions de l'image graphique auxiliaire. Les quatre bits correspondant à la couleur, et délivrés par la table LUTi sélectionnée, adressent la mémoire MLUT et celle-ci délivre trois fois huit bits correspondant aux valeurs de luminance et de chrominance du pixel considéré de l'image graphique auxiliaire décodée. Parallèlement, les quatre bits du coefficient de mélange CM contenu également dans la table LUTi sélectionnée, sont délivrés au mélangeur MIX.

[0054] Dans le cas présent, les valeurs de luminance et de chrominance Ya, Ua et Va sont délivrées simultanément en sortie de la mémoire MLUT et sont donc délivrées à la fréquence d'affichage pixel, c'est-à-dire 13,5 MHz. Bien entendu, si les valeurs de luminance, ainsi que la paire de valeurs de chrominance, étaient délivrées séquentiellement, celles-ci seraient délivrées à la fréquence de 27 MHz.

[0055] Les valeurs de luminance et de chrominance ainsi délivrées, sont mélangées dans le mélangeur MIX, compte tenu du coefficient de mélange, et ce pour chaque pixel et pour chaque ligne de la trame de l'image affichée.

[0056] Cette opération de décodage se poursuit pour toutes les lignes de la trame de l'image graphique auxiliaire. Pendant le retour trame, le processus qui vient d'être décrit pour l'analyse des données du paquet DCSQ1 est répété. Puis, lors de l'affichage de la trame suivante, le décodage de la deuxième trame de l'image graphique auxiliaire est effectué.

[0057] Ces opérations sont effectuées ainsi de suite, tant que la valeur du compteur temporel CTR ne devient pas supérieure ou égale à la valeur contenue dans le registre RG1. Si tel est le cas, le contrôleur CTRL va alors désigner l'adresse où se situe le paquet DCSQ2 de données de paramétrage correspondant à l'image graphique suivante. Les mêmes opérations qui viennent d'être décrites pour l'image graphique précédente, se répètent pour cette image graphique auxiliaire suivante.

[0058] On se réfère maintenant plus particulièrement à la figure 6 pour décrire le mode de fonctionnement du dispositif, selon l'invention, dans un cas particulier d'image graphique auxiliaire.

[0059] Cette image graphique auxiliaire se compose d'un rectangle dont chaque ligne LG comporte 30 pixels PX1-PX30. Les coordonnées du début XO de l'image peuvent être définies dans le paquet DCSQ ou bien prédéfinies par le microprocesseur CPU. Une première sous-région SR1 de cette image graphique s'étend entre les pixels PX1 et PX5 et se compose d'un fond de couleur jaune auquel on affecte un coefficient de mélange de 80%. La deuxième sous-région SR2 s'étend du pixel PX6 jusqu'au pixel PX20 et se compose d'un fond noir affecté d'un coefficient de mélange de 20%, sur lequel s'affiche la lettre S de couleur rouge avec un coefficient de mélange de 50% et une partie de la lettre T de couleur verte avec un coefficient de mélange de 20%.

[0060] On peut donc définir dans cette image graphique auxiliaire (pour toutes ses lignes et pour toutes ses trames) une première région R1 d'une taille de 20 pixels, formée des sous-régions SR1 et SR2. On peut affecter à cette première région la table LUT1 dans laquelle on stocke à l'adresse 00 le couple (noir; 20%), à l'adresse 01 le couple (vert; 20%), à l'adresse 10 le couple (jaune; 80%) et à l'adresse 11 le couple (rouge; 50%). Bien entendu, tous ces couples sont, comme indiqué ci-avant, représentés chacun par 2 mots de 4 bits, le premier mot de 4 bits formant une adresse pour la mémoire MLUT.

[0061] La deuxième région de l'image qui s'étend du pixel PX21 au pixel PX30, se compose d'un fond orange affecté d'un coefficient de mélange de 20%, sur lequel est écrit le reste de la barre du T de couleur verte +20%. On peut donc affecter à cette deuxième région R2, la table LUT2, dans laquelle on stocke à l'adresse 00 le couple (orange; 20%), et à l'adresse 01 le couple (vert; 20%).

[0062] On suppose enfin que cette image doit être affichée pendant 30 minutes à partir de l'occurence d'une image principale initiale.

[0063] Aussi, entre chaque retour trame, le contrôleur CTRL va charger les tables LUT1 et LUT2 avec les valeurs binaires correspondant aux couples indiqués sur la figure 6. Par ailleurs, il vérifie en comparant les contenus du compteur temporel CTR et du registre RG1 que la durée de 30 minutes n'est pas expirée.

[0064] Les données graphiques comprimées stockées dans la mémoire FF1 sont telles que, après décodage dans le bloc décodeur auxiliaire DCDA, les données binaires associées aux pixels PX1-PX5 de la ligne LG (par exemple) prennent la valeur 10. Les données binaires associées aux données pixels PX6 à PX20 prennent toutes, après décodage, la valeur 00, sauf celles des pixels PXj et PXk qui prennent respectivement les valeurs 11 et 01.

[0065] Pour l'affichage des pixels 1 à 20, c'est donc la table LUT1 qui est sélectionnée par le signal de commande SCMD, la mémoire MLUT délivrant respectivement les bonnes valeurs de couleur correspondant aux différents pixels de l'image graphique auxiliaire décodée.

[0066] A partir du pixel 21, le signal de commande SCMD va agir sur le multiplexeur pour sélectionner la table LUT2. Les données binaires des pixels 21 à 30 de la ligne LG auront toutes alors, après décodage, la valeur 00.


Revendications

1. Procédé d'élaboration d'images numériques résultant d'éléments graphiques auxiliaires formant au moins une image auxiliaire incrustée dans des images principales, caractérisé par le fait qu'on décode au vol les données comprimées (BM) d'un flot auxiliaire de données définissant ladite image auxiliaire (IMAX), au cours de l'affichage de chaque image principale (IMP) dans laquelle cette image auxiliaire doit être incrustée, de façon à délivrer successivement au cours de chaque décodage de l'image auxiliaire, pour les pixels successifs de cette image auxiliaire, des valeurs de luminance et de chrominance (Ya, Ua, Va) destinées à être mélangées avec celles (Yp, Up, Vp) des pixels homologues de l'image principale en cours d'affichage.
 
2. Procédé selon la revendication 1, caractérisé par le fait qu'il comprend une réception du flot auxiliaire comprenant l'ensemble de données graphiques comprimées (BM) correspondant à des éléments graphiques formant au moins ladite image graphique auxiliaire destinée à être incrustée dans une zone prédéterminée d'un écran d'affichage, à partir de l'instant d'occurence d'une image principale initiale et pendant une durée élémentaire prédéterminée, en superposition des images principales, le stockage du flot auxiliaire dans une mémoire (MMP), et des décodages successifs des données graphiques comprimées respectivement effectués au cours des affichages des images principales successives, depuis l'affichage de l'image principale initiale jusqu'à l'expiration de ladite durée élémentaire predéterminée, de façon à délivrer au cours de chaque décodage, au rythme d'affichage des pixels à l'écran et pour chaque pixel de l'image auxiliaire, les valeurs de luminance et de chrominance ainsi qu'un coefficient de mélange (CM), et le mélange pixel à pixel dans ladite zone prédéterminée d'écran des valeurs de chrominance et de luminance correspondant à l'image principale courante en cours d'affichage et à l'image graphique auxiliaire décodée, compte tenu desdits coefficients de mélange (CM).
 
3. Procédé selon la revendication 1 ou 2, caractérisé par le fait que le flot auxiliaire comprend un en-tête (H), lesdites données graphiques comprimées (BM), et au moins un ensemble de données de paramétrage (DCSQ) permettant de paramétrer le décodage de ladite image graphique, et par le fait que, les images principales étant affichées ligne par ligne et en deux trames successives correspondant à des lignes de parités différentes, on effectue un traitement d'analyse desdites données de paramétrage entre chaque affichage d'une trame.
 
4. Procédé selon la revendication 2 ou 3, caractérisé par le fait que l'ensemble de données graphiques comprimées correspond à plusieurs images graphiques auxiliaires successives destinées chacune à être successivement superposée aux images principales pendant une durée élémentaire respective, par le fait que le flot auxiliaire comprend plusieurs ensembles de données de paramétrage (DCSQ1, DCSQ2) permettant chacun de paramétrer le décodage d'une image graphique auxiliaire, et par le fait que, tant que ladite durée élémentaire correspondant à une image graphique auxiliaire n'est pas écoulée, on analyse l'ensemble de données de paramétrage correspondant à cette image entre chaque affichage d'une trame, puis on procède au décodage des données graphiques comprimées de cette image sur la base des données de paramétrage, et lorsque ladite durée élémentaire correspondante est écoulée, on passe automatiquement à l'analyse de l'ensemble de données de paramétrage correspondant à l'image graphique auxiliaire suivante puis au décodage des données graphiques comprimées de cette image suivante sur la base de ces nouvelles données de paramétrage.
 
5. Procédé selon la revendication 4, caractérisé par le fait qu'à la réception du flot auxiliaire on initialise un compteur temporel (CTR) à une valeur initiale prédéterminée, par le fait que chaque ensemble de données de paramétrage comporte une indication temporelle (TS2), reliée à ladite valeur initiale prédéterminée, et représentative de l'instant de début du premier décodage de l'image graphique auxiliaire correspondante, par le fait qu'avant de commencer le décodage de la première image graphique auxiliaire, on stocke dans un registre (RG1) l'indication temporelle de l'image graphique auxiliaire suivante et on effectue les décodages successifs de l'image graphique auxiliaire paramétrés par l'ensemble correspondant de données de paramétrage tant que la valeur du compteur est inférieure au contenu du registre.
 
6. Procédé selon l'une des revendications 2 à 5, caractérisé par le fait que le traitement d'analyse d'un ensemble de données de paramétrage comprend le stockage de groupes différents de couples "couleur-coefficient de mélange" dans des mémoires élémentaires respectives différentes (LUT1-LUT8), le nombre de couples par groupe étant inférieur à un premier nombre prédéterminé, le nombre de groupes étant inférieur ou égal à un deuxième nombre prédéterminé, et par le fait que le décodage ligne par ligne de chaque image graphique auxiliaire comprend des adressages successifs par les données graphiques décodées, des différentes mémoires élémentaires désignées successivement par des données de désignation contenues dans l'ensemble de données de paramétrage (DCSQ1, DCSQ2).
 
7. Système d'élaboration d'images numériques résultant d'éléments graphiques auxiliaires incrustés dans des images principales, caractérisé par le fait qu'il comprend

des moyens de réception (IFE) pour recevoir un flot principal comprenant des données comprimées codant des images numériques principales, et au moins un flot auxiliaire comprenant un ensemble de données graphiques comprimées correspondant à des éléments graphiques formant au moins une image graphique destinée à être incrustée dans une zone prédéterminée d'un écran d'affichage (AFF), à partir de l'instant d'occurence d'une image principale initiale et pendant une durée élémentaire prédéterminée, en superposition des images principales,

une mémoire (MMP) pour stocker le flot principal et le flot auxiliaire,

un décodeur principal (DCD) apte à décoder le flot principal de données comprimées et à délivrer pour chaque pixel d'une image principale décodée, des valeurs de luminance et de chrominance,

un dispositif d'élaboration des images résultantes comprenant un décodeur auxiliaire (DSP) apte à effectuer des décodages successifs des données graphiques comprimées contenues dans la mémoire, ces décodages successifs étant respectivement effectués au cours des affichages des images principales successives, depuis l'affichage de l'image principale initiale jusqu'à l'expiration de ladite durée élémentaire predéterminée, de façon à délivrer au cours de chaque décodage, au rythme d'affichage des pixels à l'écran et pour chaque pixel de l'image auxiliaire, des valeurs de luminance et de chrominance ainsi qu'un coefficient de mélange, et des moyens de mélange (MIX) aptes à effectuer le mélange pixel à pixel dans ladite zone prédéterminée d'écran des valeurs de chrominance et de luminance correspondant à l'image principale courante en cours d'affichage et à l'image graphique auxiliaire décodée, compte tenu desdits coefficients de mélange (CM).


 
8. Système selon la revendication 7, caractérisé par le fait que le flot auxiliaire comprend un en-tête (H), lesdites données graphiques comprimées (BM), et au moins un ensemble de données de paramétrage (DCSQ) permettant de paramétrer le décodage de ladite image graphique, par le fait que le décodeur auxiliaire (DSP) comporte une première mémoire (FF1) du type "premier entré-premier sorti" apte à stocker les données graphiques comprimées, une deuxième mémoire (FF2) du type "premier entré-premier sorti " apte à stocker les données de paramétrage, par le fait que, les images principales étant affichées ligne par ligne et en deux trames successives correspondant à des lignes de parités différentes, le décodeur auxiliaire (DSP) comporte des moyens d'analyse (CTRL) aptes, entre chaque affichage d'une trame, à délivrer lesdites données de paramétrage à la deuxième mémoire et à effectuer un traitement d'analyse de ces données de paramétrage, et des moyens de traitement (DCDA) aptes à décoder les données graphiques comprimées stockées dans la première mémoire, sur la base des données de paramétrage, et à délivrer aux moyens de mélange (MIX), pour chaque pixel de l'image graphique auxiliaire, les valeurs de luminance et de chrominance, ainsi qu'un coefficient de mélange.
 
9. Système selon la revendication 8, caractérisé par le fait que l'ensemble de données graphiques comprimées (BM) correspond à plusieurs images graphiques auxiliaires successives destinées à être successivement superposées aux images principales pendant une durée élémentaire respective, par le fait que le flot auxiliaire comprend plusieurs ensembles de données de paramétrage permettant chacun de paramétrer le décodage d'une image graphique auxiliaire, et par le fait que, tant que ladite durée élémentaire correspondant à une image graphique auxiliaire n'est pas écoulée, les moyens d'analyse délivrent à la deuxième mémoire (FF2), entre chaque affichage d'une trame, lesdites données de paramétrage correspondantes (DCSQ1) et effectuent un traitement d'analyse de ces données de paramétrage, et les moyens de traitement (DCDA) décodent les données graphiques comprimées stockées dans la première mémoire, sur la base des données de paramétrage, et lorsque ladite durée élémentaire correspondante est écoulée, les moyens d'analyse délivrent à la deuxième mémoire, entre chaque affichage d'une trame, les données de paramétrage (DCSQ2) de l'image graphique auxiliaire suivante et effectuent un traitement d'analyse de ces données de paramétrage, et les moyens de traitement décodent les données graphiques comprimées stockées dans la première mémoire et correspondant à cette image graphique auxiliaire suivante, sur la base des nouvelles données de paramétrage (DCSQ2).
 
10. Système selon la revendication 9, caractérisé par le fait que les moyens d'analyse comportent un compteur temporel (CTR) et des moyens de contrôle (CTRL) aptes à initialiser le compteur temporel à une valeur initiale prédéterminée, par le fait que chaque ensemble de données de paramétrage comporte une indication temporelle (TS2), reliée à ladite valeur initiale prédéterminée, et représentative de l'instant de début du premier décodage de l'image graphique auxiliaire correspondante, par le fait que les moyens d'analyse sont aptes à stocker dans un registre (BG1) l'indication temporelle de l'image graphique auxiliaire suivante et par le fait que les moyens de traitement effectuent les décodages successifs de l'image graphique auxiliaire courante paramétrés par l'ensemble correspondant de données de paramétrage tant que la valeur du compteur temporel est inférieure au contenu du registre.
 
11. Système selon l'une des revendications 7 à 10, caractérisé par le fait que le décodeur auxiliaire (DSP) comporte des mémoires élémentaires (LUT1-LUT8), par le fait que les moyens d'analyse sont aptes à stocker respectivement dans certaines au moins de ces mémoires élémentaires, des groupes différents de couples "couleur-coefficient de mélange", le nombre de couples par groupe étant inférieur à un premier nombre prédéterminé, le nombre de mémoires élémentaires étant inférieur ou égal à un deuxième nombre prédéterminé, et par le fait que les moyens de traitement comportent un bloc décodeur auxiliaire (DCDA) apte à décoder les données graphiques comprimées et à adresser les mémoires élémentaires avec les données graphiques décodées, ainsi qu'un multiplexeur (MUX) dont les entrées sont reliées aux sorties des mémoires élémentaires, et par le fait que le décodeur auxiliaire (DSP) comporte des moyens de commande (CTRL) du multiplexeur aptes à sélectionner les entrées du multiplexeur en fonction de données de désignation contenues dans les données de paramétrage.
 




Dessins






















Rapport de recherche