(19)
(11)EP 3 757 880 A1

(12)DEMANDE DE BREVET EUROPEEN

(43)Date de publication:
30.12.2020  Bulletin  2020/53

(21)Numéro de dépôt: 20182084.2

(22)Date de dépôt:  24.06.2020
(51)Int. Cl.: 
G06K 9/00(2006.01)
G06K 9/62(2006.01)
G06K 9/03(2006.01)
(84)Etats contractants désignés:
AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR
Etats d'extension désignés:
BA ME
Etats de validation désignés:
KH MA MD TN

(30)Priorité: 25.06.2019 FR 1906865

(71)Demandeur: THALES
92400 Courbevoie (FR)

(72)Inventeurs:
  • FINE, Alexandre
    33700 MERIGNAC (FR)
  • NETO, Philippe
    33700 MERIGNAC (FR)
  • ROUZES, Siegfried
    33700 MERIGNAC (FR)

(74)Mandataire: Lavoix 
2, place d'Estienne d'Orves
75441 Paris Cedex 09
75441 Paris Cedex 09 (FR)

  


(54)PROCÉDÉ ET DISPOSITIF ÉLECTRONIQUE DE VÉRIFICATION D'UN CARACTÈRE À AFFICHER SUR UN ÉCRAN PAR RAPPORT À UN CARACTÈRE DE RÉFÉRENCE, PRODUIT PROGRAMME D'ORDINATEUR, ET PROCESSEUR GRAPHIQUE ASSOCIÉ


(57) L'invention concerne un procédé de vérification d'un caractère à afficher (24) sur un écran (20), par rapport à un caractère de référence (34). Les caractères à afficher (24) et de référence (34) comprenant chacun au moins plusieurs points caractéristiques (28,38). Le procédé comprend :
a) la détermination (210) d'un barycentre (G1) des points caractéristiques (28) du caractère à afficher (24),
b) le calcul (220) de coordonnées géométriques de chaque point caractéristique (28) du caractère à afficher (24) dans un repère (29) centré sur le barycentre (G1) déterminé, et
c) le calcul (230) d'un écart (E) entre le caractère à afficher (24) et le caractère de référence (34), en fonction des coordonnées géométriques calculées pour le caractère à afficher (24) et de coordonnées géométriques prédéterminées pour le caractère de référence (34).
Le caractère à afficher (24) est considéré correct seulement si l'écart (E) calculé est inférieur à un seuil (S) prédéterminé.




Description


[0001] La présente invention concerne un procédé et un dispositif électronique de vérification d'un caractère à afficher sur un écran, par rapport à un caractère de référence.

[0002] L'invention concerne également un produit programme d'ordinateur comprenant des instructions logicielles qui, lorsqu'elles sont exécutées par un ordinateur, mettent en œuvre un tel procédé de vérification.

[0003] L'invention concerne également un processeur graphique comprenant un tel dispositif électronique de vérification.

[0004] L'invention concerne le domaine des systèmes d'affichage de données, de préférence destinés à être embarqués à bord d'un aéronef, notamment dans un cockpit d'aéronef.

[0005] L'invention concerne en particulier le domaine des processeurs graphiques inclus dans ces systèmes d'affichage, ces processeurs graphiques étant également généralement appelés GPU (de l'anglais Graphie Processing Unit). De tels processeurs graphiques sont typiquement réalisés sous forme d'un ou plusieurs circuits intégrés dédiés, tels qu'un ou plusieurs ASIC (de l'anglais Application Specific Integrated Circuit).

[0006] On connaît alors un processeur graphique du type précité permettant d'afficher notamment des caractères sur un écran de monitoring d'un aéronef afin d'aider au pilotage de l'aéronef.

[0007] Toutefois, en cas d'erreur du processeur graphique, les caractères peuvent être mal affichés sur l'écran. Le processeur graphique peut aussi afficher un mauvais caractère.

[0008] Le but de l'invention est alors de proposer un procédé et un dispositif électronique de vérification permettant de vérifier de façon précise un caractère à afficher sur un écran.

[0009] A cet effet, l'invention a pour objet un procédé de vérification d'un caractère à afficher sur un écran, par rapport à un caractère de référence. Le caractère à afficher et le caractère de référence comprennent chacun au moins plusieurs points caractéristiques à afficher sur l'écran. Le procédé est caractérisé en ce qu'il comprend les étapes suivantes : la détermination d'un barycentre des points caractéristiques du caractère à afficher ; le calcul de coordonnées géométriques de chaque point caractéristique du caractère à afficher dans un repère centré sur le barycentre déterminé ; et le calcul d'un écart entre le caractère à afficher et le caractère de référence, en fonction des coordonnées géométriques calculées pour le caractère à afficher et de coordonnées géométriques prédéterminées pour le caractère de référence, lesdites coordonnées géométriques prédéterminées étant des coordonnées géométriques points caractéristiques du caractère de référence dans un repère centré sur un barycentre de ses points caractéristiques. Le caractère à afficher est considéré correct seulement si l'écart calculé est inférieur à un seuil prédéterminé.

