Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD AND SYSTEM FOR CHANGING THE SCALE OF DIGITAL IMAGES THAT ARE PROCESSED IN BANDS
Document Type and Number:
WIPO Patent Application WO/2001/015082
Kind Code:
A1
Abstract:
The invention relates to a method and a system for treating digital images. The inventive method comprises a stage in which the width of the image is compared with a predetermined width (L). If the width of the image is greater than the predetermined width (L), the following stages are then carried out: a sequencing stage in which a memory is read in bands of said width (L) and of a height equal to that of the image; a vertical conversion calculation stage; a horizontal conversion calculation stage; and a writing stage in bands, in a memory.

Inventors:
MONNIER PHILIPPE (FR)
SEIGNERET FRANCK (FR)
CHIARUZZI EMMANUEL (FR)
Application Number:
PCT/FR2000/002356
Publication Date:
March 01, 2001
Filing Date:
August 22, 2000
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
ST MICROELECTRONICS SA (FR)
MONNIER PHILIPPE (FR)
SEIGNERET FRANCK (FR)
CHIARUZZI EMMANUEL (FR)
International Classes:
G06T3/40; H04N5/44; (IPC1-7): G06T3/40
Domestic Patent References:
WO1999000785A11999-01-07
Foreign References:
US5910795A1999-06-08
EP0751682A21997-01-02
Attorney, Agent or Firm:
Bureau, Casalonga-josse D. A. (8 avenue Percier Paris, FR)
Download PDF:
Claims:
REVENDICATIONS
1. Procédé de traitement graphique pour images numériques comprenant : une étape de comparaison de la largeur de l'image et d'une largeur prédéterminée L, si la largeur de l'image est supérieure à la largeur prédéterminée L, une étape de séquençage réalisant une lecture d'une mémoire par bandes de la dite largeur L et de hauteur égale à celle de l'image, une étape de calcul de conversion verticale, une étape de calcul de conversion horizontale, et une étape d'écriture par bandes dans une mémoire.
2. Procédé selon la revendication 1, dans lequel toutes les bandes sont de largeur égale sauf la dernière dont la largeur est égale au reste de la division de la largeur de l'image par la dite largeur prédéterminée.
3. Procédé selon la revendication 1 ou 2, dans lequel les étapes de calcul de conversion verticale et de calcul de conversion horizontale réalisent un agrandissement ou une réduction de l'image.
4. Procédé selon la revendication 1 ou 2, dans lequel les bandes sont chevauchantes.
5. Procédé selon l'une quelconque des revendications précédentes, dans lequel si la largeur de l'image est inférieure ou égale à la largeur prédéterminée L, l'étape de séquençage est supprimée.
6. Procédé selon l'une quelconque des revendications précédentes, comprenant une ou plusieurs étapes de filtrage vertical entre l'étape de calcul de conversion verticale et l'étape de calcul de conversion horizontale.
7. Dispositif de génération d'images numériques, du type comprenant un moyen de calcul d'images, caractérisé par le fait qu'il comprend un moyen de comparaison de la largeur de l'image et d'une largeur prédéterminée L, un moyen de séquençage réalisant une lecture d'une mémoire par bandes de la dite largeur L et de hauteur égale à celle de l'image, si la largeur de l'image est supérieure à la largeur prédéterminée L, un moyen de calcul de conversion verticale, un moyen de calcul de conversion horizontale, et un moyen d'écriture par bandes dans une mémoire.
8. Dispositif selon la revendication 7, caractérisé par le fait que le moyen de calcul d'images est pourvu d'une pluralité de mémoires tampons de lignes, d'un convertisseur vertical, et d'un convertisseur horizontal.
9. Dispositif selon la revendication 7 ou 8, caractérisé par le fait qu'un moyen de filtrage antiscintillement est disposé entre le moyen de calcul de conversion verticale et le moyen de calcul de conversion horizontale.
10. Dispositif selon l'une quelconque des revendications précédentes, caractérisé par le fait que le dit moyen de filtrage comprend une pluralité de mémoires tampons de lignes, et un moyen pour adapter le filtrage à des caractéristiques locales de l'image, de façon que seules des zones de l'image à fort scintillement fassent l'objet du dit filtrage anti scintillement.
Description:
PROCEDE ET SYSTEME DE CHANGEMENT D'ECHELLE D'IMAGES NUMERIQUES TRAITEES PAR BANDES La présente invention relève du domaine du traitement des images numériques que l'on affiche sur un écran, notamment d'ordinateur ou de télévision.

