FR2798033A1 - Procede et systeme de traitement d'images numeriques - Google Patents
Procede et systeme de traitement d'images numeriques Download PDFInfo
- Publication number
- FR2798033A1 FR2798033A1 FR9914758A FR9914758A FR2798033A1 FR 2798033 A1 FR2798033 A1 FR 2798033A1 FR 9914758 A FR9914758 A FR 9914758A FR 9914758 A FR9914758 A FR 9914758A FR 2798033 A1 FR2798033 A1 FR 2798033A1
- Authority
- FR
- France
- Prior art keywords
- image
- width
- filtering
- memory
- pixels
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/01—Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level
- H04N7/0127—Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level by changing the field or frame frequency of the incoming video signal, e.g. frame rate converter
- H04N7/0132—Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level by changing the field or frame frequency of the incoming video signal, e.g. frame rate converter the field or frame frequency of the incoming video signal being multiplied by a positive integer, e.g. for flicker reduction
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Processing (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
Le procédé de traitement d'images numériques, selon l'invention, 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.
Description
Procédé et système de traitement d'images numériques. La présente invention relève du domaine du traitement 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 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, raison d'un effet de scintillement. Sur un écran de télévision de type standard, rafraîchissement des lignes est effectué de façon interlacée. En d'autres termes les lignes de rang impair sont rafraîchies dans 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 fenêtres ou des sous-fenêtres 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 l'effet d'entrainement 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 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 effet de scintillement sont souvent appelés filtres de "flicker". Comme l'effet de scintillement est dû au contraste entre deux lignes consécutives, autrement dit à de hautes fréquences sur une colonne verticale l'image, 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 l'effet de scintillement est réduit.
L'efficacité d'un filtre numérique est étroitement lié nombre de points pris en compte. Ce type de filtrage consiste en effet à remplacer 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 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 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 n'utilise aucune mémoire. Du coup, les seuls cas posant problèmes sont la reduction du flicker, l'agrandissement/réduction vertical et plus généralement tous phénomènes nécessitant un filtrage sur pixels alignés verticalement. Cela se traduit par un coût très élevé des mémoires lignes dont la capacité doit être importante, particulièrement 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 même si le filtrage est médiocre.
Par ailleurs, on affiche souvent à l'écran des objets graphiques se présentant sous la forme de fenêtres ou de sous-fenêtres dont l'utilisateur peut souhaiter modifier la hauteur et/ou la largeur. Le traitement nécessité par changement de dimensions entraîne le stockage dans des mémoires rapides des pixels d'une ou plusieurs lignes, d'où des couts é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 proce de traitement graphique économique, n'utilisant qu'une taille mémoire raisonnable et adapte à 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 sequenç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, 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, convertisseur vertical, et d'un convertisseur horizontal.
Dans un mode de réalisation, 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 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 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- fenêtres 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 fenêtre après fenêtre, 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 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 memes 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 etre 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 'affranchit ainsi des contraintes temps réel de l'affichage. La performance de filtrage n'est pas directement liée à la vitesse traitement d'un pixel. Le même 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 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 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 fenêtres. 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 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 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 etre 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 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 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 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 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 fenêtre composée de pixels disposés en matrice comprenant A lignes 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, 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 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.
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 même ordre par bandes 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 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 même 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 Llème 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 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 dans la dernière ligne ou Llème 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 = 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 même ligne nonobstant les bandes.
Pour réduire l'effet de scintillement, on utilise un filtre à 3 pas 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, procédé utilisé est un filtre numérique polyphase à N pas 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' 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 2P sous- positions. A chaque sous-position, correspond un filtre à N pas effectuant une moyenne pondérée fonction 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é 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 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 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 pas du filtre. Si L est le numéro du dernier pixel utilisé dans le filtre horizontal, [COUNT] la partie entiere 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 - 5 = L - 1.
La bande suivante est demandée au générateur d'adresse 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 même 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.
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 même façon pour effectuer l'interpolation des cinq bits reçus en même temps. Les mémoires tampons 17, 18, 19 et 20 fonctionnent selon un mode premier entré-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 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 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 image graphique, le système génèrera des pixels pour les abscisses 1, 1,5, 2, 2,5 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érêt 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 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 fenêtre dans un environnement windows . Cette disposition du système de filtrage 21 entre le convertisseur vertical 16 et le convertisseur horizontal 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 l'effet de scintillement est presque uniquement dû à la juxtaposition pixels presentant un contraste trop élevé sur une même 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 même colonne, grâce au fait que le filtrage effectué apres 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 blocs de bits.
Dans l'exemple décrit, le filtre travaille seulement trois pixels d'une même colonne pour calculer les données relatives un pixel. pourrait concevoir d'utiliser un filtre travaillant sur un plus grand nombre de pixels, mais cela tendrait à augmenter le coût du filtre raison de nécessité d'ajouter des mémoires tampons de lignes. Il est '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 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 à 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 memoire 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. II 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, 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 à une fréquence de l'ordre de 80 à<B>100</B> 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 silicium.
Au contraire, selon l'invention, on profite des caractéristiques des images graphiques qui sont 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énerale, 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 l'effet de scintillement, mais permet aussi de filtrer des images sur- ou sous-échantillonnées comme dans le cas d'un agrandissement/réduction vertical.
Claims (10)
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 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'ecriture 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 anti-scintillement 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 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.
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR9914758A FR2798033B1 (fr) | 1999-08-24 | 1999-11-23 | Procede et systeme de traitement d'images numeriques |
| PCT/FR2000/002356 WO2001015082A1 (fr) | 1999-08-24 | 2000-08-22 | Procede et systeme de changement d'echelle d'images numeriques traitees par bandes |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR9910741A FR2797979B1 (fr) | 1999-08-24 | 1999-08-24 | Procede et systeme de filtrage anti-scintillement |
| FR9914758A FR2798033B1 (fr) | 1999-08-24 | 1999-11-23 | Procede et systeme de traitement d'images numeriques |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| FR2798033A1 true FR2798033A1 (fr) | 2001-03-02 |
| FR2798033B1 FR2798033B1 (fr) | 2002-05-10 |
Family
ID=26235083
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| FR9914758A Expired - Fee Related FR2798033B1 (fr) | 1999-08-24 | 1999-11-23 | Procede et systeme de traitement d'images numeriques |
Country Status (2)
| Country | Link |
|---|---|
| FR (1) | FR2798033B1 (fr) |
| WO (1) | WO2001015082A1 (fr) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP2079240A2 (fr) | 2003-09-08 | 2009-07-15 | Stmicroelectronics SA | Dispositif et procédé de traitement de données vidéo et graphiques |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0751682A2 (fr) * | 1995-06-30 | 1997-01-02 | Mitsubishi Denki Kabushiki Kaisha | Dispositif de conversion de balayage avec une résolution verticale améliorée et un dispositif de réduction de scintillement |
| WO1999000785A1 (fr) * | 1997-06-27 | 1999-01-07 | Cirrus Logic, Inc. | Systeme et procede de conversion d'images progressives balayees en formats d'entree de television |
| US5910795A (en) * | 1993-11-15 | 1999-06-08 | Videologic Limited | Digital image signal processing |
-
1999
- 1999-11-23 FR FR9914758A patent/FR2798033B1/fr not_active Expired - Fee Related
-
2000
- 2000-08-22 WO PCT/FR2000/002356 patent/WO2001015082A1/fr not_active Ceased
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5910795A (en) * | 1993-11-15 | 1999-06-08 | Videologic Limited | Digital image signal processing |
| EP0751682A2 (fr) * | 1995-06-30 | 1997-01-02 | Mitsubishi Denki Kabushiki Kaisha | Dispositif de conversion de balayage avec une résolution verticale améliorée et un dispositif de réduction de scintillement |
| WO1999000785A1 (fr) * | 1997-06-27 | 1999-01-07 | Cirrus Logic, Inc. | Systeme et procede de conversion d'images progressives balayees en formats d'entree de television |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP2079240A2 (fr) | 2003-09-08 | 2009-07-15 | Stmicroelectronics SA | Dispositif et procédé de traitement de données vidéo et graphiques |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2001015082A1 (fr) | 2001-03-01 |
| FR2798033B1 (fr) | 2002-05-10 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| FR2565014A1 (fr) | Systeme de memoire rapide et procede de traitement de donnees pour produire une trame d'elements d'image, et segment de memoire rapide | |
| EP1292921B1 (fr) | Raffinement d'un maillage triangulaire en trois dimensions | |
| FR2554256A1 (fr) | Appareil et procede de regeneration d'un tampon de trames fonctionnant a grande vitesse | |
| FR2599873A1 (fr) | Systeme d'affichage video | |
| FR2594241A1 (fr) | Processeur d'affichage de donnees sur un ecran d'affichage et procede d'affichage de donnees mettant en oeuvre ce dispositif | |
| EP0618722A1 (fr) | Procédé et dispositif pour décoder des images comprimées | |
| FR2583541A1 (fr) | Tampon z a haute vitesse munie d'une memoire dynamique a acces aleatoire | |
| CN110648278A (zh) | 一种图像的超分辨率处理方法、系统及设备 | |
| FR2964236A1 (fr) | Dispositif et procede de generation d'images multifenetres a priorite variable | |
| JPH1026965A (ja) | ビット間引きされた画素の復元フィルタ | |
| FR2797979A1 (fr) | Procede et systeme de filtrage anti-scintillement | |
| EP0778544B1 (fr) | Procédé de traitement de données dans des réseaux matriciels dans un système d'estimation de mouvement | |
| FR2798033A1 (fr) | Procede et systeme de traitement d'images numeriques | |
| EP0619552A1 (fr) | Procédé et dispositif d'estimation de mouvement d'objets dans des images successives animées subdivisées en blocs bidimensionnels d'éléments d'image | |
| EP0161176B1 (fr) | Dispositif pour l'obtention de tracés continus sur l'écran d'une console de visualisation commandée par un processeur graphique | |
| EP3423978B1 (fr) | Procede de d'affichage d'une animation lors de la phase de demarrage d'un dispositif electronique et dispositif electronique associe | |
| EP0161175A1 (fr) | Dispositif pour modifier l'aspect des points d'une image sur un écran d'une console de visualisation d'images graphiques | |
| EP1217834B1 (fr) | Procédé et circuit de mémorisation de données numériques, et téléviseur mettant en oeuvre ledit procédé de mémorisation | |
| FR2666165A1 (fr) | Procede de presentation d'images sur un ecran matriciel et systeme pour la mise en óoeuvre du procede. | |
| EP1104185A1 (fr) | Procédé et système de traitement d'images numériques | |
| EP1738349B1 (fr) | Procede et systeme de construction volatile d'une image a afficher sur un systeme d'affichage a partir d'une pluralite d'objets | |
| EP0431699B1 (fr) | Procédé et dispositif de décodage d'images animées | |
| EP0780796B1 (fr) | procédé et systéme d'affichage d'images symboliques | |
| FR2735318A1 (fr) | Architecture a memoire unique centralisee pour le transfert d'images video | |
| FR2817641A1 (fr) | Procede et dispositif de traitement d'images numeriques |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| ST | Notification of lapse |
Effective date: 20090731 |