[0010] Un tel procédé de vérification permet de vérifier qu'un caractère à afficher sur un écran est correct par rapport à un caractère de référence, quelle que soit la position, la taille et l'orientation du caractère à afficher sur l'écran. En effet, l'utilisation du barycentre de chaque caractère comme centre d'un repère permet d'obtenir des coordonnées géométriques des points caractéristiques comparables les unes par rapport aux autres, et le calcul de l'écart entre le caractère à afficher et le caractère de référence permet vérifier si les points caractéristiques du caractère à afficher sont positionnés correctement, ce qui permet de s'assurer que son affichage est correct, si l'écart calculé est inférieur au seuil prédéterminé, quelle que soit sa position, sa taille et son orientation.

[0011] Suivant d'autres aspects avantageux, le procédé de vérification comporte l'une ou plusieurs des caractéristiques suivantes :
  • le procédé comprend, en outre, les étapes suivantes, après à l'étape de calcul des coordonnées géométriques : le calcul d'une transformation géométrique entre un caractère parmi le caractère à afficher et le caractère de référence, et l'autre caractère parmi le caractère à afficher et le caractère de référence ; la détermination d'une position à l'écran du caractère à afficher, en fonction de la transformation géométrique calculée et d'une position du caractère de référence prédéterminée ; et la détermination d'une orientation à l'écran du caractère à afficher, en fonction de la transformation géométrique calculée et d'une orientation du caractère de référence prédéterminée,
  • le procédé comprend, en outre, après l'étape de calcul de la transformation géométrique, une étape de détermination d'une taille à l'écran du caractère à afficher, en fonction de la transformation géométrique calculée et d'une taille du caractère de référence prédéterminée,
  • le procédé comprend préalablement à l'étape de détermination du barycentre, une étape de comparaison du nombre de points caractéristiques du caractère à afficher et de celui du caractère de référence, le caractère à afficher étant considéré incorrect et les étapes suivantes n'étant pas effectuées, si le nombre de points caractéristiques du caractère à afficher diffère de celui du caractère de référence,
  • lors de l'étape de calcul de l'écart, l'écart entre le caractère à afficher et le caractère de référence est calculé en fonction d'une erreur quadratique entre les coordonnées géométriques des points caractéristiques du caractère à afficher et celles des points caractéristiques du caractère de référence,
  • le caractère à afficher est l'image d'une transformation géométrique du caractère de référence, la transformation géométrique étant une similitude directe, le nombre de points caractéristiques du caractère à afficher et le nombre de points caractéristiques du caractère de référence sont égaux, et l'erreur quadratique vérifie l'une des équations suivantes :

    si la transformation géométrique est une translation ;

    si la transformation géométrique est une rotation, ou une combinaison d'une translation et d'une rotation ; et

    si la transformation géométrique est une homothétie, ou une combinaison d'une homothétie, et d'une translation et/ou d'une rotation ; avec



    σ = ∑1≤iN(xiXi + yiYi) ;

    κ = ∑1≤iN(yiXi + xiYi) ; et λ = s2/ρ ; N représentant le nombre de points caractéristiques de chaque caractère, xi et yi étant les coordonnées géométriques d'un ième point caractéristique parmi les points caractéristiques du caractère à afficher, et Xi et Yi étant les coordonnées géométriques d'un ième point caractéristique parmi les points caractéristiques du caractère de référence, et
  • le caractère à afficher et le caractère de référence comprennent chacun au moins un segment à afficher sur l'écran, les points caractéristiques dudit caractère correspondant à des extrémités de l'au moins un segment.


[0012] L'invention a également pour objet un produit programme d'ordinateur comprenant des instructions logicielles qui, lorsqu'elles sont exécutées par un ordinateur, mettent en œuvre un procédé de vérification tel que défini ci-dessus.

[0013] L'invention a également pour objet un dispositif électronique de vérification d'un caractère à afficher sur un écran par rapport à un caractère de référence. Le caractère à afficher et le caractère de référence comprennent chacun plusieurs points caractéristiques à afficher sur l'écran. Le dispositif de vérification étant caractérisé en ce qu'il comprend une unité de détermination d'un barycentre des points caractéristiques du caractère à afficher ; une première unité de calcul de coordonnées géométriques de chaque point caractéristique du caractère à afficher dans un repère centré sur le barycentre déterminé ; et une deuxième unité de calcul d'un écart entre le caractère à afficher et le caractère de référence, en fonction des coordonnées géométriques calculées pour le caractère à afficher et de coordonnées géométriques prédéterminées pour le caractère de référence, lesdites coordonnées géométriques prédéterminées étant des coordonnées géométriques des points caractéristiques du caractère de référence dans un repère centré sur un barycentre de ses points caractéristiques. Le caractère à afficher est considéré correct seulement si l'écart calculé est inférieur à un seuil prédéterminé.

[0014] L'invention a également pour objet un processeur graphique comprenant un dispositif électronique de vérification, tel que défini ci-dessus.

[0015] Ces caractéristiques et avantages de l'invention apparaîtront à la lecture de la description qui va suivre, donnée uniquement à titre d'exemple non limitatif, et faite en référence aux dessins annexés sur lesquels :

[Fig 1] la figure 1 est une représentation schématique d'un processeur graphique comprenant un dispositif de vérification selon l'invention,

[Fig 2] la figure 2 est une représentation schématique d'un écran sur lequel sont représentés un caractère à afficher et un caractère de référence, et

[Fig 3] la figure 3 est un organigramme d'un procédé de vérification selon l'invention.