De façon générale, l'affichage de graphiques générés par ordinateur sur un écran de télévision à basse résolution à rafraîchissement interlacé a toujours présenté de grandes difficultés techniques sans parvenir à une qualité véritablement satisfaisante pour les utilisateurs, en raison d'un effet de scintillement. Sur un écran de télévision de type standard, le rafraîchissement des lignes est effectué de façon interlacée.

En d'autres termes les lignes de rang impair sont rafraîchies dans un premier temps et les lignes de rang pair dans un deuxième temps et ainsi de suite. Si deux lignes consécutives présentent des niveaux de brillance très différents, l'oeil humain de l'utilisateur percevra localement un scintillement à une fréquence de 50 ou 60 Hertz selon le standard de télévision adopté. Or, les images générées par ordinateur telles que des graphiques, des fentres ou des sous-fentres présentent typiquement de forts contrastes d'une ligne à l'autre.

Actuellement, les marchés de l'ordinateur portable et de la télévision sont en train de fusionner, sous 1'effet d'entraînement du développement de l'internet et de la télévision interactive qui requiert des technologies associées. Il est donc important de pouvoir afficher des images à forts contrastes d'une ligne à l'autre, telles que les pages diffusées par le réseau internet, sur un écran de télévision standard avec un confort visuel acceptable par l'utilisateur.

Les systèmes utilisés jusqu'à présent pour supprimer ou limiter

cet effet de scintillement sont souvent appelés filtres de"flicker". Comme 1'effet de scintillement est dû au contraste entre deux lignes consécutives, autrement dit à de hautes fréquences sur une colonne verticale de l'image, les systèmes de filtre anti-scintillement basiques mettent en oeuvre un filtrage numérique vertical passe bas. Après le filtrage, deux lignes consécutives sont plus proches en terme de couleur et 1'effet de scintillement est réduit.

L'efficacité d'un filtre numérique est étroitement lié au nombre de points pris en compte. Ce type de filtrage consiste en effet à remplacer un point ou pixel par la moyenne des points voisins et est d'autant plus efficace que la moyenne porte sur un grand nombre de points. Ceci a une influence importante sur la pente de la transition entre la partie passante du filtre et la partie bloquée ou filtrée. Dans la plupart des architectures graphiques, les données relatives à la couleur d'un point ou d'un pixel sont lues dans une mémoire tampon selon un ordre de balayage horizontal, ce qui nécessite la mise en oeuvre d'un nombre de mémoire de lignes égal à n -1 pour un filtre à n pas. Cela ne coûte cher en mémoire ligne que si le filtrage s'effectue sur des pixels alignés verticalement car, dans ce cas, il faut mémoriser les lignes. Dans le cas où le filtrage est effectué sur des pixels alignés horizontalement, le coût est bien moindre car on n'utilise aucune mémoire. Du coup, les seuls cas posant problèmes sont la réduction du flicker, l'agrandissement/réduction vertical et plus généralement tous phénomènes nécessitant un filtrage sur des pixels alignés verticalement. Cela se traduit par un coût très élevé des mémoires de lignes dont la capacité doit tre importante, particulièrement en haute définition avec des lignes de l'ordre de 1920 pixels. Ces mémoires de lignes sont tellement onéreuses, car elles nécessitent de grandes surfaces de silicium, que les filtres anti-scintillement sont généralement à trois pas, c'est-à-dire avec mémorisation de deux lignes, ce qui se traduit par des performances de filtrage médiocres. Or le filtrage a lieu lors des étapes d'affichage de l'image ce qui requiert des performances de débit élevées mme si le filtrage est médiocre.

Par ailleurs, on affiche souvent à l'écran des objets graphiques se présentant sous la forme de fentres ou de sous-fentres dont l'utilisateur peut souhaiter modifier la hauteur et/ou la largeur. Le traitement nécessité

