Brevet FR2674973A1 — publié le 19921009

PROCEDE DE FRAGMENTATION EN POLYGONES DE CORRECTION DE DISTORSION DANS DES SYSTEMES DE GENERATION D'IMAGE PAR ORDINATEUR La présente invention concerne des systèmes de génération d'image par ordinateur (GIO) et plus particu- lièrement un nouveau procédé utilisant une fragmentation en polygones pour produire une trame corrigée en distor- sion pour la projection d'une image par trame non distor- due observable dans un tel système. Il est bien connu, dans la technique de généra- tion d'image par ordinateur que, si une scène non corrigée est projetée par une objectif grand angle et/ou sur un écran courbe et observée hors de l'axe, la combinaison des distorsions optiques et géométriques est typiquement supé- rieure à ce qui peut être toléré dans les applications exigeantes de simulation, telles que l'entraînement au vol d'un équipage et analogue Il est bien connu de corriger la distorsion en produisant une scène correctement prédis- tordue sur une trame de projection, de sorte que, quand la trame de projection est projetée sur une surface courbe, la scène projetée résultante apparaît bonne et non distor- due à un observateur Toutefois, les procédés de correc- tion de distorsion de l'art antérieur nécessitent presque toujours un matériel spécialisé qui est conçu spécifique- ment pour la correction de distorsion dans la partie de processeur d'affichage du système GIO, immédiatement avant l'affichage Il est très souhaitable de prévoir un procédé de correction de distorsion dans lequel on n'utilise pas de matériel de correction spécialisé supplémentaire et en outre dans lequel la correction de distorsion puisse être réalisée dans une partie de processeur de forme du système GIO avant la partie du système de traitement d'affichage. Selon l'invention, un procédé de correction de distorsion d'image texturée produite par ordinateur mappe des sommets et des coefficients de texture de l'espace de l'observateur à l'espace du projecteur, de sorte que les objets environnants sont prédistordus sur la trame de pro- jection pour apparaître selon leur forme et leur perspec- tive convenable quand la trame est projetée sur une sur- face courbe dans l'espace de l'observateur et observée à partir de celle-ci La correction de distorsion est effec- tuée en utilisant une approximation linéaire par morceaux pour approximer de façon lisse, continue et proche la précourbure requise La trame dans l'espace d'observation est subdivisée en plusieurs triangles dans chacun desquels une approximation linéaire est appliquée au mappage d'ima- ge: les faces de la trame sont d'abord subdivisées selon des lignes d'une grille rectangulaire et les fragments de face tombant dans chaque rectangle sont ensuite subdivisés selon la diagonale de la grille Ceci produit des frag- ments de face qui sont suffisamment petits pour qu'une approximation linéaire fournisse une transformation pré- cise de chaque fragment Des cartes de distorsion, typi- quement calculées en temps différé et mémorisées dans une mémoire de base de données sont utilisées pour projeter les bords et les gradients de modulation de texture de l'espace d'observation vers l'espace du projecteur, de sorte que les bords et motifs de texture peuvent mainte- nant être accordés avec les intersections de triangles adjacents de façon à être sensiblement exempts de tout changement abrupt et être ainsi convenablement prédis- tordus. Dans un mode de réalisation actuellement préfé- ré, le procédé ci-dessus est mis en oeuvre en créant une table de points de grille, mappés de l'espace de l'obser- vateur à l'espace du projecteur, une fois donnés les para- mètres de la surface courbe, les positions et les atti- tudes du point d'observation et du projecteur, les para- mètres de trame et les paramètres d'objectif Les termes de la matrice pour le réglage des coefficients de texture, à chaque point de la grille, sont également calculés La grille rectangulaire est de taille choisie pour que chacun de ses éléments triangulaires soit suffisamment petit pour qu'une erreur angulaire présélectionnée, dans le pire des cas, soit atteinte Le processeur de forme écrête toutes les faces en les grilles triangulaires dans les rectangles de la grille imposée dans la trame de l'espace de l'obser- vateur Ainsi, chaque face de l'objet que l'on peut proje- ter est fragmentée selon une ligne d'une grille rectangu- laire, de préférence carrée, les faces de chaque carré résultant étant alors subdivisées selon une diagonale de ce carré; une diagonale ayant une pente positive est choisie pour réduire légèrement les exigences de calcul. Les bords de chaque fragment de face dans l'un des trian- gles sont alors projetés en utilisant des transformations linéaires précalculées Des gradients de modulation pour la texture, l'atténuation, l'ombrage et analogue sont alors transformés dans l'espace de projection. Ainsi, un objet de la présente invention est de prévoir un nouveau procédé de correction de distorsion par fragmentation en polygones de scènes dans un système de génération d'image par ordinateur. Ces objets de la présente invention ainsi que d'autres apparaîtront à l'homme de l'art à la lecture de la description suivante d'un mode de réalisation actuel- lement préféré faite en relation avec les dessins joints parmi lesquels: la figure 1 est une représentation schématique d'un système de projection GIO, illustratif du problème à résoudre; la figure 1 ' est un diagramme schématique sous forme de blocs d'un système GIO typique dans lequel est utilisée l'invention; les figures la à ld sont des vues de dessus d'un espace d'observation à diverses étapes de segmentation, et de détails d'une cellule de grille résultante dans celui- ci; les figures 2 a à 2 d sont des vues de dessus d'une trame dans l'espace de projection à diverses étapes de segmentation, et de détails d'une cellule de grille résultante dans celui-ci; la figure 3 est un diagramme schématique illus- trant la transformation d'une cellule de trame rectangu- laire dans l'espace d'observation en une cellule de trame (distordue) en forme de quadrilatère dans l'espace de projection; et les figures 4 a-4 e sont des vues de dessus d'une partie d'une trame de l'espace d'observation, une surface progressivement plus faible étant considérée pour obtenir les caractéristiques de bords et de coefficients de tex- ture d'une cellule de grille unique divisée diagonalement, et d'une cellule de trame de projection distordue qui lui correspond. En se référant initialement à la figure 1, un moyen d'affichage 10 d'un système de génération d'image par ordinateur (GIO) utilise un dispositif de projection 11 tel qu'un tube à rayons cathodiques (TRC) ou analogue pour former une trame de projection l IR dans un espace de projection (PS) La trame de projection est transmise par l'intermédiaire d'un objectif de projection 12 pour fournir une scène projetée 14 sur une surface de projec- tion 16, telle qu'un dôme ou autre surface courbe La scène projetée 14 est vue par un observateur 18 en tant que trame observable 14 R dans l'espace d'observation (VS); la trame observable 14 R est une grille dans un système de coordonnées bidimensionnelles rectilignes dans lequel un observateur voit l'environnement en perspective convenable La trame de projection 11 R est également une grille dans un système de coordonnées rectilignes mais est repérée par rapport au format d'affichage de trame; comme le dispositif de projection 11 et l'observateur 18 sont typiquement situés ailleurs qu'au centre 16 c de la surface de projection, certaines distorsions géométriques survien- nent quand la trame de projection 11 R est transférée vers la trame de l'observateur 14 R, de même que certaines distorsions optiques peuvent résulter des qualités impar- faites de l'objectif de projection 12 et analogue Ainsi, une scène parfaitement circulaire dans l'espace de projec- tion l R peut être observée sous forme d'une courbe fermée irrégulière 14 dans la trame observable 14 R, étant donné que les projections des points (Ir, Jr) sur la trame de projection sont mappées, avec distorsion, à d'autres points (Iv,,J) dans la trame observable 14 R Il est très souhaitable de prédistordre la trame de projection lîR, connaissant la position du dispositif de projection 11 et de l'observateur 18 par rapport à la surface 16, de sorte qu'une trame prédistordue est projetée pour apparaître sous forme d'une scène projetée non distordue 14 pour l'observateur 18 Des procédés de correction de distorsion complets pour un tel système GIO sont décrits et revendiqués par exemple dans les brevets des Etats-Unis d'Amérique 4714428 et 4862388 qui seront considérés comme faisant partie intégrante de la présente description. La figure 1 ' représente un schéma fonctionnel sous forme de blocs d'un système GIO typique, tel qu'un système de simulation de cockpit d'avion, dans lequel un problème de distorsion apparaît Ce système comprend le moyen d'affichage 10 qui affiche des informations pour un observateur tel qu'un pilote à l'entraînement 18, pour simuler le déplacement d'un avion sur une scène L'obser- vateur à l'entraînement 18 dispose de moyens d'interface de commande d'entrée 20 de sorte que l'action de manoeuvre du pilote dans le cockpit est fournie aux moyens d'inter- face 20 qui convertissent les données de vol appropriées, telles qu'une position d'avion, des attitudes de roulis, de tangage et de lacet en provenance de l'observateur pilote 18 vers un contrôleur 22 Le contrôleur 22 utilise les informations d'entrée du pilote pour calculer une nouvelle position et orientation de l'avion et, à partir de ces données, pour calculer une matrice de rotation mathématique qui est utilisée pour faire tourner des objets à partir d'un système de coordonnées de référence vers un système de coordonnées d'affichage, d'une façon qui est bien connue dans la technique D'autres informa- tions concernant la scène, des positions de cibles ou un autre avion sont également calculées dans le contrôleur 22 qui peut être un ordinateur universel ou analogue Le contrôleur 22 est périodiquement mis à jour par l'orienta- tion la plus récente de l'avion pour fournir des informa- tions de scènes mises à jour en une durée d'image ou de trame, à un processeur de forme 24. Le processeur de forme 24 lit les informations en provenance d'une mémoire de base de données de scène 26, qui inclut des descriptions d'objets, tels que des tours, des routes, des rivières, des hangars et analogues, qui sont éventuellement observables dans la représentation numérique tridimensionnelle mémorisée du sol Les objets lus à partir de la base de données de scène 26 sont déplacés en translation et en rotation dans les coordonnées d'affichage, en utilisant la matrice de rota- tion calculée dans le contrôleur 22 Le processeur de forme 24 écrête tous les bords qui s'étendent au-delà des limites de la fenêtre d'observation puis projette mathéma- tiquement les données d'objets tridimensionnelles sur une fenêtre d'affichage bidimensionnelle Les faces de l'objet qui s'étendent au-delà des limites de la fenêtre d'affichage sont alors écrêtées dans un espace image bidi- mensionnel Les objets bidimensionnels comprennent des points, des lignes, des polygônes convexes fermés, ou des combinaisons de ces éléments Chaque polygône convexe fermé est appelé face, de sorte que chaque objet traité est constitué de faces individuelles, chaque face étant limitée par des bords droits Une fois que les faces ont été calculées dans le processeur de forme 24, à partir des objets tridimensionnels, les données calculées sont trans- mises à un processeur d'affichage 28 En outre, le proces- seur de forme 24 calcule les faces qui sont devant ou derrière d'autres faces et mémorise ces informations de profondeur dans une liste de priorité Une liste de prio- rité contient l'ordre de toutes les faces d'une scène, o la première face de la liste est la face de plus forte priorité et la dernière face de la liste présente la plus faible priorité Chaque fois que deux faces se chevauchent sur un affichage, la face de plus haute priorité sera visible et la partie recouverte de la face de plus faible priorité sera occultée ou obscurcie Après calcul de la liste de priorité, le processeur de forme 24 calcule des données pour afficher des points terminaux et des pentes de segments de droite qui relient les faces bidimension- nelles et calcule les coefficients des équations de droite qui décrivent les bords frontière Ces données sont égale- ment transmises au processeur d'affichage 28. Le processeur d'affichage 28 est utilisé pour commander l'affichage vidéo 10 Le processeur d'affichage 28 contient la majorité des éléments de traitement et des éléments matériels d'un système de génération d'image par ordinateur en temps réel et, pour cette raison, la plupart des efforts antérieurs dans la technique ont consisté à réduire la dimension du matériel et le temps de traitement du processeur d'affichage 28 En fait, les deux brevets susmentionnés concernent des procédés et un appareil important pour fournir une correction de distorsion complète en utilisant le processeur d'affichage 28 Il est bien connu que le processeur d'affichage 28 doit, pour chaque pixel de la trame d'affichage vidéo lîR, résoudre la couleur dont doit être ce pixel, étant donné les nombreuses faces qui peuvent être présentes dans un pixel unique et étant donné que des parties d'une face peuvent être recouvertes de parties d'autres faces Après avoir résolu les conflits de priorité dans un pixel, la surface de chaque face physique dans le pixel doit être multipliée par la couleur de la face et la somme de toutes ces couleurs pondérées doit être fournie comme la couleur de ce pixel unique Puisqu'il peut y avoir plus d'un million de pixels dans une trame d'affichage, et puisque les données de tous ces pixels doivent être calculées en 1/60 seconde (la durée d'une trame unique entrelacée), la charge de traitement du processeur d'affichage est très élevée Il est très souhaitable que le processeur d'affichage 28 reçoive du processeur de forme 24 des descriptions de faces bidimensionnelles (en même temps que des couleurs de face, des priorités de face et analogue) qui sont déjà prédistordues pour appliquer une correction de distorsion complète sans autre moyen matériel de processeur d'affichage supplémentaire 28 alloué à l'étage de correction de distorsion Ainsi, le processeur de forme 24 doit mapper des attributs/sommets de polygones, bords, et texture de surface (coefficients de modulation et ana- logue) de l'espace d'observation VS à l'espace de projec- tion PS en temps réel Le processeur de forme a en mémoire des tables de valeurs de correction de distorsion à appliquer, sur la base des angles de projection, des distances et des coordonnées similaires, obtenues et introduites dans la mémoire, quand le générateur d'image a été initialisé par des informations de position du dispo- sitif de projection 11 et de l'observateur par rapport à la surface de projection 16. Comme le représentent les figures la et 2 a, une trame 30 V de l'espace d'observation VS sensiblement rec- tangulaire (de préférence carrée) est le résultat observa- ble de la projection sur une surface courbe 16 d'une trame 30 P de l'espace de projection PS distordue non rectangu- laire La trame 30 V est analogue à la trame 14 R de la figure 1 et la trame 30 P est analogue à la trame 11 R de la figure 1 De façon typique, chaque trame 30 comprend une multiplicité de rangées horizontales (par exemple 1000 +) d'éléments d'image (pixels) et une autre multiplicité de colonnes verticales (par exemple 1000) des pixels des rangées, de sorte qu'une trame peut contenir jusqu'à un million de pixels en matrice Pour comprendre la présente invention, on considèrera (comme cela est représenté en figures lb et 2 b) le résultat de la division de la trame V de l'espace VS par un réseau régulier de lignes frontières 32 r disposées horizontalement définissant une rangée (c'est- à-dire une première pluralité M de lignes frontières horizontales 32 r-1 à 32 r-m) et une seconde pluralité de lignes frontières 32 c disposées verticalement formant des colonnes (c'est-à-dire une seconde pluralité N de lignes frontières verticales 32 c-l à 32 c-n) La trame V' de l'espace VS (figure lb) est ainsi divisée en une matrice d'une multiplicité de cellules 34-rc rectangu- laires, de préférence carrées, o r est un numéro de rangée de 1 à m+ l et c est un numéro de colonne de 1 à n+ 1 La trame 30 P' de l'espace PS (figure 2 b) comprend également des lignes de rangées 32 'r et des lignes de colonnes 32 'c définissant une cellule qui ne sont généra- lement pas droites (sauf dans des cas particuliers) dont l'un est représenté, avec une ligne de colonne verticale centrale 32 'cc autour de laquelle des autres lignes de colonnes non droites sont symétriquement disposées, et une ligne de rangée centrale horizontale droite 32 'rr autour de laquelle des lignes de rangées non droites sont symé- triquement disposées) de sorte que chacune des cellules 34 '-rc a une forme bidimensionnelle de quadrilatère plutôt que de rectangle Il faut noter que le nombre de lignes de grille et l'écart entre elles est choisi pour fournir des cellules suffisamment petites pour que tout bord long soit partagé en morceaux suffisamment petits pour permettre à la courbure convenable d'apparaître, en raison de la représentation linéaire en forme de morceaux Alors que, dans le cas général, la trame de projection 30 P' a une forme complètement asymétrique, le nombre de cellules 34 et 34 ' reste fixe, de même que le nombre de pixels dans chaque cellule (qui, comme il couvre un nombre fixe prédé- terminé de pixels, est parfois appelé un domaine) Ainsi, si chaque domaine carré 34 '-rc de la trame observable 30 V dans l'espace VS comprend un réseau carré de 8 X 8 pixels, chaque domaine non carré 34 '- rc de la trame projection P' de l'espace PS comprend un réseau non carré de 8 x 8 pixels également Une façon d'obtenir le réseau 30 P' de l'espace PS et de renvoyer la grille ordonnée de la trame 30 V' de l'espace VS pour trouver et enregistrer les coordonnées de chaque point de croisement de grille V/35 P dans chaque espace et former ainsi une table de consultation pour celles-ci; la table est constituée d'ensembles de grilles multiples, un ensemble pour chaque paire différente d'angles 6 et X dans les coordonnées il sphériques en provenance du projecteur 11 vers l'emplace- ment de l'observateur 18, réfléchis par le point central de la scène 14. Comme le représentent les figures lc et 2 c, selon un aspect de la présente invention, chacune des cellules rectangulaires 34 de la trame 30 V de l'espace VS et des cellules 34 ' de la trame 30 P de l'espace PS est découpée en parties triangulaires supérieure et inférieure 36-rc U/36-rc L ou 36 '-rc U/36 '-rc L par une ligne frontière diagonale 38/38 ', respectivement Les triangles 36 ' de l'espace de projection sont distordus en ce qui concerne leurs longueurs de côtés et angles aux sommets, par rapport aux longueurs de côté et angles de sommet des cellules triangulaires 36 dans l'espace d'observation (dans lequel chaque cellule triangulaire 36 peut être prévue pour contenir un angle droit) Les bords et les textures de face sont établis dans chacune des cellules triangulaires 36 ' de la trame de projection 30 P pour amener les bords et les textures transformés dans la trame 30 V de l'espace d'observation à former des bords continus avec des coefficients de modulation de texture qui s'adap- tent aux limites, c'est-à-dire que les bords et les textures présentent une continuité aux limites Il n'y a pas d'effet de bord abrupt, à moins qu'il n'en existe déjà dans les informations de scène d'observation désirées. La continuité aux limites doit rester présente même quand les fragments PS sont prédistordus, comme cela est représenté en relation avec les figures ld et 2 d On voit que la partie supérieure 36 x U de la cellule est limitée par une ligne de rangée horizontale 32 rl, une ligne de colonne verticale 32 cl et une ligne diagonale 38 x, alors que la partie inférieure 36 x L de la cellule est limitée par une ligne de rangée horizontale 32 r 2, une ligne de colonne verticale 32 c 2 et la ligne diagonale 38 x; dans l'espace de projection, la partie triangulaire supérieure 36 'x U, généralement scalène, est limitée par des côtés 32 'rl, 32 'cl et 38 'x, alors que la partie trian- gulaire inférieure, généralement scalène, 36 'x L est limitée par la diagonale 38 'x et des côtés 32 'c 2 et 32 'r 2 On considère d'abord les zones non texturées, telles que les zones non texturées 40 a et 40 b qui se convertissent en zones de même non texturées 42 a et 42 b dans les cellules fragmentées de l'espace PS D'autres zones de cellules dans l'espace VS (par exemple la zone 40 c ayant une texture schématiquement illustrée par des hachures montant diagonalement vers la droite) sont conte- nues seulement dans un domaine et peuvent nécessiter seulement qu'une distorsion géométrique apparaisse sous forme d'une zone texturée de même 42 c dans le fragment de cellule dans l'espace PS D'autres parties de la cellule sont limitées, texturées, et s'étendent jusqu'au bord du fragment triangulaire; ces parties doivent en conséquence être vérifiées quand à leur continuité dans d'autres fragments Ainsi, une zone texturée 40 d dans le fragment triangulaire inférieur 36 x L sera, après vérification, vue comme s'étendant en tant que zone texturée de façon simi- laire 40 e dans le fragment supérieur 36 x U, et en consé- quence amènera le fragment prédistordu 36 'x L à comprendre une partie 42 d qui devra non seulement avoir la même texture que le fragment 40 d mais devra également s'adapter à la frontière le long de la diagonale 38 'x de la zone de fragment distordue supérieure 42 e avec laquelle elle doit partager une texture commune On notera que la texture de la zone 40 f, ayant des bords le long de lignes frontière 32 cl et 32 rl de la cellule, doit être vérifiée quant à son caractère commun avec des cellules adjacentes, exactement comme la zone distordue 42 f doit avoir sa texture vérifiée quant à une continuité avec des zones continues le long des bords 32 'cl et 32 'rl. Le nouveau procédé selon l'invention commence ainsi par une fragmentation de faces, selon laquelle des faces polygonales sont fragmentées en prévoyant que le processeur de forme à base d'ordinateur sépare la trame VS totale (figure la) et sa trame PS associée (figure 2 a) selon des lignes d'une grille régulière (figures lb/2 b); les faces dans chaque zone de grille rectangulaire résul- tante sont alors divisées selon une diagonale de zone (figures lc/2 c) Les sommets 35 V de la grille rectangu- laire résultante sont alors projetés de l'espace d'obser- vation à l'espace du projecteur (en tant que sommets 35 P), l'intersection de chaque bord projeté et de chaque limite de grille ou ligne diagonale étant projetée pour couper la même limite de grille/ligne diagonale dans l'espace du projecteur (figures ld/2 d) Les sommets et croisements de lignes étant des données déterminées, les équations de lignes (par exemple de la forme Lo=Li I+Lj J) peuvent être calculées pour les bords projetés Les valeurs de modulation de texture, d'atténuation et d'ombrage, repré- sentées par un terme de numérateur N et un terme de déno- minateur D doivent, selon l'invention, être identiques dans l'espace de projection (c'est-à-dire pour chaque sommet projeté) et dans l'espace d'observation (c'est-à- dire pour le même sommet de grille dans l'espace d'obser- vation), qu'un point d'une grille se trouve dans une face ou non En conséquence, les termes de modulation au numé- rateur et au dénominateur doivent être calculés pour tous les points et sommets de grille On préfère actuellement utiliser la règle de Kramer pour calculer la valeur du terme de modulation à chaque sommet Une fois que les valeurs de modulation d'ombrage, d'atténuation et de texture dans l'espace PS sont adaptées à leur contre- partie dans l'espace VS le long de tous les côtés, les faces sont écrêtées aux frontières rectilignes PS et la trame PS est prête pour une synthèse et une projection. Ce qui précède sera mieux compris en faisant référence à la figure 3 dans laquelle un polygône VS 50 est traité dans l'espace d'observation puis la grille finale et les points diagonaux à partir de celle-ci sont transférés vers l'espace de projection pour une prédis- torsion Ainsi, quand le système GIO est initialisé, on accède à la base de données 26 et la matrice de grille VS-PS est déplacée dans le processeur de forme 24 La matrice de grille fournit les quatre points de coin 50 a à 50 d, ayant respectivement des coordonnées de trame verti- cale/horizontale Ilvr Jlv à I 4 v J 4 v Le polygône 50 va être transformé en un polygône distordu PS 60, les sommets 50 a-50 d du polygône VS étant transformés en sommets 60 a-60 d du polygône distordu PS Les valeurs de modulation de texture/atténuation/ombrage, représentées par les termes de numérateur et de dénominateur Ni et Di, o i est le numéro du sommet associé ( 1 limité, au moins partiellement, par la même ligne diago- nale 62 ' Maintenant, chacune des lignes 56-59 résultante aux frontières entre des zones texturées VS différentes déterminera des points sur les bords de grille et les bords diagonaux de l'espace VS qui sont transformés en d'autres points, dans l'espace de projection, auxquels les lignes frontières 66-69 de zones texturées analogues s'étendent entre les points des bords transformés et de la ligne diagonale Ainsi, un premier point VS de coordonnées I 5 Vet J 5 và l'extrémité supérieure de la ligne frontière 56 est transformé en un point PS de coordonnées I 5 p et J 5 p à la limite supérieure de la ligne fron- tière PS 66, et ainsi de suite. En relation avec les figures 4 a-4 e, on va repré- senter en détail une mise en oeuvre particulière du procédé selon la présente invention pour une correction de distorsion par fragmentation de cellules Le procédé est général et fonctionne avec toute scène ayant une image formée dans un espace d'observateur VS par un ensemble de polygônes convexes, tels qu'un polygône 70 ou analogue, constitué d'une pluralité Nde sommets Vl,V 2,V 3,V 4 qui sont mémorisés dans un ensemble ordonné dans le sens des aiguilles d'une montre lVl,V 2,V 3,V 4, } En continuant à utiliser les conventions précédemment établies, la direc- tion I est la coordonnée verticale du haut vers le bas et la direction J est la coordonnée horizontale de la gauche vers la droite Une pluralité de cellules 71 est créée par un placement commandé par ordinateur d'une grille 72 créée de façon autonome sur la trame; la grille comprend de nombreuses lignes horizontales de rangées 72 r et lignes verticales de colonnes 72 c dont chacune est mappée de l'espace de l'observateur à l'espace du projecteur par un mappage défini par le rayon de la surface de projection, la position et l'attitude de projection, la position et l'attitude d'observation, les définitions de trame et les équations de l'objectif de projection Pour fournir au moins un polygône PS prédistordu qui, quand il est projeté sur la surface de projection courbe, formera une image pour l'observateur qui semble très proche du polygône donné 70, on utilisera les intersections des côtés de polygône et des lignes de grille pour déterminer l'ensemble de rectangles de grille et de parties de rectangle de grille qui constitue exactement un polygône Le procédé d'ensemble consiste à diviser chaque rectangle de grille en deux triangles en utilisant une diagonale de cellule qui, pour faciliter le calcul, sera choisie de façon déterminée pour être la diagonale ayant une pente positive m (par exemple, pour une trame ayant une dimension verticale croissante dans la direction I vers le bas et une dimension horizontale croissante dans la direction J vers la droite, ce sera une diagonale allant du coin supérieur gauche de chaque cellule au coin inférieur droit de celle-ci) Le sommet Vl a une position (Il,J 1) alors que le sommet V 2 a une position (I 2,J 2) et ainsi de suite; la grille présente un écart de lignes AI entre lignes de rangées 72 r et un écart AJ entre lignes de colonnes 72 c Chaque cellule de grille est un domaine et chaque face de polygône 70 est écrêtée jusqu'à un domaine de cellule unique en rétrécissant d'abord le polygône 70 pour tous les domaines dans une rangée de trame puis en cassant la rangée en cellules de domaines individuels, couvrant chacun une colonne unique On verra immédiatement que ( 1) la réduction opposée (c'est-à-dire jusqu'à une rangée unique dans une colonne des cellules) peut aussi facilement être utilisée de même que l'on peut simultané- ment rétrécir dans les directions des lignes et des colonnes, et ( 2) que certains polygones (tel que le petit polygône triangulaire 70 ' défini par les sommets V 5, V 6 et V 7) s'adaptent entièrement dans un domaine (par exemple la cellule 71) et doivent être rapidement reconnus comme un cas particulier. L'algorithme du procédé "d'établissement de fenêtre" examine d'abord tous les sommets VS initiaux "(Il,Jl), (I 2,J 2),,(Im,Jm)} et détermine les maxima et les minima: Ivmin, Jvmin, Ivmax et Jvmax; en particu- lier, pour le polygône 70, Ivmin est I 4 et Ivmax est 12, alors que Jvmin est J 3 et Jvmax est Jl Les valeurs I maximum et minimum sont alors divisées par la dimension de rangée de grille LI pour déterminer les numéros de rangées de grille maximum et minimum respectifs S Imin et S Imax, tandis que les valeurs J minimum et maximum (Jvmin et Jvmax) sont divisées par la dimension de colonne de grille AJ pour déterminer les numéros de colonne de grille minimum et maximum S Jmin et S Jmax, respectivement Une comparaison est alors faite entre les numéros de rangée de grille maximum et minimum S Imin et S Imax et également entre les numéros de colonne de grille maximum et minimum S Jmax et S Jmin Si tous les sommets de polygône sont dans un domaine de grille (par exemple tous les sommets du polygône 70 ' sont dans le domaine unique 71), comme cela est déterminé par S Imin=S Imax et S Jmin=S Jmax, aucune autre localisation n'est requise et une sous-procédure séparée "sortie de domaine" décrite ci-après est utilisée pour compléter la partition triangulaire, si nécessaire, avant d'envoyer des données de cette face à la fin de la procé- dure "d'établissement de fenêtre" Si d'autre part, le polygône initial 70 a des sommets qui tombent dans plus d'un domaine, alors les diverses rangées, chacune avec une valeur SI allant de S Imin à S Imax, sont traitées indivi- duellement Chaque polygône peut avoir une rangée unique de domaines ou plusieurs rangées de domaines (par exemple le polygône 70 a des composantes de face dans les domaines de rangées 76 i, 76 j et 76 k) Pour chaque bord de polygône, on détermine les rangées de grille S Il et SI 2 de la paire de sommets constituant ce bord particulier (par exemple pour le bord 74 b, la première rangée de grille S Il est la rangée 76 k, dans laquelle est situé le premier sommet V 2, tandis que la seconde rangée de grille est la rangée 76 j dans laquelle le sommet V 3 de l'extrémité opposée est situé) On teste d'abord les rangées de grille S Il et SI 2; si ces rangées de grille ne diffèrent pas (par exemple le bord 74 a a un premier sommet Vl et un second sommet V 2 se trouvant tous deux dans la même rangée de grille 76 k), alors aucun autre traitement de rangée de grille n'est requis et le processus passe au traitement des colonnes de grille, comme cela sera exposé ci-après. Toutefois, si les rangées de grille de deux sommets cons- tituant le bord diffèrent effectivement (par exemple le bord 74 d a un premier sommet V 4 dans une première rangée 76 i et un second sommet Vl dans une rangée de grille différente 76 k), alors, pour toutes les lignes de rangées horizontales 72 r, 72 r', formant les bords de ces ran- gées de grille 76 i et 76 k dans lesquelles sont situés les sommets, et pour toutes les rangées de grille intermé- diaires, on calcule l'intersection (Ix,Jx) entre chacune de ces lignes horizontales et le bord du polygône (par exemple si les premier et second sommets sont (Il,J 1) et (I 2,J 2), la pente m=(J 2-J 1)/(I 2-I 1), et l'intersection de rangée Ix est le produit d'un numéro de rangée de grille R et de la distance t I entre les rangées de grille, alors que la valeur d'intersection Jx est donnée par Jx=Jl + m(Ix-I 1)) Chacun de ces points d'intersection de rangées est ajouté, l'ordre dans le sens des aiguilles d'une montre étant maintenu, à l'ensemble initial de sommets constituant le polygône Ainsi, les sommets du polygône initial {V 1,V 2,V 3,V 4) après traitement de rangées, devien- nent {Vl,V 2,VA,V 3,VB,V 4,VC,VD}. Maintenant, pour chaque rangée de grille conte- nue dans le polygône 70, ayant précédemment déterminé qu'il y a plus d'une telle rangée de grille de polygône, le résultat du test des valeurs horizontales J minimale et maximale S Jmin et S Jmax est utilisé Si les numéros de colonne de grille minimum et maximum sont égaux, alors un seul rectangle de grille est concerné dans la rangée de grille en cours de traitement Comme dans le cas o il n'y a pas de différence entre les numéros de rangées de grille maximum et minimum, on accède au sous-processus de "sortie de domaine" pour achever la partition triangulaire, si nécessaire, pour le domaine de grille, avant que les données soient extraites et utilisées pour construire la partie du polygône prédistordue qui prend place dans le domaine PS correspondant au domaine VS qui est traité Si toutefois, S Jmin#S Jmax pour cette rangée, alors plus d'une colonne de grille est concernée et chaque côté de polygône (dans la rangée de grille en cours de traitement) est exa- miné et les colonnes SJ 1 et SJ 2 des deux sommets délimi- tant ce côté sont déterminées Par exemple, dans la rangée 76 i (figure 4 b), on trouve qu'il y a plus d'une colonne (à savoir les colonnes 75 f, 75 g et 75 h) qui sont concernés comme contenant une partie 70 x du polygône 70 Si plus d'une colonne de grille est présente (comme dans l'exem- ple) alors pour chaque côté de polygône (par exemple les côtés 76, 77 et 78) le processus consiste à calculer l'intersection (Iy,Jy) du côté de polygône et des lignes de colonne de grille verticales 72 c constituant les colonnes de grille impliquées Ces intersections de lignes verticales de colonnes (à savoir les intersections VE et VF) sont trouvées en établissant les sommets des côtés de polygône VB=(Il,J 1) et V 4 =(I 2,J 2), puis en trouvant la pente m'=( 12-Il)/(J 2-l J); la valeur horizontale Jy d'intersection de ligne verticale est alors le produit d'un numéro de colonne de grille C et de la distance AJ entre les colonnes de grille, tandis que la valeur d'in- tersection verticale Iy=Il+m'(Jy-Jl) Chacun de ces points d'intersection est ajouté, en maintenant toujours l'ordre du sens des aiguilles d'une montre, à l'ensemble initial de sommets pour la rangée de grille considérée En outre, toute intersection d'une ligne formant une rangée (par exemple la ligne ajoutée 78 requise pour fermer la partie de polygône 70 x et la rangée considérée) avec l'une des lignes verticales (par exemple les points drintersection VP et VQ) est ajoutée à l'ensemble de sommets de rangée de grille (par exemple l'ensemble (VB,VE,V 4,VF,VC,VP,VQ}). Après que chaque colonne de la rangée de grille a été déterminée, le sous-processus de "sortie de domaine" est appelé pour parachever la partition triangulaire, si nécessaire, pour ce rectangle de grille On voit que ceci achève un cycle de traitement en "double boucle" avec une boucle mineure utilisée pour déterminer chacune d'au moins une colonne dans chacune d'au moins une rangée tombant dans la boucle majeure de ce processus "d'établissement de fenêtre" Ainsi, le processus qui précède sert à fournir un ensemble ordonné de sommets pour chaque domaine de grille 71 de la trame dans l'espace de l'observateur. La figure 4 c représente un tel domaine de grille 71 x; en particulier, le domaine de la colonne 75 g et de la rangée 76 i, incluant le dernier sommet ordonné du coin initial V 4, est représenté La partie de polygône 70 x' dans ce domaine 71 x est représentée avec des hachures ver- ticales; les points de grille du domaine sont {V 4, VF, VP, VQ, VE} Le sous-processus "sortie de domaine" est utilisé pour chaque domaine de grille 71 Dans chaque do- maine de grille concerné (o le bord supérieur du domaine de grille 71 t est appelé Itop et le bord gauche de grille 711 est appelé Jleft), on détermine, pour chaque sommet de polygone (par exemple les sommets V 4, VF, VP, VQ et VE) de quel côté d'une diagonale de grille 78, s'étendant du coin de grille supérieur gauche au coin de grille inférieur droit, c'est-à-dire avec une pente positive, est placé chacun des sommets Ceci est réalisé en calculant une quantité= Side=(Iv-Itop)-m D*(Jv- Jleft), o (Iv,Jv) est l'emplacement du sommet de polygône considéré et m D est la pente de la ligne diagonale 78, c'est-à-dire la distance AI entre les rangées de grille divisée par la distance AJ entre les colonnes de grille Si le sommet en cours de test est pratiquement sur la diagonale (la quantité Side étant égale ou sensiblement égale à zéro), alors ce point de sommet particulier (Iv,Jv) est "capturé" dans le trian- gle supérieur droit 71 U et dans le triangle de polygône inférieur gauche 71 L (voir figure 4 d) Si la quantité Side n'est pas sensiblement égale à zéro, l'emplacement du point de sommet précédent doit être considéré Si Side est inférieur à zéro et que le point précédent n'était pas dans le triangle inférieur gauche, alors le point de som- met particulier (Iv,Jv) sera dans la partie triangulaire supérieure droite 71 U du rectangle de grille, tandis que si Side est supérieur à zéro et que le point précédent n'était pas dans le triangle supérieur droit, on doit cap- turer le point de sommet (Iv,Jv) en cours d'investigation dans la partie de polygône triangulaire inférieure gauche 71 L Si Side était inférieur à zéro et que le point de sommet précédent était dans le triangle inférieur gauche 71 L, ou si la quantité Side est supérieure à zéro et que le point précédent était dans le triangle supérieur droit 71 U, le côté coupe la diagonale 78 et un sous-programme particulier "d'intersection" doit être appelé pour trouver le point de grille (ici, le point d'intersection de grille VR) o le côté du polygône (ici le côté 76 entre les som- mets VE et V 4) coupe la diagonale 78 Le point d'intersec- tion VR est alors placé dans les deux parties de triangle du polygône 71 L et 71 U Enfin, une fois arrivé au dernier sommet (par exemple le point de grille VQ, si l'ensemble ordonné commence par le sommet VE), le processus est mis en oeuvre pour le côté 79 Ce dernier côté, qui va du der- nier sommet en retour vers le premier sommet, est testé et, si les premier et dernier sommets tombent dans des parties de triangle opposées, le sous-programme "intersec- tion" doit être appelé pour trouver le point d'intersec- tion entre le côté constitué par ces sommets et la diago- nale de grille 78, avant que le point d'intersection ne soit mémorisé dans les deux ensembles de points de poly- gône triangle Le sous-processus "sortie de domaine" est parachevé en fournissant les ensembles de points de poly- gône triangle résultant en tant que partie critique de distorsion du polygône initial Ainsi, comme cela est représenté en figure 4 d, le domaine 71 x est fourni en tant que première partie de face de polygône 70 A, formé dans le triangle polygônal inférieur gauche 71 L, avec l'ensemble de sommets ordonnés (VE,VR,VP,VQ}; le polygône contient également une partie de face 70 B dans le triangle polygo- nal supérieur droit 71 U, comprenant l'ensemble de sommets ordonnés {VR,V 4,VF,VP} On notera qu'il existe plusieurs sous-programmes adaptés à être utilisés comme sous-pro- gramme de détermination "d'intersection" susmentionné Un tel sousprogramme peut trouver l'intersection sur la base de l'utilisation de trois points de grille, à savoir un point de coin de grille supérieur gauche (Iu,Ju), le som- met de départ (I 1,J 1) du côté du polygône considéré, et le sommet terminal (I 2,J 2) du côté du polygône Une première quantité del I peut être calculée par (I 2-I 1), alors qu'une seconde quantité del J est calculée par (J 2-J 1), de sorte qu'une constante K = lm D*(Jl-Ju)(Il-Iu)l/(del I-m D*del J) peut être calculée et utilisée pour trouver les coordon- nées du point d'intersection de la diagonale (Ir,Jr), o Ir = Il+ K*del I et Jr = Jl+K*del J. Chacun des points dans l'ensemble de points ordonnés résultant est transformé en un point correspon- dant dans les triangles 71 'U et 71 'L de l'espace PS (figure 4 e), en utilisant la matrice de transformation obtenue en connaissant les angles de projection impli- qués Ainsi, dans le triangle 71 L, l'ensemble de points IVE,VR,VP,VQ} se transforme en l'ensemble de points (VE',VR',VP',VQ'}, et chacun de ces points peut maintenant être relié par un côté (par exemple le côté 76 ' reliant les points VE' et VR', exactement comme le côté 76 reliant les points VE et VR dans le triangle de grille rectangu- laire initial 71 L) La texture de la partie 70 'A est alors adaptée à celle de la partie de polygône 70 A, et ainsi de suite. Bien qu'un mode de réalisation particulier du nouveau procédé de fragmentation en polygones selon l'in- vention pour assurer une correction de distorsion dans des systèmes de génération d'image ait été décrit en détail, de nombreuses variantes et modifications pourront être apportées par l'homme de l'art. REVENDICATIONS 1 Procédé pour prédistordre une scène de trame vidéo dans un espace de projection (PS) formée de poly- gônes comprenant des côtés, destinée à une projection sur une surface de projection de façon à être observée sous forme d'une scène de trame vidéo dans un espace d'obser- vation (VS), ayant des polygônes définis par des côtés, par un observateur dans l'espace d'observation VS, carac- térisé en ce qu'il comprend les étapes suivantes: a) affecter une grille rectangulaire, avec une multiplicité de lignes de rangées ( 32 r-m) et de lignes de colonnes ( 30 c-n), pour diviser la trame VS en une matrice de cellules ( 34-rc); b) disposer une ligne diagonale ( 36) entre des coins opposés de chaque cellule dans la matrice de grille de trame VS; c) déterminer un ensemble ordonné de tous les points pour lesquels chaque côté d'un polygône coupe l'une quelconque des lignes de grille et des lignes diagonales; d) projeter en retour chaque point VS dans l'espace de projection PS pour déterminer une transfor- mation associée dans un ensemble de transformation de points projetés PS; e) créer des lignes reliant chaque paire de points projetés PS correspondant à une paire de points VS reliés par un côté de polygône en intersection; et f) adapter les facteurs de zone de texture dans chaque zone de trame PS ainsi formée à des facteurs dans la zone VS correspondante. 2 Procédé selon la revendication 1, caractérisé en ce que l'étape a) comprend l'étape consistant à former une grille de cellules rectangulaires. 3 Procédé selon la revendication 2, caractérisé en ce que chaque cellule est un carré. 4 Procédé selon la revendication 1, caractérisé en ce que l'étape b) comprend en outre l'étape consistant à prévoir toutes les lignes diagonales dans la même direc- tion. Procédé selon la revendication 4, caractérisé en ce que toutes les lignes diagonales ont une pente posi- tive. 6 Procédé selon la revendication 1, caractérisé en ce que l'étape d) comprend les étapes consistant à: mémoriser un ensemble de points de transforma- tion pour au moins une relation VS-PS prédéterminée; et retrouver l'ensemble mémorisé chaque fois que la relation VS-PS se produit. 7 Procédé selon la revendication 6, caractérisé en ce que l'étape d) comprend en outre l'étape consistant à mémoriser des ensembles de points de transformation pré- calculés pour une multiplicité de relations VS-PS. 8 Procédé selon la revendication 7, caractérisé en ce que les ensembles précalculés et mémorisés couvrent sensiblement toutes les relations d'angles de projection VS-PS attendues. 9 Procédé selon la revendication 1, caractérisé en ce que l'étape f) comprend l'étape consistant à adapter la texture de zone VS à une texture PS calculée pour chacun de l'ensemble des points de grille. Procédé selon la revendication 9, caracté- risé en ce que la texture de zone présente un coefficient de modulation calculé en utilisant la règle de Kramer. 11 Procédé selon la revendication 9, caracté- risé en ce que la texture de zone est une fonction ayant un numérateur N et un dénominateur D et en ce que l'étape (f) comprend les étapes suivantes: adapter le numérateur Np dans l'espace PS au numérateur Nv dans l'espace VS pour chaque zone texturée; et adapter simultanément le dénominateur Dp dans l'espace PS au dénominateur Dv dans l'espace VS pour chaque zone texturée. 12 Procédé selon la revendication 11, caracté- risé en ce que les adaptations de zones texturées sont suffisamment proches pour empêcher des changements de modulation brutaux aux frontières de zones.