[0016] La figure 1 représente un processeur graphique 10, aussi appelé GPU (de l'anglais Graphics Processing Unit), comprenant un module 12 d'acquisition de commande d'affichage d'un caractère, un module 14 de traitement d'un affichage d'un caractère à partir d'une commande acquise, le module de traitement 14 comportant un moteur géométrique 15 et une unité de rastérisation 16. Le processeur graphique 10 comprend une mémoire tampon 18 connectée au module de traitement 14.

[0017] Le processeur graphique 10 est, par exemple, destiné à être intégré dans un système d'affichage, de préférence, destiné à être embarqué à bord d'un aéronef, notamment dans un cockpit d'aéronef.

[0018] Le processeur graphique 10 est configuré pour générer des données pour un affichage sur un écran 20. Ces données sont, par exemple, des données pour l'affichage de caractère(s) tel(s) que des caractères alphanumériques.

[0019] Le processeur graphique 10 est alors configuré pour générer des données pour l'affichage d'un caractère à une position souhaitée sur l'écran 20, et avec une orientation et une taille souhaitée. En variante, il est configuré pour générer des données pour l'affichage d'un caractère à une position souhaitée et avec une orientation souhaitée sur l'écran 20, et avec une taille prédéfinie. En variante encore, il est configuré pour générer des données pour l'affichage d'un caractère à une position souhaitée et avec une orientation et une taille définies sur l'écran 20.

[0020] Chaque caractère comprend, par exemple, au moins un segment à afficher sur l'écran 20. De tels caractères sont alors appelés caractères vectoriels.

[0021] En outre, chaque caractère comprend plusieurs points caractéristiques à afficher sur l'écran. De préférence, les points caractéristiques dudit caractère correspondent aux extrémités du ou des segments dudit caractère. Avantageusement, chaque caractère comprend, pour chaque extrémité de ses segments non confondue avec une autre extrémité de ses segments, un point caractéristique correspondant à ladite extrémité ; et pour chaque extrémité de ses segments confondue avec une autre extrémité de ses segments, un unique point caractéristique pour lesdites deux extrémités confondues.

[0022] L'écran 20 est, par exemple, un écran de monitoring destiné à être embarqué à bord d'un aéronef, notamment dans un cockpit d'aéronef, comme connu en soi.

[0023] La figure 2 est une représentation schématique de l'écran 20 avec un repère absolu 22, et sur lequel est représenté un caractère à afficher 24 comprenant des segments 26 et des points caractéristiques 28.

[0024] A titre d'exemple, le caractère à afficher 24 est un caractère quelconque comprenant deux segments 26 et trois points caractéristiques 28.

[0025] Dans l'exemple de la figure 2, l'écran est de forme rectangulaire et le repère absolu 22 est un repère orthonormé d'origine O correspondant à un sommet de l'écran 20.

[0026] On appelle coordonnées absolues d'un pixel, les coordonnées cartésiennes dudit pixel prises dans le repère absolu 22.

[0027] L'écran 20 est, par exemple, configuré pour afficher des caractères, à partir de données générées par le processeur graphique 10 comprenant des coordonnées absolues de pixels de l'écran 20 à afficher.

[0028] Dans l'exemple de la figure 1, le processeur graphique est réalisé sous forme de composants logiques programmables, tel qu'un ou plusieurs FPGA (de l'anglais Field-Programmable Gâte Array), ou encore sous forme de circuits intégrés dédiés, de type ASIC (de l'anglais Application-Specific Integrated Circuit).

[0029] Le module d'acquisition 12 est configuré pour acquérir des commandes d'affichage du caractère à afficher 24, notamment issues d'un processeur ou CPU (de l'anglais Central Processing Unit).

[0030] Le module de traitement 14 est connecté au module d'acquisition 12 et est configuré pour fournir des données géométriques du caractère à afficher 24, à partir de commandes d'affichage acquises. Par exemple, les données géométriques du caractère à afficher 24 comprennent les coordonnées absolues de pixels à afficher sur l'écran 20 du ou de chaque segment 26 du caractère à afficher 24.

[0031] Le moteur géométrique 15, aussi appelé GE (de l'anglais Geometric Engine), est configuré pour fournir des données géométriques du ou des segments 26 du caractère à afficher 24, à partir de la commande d'affichage acquise.

[0032] Les données géométriques d'un segment 26 du caractère à afficher 24 comprennent, par exemple, les coordonnées absolues des points caractéristiques 28 du caractère à afficher 24 correspondant aux extrémités dudit segment 26.

[0033] L'unité de rastérisation 16, ou RE (de l'anglais Raster Engine), est connectée au moteur géométrique 15, et est configurée pour fournir les données géométriques du caractère à afficher 24 sur l'écran 20, en particulier les coordonnées absolues des pixels à afficher du ou de chaque segment 26 dudit caractère 24, à partir des données géométriques du ou des segments 26 du caractère à afficher 24 fournies par le moteur géométrique 15.

[0034] La mémoire tampon 18 est configurée pour stocker les données du caractère à afficher 24 fournies par le module de traitement 14, ces données stockées étant ensuite utilisées pour l'affichage du caractère à afficher 24 sur l'écran 20.

[0035] Le processeur graphique 10 comprend, en outre, un dispositif électronique 30 de vérification d'un caractère à afficher 24 sur l'écran 20 par rapport à un caractère de référence 34, le dispositif de vérification 30 étant connecté à la mémoire tampon 18.