par un changement de dimensions entraîne le stockage dans des mémoires rapides des pixels d'une ou plusieurs lignes, d'où des coûts élevés.

La présente invention a pour objet de remédier aux inconvénients évoqués ci-dessus.

La présente invention a pour objet un procédé de traitement graphique économique, n'utilisant qu'une taille mémoire raisonnable et adapté à des images de qualité élevée quelque soit la taille de l'objet graphique traité.

Le procédé de traitement graphique, selon l'invention, est prévu notamment pour des images numériques, et comprend une étape de comparaison de la largeur de l'image et d'une largeur prédéterminée L, si la largeur de l'image est supérieure à la largeur prédéterminée L, une étape de séquençage réalisant une lecture d'une mémoire par bandes de la dite largeur L et de hauteur égale à celle de l'image, une étape de calcul de conversion verticale, une étape de calcul de conversion horizontale, et une étape d'écriture par bandes dans une mémoire.

Avantageusement, toutes les bandes sont de largeur égale sauf la dernière dont la largeur est égale au reste de la division de la largeur de l'image par la dite largeur prédéterminée.

Dans un mode de réalisation, les étapes de calcul de conversion verticale et de calcul de conversion horizontale réalisent un agrandissement de l'image.

Dans un autre mode de réalisation, les étapes de calcul de conversion verticale et de calcul de conversion horizontale réalisent une réduction de l'image.

Avantageusement, si la largeur de l'image est inférieure ou égale à la largeur prédéterminée L, l'étape de séquençage est supprimée.

Dans un mode de réalisation, une ou plusieurs étapes de filtrage vertical sont prévues entre l'étape de calcul de conversion verticale et l'étape de calcul de conversion horizontale.

La présente invention a également pour objet un dispositif de génération d'images numériques, du type comprenant un moyen de calcul d'images. Le dispositif comprend un moyen de comparaison de la largeur de l'image et d'une largeur prédéterminée L, un moyen de séquençage réalisant une lecture d'une mémoire par bandes de la dite largeur L et de

hauteur égale à celle de l'image, si la largeur de l'image est supérieure à la largeur prédéterminée L, un moyen de calcul de conversion verticale, un moyen de calcul de conversion horizontale, et un moyen d'écriture par bandes dans une mémoire.

Avantageusement, le moyen de calcul d'images est pourvu d'une pluralité de mémoires tampons de lignes, d'un convertisseur vertical, et d'un convertisseur horizontal.

Dans un mode de réalisation, un moyen de filtrage anti- scintillement est disposé entre le moyen de calcul de conversion verticale et le moyen de calcul de conversion horizontale.

Dans un mode de réalisation, le dit moyen de filtrage comprend une pluralité de mémoires tampons de lignes, et un moyen pour adapter le filtrage à des caractéristiques locales de l'image, de façon que seules des zones de l'image à fort scintillement fassent l'objet du dit filtrage anti- scintillement. Le filtrage anti-scintillement peut tre adaptatif en fonction d'un indice de scintillement, de façon que seules des zones de l'image à fort scintillement fassent l'objet du dit filtrage anti- scintillement.

Il est important de considérer la façon dont le contenu des mémoires tampons est rafraîchi dans un sous-système graphique. La plupart du temps l'écran graphique est construit comme un jeu de sous- fentres rectangulaires qui peuvent tre déplacées, agrandies, diminuées, mises à jour etc. Ces opérations sont effectuées sous la commande d'un logiciel et s'appliquent fentre après fentre, généralement de façon synchrone et relativement lente comparées à la vitesse de rafraîchissement de l'écran.

L'invention permet donc d'éviter un filtre onéreux pourvu de mémoires de grande taille s'appliquant à l'image devant s'afficher sur toute sa largeur et qui d'un rafraîchissement à l'autre est souvent conservée, ce qui conduirait à effectuer les mmes calculs de filtrage pour n images consécutives affichées toutes strictement identiques ou au moins en grande partie.

Pour des applications d'animation, la technique habituelle consiste à utiliser une architecture à double mémoires tampons. Le calcul bidimensionnel ou tridimensionnel est effectué dans l'une des mémoires

