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").
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).
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é.
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.
Cependant, une telle façon d'opérer requiert une taille mémoire
importante, notamment lorsque la taille des images graphiques auxiliaires
est importante.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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).
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.
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.
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.
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.
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.
L'ensemble des éléments de la figure 1 dialogue via un bus
bidirectionnel BBS.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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".
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.
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.
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.
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.
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.
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.
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).
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.
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.
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.
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.
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.
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.
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.
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é.
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.
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.
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%.
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.
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%).
On suppose enfin que cette image doit être affichée pendant 30
minutes à partir de l'occurence d'une image principale initiale.
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.
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.
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.
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.