[0036] Le dispositif de vérification 30 est configuré pour vérifier que le caractère à afficher 24 est correct par rapport au caractère de référence 34, c'est-à-dire que le caractère à afficher 24 est l'image d'une transformation géométrique du caractère de référence 34, et donc que les segments 26 et points caractéristiques 28 sont les images par ladite transformation géométrique de segments 36 et points caractéristiques 38 du caractère de référence 34. A titre d'exemple, le caractère de référence 34 est représenté sur la figure 2 avec deux segments 36 et trois points caractéristiques 38.

[0037] Dans la suite et à titre d'exemple, la transformation géométrique est une transformation ou une combinaison de transformations parmi le groupe constitué d'une translation, d'une rotation et d'une homothétie. La transformation géométrique est alors une similitude directe.

[0038] Dans l'exemple de la figure 2, la transformation géométrique comprend une translation, une rotation et une homothétie.

[0039] Le dispositif de vérification 30 comporte une première unité 40 de détermination d'un barycentre G1 des points caractéristiques 28 du caractère à afficher 24, une première unité 42 de calcul de coordonnées géométriques de chaque point caractéristique 28 du caractère à afficher 24 dans un repère 29 centré sur le barycentre G1 déterminé, et une deuxième unité 44 de calcul d'un écart E entre le caractère à afficher 24 et le caractère de référence 34.

[0040] En complément facultatif, le dispositif de vérification 30 comprend, en outre, une unité 46 de comparaison du nombre de points caractéristiques 28 du caractère à afficher 24 et de celui du caractère de référence 34.

[0041] En complément facultatif encore, le dispositif de vérification 30 comprend, en outre, une troisième unité 48 de calcul d'une transformation géométrique entre un caractère parmi le caractère à afficher 24 et le caractère de référence 34, et l'autre caractère parmi le caractère à afficher 24 et le caractère de référence 34, et une deuxième unité 50 de détermination d'une position à l'écran 20 du caractère à afficher 24, une troisième unité 52 de détermination d'une orientation à l'écran 20 du caractère à afficher 24, et en complément, une quatrième unité 54 de détermination d'une taille à l'écran 20 du caractère à afficher 24.

[0042] La première unité de détermination 40 est configurée pour déterminer le barycentre G1 des points caractéristiques 28 du caractère à afficher 24, en particulier les coordonnées absolues (xG1, yG1) du barycentre G1, à partir des données géométriques de caractères à afficher stockées dans la mémoire tampon 18, en particulier à partir des coordonnées absolues (xi(a), yi(a)) des pixels correspondant aux points caractéristiques 28, avec i allant de 1 à N1, N1 étant le nombre de points caractéristiques 28 du caractère à afficher 24.

[0043] La première unité de détermination 40 est, par exemple, configurée pour calculer les coordonnées absolues (xG1, yG1) du barycentre G1 suivant les équations suivantes :

et



[0044] La première unité de calcul 42 est configurée pour calculer les coordonnées géométriques (xi, yi) de chaque point caractéristique 28 du caractère de référence 34 dans le repère 29, de préférence orthonormé, centré sur le barycentre G1 déterminé.

[0045] Les coordonnées géométriques (xi, yi) des points caractéristiques 28 vérifient alors les équations suivantes :

et



[0046] La deuxième unité de calcul 44 est configurée pour calculer l'écart E entre le caractère à afficher 24 et le caractère de référence 34, en fonction des coordonnées géométriques (xi, yi) calculées pour le caractère à afficher 24 et de coordonnées géométriques (Xi, Yi) prédéterminées pour le caractère de référence 34. Les coordonnées géométriques (Xi, Yi) prédéterminées sont des coordonnées géométriques des points caractéristiques 38 du caractère de référence 34 dans un repère 39, de préférence orthonormé, centré sur un barycentre G2 de ses points caractéristiques 38, avec i allant de 1 à N2, N2 étant le nombre de points caractéristiques 38 du caractère de référence 34.

[0047] Par exemple, la deuxième unité de calcul 44 est configurée pour l'écart E en fonction d'une erreur quadratique Eq entre les coordonnées géométriques (xi, yi) des points caractéristiques 28 du caractère à afficher 24 et celles des points caractéristiques 38 du caractère de référence 34, l'écart E étant de préférence égal à ladite erreur quadratique Eq.

[0048] De préférence, la deuxième unité de calcul 44 est configurée pour calculer l'erreur quadratique Eq en fonction de la transformation géométrique entre le caractère à afficher 24 et le caractère de référence 34, en supposant le nombre N1 de points caractéristiques 28 du caractère à afficher 24 égal à celui N2 du caractère de référence 34, N = N1 = N2 représentant alors ledit nombre de points caractéristiques 28, 38, selon les équations suivantes :

si la transformation géométrique est une translation ;

si la transformation géométrique est une rotation, ou une combinaison d'une translation et une rotation;

si la transformation géométrique est une homothétie, ou une combinaison d'une homothétie, et d'une translation et/ou d'une rotation;
avec









et



[0049] Le caractère à afficher 24 est considéré correct si l'écart calculé E est inférieur à un seuil S prédéterminé.