tampons tandis que l'autre fait l'objet de l'affichage. Chaque fois qu'une nouvelle image a été calculée, les mémoires tampons sont permutées. Ces mémoires tampon peuvent tre, ici, des zones tampons dans une mémoire externe partagée. L'invention permet de réduire le coût des filtres devant tre utilisés. Le traitement est effectué de mémoire à mémoire avant l'affichage de la zone traitée, ce qui présente de nombreux avantages. On s'affranchit ainsi des contraintes temps réel de l'affichage. La performance de filtrage n'est pas directement liée à la vitesse de traitement d'un pixel. Le mme filtre peut traiter les images de définition standard aussi bien que les images à haute définition.

Les exigences de bande passante pour les moyens d'affichage restent inchangées. S'agissant d'un traitement de mémoire à mémoire, l'ensemble du dispositif de génération d'images numériques n'est pas forcé de suivre l'ordre standard de rafraîchissement de l'écran de visualisation. La quantité de mémoire nécessaire pour les mémoires tampons de ligne peut tre réduite de façon significative grâce au découpage de l'image par bandes. Les moyens de filtrage anti- scintillement n'ont pas besoin d'tre dupliqués dans le cas d'un système global relié à plusieurs moyens d'affichages graphiques. Le filtre peut tre appliqué sélectivement à des zones spécifiques d'une image.

Dans les sous-systèmes graphiques, est généralement disposé un accélérateur bidimensionnel qui agit comme un opérateur sur les objets graphiques rectangulaires tels que les fentres. Cet accélérateur ou module de transfert de blocs de bits appelé"blitter"est utilisé pour une mise à jour de zones de l'image, et constitue le meilleur endroit pour intégrer le filtre anti-scintillement et un moyen d'agrandissement/réduction.

La présente invention sera mieux comprise à l'étude de la description détaillée d'un mode de réalisation de l'invention pris à titre d'exemple nullement limitatif et illustré par les dessins annexés sur lesquels : la figure 1 est une vue schématique d'un système selon l'art antérieur ; la figure 2 est une vue schématique d'un objet graphique traité selon un mode de réalisation de l'invention ;

la figure 3 est un diagramme d'étapes d'un procédé selon un mode de réalisation de l'invention ; et la figure 4 est une vue schématique d'un système de traitement graphique selon un mode de réalisation de l'invention.

Comme on peut le voir sur la figure 1, un filtre de flicker de type classique comprend un élément de filtrage 1 à trois pas qui est relié à un étage intermédiaire graphique 2 capable de lui envoyer les unes à la suite des autres, les données relatives aux pixels des lignes de l'image devant tre affichées. Une liaison 3 réalise une connexion directe entre l'étage intermédiaire 2 et l'élément de filtrage 1. Une mémoire tampon 4 est disposée entre l'étage intermédiaire 2 et l'élément de filtrage 1 pour fournir à ce dernier les données relatives au pixel de la ligne de rang immédiatement précédant celle dont les données des pixels sont en cours d'émission sur la ligne 3. La sortie de la mémoire tampon 4 est reliée à l'élément de filtrage 1. La mémoire tampon 4 peut également tre appelée mémoire de ligne. Une mémoire tampon 5 semblable à la mémoire tampon 4 a son entrée reliée à la sortie de la mémoire tampon 4 et sa sortie reliée à l'élément de filtrage 1 pour fournir à ce dernier les données relatives aux pixels de la ligne antépénultième par rapport à la ligne dont les données des pixels sont en cours d'émission sur la liaison 3.

L'élément de filtrage 1 possède également une entrée 6 par laquelle il reçoit les coefficients de filtrage devant tre utilisés pour le fichier image en cours de transmission à partir de l'interface 2. L'élément de filtrage 1 comprend en outre une sortie 7 qui est en général reliée à des moyens d'affichage non représentés.

On voit donc qu'un tel filtre anti-flicker à trois pas nécessite deux mémoires tampon de ligne tout en effectuant pour un fichier-image un filtrage qui n'est jamais qu'un compromis rarement satisfaisant entre la précision de l'image affichée et la réduction du scintillement dont elle est affectée.

