Brevet FR2906386A1 — publié le 20080328

La présente invention concerne un procédé et un dispositif de sur-échantillonnage d'image, un programme d'ordinateur mettant en oeuvre ce procédé et un support d'information lisible par un ordinateur permettant la mise en oeuvre de ce procédé. La présente invention concerne, de manière générale, le filtrage de signaux numériques multidimensionnels, notamment de signaux représentatifs d'images fixes ou animées. Plus particulièrement, la présente invention propose une nouvelle technique permettant de sur-échantillonner un signal numérique. On rappelle ici que sur-échantillonner un signal consiste à augmenter le nombre d'échantillons par unité de longueur de ce signal, sans y apporter d'information supplémentaire. La présente invention vise à obtenir un sur-échantillonnage d'une qualité supérieure à ce que permettent d'obtenir les techniques de sur-échantillonnage connues dans l'art antérieur. En particulier, la présente invention vise à permettre une excellente restitution des contours diagonaux de l'image. On connaît des procédés de filtrage en vue de sur-échantillonnage, tel que le filtrage de C. Lancsoz décrit en http:// home.no.net/dmaurer/%7Edersch/interpolator/interpolator.html. Ce procédé de filtrage fonctionne mal sur les contours diagonaux et provoque des effets d'escalier. La présente invention vise à remédier à ces inconvénients. A cet effet, la présente invention vise un procédé de sur-échantillonnage d'un signal représentatif d'image initial, qui comporte : - une étape de détermination d'orientations de filtrage en fonction du signal initial et - une étape de construction d'une version sur-échantillonnée du signal initial en appliquant un filtrage orienté selon lesdites orientations à un signal représentatif du signal initial. 2906386 2 On effectue ainsi un sur-échantillonnage avec filtrage du signal initial en adaptant l'orientation du filtrage, par exemple à celle des contours de l'image. Selon des caractéristiques particulières, au cours de l'étape de 5 détermination d'orientations de filtrage, on effectue une étape de détection d'orientations de contour de l'image représentée par ledit signal initial. Grâce à ces dispositions, la complexité de la procédure de sur-échantillonnage est faible par rapport à l'état de l'art tout en donnant un meilleur résultat visuel. 10 Selon des caractéristiques particulières, l'étape de détermination d'orientations de filtrage comporte au moins une étape de sur-échantillonnage d'une image d'orientations de contours. On obtient ainsi une image d'orientation à la même résolution que l'image sur-échantillonnée, ce qui permet d'affecter rapidement une orientation 15 de filtrage à chaque échantillon, ou pixel, de l'image sur-échantillonnée non encore filtrée. Selon des caractéristiques particulières, l'étape de sur-échantillonnage de l'image d'orientations de contours comporte une étape d'insertion d'échantillons entre les échantillons de ladite image. 20 Selon des caractéristiques particulières, l'étape de sur-échantillonnage de l'image d'orientations de contours comporte une étape d'affectation, à chaque échantillon inséré, d'une valeur d'orientation déterminée en fonction des échantillons voisins provenant de ladite image d'orientations de contours. 25 Selon des caractéristiques particulières, au cours de l'étape de détermination d'orientations de contour, on applique un filtrage de Sobel au signal initial. Selon des caractéristiques particulières, l'étape de construction d'une version sur-échantillonnée du signal initial comporte au moins une étape 30 d'insertion d'échantillons entre des échantillons de l'image initiale. Selon un deuxième aspect, la présente invention vise un dispositif de sur-échantillonnage d'une image présentant un nombre d'échantillons supérieur 2906386 3 au nombre d'échantillons représentés par un signal représentatif d'image initial, qui comporte : - un moyen de détermination d'orientations de filtrage en fonction du signal initial et 5 - un moyen de construction d'une version sur-échantillonnée du signal initial adapté à appliquer un filtrage orienté selon lesdites orientations à un signal représentatif du signal initial. Selon un troisième aspect, la présente invention vise un programme d'ordinateur chargeable dans un système informatique, ledit programme 10 contenant des instructions permettant la mise en oeuvre du procédé de sur-échantillonnage tel que succinctement exposé ci-dessus, lorsque ce programme est chargé et exécuté par un système informatique. Selon un quatrième aspect, la présente invention vise un support d'informations lisibles par un ordinateur ou un microprocesseur, amovible ou 15 non, conservant des instructions d'un programme informatique, caractérisé en ce qu'il permet la mise en oeuvre du procédé de sur-échantillonnage tel que succinctement exposé ci-dessus. Les avantages, buts et caractéristiques de ce dispositif de sur-échantillonnage, de ce programme d'ordinateur et de ce support d'informations 20 étant similaires à ceux du procédé de sur-échantillonnage, tel que succinctement exposé ci-dessus, ils ne sont pas rappelés ici. D'autres avantages, buts et caractéristiques de la présente invention ressortiront de la description qui va suivre, faite, dans un but explicatif et nullement limitatif, en regard des dessins annexés dans lesquels : 25 - la figure 1 représente une image à sur-échantillonner et une image sur-échantillonnée ; - la figure 2 représente, sous forme d'un logigramme, des étapes mises en oeuvre dans un mode de réalisation particulier du procédé objet de la présente invention ; 30 - la figure 3 représente, schématiquement, des images mises en oeuvre au cours du déroulement du mode de réalisation du procédé objet de la présente invention illustré en figure 2 ; 2906386 4 - la figure 4 représente, schématiquement, des filtrages orientés mis en oeuvre dans un mode de réalisation particulier du procédé et/ou du dispositif objets de la présente invention et - la figure 5 représente, schématiquement, un mode de réalisation 5 particulier du dispositif objet de la présente invention. Dans toute la description, on décrit le sur-échantillonnage d'une image numérique fixe, qui est un signal bidimensionnel. Cependant, la présente invention s'applique, avec les mêmes étapes et/ou moyens caractéristiques, à un signal qui possède un nombre de dimensions plus élevé, par exemple une 10 vidéo (3 dimensions). On observe, en figure 1, au dessus, une image à sur-échantillonner 105 et, en dessous, une image sur-échantillonnée 110 obtenue par sur-échantillonnage de l'image 105. Dans l'exemple représenté en figure 1, le sur-échantillonnage possède un facteur deux sur chaque dimension du signal, 15 horizontal et vertical. L'image 110 possède donc quatre fois plus d'échantillons que l'image 105. On observe, en figure 2, qu'un mode de réalisation particulier du procédé objet de la présente invention commence par une étape 205 de détermination de l'information d'orientation dans une image initiale à suréchantillonner 305. Au cours de cette étape 205, on utilise l'image initiale 305 pour calculer une image d'orientation initiale 310. Selon les variantes, différentes étapes sont mises en oeuvre à cet effet. Dans un mode préféré de réalisation, on extrait l'orientation des contours de l'image. Cette extraction est réalisée, par 25 exemple, par un filtrage de Sobel (dans une variante, au cours de cette étape, on utilise un autre filtrage que celui de Sobel tel que le filtrage détecteur de contour Robert Cross, décrit à la page http://homepages.inf.ed.ac.uk/rbf/HIPR2/sobel.htm ). Le filtrage de Sobel est bien connu (voir http://homepages.inf.ed.ac.uk/rbf/HIPR2/sobel.htm) et consiste 30 à appliquer deux filtrages bidimensionnels à l'image. L'arctangente du rapport des sorties de ces deux filtrages donne l'orientation locale du contour. Une image contenant, pour chaque échantillon du signal secondaire, l'orientation du 2906386 5 contour local, est ainsi créée. Cette image 310 est appelée SO1. Le filtrage de Sobel donne l'orientation de l'orthogonale au contour local. Dans le mode de réalisation préféré, on ajoute 90 au résultat pour obtenir l'orientation du contour proprement dit, qui est assimilé à l'orientation de sa tangente et on prend 5 l'orientation géométrique de filtre la plus proche de l'orientation obtenue. Puis, au cours d'une étape 210, on effectue un sur-échantillonnage de l'image 305 le long d'une première dimension (en figure 3, c'est le long de la dimension verticale qu'est effectuée le sur-échantillonnage) pour obtenir une image partiellement sur-échantillonnée 315. Au cours de l'étape 210, on insère 10 une ligne contenant des pixels dont la valeur est mise à zéro après chaque ligne de l'image 305. L'image partiellement sur-échantillonnée 315 est représentée, en figure 3, avec des lignes noires (représentant les lignes de pixels possédant la valeur zéro). Puis, au cours d'une étape 215, on effectue un sur-échantillonnage 15 et un filtrage de l'image 310 le long de la première dimension (ici verticalement) pour obtenir une image partiellement sur-échantillonnée 320. Au cours de cette étape, l'image 310 contenant l'information d'orientation de contour est sur-échantillonnée le long de la première dimension, ici verticalement, puis filtrée pour produire une nouvelle image, 320. Le sur-échantillonnage consiste à 20 insérer, après chaque ligne de l'image 310, une ligne contenant l'orientation zéro (signifiant, par exemple l'orientation horizontale). Ensuite, chaque valeur de chaque ligne nouvellement insérée est filtrée, c'est-à-dire remplacée par une valeur calculée à partir de valeurs contenues dans les lignes provenant de l'image 310. Dans le mode préféré de réalisation, le filtrage de l'image consiste 25 à remplacer chaque valeur d'orientation de chaque ligne insérée par l'orientation moyenne des échantillons positionnés immédiatement avant et immédiatement après l'échantillon filtré, dans la première direction, c'est-à-dire, ici, les échantillons immédiatement au-dessus et immédiatement au dessous de l'échantillon considéré. 30 Par ailleurs, on définit l'orientation moyenne de deux orientations comme l'orientation de la première bissectrice des deux orientations (la première bissectrice est la bissectrice de l'angle le plus aigu formé par les deux 2906386 6 orientations initiales). On observe que, dans des variantes, on utilise d'autres filtrages pour déterminer l'orientation de filtrage des échantillons ajoutés par échantillonnage, lesdits filtrages mettant, par exemple, en oeuvre plus de valeurs voisines de l'échantillon à filtrer. 5 Dans des modes de réalisation, lorsque l'orientation moyenne ne tombe pas sur l'une des directions de filtrage prédéterminées, on prend, comme orientation, celle des directions de filtrage prédéterminée qui est la plus proche de l'orientation moyenne. Puis, au cours d'une étape 220, on applique un filtrage mettant en 10 oeuvre différentes orientations aux lignes de zéros de l'image 315 en utilisant l'orientation fournie par l'image 320, pour fournir une image 325. La figure 4 illustre un exemple de filtrage d'un échantillon 405 de l'image 315, se trouvant sur la i-ième ligne et la j-ième colonne de l'image 315, noté IOv(i,j) . Un filtre 410 peut être utilisé selon différentes orientations, 415, 15 420, 425 et 430, quatre orientations étant représentées, à titre d'exemple, en figure 4. On suppose que l'image 320 donne, pour l'échantillon de coordonnées (i,j), comme orientation de filtrage, l'orientation 415 en gras sur la figure 2 (qui va du sud-ouest au nord-est). Dans l'exemple illustré en figure 4, on utilise un filtre basse 20 fréquence agissant sur sept échantillons, étant entendu que d'autres filtres, agissant sur plus ou moins d'échantillons sont utilisables. Par exemple, le résultat du filtrage d'un signal monodimensionnel {...,xi-3, xi-2, xi-1, xi, xi-F1, xi+2, xi+3,...} par le filtre passe-bas dont les coefficients sont [-1/16, 0, 5/16, 1, 5/16, 0, -1/16] est 25 yi= -xi-3/16 + 5.xi-1/16 + xi + 5.xi+1/16 - xi+3/16. Dans la présente invention, le filtrage s'applique à un signal monodimensionnel extrait le long de l'orientation déterminée par ICv(i,j). Ainsi, dans l'exemple donné par la figure 2, le filtrage s'applique à un signal orienté diagonalement, ici le signal comportant l'ensemble d'échantillons {xi+3,j-3, xi+2,j-2, xi+1,j-1, xi, xi-1,j+1, xi-2,j+2, xi- 30 3,j+3} 2906386 7 Au cours de l'étape 220, l'échantillon de sortie du filtrage, yi, remplace l'échantillon de coordonnées (i,j) de l'image 315, pour former de l'image de sortie 325. Puis, au cours d'une étape 225, on effectue un sur-échantillonnage 5 de l'image 325 le long d'une seconde dimension, ici la dimension horizontale, pour obtenir une image 335. L'étape 225 consiste à insérer une colonne contenant des échantillons, ou pixels, possédant la valeur zéro après chaque colonne de l'image 325. L'image obtenue, référencée 335, est représentée en figure 3 avec 10 des colonnes noires représentant les colonnes de zéros insérées. Puis, au cours d'une étape 230, on sur-échantillonne et on filtre l'image 320, le long de la deuxième dimension, ici horizontalement, pour obtenir une image 330. Au cours de cette étape 230, l'image 320 contenant l'information d'orientation de contour est ainsi sur-échantillonnée le long de la 15 deuxième dimension, puis filtrée pour produire l'image 330. Le sur-échantillonnage consiste à insérer après chaque colonne de l'image 320, une colonne contenant l'orientation zéro (qui représente, par exemple, l'orientation horizontale). Ensuite, chaque valeur de chaque nouvelle colonne est filtrée, c'est-à-dire remplacée par une valeur calculée à partir de valeurs 20 contenues dans les colonnes provenant de l'image 320. Dans le mode préféré de réalisation, le filtrage de l'image consiste à remplacer chaque valeur d'orientation de chaque colonne insérée par l'orientation moyenne des échantillons contenus immédiatement avant et immédiatement après l'échantillon considéré dans la deuxième direction, c'est-à-dire, ici, 25 immédiatement à gauche et immédiatement à droite de l'échantillon considéré. Au cours d'une étape 235, on effectue un filtrage de l'image 335 avec les orientations de l'image 330 pour obtenir l'image finale 340. Au cours de cette étape 235, on applique un filtre orienté comme décrit, ci-dessus, en regard de l'étape 220. L'image obtenue est l'image finale 340, version sur- 30 échantillonnée de l'image originale 305. On observe que les étapes 225 à 235 peuvent être répétées sur une troisième dimension, par exemple le temps, lorsque l'image initiale doit être sur- 2906386 8 échantillonnée selon cette troisième dimension, par exemple dans le cas d'une image animée, ou vidéo. On observe, en figure 5, un mode particulier de réalisation du dispositif objet de la présente invention 500 et différents périphériques adaptés 5 à implémenter chaque aspect de la présente invention. Dans le mode de réalisation illustré en figure 5, le dispositif 500 est un micro-ordinateur de type connu connecté, par le biais d'une carte graphique 504, à un moyen d'acquisition ou de stockage d'images 501, par exemple une caméra numérique ou un scanner, adapté à fournir des informations d'images à sur-échantillonner. 10 Le dispositif 500 comporte une interface de communication 518 reliée à un réseau 534 apte à transmettre, en entrée, des données numériques à sur-échantillonner et, en sortie, des données sur-échantillonnées par le dispositif. Le dispositif 500 comporte également un moyen de stockage 512, par exemple un disque dur, et un lecteur 514 de disquette 516. La disquette 516 et 15 le moyen de stockage 512 peuvent contenir des données à sur-échantillonner, des données sur-échantillonnées et un programme informatique adapté à implémenter le procédé de sur-échantillonnage objet de la présente invention. Selon une variante, le programme permettant au dispositif de mettre en oeuvre la présente invention est stocké en mémoire morte ROM (acronyme 20 de read only memory pour mémoire non réinscriptible) 506. Selon une autre variante, le programme est reçu par l'intermédiaire du réseau de communication 534 avant d'être stocké. Le dispositif 500 est, optionnellement, relié à un microphone 524 par l'intermédiaire d'une carte d'entré/sortie 522. Ce même dispositif 500 possède 25 un écran 505 permettant de visualiser les données à sur-échantillonner ou sur-échantillonnées ou servant d'interface avec l'utilisateur pour paramétrer certains modes d'exécution du dispositif 500, à l'aide d'un clavier 510 et/ou d'une souris par exemple. Une unité centrale CPU (acronyme de central processing unit ) 30 503 exécute les instructions du programme informatique et de programmes nécessaires à son fonctionnement, par exemple un système d'exploitation. Lors de la mise sous tension du dispositif 500, les programmes stockés dans une 2906386 9 mémoire non volatile, par exemple la mémoire morte 506, le disque dur 512 ou la disquette 516, sont transférés dans une mémoire vive RAM (acronyme de random access memory pour mémoire à accès aléatoire) 508 qui contiendra alors le code exécutable du programme objet de la présente invention ainsi que 5 des registres pour mémoriser les variables nécessaires à sa mise en oeuvre. Bien entendu, la disquette 516 peut être remplacée par tout support d'information amovible, tel que disque compact, clé ou carte mémoire. De manière plus générale, un moyen de stockage d'information, lisible par un ordinateur ou par un microprocesseur, intégré ou non au dispositif, 10 éventuellement amovible, mémorise un programme objet de la présente invention. Un bus de communication 502 permet la communication entre les différents éléments inclus dans le dispositif 500 ou reliés à lui. La représentation, en figure 5, du bus 502 n'est pas limitative et notamment l'unité centrale 503 est susceptible de communiquer des instructions à tout élément du 15 dispositif 500 directement ou par l'intermédiaire d'un autre élément du dispositif 500. Le dispositif décrit ici et, particulièrement, l'unité centrale 503, sont susceptibles d'implémenter tout ou partie des traitements décrits en regard des figures 1 à 5, pour mettre en oeuvre le procédé de sur-échantillonnage objet de 20 la présente invention et constituer chaque dispositif objet de la présente invention. REVENDICATIONS 1. Procédé de sur-échantillonnage d'un signal représentatif d'image initial (305), caractérisé en ce qu'il comporte : - une étape (205) de détermination d'orientations (415, 420, 425, 430) de filtrage (410) en fonction du signal initial et - une étape (210 à 235) de construction d'une version sur- échantillonnée du signal initial en appliquant un filtrage orienté selon lesdites orientations à un signal représentatif du signal initial. 2. Procédé selon la revendication 1, caractérisé en ce que, au cours de l'étape (205) de détermination d'orientations de filtrage, on effectue une étape de détection d'orientation de contour de l'image représentée par ledit signal initial. 3. Procédé selon la revendication 2, caractérisé en ce que l'étape (205) de détermination d'orientations de filtrage comporte au moins une étape de sur-échantillonnage (215) d'une image d'orientations de contours (310, 330). 4. Procédé selon la revendication 3, caractérisé en ce que chaque étape de sur-échantillonnage (215) de l'image d'orientations de contours comporte une étape (215, 230) d'insertion d'échantillons entre les échantillons de ladite image (310, 320). 5. Procédé selon la revendication 4, caractérisé en ce que l'étape (215, 230) de sur-échantillonnage de l'image d'orientations de contours (310, 320) comporte une étape d'affectation, à chaque échantillon inséré, d'une valeur d'orientation déterminée en fonction des échantillons voisins provenant de ladite image d'orientations de contours. 6. Procédé selon l'une quelconque des revendications 2 à 5, caractérisé en ce que, au cours de l'étape (205) de détermination d'orientations de contour, on applique un filtrage de Sobel au signal initial. 7. Procédé selon l'une quelconque des revendications 1 à 6, caractérisé en ce que l'étape (210 à 235) de construction d'une version sur- 2906386 11 échantillonnée du signal initial comporte au moins une étape d'insertion d'échantillons entre des échantillons de l'image initiale. 8. Dispositif (500) de sur-échantillonnage d'une image (340) présentant un nombre d'échantillons supérieur au nombre d'échantillons 5 représentés par un signal représentatif d'image initial (305), caractérisé en ce qu'il comporte : - un moyen (503, 506, 512, 516) de détermination d'orientations de filtrage en fonction du signal initial et - un moyen (503, 506, 512, 516) de construction d'une version sur- 10 échantillonnée du signal initial adapté à appliquer un filtrage orienté selon lesdites orientations à un signal représentatif du signal initial. 9. Programme d'ordinateur chargeable dans un système informatique (500), ledit programme contenant des instructions permettant la mise en oeuvre du procédé de sur-échantillonnage selon l'une quelconque des 15 revendications 1 à 7, lorsque ce programme est chargé et exécuté par un système informatique. 10. Support d'informations (516) lisibles par un ordinateur (500) ou un microprocesseur (503), amovible ou non, conservant des instructions d'un programme informatique, caractérisé en ce qu'il permet la mise en oeuvre du 20 procédé de sur-échantillonnage selon l'une quelconque des revendications 1 à 7.