[0050] Avantageusement, le seuil S est déterminé, par exemple via des essais préliminaires, de manière à ce que lorsque l'écart calculé E est inférieur audit seuil S, chaque point caractéristique 28 du caractère à afficher 24 est distant, d'un maximum de deux pixels suivant un axe des abscisses du repère absolu 22 et de deux pixels suivant un axe des ordonnées du repère absolu 22, de l'image par la transformation géométrique d'un point caractéristique 38 correspondant du caractère de référence 34.

[0051] Par exemple, les premières unités de détermination 40 et, respectivement, de calcul 42 sont, en outre, configurées pour déterminer le barycentre G2 des points caractéristiques 38 pour un ensemble de caractères de référence 34 aptes à être affiché à l'écran 20, en particulier les coordonnées absolues (XG2, YG2) du barycentre G2, et respectivement pour calculer les coordonnées géométriques (Xi Yi) de chaque point caractéristique 38 pour l'ensemble des caractères de référence 34 aptes être affiché à l'écran 20, dans le repère 39, de préférence au démarrage du processeur graphique 10.

[0052] En complément facultatif, l'unité de comparaison 46 est configurée pour comparer, préalablement à la détermination du barycentre G1, le nombre N1 de points caractéristiques 28 du caractère à afficher 24 et le nombre N2 de points caractéristiques 38 du caractère de référence 34.

[0053] En complément facultatif encore, la troisième unité de calcul 48 est configurée pour calculer, après le calcul des coordonnées géométriques (xi, yi) des points caractéristiques 28 du caractère à afficher 24, la transformation géométrique entre un caractère parmi le caractère à afficher 24 et le caractère de référence 34, et l'autre caractère parmi le caractère à afficher 24 et le caractère de référence 34.

[0054] En particulier, la troisième unité de calcul 48 est configurée pour déterminer un vecteur de translation entre le caractère à afficher 24 et le caractère de référence 34. Le vecteur de translation déterminé correspond à un vecteur entre le barycentre G1 du caractère à afficher 24 et le barycentre G2 du caractère de référence 34.

[0055] En complément, la troisième unité de calcul 48 est configurée pour calculer un angle de rotation θ entre le caractère à afficher 24 et le caractère de référence 34, suivant les équations suivantes :

et

où σ est défini selon [Math 10], ρ selon [Math 11] et κ selon [Math 12].

[0056] En complément encore, la troisième unité de calcul 48 est configurée pour calculer un facteur d'homothétie A entre le caractère à afficher 24 et le caractère de référence 34, suivant l'équation [Math 13].

[0057] La deuxième unité de détermination 50 est configurée pour déterminer la position du caractère de référence 24, en fonction de la transformation géométrique calculée, en particulier en fonction du vecteur de translation déterminé, et en fonction d'une position prédéterminée du caractère de référence 34.

[0058] La troisième unité de détermination 52 est configurée pour déterminer l'orientation du caractère de référence 24, en fonction de la transformation géométrique calculée, en particulier en fonction de l'angle de rotation θ calculé, et en fonction d'une orientation prédéterminée du caractère de référence 34.

[0059] La quatrième unité de détermination 54 est configurée pour déterminer la taille du caractère de référence 24, en fonction de la transformation géométrique calculée, en particulier en fonction du facteur d'homothétie A calculé, et en fonction d'une taille prédéterminée du caractère de référence 34.

[0060] En variante non représentée, le dispositif de vérification 30 est un dispositif externe au processeur graphique 10. Selon cette variante, le processeur graphique 10 comprend un module d'émission de données géométriques du caractère à afficher 24 à destination du dispositif de vérification 30, et un module de réception de données de vérification de la part du dispositif de vérification 30. Selon cette variante, le dispositif de vérification 30 est tel que défini ci-dessus, et comprend en outre, une unité de réception des données géométriques du caractère à afficher 24 de la part du processeur graphique 10, et une unité d'émission des données de vérification à destination du processeur graphique 10.

[0061] Les données de vérification comprennent des données indiquant si le caractère à afficher est correct ou non, et en complément facultatif des données comprenant la position, l'orientation et, en complément encore, la taille du caractère à afficher 24.

[0062] Le dispositif de vérification 30 est, par exemple, réalisé sous forme de composants logiques programmables, tel qu'un ou plusieurs FPGA (de l'anglais Field-Programmable Gâte Array), ou encore sous forme de circuits intégrés dédiés, de type ASIC.

[0063] En variante non représentée, le dispositif de vérification 30 comprend une unité de traitement d'informations, comportant une mémoire, et un processeur associé à la mémoire. La première unité de détermination 40, les première et deuxième unités de calcul 42 et 44, ainsi qu'en complément facultatif, l'unité de comparaison 46, la troisième unité de calcul 48 et les deuxième, troisième et quatrième unités de détermination 50, 52 et 54, ainsi que les unités de réception et d'émission, sont alors réalisées chacun sous forme d'un logiciel, ou d'une brique logicielle, exécutables par le processeur. La mémoire est alors apte à stocker un premier logiciel de détermination du barycentre G1 des points caractéristiques 28 du caractère à afficher 24, un premier logiciel de calcul des coordonnées géométriques (xi, yi) de chaque point caractéristique 28 du caractère à afficher 24, un deuxième logiciel de calcul de l'écart E entre le caractère à afficher 24 et le caractère de référence 34, et en complément facultatif un logiciel de comparaison du nombre N1 de points caractéristiques 28 du caractère à afficher 24 et du nombre N2 de points caractéristiques 38 du caractère de référence 34, un troisième logiciel de calcul de la transformation géométrique entre un caractère parmi le caractère à afficher 24 et le caractère de référence 34, et l'autre caractère parmi le caractère à afficher 24 et le caractère de référence 34, un deuxième logiciel de détermination de la position du caractère à afficher 24, un troisième logiciel de détermination de l'orientation du caractère à afficher 24, et un quatrième logiciel de détermination de la taille du caractère à afficher 24, ainsi qu'un logiciel de réception de données géométriques du caractère à afficher 24 de la part du processeur graphique 10 et un logiciel d'émission de données de vérification à destination du processeur graphique 10.