Sur la figure 2, on voit qu'un objet graphique, ici une fentre composée de pixels disposés en matrice comprenant A lignes et B colonnes est traitée par bandes de largeur L, autrement dit comprenant L colonnes dans le cas où B est supérieur à L. Dans le cas où B est inférieur ou égal à L, le traitement de l'objet graphique est effectué par une unique

bande de B colonnes. A titre d'exemple, on pourra choisir L égal à 128, notamment dans le cas de la télévision à haute définition où B est de l'ordre de 2000, par exemple égal à 1920. La valeur 128 représente alors un bon compromis entre la taille de la mémoire nécessaire et la rapidité du traitement. Ainsi, un objet graphique de A lignes de 1920 pixels sera traité non pas par ligne complète mais par bandes de 128 pixels et à l'intérieur de chaque bande ligne par ligne. On traitera ainsi quinze bandes successivement.

Si B n'est pas divisible par L, la dernière bande sera de largeur égale au reste de la division de B par L. Ce traitement par bandes est effectué lors de la lecture des données relatives à l'objet graphique dans une mémoire non volatile du type RAM, par un moyen de lecture tel qu'un gestionnaire d'addressage. Après les opérations souhaitées effectuées sur l'objet graphique telles que changement de taille, filtrage, etc. on effectue la réécriture dans la mémoire dans le mme ordre par bandes de largeur L.

Sur la figure 3, les étapes d'un procédé selon l'invention sont illustrées. A l'étape 8, un gestionnaire d'addressage effectue un test de la longueur B de l'objet graphique, en d'autres termes du nombre de pixels par lignes. Si B est inférieur ou égal à L, l'objet graphique est lu de façon classique dans la mémoire où il est stocké, voir étape 9, en commençant par le premier pixel de la première ligne jusqu'au dernier pixel de la première ligne, puis on lit le premier pixel de la deuxième ligne jusqu'au dernier pixel de la deuxième ligne et ainsi de suite jusqu'au dernier pixel de la dernière ligne. A l'étape 10, les pixels de l'objet graphique lu subissent dans l'ordre de la lecture, les opérations souhaitées puis sont réécrits dans une mémoire à l'étape 11, cette mémoire pouvant tre la mme ou pouvant tre différente de celle où l'objet graphique était stocké à l'origine.

Si le résultat du test de l'étape 8 est différent, à savoir si B est supérieur à L, l'objet graphique est lu par bandes de L pixels dans la mémoire où il est stocké, voir étape 12, en commençant par le premier pixel se trouvant dans la première ligne et dans la première bande de coordonnées (1,1) jusqu'au dernier pixel se trouvant dans la première ligne et dans la première bande ou Lleme pixel de la première ligne de coordonnées (L, 1), puis on lit le premier pixel se trouvant dans la

deuxième ligne et dans la première bande de coordonnées (1,2) jusqu'au dernier pixel se trouvant dans la deuxième ligne et dans la première bande ou Lième pixel de la deuxième ligne de coordonnées (L, 2) et ainsi de suite jusqu'au dernier pixel se trouvant dans la première bande et dans la dernière ligne ou Lleme pixel de la dernière ligne de coordonnées (L, A).

Toutefois, on prévoit un chevauchement des bandes car le convertisseur horizontal est à N pas, avec par exemple N = 5. Pour le calcul d'un pixel, le convertisseur horizontal a besoin dudit pixel en entrée et des N-1 pixels précédents de la mme ligne nonobstant les bandes.

Pour réduire 1'effet de scintillement, on utilise un filtre à 3 pas ou les coefficients sont déterminés dynamiquement en fonction du gradient de luminance mesuré entre 3 pixels alignés verticalement.

Pour changer les dimensions d'un objet graphique rectangulaire, le procédé utilisé est un filtre numérique polyphase à N pas et 2P sous- positions.

Une valeur d'incrément est codée avec une partie entière et une partie décimale. Cet incrément représente la distance séparant deux pixels en sortie du filtre. Si cet incrément est supérieur à 1, une réduction de la dimension est réalisée. Dans le cas contraire, l'objet est agrandi.

Si l'incrément est égal à 1,25, le nombre de pixels générés est inférieur au nombre de pixels reçus en entrée du filtre.

