[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 PX
1-PX
30. 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 PX
1 et PX
5 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 PX
6 jusqu'au pixel PX
20 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 PX
21 au pixel PX
30, 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 PX
1-PX
5 de la ligne LG (par exemple) prennent la valeur 10. Les données binaires associées
aux données pixels PX
6 à PX
20 prennent toutes, après décodage, la valeur 00, sauf celles des pixels PX
j et PX
k 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.
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.