[0064] Lorsque le dispositif de vérification 30 est réalisé sous forme d'un ou plusieurs logiciels, c'est-à-dire sous forme d'un produit programme d'ordinateur, il est en outre apte à être enregistré sur un support, non représenté, lisible par ordinateur. Le support lisible par ordinateur est par exemple, un médium apte à mémoriser des instructions électroniques et à être couplé à un bus d'un système informatique. A titre d'exemple, le support lisible est un disque optique, un disque magnéto-optique, une mémoire ROM, une mémoire RAM, tout type de mémoire non volatile (par exemple EPROM, EEPROM, FLASH, NVRAM), une carte magnétique ou une carte optique. Sur le support lisible est alors mémorisé un produit programme d'ordinateur comprenant des instructions logicielles.

[0065] Un procédé de vérification du caractère à afficher 24 sur l'écran 20 par rapport au caractère de référence 34, mis en œuvre par le dispositif de vérification 30, va maintenant être décrit, en regard de la figure 3.

[0066] Le procédé comprend une étape 210 de détermination, par la première unité de détermination 40, du barycentre G1 des points caractéristiques 28 du caractère à afficher 24. Lors de cette étape 210, la première unité de détermination 40 calcule les coordonnées absolues (xG1, yG1) du barycentre G1, à partir des coordonnées absolues (xi(a), yi(a)) des points caractéristiques 28 du caractère de référence 34, par exemple, suivant les équations [Math 1] et [Math 2].

[0067] Le procédé comprend ensuite une étape 220 de calcul, par la première unité de calcul 42, des coordonnées géométriques (xi, yi) de chaque point caractéristique 28 du caractère à afficher 24. Lors de cette étape 210, la première unité de calcul 42 calcule les coordonnées géométriques (xi, yi) de chaque point caractéristique 28, suivant les équations [Math 3] et [Math 4].

[0068] Enfin, le procédé comprend une étape 230 de calcul, par la deuxième unité de calcul 44, de l'écart E entre le caractère à afficher 24 et le caractère de référence 34.

[0069] Pendant l'étape de calcul 230, la deuxième unité de calcul 44 calcule l'écart E, de préférence en fonction de l'erreur quadratique Eq, par exemple suivant l'équation [Math 7].

[0070] En variante, lorsque le processeur graphique 10 est configuré pour afficher un caractère avec une taille prédéfinie, la deuxième unité de calcul 44 calcule l'écart E en fonction de l'erreur quadratique Eq, suivant l'équation [Math 6].

[0071] En variante encore, lorsque le processeur graphique 10 est configuré pour afficher un caractère avec une orientation et une taille prédéfinies, la deuxième unité de calcul 44 calcule l'écart E en fonction de l'erreur quadratique Eq, suivant l'équation [Math 5].

[0072] Le caractère à afficher 24 est considéré correct seulement si l'écart E calculé est inférieur au seuil S prédéterminé.

[0073] En complément facultatif, le procédé comprend, préalablement à l'étape de détermination 210, une étape 200 de comparaison, par l'unité de comparaison 46, du nombre N1 de points caractéristiques 28 du caractère à afficher 24 et du nombre N2 de points caractéristiques 38 du caractère de référence 34.

[0074] L'étape suivante de détermination 210 est effectuée ensuite, seulement si le nombre N1 de points caractéristiques 28 du caractère à afficher 24 et celui N2 du caractère de référence 34 sont égaux.

[0075] Le caractère à afficher 24 est considéré incorrect et les étapes suivantes ne sont pas effectuées, si le nombre N1 de points caractéristiques 28 du caractère à afficher 24 diffère du nombre N2 de points caractéristiques 38 du caractère de référence 34.

[0076] En complément facultatif encore, le procédé comprend, suivant l'étape de calcul 220, une étape 240 de calcul, par la troisième unité de calcul 48, de la transformation géométrique entre un caractère parmi le caractère à afficher 24 et le caractère de référence 34, et l'autre caractère parmi le caractère à afficher 24 et le caractère de référence 34.

[0077] Lors de l'étape 240, la troisième unité de calcul 48 calcule, par exemple, le vecteur de translation en fonction du barycentre G1 calculé, l'angle de la rotation θ suivant les équations [Math 14] et [Math 15] et le facteur d'homothétie λ de la transformation géométrique suivant l'équation [Math 13].

[0078] En variante, lorsque le processeur graphique 10 est configuré pour afficher un caractère avec une taille prédéfinie, la troisième unité de calcul 48 calcule uniquement le vecteur de translation et l'angle de rotation θ.