Si l'incrément est inférieur à 1, le nombre de pixels générés est supérieur au nombre de pixels reçus. L'objet graphique est agrandi.

Ces pixels sont générés de la façon suivante. L'incrément INC se décompose en une partie entière et décimale. A chaque fois qu'un pixel est généré, cet incrément s'ajoute au reste de la partie décimale accumulée : COUNT = partie décimale [COUNT] + INC.

Cette variable COUNT comporte donc une partie entière et décimale. La partie entière représente le nombre de pixels à prendre en compte avant de générer le pixel suivant. La partie décimale représente la position intermédiaire du pixel à générer par rapport au dernier pixel pris en compte.

Une fois implémenté, afin de définir les sous-positions, on ne garde que les p premiers bits de la partie décimale pour faire les 2P sous-

positions.

A chaque sous-position, correspond un filtre à N pas effectuant une moyenne pondérée fonction de la sous-position sur les N échantillons présents dans le filtre.

A chaque fois qu'un pixel est généré, l'algorithme du filtre donne la sous-position du prochain pixel à générer, et donc le numéro du filtre à appliquer (c'est la partie décimale de COUNT) ainsi que le nombre de pixels à prendre en compte (c'est la partie entière de COUNT).

Le filtre est positionné de la façon suivante pour générer les pixels. Initialement, le pixel 0 est dupliqué (N-1)/2 (N impair) fois de manière que ce filtre soit centré sur le pixel 0.

Dans le cadre du filtre vertical, la valeur de COUNT est mise à jour à la fin de chaque ligne. L'algorithme indique alors combien de lignes doivent tre accédées et quelle sera la sous-position de la prochaine ligne à générer.

Dans le cadre du filtre horizontal, la valeur de COUNT est mise à jour à chaque fois qu'un pixel est généré.

Dans le cadre de la présente invention, le but recherché est de minimiser le coût des mémoires lignes nécessaires pour mémoriser les lignes afin de réaliser le changement de dimension vertical. La solution proposée consiste à découper l'image par bande de 128 pixels de manière que la taille de ces mémoires lignes soit réduite à 128 pixels.

Dans le cadre d'une image source de largeur supérieure à 128 pixels, le traitement se fera successivement depuis la première bande et jusqu'à la dernière.

Le problème rencontré dans ce cas consiste à un recollage parfait des bandes si en plus d'un changement de dimension vertical, un changement de dimension horizontal est appliqué.

Dès que l'incrément fait en sorte que le dernier pixel de la bande est dépassé, le pixel résultant ne peut tre généré puisque le filtre n'a pas suffisamment de pixels pour cette génération. Du coup, ce pixel sera généré lorsque la bande suivante sera en cours de traitement.

La position de la prochaine bande est donc déterminée par le numéro du dernier pixel utilisé dans la bande courante, la valeur du compteur d'incrément et le nombre de pas du filtre. Si L est le numéro du

dernier pixel utilisé dans le filtre horizontal, [COUNT] la partie entière du compteur d'incrément une fois généré le dernier pixel de la bande courante, et N le nombre de pas du filtre numérique, la bande suivante commence alors avec le pixel numéro L+ [COUNT]-N.

La variable COUNT est mise à jour comme suit : new-COUNT = partie décimale [COUNT] xINC par exemple new-COUNT = 0,75+3,25=4.

La nouvelle bande commence à : L + 4-S = L-1.

La bande suivante est demandée au générateur d'adresse une fois le dernier pixel de la dernière ligne de la bande courante généré. La nouvelle position de départ de la nouvelle bande est transmise au générateur d'adresse de manière qu'aucun artefact n'apparaisse. Le filtre mémorise la sous-position correspondant au premier pixel généré de chaque ligne de la colonne suivante. Ainsi, le découpage en colonnes n'induit aucun effet indésirable sur l'image générée.

Pour permettre un repérage des bandes, il est prévu un drapeau ou "flag"de signalisation de la première ligne, de la dernière ligne, du premier pixel d'une bande dans une ligne et dernier pixel d'une bande dans une ligne. Les moyens réalisant l'étape 13 disposent ainsi de l'information selon laquelle le pixel suivant sera le premier pixel d'une ligne suivante dans la mme bande. La signalisation de la première ligne permet aussi de commencer le traitement par un convertisseur vertical en stockant les pixels de la première ligne dans plusieurs mémoires tampons simultanément.

Sur la figure 4, un système de traitement graphique 15 destiné à modifier horizontalement et verticalement les dimensions d'un objet graphique comprend un convertisseur vertical à cinq pas 16 qui reçoit sur ses cinq entrées les données relatives aux pixels de la ligne courante et celles relatives aux pixels des quatre lignes précédentes grâce à quatre mémoires tampons 17,18,19 et 20 analogues aux mémoires tampons illustrées sur la figure 1 mais aptes à stocker seulement L pixels et disposées de la mme façon pour effectuer l'interpolation des cinq bits reçus en mme temps. Les mémoires tampons 17,18,19 et 20 fonctionnent selon un mode premier entre-premier sorti ou FIFO.

Le système de traitement graphique 15 comprend un filtre de

flicker 21 pourvu d'un élément de filtrage 22 à trois pas et de deux mémoires tampons 23 et 24 de capacité limitée à L pixels. La disposition générale est analogue au filtre de la figure 1 à ceci près que la capacité des mémoires tampons passe de B pixels à L pixels, par exemple de 1920 à pixels à 128 pixels, soit une réduction importante du coût des dites mémoires et de la surface de silicium utilisée.

Le système de traitement graphique 15 comprend également un convertisseur horizontal à cinq pas 25 disposé à la sortie du système de filtrage 21 et apte à modifier la taille de l'objet graphique dans le sens horizontal.

La conversion tant verticale qu'horizontale s'effectue sur un nombre de bits déterminé par exemple trois. On peut ainsi agrandir l'objet graphique jusqu'à huit fois dans chaque dimension. On peut générer sept pixels de coordonnées intermédiaires entre deux pixels d'origine.

Le convertisseur horizontal 25 a besoin de cinq pixels d'origine pour générer un pixel de sortie avec une pondération adaptée des cinq pixels d'origine selon le taux d'agrandissement/réduction choisi et la position du pixel de sortie par rapport aux pixels d'origine. A titre d'exemple, si on choisit d'agrandir horizontalement d'un facteur 2 une image graphique, le système générera des pixels pour les abscisses 1,1,5, 2,2,5 etc. Si on choisit un facteur 1,25, le système générera des pixels pour les abscisses 1,1,75,2,5,3,25,4 etc. Ces pixels seront ensuite rangés linéairement dans la mémoire, non représentée sur les figures.

Avec des bandes de 128 pixels de large, l'adresse d'un pixel est codée sur dix bits, sept bits de poids fort correspondant à la position d'un bit de 0 à 127, et trois bits de poids faible correspondant aux huit sous- positions possibles après traitement.

En cas d'agrandissement, après traitement, une bande de pixels présente une largeur supérieure à 128. D'où l'intért de la signalisation particulière du dernier pixel d'une bande sur une ligne donnée qui permet au gestionnaire d'addressage d'effectuer convenablement l'opération de réécriture en calculant les coordonnées du lieu où le pixel suivant doit tre écrit.

Le convertisseur horizontal 25 n'est pas affecté par la largeur des bandes. Avec un peu plus de 3 kilobytes de mémoire statique, on dispose

d'un convertisseur vertical à cinq pas efficace apte à traiter des objets graphiques de taille non limitée associé à un filtre de flicker et à un convertisseur horizontal.

Le système de traitement graphique 15 ou module de transfert de blocs de bits permet, dans un circuit graphique, une accélération du fonctionnement grâce au transfert de blocs graphiques tels qu'une fentre dans un environnement windows (S. Cette disposition du système de filtrage 21 entre le convertisseur vertical 16 et le convertisseur horizontal 25 est particulièrement intéressante car elle permet de traiter l'image telle qu'elle'est affichée dans le sens des colonnes, sachant que 1'effet de scintillement est presque uniquement dû à la juxtaposition de pixels présentant un contraste trop élevé sur une mme colonne. Le système de filtrage 21 fonctionne donc de mémoire à mémoire et évite la réapparition du phénomène de scintillement lorsque l'utilisateur met en oeuvre une fonction zoum qui peut tendre à augmenter le contraste entre deux pixels consécutifs d'une mme colonne, grâce au fait que le filtrage est effectué après la conversion verticale.