[0079] En variante encore, lorsque le processeur graphique 10 est configuré pour afficher un caractère avec une orientation et une taille prédéfinies, calcule uniquement le vecteur de translation.

[0080] Le procédé comprend alors une étape 250 de détermination, par la deuxième unité de détermination 50, de la position à l'écran 20 du caractère à afficher 24, en fonction de la transformation géométrique calculée, en particulier du vecteur de translation calculé, et en fonction de la position prédéterminée du caractère de référence 34.

[0081] Le procédé comprend, en outre une étape 260 de détermination, par la troisième unité de détermination 52 de l'orientation à l'écran 20 du caractère à afficher 24, en fonction de la transformation géométrique calculée, en particulier de l'angle de la rotation θ calculé, et en fonction de l'orientation prédéterminée du caractère de référence 34

[0082] De préférence, le procédé comprend, en outre, suivant l'étape de détermination 240, une étape 270 de calcul, par la quatrième unité de détermination 54, de la taille à l'écran 20 du caractère à afficher 24, en particulier du facteur d'homothétie λ calculé, et en fonction de la taille prédéterminée du caractère de référence 34.

[0083] Dans l'exemple de la figure 3, l'étape 260 est effectuée à la suite de l'étape 250 et l'étape 270 est effectuée à la suite de l'étape 260. En variante non représentée, les étapes 250 à 270 sont effectuées dans n'importe quel ordre.

[0084] En variante, lorsque le processeur graphique 10 est configuré pour afficher un caractère avec une taille prédéfinie, l'étape 270 n'est pas effectuée.

[0085] En variante encore, lorsque le processeur graphique 10 est configuré pour afficher un caractère avec une orientation et une taille prédéfinies, les étapes 260 et 270 ne sont pas effectuées.

[0086] Dans l'exemple de la figure 3, les étapes 240 à 270 sont effectuées seulement après que le caractère à afficher 24 a été considéré correct à l'issue de l'étape 230.

[0087] Alternativement, les étapes 240 à 270 sont effectuées entre les étapes 220 et 230.

[0088] Selon cette alternative, lors de l'étape de calcul 230, la deuxième unité de calcul 44 calcule l'écart E en fonction de la transformation géométrique calculée. Plus particulièrement, la deuxième unité de calcul 44 calcule l'écart E en fonction l'erreur quadratique Eq, suivant :
  • l'équation [Math 7], si le facteur d'homothétie λ calculé est différent de 1, i.e. si la transformation géométrique calculée comprend une homothétie.
  • l'équation [Math 6], si le facteur d'homothétie λ calculé est égal à 1 et l'angle de la rotation θ calculé est différent de 0°, i.e. si la transformation géométrique calculée comprend uniquement une translation et une rotation, ou uniquement une rotation, et
  • l'équation [Math 5], si le facteur d'homothétie λ calculé est égal à 1 et l'angle de la rotation θ calculé est égal à 0°, i.e. si la transformation géométrique calculée comprend uniquement une translation.


[0089] En variante, lorsque le dispositif de vérification 30 est un dispositif externe au processeur graphique 10, le procédé comprend, en outre, une étape préliminaire, non représentée, de réception, de la part du processeur graphique 10, de données géométriques du caractère à afficher 24, et une étape finale, non représentée, d'émission des données de vérification à destination du processeur graphique 10.

[0090] Ainsi, le dispositif de vérification 30 selon l'invention permet de vérifier le caractère à afficher 24 par rapport au caractère de référence 34 juste avant son affichage sur l'écran 20, ce qui permet de garantir un affichage correct de ce caractère, quelle que soit sa position, sa taille et son orientation.

[0091] En outre, le calcul de la position, de l'orientation et de la taille du caractère à afficher 24 permet de vérifier que le caractère est affiché à une position souhaitée à l'écran 20, et avec une orientation et une taille souhaitées.

[0092] Un tel dispositif de vérification 30 permet alors de vérifier le caractère à afficher 24 avec un nombre limité de calculs, ce qui permet au dispositif de vérification 30 de vérifier un nombre important de caractères au cours d'une brève période temporelle, par exemple inférieur à 250 microsecondes pour 1000 caractères lorsque le dispositif de vérification 30 est un dispositif externe au processeur graphique 10.

[0093] De plus, le calcul de l'écart E est optimisé en fonction de la transformation géométrique entre le caractère à afficher 24 et le caractère de référence 34.


Revendications

1. Procédé de vérification d'un caractère à afficher (24) sur un écran (20), par rapport à un caractère de référence (34),
le caractère à afficher (24) et le caractère de référence (34) comprenant chacun au moins plusieurs points caractéristiques (28, 38) à afficher sur l'écran (20),
le procédé étant caractérisé en ce qu'il comprend les étapes suivantes :

a) la détermination (210) d'un barycentre (G1) des points caractéristiques (28) du caractère à afficher (24),

b) le calcul (220) de coordonnées géométriques de chaque point caractéristique (28) du caractère à afficher (24) dans un repère (29) centré sur le barycentre (G1) déterminé, et

c) le calcul (230) d'un écart (E) entre le caractère à afficher (24) et le caractère de référence (34), en fonction des coordonnées géométriques calculées pour le caractère à afficher (24) et de coordonnées géométriques prédéterminées pour le caractère de référence (34), lesdites coordonnées géométriques prédéterminées étant des coordonnées géométriques des points caractéristiques (38) du caractère de référence (34) dans un repère (39) centré sur un barycentre (G2) de ses points caractéristiques (38),