Dans d'autres modes de réalisation, on pourrait prévoir de disposer le système de filtrage 21 en aval du module de transfert de blocs de bits.

Dans 1'exemple décrit, le filtre travaille seulement sur trois pixels d'une mme colonne pour calculer les données relatives à un pixel.

On pourrait concevoir d'utiliser un filtre travaillant sur un plus grand nombre de pixels, mais cela tendrait à augmenter le coût du filtre en raison de la nécessité d'ajouter des mémoires tampons de lignes. Il est préférable d'utiliser au mieux un filtre à trois pas ne comportant que deux mémoires de ligne grâce à une stratégie adaptative permettant d'effectuer un filtrage en fonction des risques de scintillement avec une gestion dynamique des poids de chacun des trois pixels utilisés pour le calcul des données de l'un d'entre eux.

La longueur de la mémoire de ligne est, de préférence limitée à 128 tirant ainsi bénéfice d'un système de rééchantillonage bi- dimensionnel basé sur les colonnes. En d'autres termes, on découpe l'image en zones dont les lignes font 128 bits pour utiliser moins de mémoire lors du filtrage. Le convertisseur vertical est disposé en amont du

filtre de flicker. En effet, un convertisseur à cinq pas risque de réintroduire du scintillement. Il est donc avantageux d'effectuer le filtrage après la conversion verticale. A l'inverse, le convertisseur horizontal est disposé à l'aval du filtre de flicker de façon que la taille des mémoires de ligne ne soit pas affectée par le changement d'échelle horizontale. Ceci est possible car la conversion horizontale est une opération linéaire qui ne produit pas de scintillement supplémentaire.

Le système de filtrage n'a pas de limitation par rapport à la taille des images qui peuvent tre filtrées. Grâce à un débit important, de l'ordre de 100 mégapixels par seconde, il forme une solution efficace pour des écrans de télévision standard à haute définition. Bien entendu, ce système décrit pour des images bidimensionnelles est applicable à des images tridimensionnelles basées sur une matrice de voxels.

Grâce à l'invention, le scintillement est filtré dès la création de l'image et l'image filtrée est ensuite stockée dans une mémoire et peut tre affichée sur un écran sans subir de nouveaux filtrages lors de l'affichage.

On évite ainsi d'avoir à effectuer un filtrage à chaque rafraîchissement de l'écran. Un tel filtrage serait très onéreux surtout en haute définition à environ 2000 pixels par ligne et à une fréquence de l'ordre de 80 à 100 mégahertz. De plus, le filtre est obligé d'effectuer la lecture de deux lignes en raison du balayage interlacé des écrans de télévision. Un tel filtre occuperait une grande surface de silicium.

Au contraire, selon l'invention, on profite des caractéristiques des images graphiques qui sont en général relativement stables en ce sens que l'utilisateur les utilise pendant une durée qui peut atteindre plusieurs minutes ou plusieurs dizaines de minutes. Il est donc particulièrement avantageux de traiter le phénomène de scintillement dès la création de l'image. On s'affranchit des contraintes temps réel et des contraintes de vitesse. On s'affranchit de la résolution de l'écran et des contraintes de bande passante. On effectue le filtrage dans l'ordre que l'on veut. On divise la quantité de mémoire nécessaire par un facteur important, de l'ordre de 16 par rapport à un filtrage ayant lieu lors des étapes d'affichage d'une image haute définition à environ 2000 pixels par ligne. On peut utiliser un filtre adaptatif donnant des images de haute qualité avec relativement peu de moyens matériels, notamment de mémoire.

D'une manière plus générale, ce procédé de traitement d'images numériques permet d'accéder à des pixels selon un axe vertical alors que ceux-ci sont rangés par lignes dans la mémoire. Du coup, ce procédé permet de corriger des phénomènes apparaissant verticalement dans une image tels que 1'effet de scintillement, mais permet aussi de filtrer des images sur-ou sous-échantillonnées comme dans le cas d'un agrandis sement/réduction vertical.