le caractère à afficher (24) étant considéré correct seulement si l'écart (E) calculé est inférieur à un seuil (S) prédéterminé.
 
2. Procédé selon la revendication 1, dans lequel le procédé comprend, en outre, les étapes suivantes, après l'étape b) :

d) le calcul (240) d'une transformation géométrique entre un caractère parmi le caractère à afficher (24) et le caractère de référence (34), et l'autre caractère parmi le caractère à afficher (24) et le caractère de référence (34),

e) la détermination (250) d'une position à l'écran (20) du caractère à afficher (24), en fonction de la transformation géométrique calculée et d'une position du caractère de référence (34) prédéterminée, et

f) la détermination (260) d'une orientation à l'écran (20) du caractère à afficher (24), en fonction de la transformation géométrique calculée et d'une orientation du caractère de référence (34) prédéterminée.


 
3. Procédé selon la revendication 2, dans lequel le procédé comprend, en outre, après l'étape d), une étape de détermination (270) d'une taille à l'écran (20) du caractère à afficher (24), en fonction de la transformation géométrique calculée et d'une taille du caractère de référence (34) prédéterminée.
 
4. Procédé selon l'une quelconque des revendications précédentes, dans lequel le procédé comprend préalablement à l'étape a), une étape de comparaison (200) du nombre de points caractéristiques (28) du caractère à afficher (24) et de celui du caractère de référence (34), le caractère à afficher (24) étant considéré incorrect et les étapes suivantes n'étant pas effectuées, si le nombre de points caractéristiques (28) du caractère à afficher (24) diffère de celui du caractère de référence (34).
 
5. Procédé selon l'une quelconque des revendications précédentes, dans lequel, lors de l'étape c), l'écart (E) entre le caractère à afficher (24) et le caractère de référence (34) est calculé en fonction d'une erreur quadratique entre les coordonnées géométriques des points caractéristiques (28) du caractère à afficher (24) et celles des points caractéristiques (38) du caractère de référence (34).
 
6. Procédé selon la revendication 5, dans lequel le caractère à afficher (24) est l'image d'une transformation géométrique du caractère de référence (34), la transformation géométrique étant une similitude directe, le nombre de points caractéristiques (28) du caractère à afficher (24) et le nombre de points caractéristiques (38) du caractère de référence (34) sont égaux, et l'erreur quadratique vérifie l'une des équations suivantes :

-

si la transformation géométrique est une translation,

-

si la transformation géométrique est une rotation, ou une combinaison d'une translation et d'une rotation, et

-

si la transformation géométrique est une homothétie, ou une combinaison d'une homothétie, et d'une translation et/ou d'une rotation,
avec



σ = ∑1≤i≤N(xiXi + yiYi) ;

κ = ∑1≤iN(yiXi + xiYi) ; et λ = s2/ρ,
N représentant le nombre de points caractéristiques (28, 38) de chaque caractère (24, 34), xi et yi étant les coordonnées géométriques d'un ième point caractéristique parmi les points caractéristiques (28) du caractère à afficher (24), et Xi et Yi étant les coordonnées géométriques d'un ième point caractéristique parmi les points caractéristiques (38) du caractère de référence (34).


 
7. Procédé selon l'une quelconque des revendications précédentes, dans lequel le caractère à afficher (24) et le caractère de référence (34) comprennent chacun au moins un segment (26, 36) à afficher sur l'écran (20), les points caractéristiques (28, 38) dudit caractère correspondant à des extrémités de l'au moins un segment (26, 36).
 
8. Produit programme d'ordinateur comprenant des instructions logicielles qui, lorsqu'elles sont exécutées par un ordinateur, mettent en œuvre un procédé selon l'une quelconque des revendications précédentes.
 
9. Dispositif électronique de vérification (30) d'un caractère à afficher (24) sur un écran (20) par rapport à un caractère de référence (34),
le caractère à afficher (24) et le caractère de référence (34) comprenant chacun plusieurs points caractéristiques (28, 38) à afficher sur l'écran (20),
le dispositif de vérification (30) étant caractérisé en ce qu'il comprend :

- une unité de détermination (40) d'un barycentre (G1) des points caractéristiques (28) du caractère à afficher (24),

- une première unité de calcul (42) de coordonnées géométriques de chaque point caractéristique (28) du caractère à afficher (24) dans un repère (29) centré sur le barycentre (G1) déterminé, et

- une deuxième unité de calcul (44) d'un écart (E) entre le caractère à afficher (24) et le caractère de référence (34), en fonction des coordonnées géométriques calculées pour le caractère à afficher (24) et de coordonnées géométriques prédéterminées pour le caractère de référence (34), lesdites coordonnées géométriques prédéterminées étant des coordonnées géométriques des points caractéristiques (38) du caractère de référence (34) dans un repère (39) centré sur un barycentre (G2) de ses points caractéristiques (38),

le caractère à afficher (24) étant considéré correct seulement si l'écart (E) calculé est inférieur à un seuil (S) prédéterminé.
 
10. Processeur graphique (10) comprenant un dispositif électronique (30) de vérification, caractérisé en ce que le dispositif de vérification (30) est selon la revendication 9.
 




Dessins













Rapport de recherche









Rapport de recherche