FR2921504A1 - Spatial interpolation method for pixel of missing block of image, involves determining weights associated to neighboring pixel based on distance and information representing contour when neighboring pixel belongs to image contour - Google Patents
Spatial interpolation method for pixel of missing block of image, involves determining weights associated to neighboring pixel based on distance and information representing contour when neighboring pixel belongs to image contour Download PDFInfo
- Publication number
- FR2921504A1 FR2921504A1 FR0757782A FR0757782A FR2921504A1 FR 2921504 A1 FR2921504 A1 FR 2921504A1 FR 0757782 A FR0757782 A FR 0757782A FR 0757782 A FR0757782 A FR 0757782A FR 2921504 A1 FR2921504 A1 FR 2921504A1
- Authority
- FR
- France
- Prior art keywords
- pixels
- pixel
- contour
- belonging
- neighboring
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 38
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 27
- 238000004590 computer program Methods 0.000 claims abstract description 6
- 238000004364 calculation method Methods 0.000 claims description 17
- 239000011159 matrix material Substances 0.000 claims description 16
- 230000006870 function Effects 0.000 description 12
- 238000004891 communication Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 3
- 238000012937 correction Methods 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 239000004179 indigotine Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/403—Edge-driven scaling; Edge-based scaling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/77—Retouching; Inpainting; Scratch removal
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Processing (AREA)
Abstract
Description
La présente invention concerne un procédé d'interpolation spatiale des pixels manquants dans une image. Plus particulièrement, elle concerne un procédé d'interpolation spatiale reconstruisant les contours présents dans une image. Corrélativement, elle concerne un dispositif d'interpolation spatiale adapté à mettre en oeuvre le procédé conforme à l'invention. Les méthodes de correction d'erreurs fondées sur une interpolation spatiale reconstruisent des données manquantes dans une image à partir des données voisines ou adjacentes aux données manquantes. Les méthodes d'interpolation spatiale classiques sont rapides, mais elles ne reconstruisent essentiellement que des données basses fréquences ou zones uniformes (zones d'image qui ne contiennent pas de contours). Les données hautes fréquences ou contours d'image sont mal reconstruites. Ainsi, la qualité de l'image avec des zones contenant des données reconstruites par ces méthodes d'interpolation n'est pas satisfaisante. The present invention relates to a method for spatial interpolation of missing pixels in an image. More particularly, it relates to a spatial interpolation method reconstructing the contours present in an image. Correlatively, it relates to a spatial interpolation device adapted to implement the method according to the invention. Spatial interpolation error correction methods reconstruct missing data in an image from data adjacent or adjacent to the missing data. Conventional spatial interpolation methods are fast, but they essentially reconstruct only low frequency data or uniform areas (image areas that do not contain contours). High frequency data or image contours are poorly reconstructed. Thus, the quality of the image with areas containing data reconstructed by these interpolation methods is not satisfactory.
D'autre part, il existe des méthodes d'interpolation permettant de reconstruire les données hautes fréquences. Ces méthodes consistent en des algorithmes souvent extrêmement lents, dû à leur complexité. Ainsi, lorsque l'on doit mettre en oeuvre ces méthodes d'interpolation dans des applications temps réel, ces algorithmes ne peuvent pas être utilisés. On the other hand, there are interpolation methods for reconstructing high frequency data. These methods consist of algorithms that are often extremely slow, due to their complexity. Thus, when one must implement these interpolation methods in real-time applications, these algorithms can not be used.
Le document "A spatial domain error concealment method with edge recovery and selective directional interpolation" Wei-Ying, Chang-su Kim and C.-C. Jay Kuo IEEE - Volume 5, Issue, 6-10 April 2003 Page(s): V - 700-3 vol.5 ICASSP 2003, décrit une méthode de correction spatiale permettant la reconstruction des contours d'image. Des pixels caractéristiques sont détectés parmi les pixels de la frontière d'une zone d'image à reconstruire. Ces pixels caractéristiques permettent de partitionner la zone d'image à reconstruire. Une interpolation des données appartenant à la zone d'image à reconstruire est mise en oeuvre, à partir des points sélectionnés en fonction de la partition à laquelle appartient le pixel à reconstruire. Cet algorithme est complexe et lent, dès lors qu'il requiert un traitement de la zone d'image à reconstruire préalablement à l'interpolation. The document "A spatial domain error concealment method with edge recovery and selective directional interpolation" Wei-Ying, Chang-su Kim and C.-C. Jay Kuo IEEE - Volume 5, Issue, 6-10 April 2003 Page (s): V - 700-3 vol.5 ICASSP 2003, describes a spatial correction method for the reconstruction of image contours. Characteristic pixels are detected among the pixels of the boundary of an image area to be reconstructed. These characteristic pixels make it possible to partition the image area to be reconstructed. An interpolation of the data belonging to the image zone to be reconstructed is implemented, from the points selected according to the partition to which the pixel to be reconstructed belongs. This algorithm is complex and slow, since it requires a treatment of the image area to be reconstructed prior to the interpolation.
La présente invention a pour but de résoudre les limitations précitées et de proposer un procédé d'interpolation spatiale des valeurs de pixels d'un bloc manquant dans une image et un dispositif associé à ce procédé, permettant de reconstruire les données basses fréquences ainsi que les données hautes fréquences d'une façon simple et rapide. The aim of the present invention is to solve the aforementioned limitations and to propose a method of spatial interpolation of the pixel values of a missing block in an image and a device associated with this method, making it possible to reconstruct the low frequency data as well as the high frequency data in a simple and fast way.
Dans la suite de cette description, nous désignerons par le même terme la valeur d'un pixel p(x, y) et le pixel p(x, y). Ainsi, interpoler un pixel p(x, y) veut dire reconstruire la valeur du pixel p(x, y) situé en la position (x, y). A cet effet, la présente invention vise selon un premier aspect, un procédé d'interpolation spatiale des pixels d'un bloc manquant dans une image, dans lequel chaque pixel à interpoler du bloc est déterminé par un algorithme d'interpolation appliqué à un ensemble de pixels voisins appartenant à l'ensemble de pixels adjacents au bloc manquant, chaque pixel voisin étant pondéré dans l'algorithme d'interpolation par un poids associé. Selon l'invention, le poids associé à un pixel voisin est déterminé en fonction de la distance existant entre le pixel à interpoler du bloc et le pixel voisin, lorsque le pixel voisin n'appartient pas à un contour d'image, et en fonction de ladite distance et d'une information représentative de contour associée au pixel voisin, lorsque le pixel voisin appartient à un contour d'image. Ainsi, en plus des données basses fréquences ou zones uniformes de l'image, les données hautes fréquences ou contours d'image sont également reconstruits. Cette reconstruction est réalisée d'une façon simple et rapide, dès lors qu'un seul algorithme d'interpolation est utilisé pour l'interpolation de tous les pixels du bloc manquant. Par conséquent, il est possible d'utiliser le procédé d'interpolation spatiale selon l'invention dans des applications de traitement d'image en temps réel. In the remainder of this description, we will denote by the same term the value of a pixel p (x, y) and the pixel p (x, y). Thus, interpolating a pixel p (x, y) means reconstructing the value of the pixel p (x, y) located at the position (x, y). For this purpose, the present invention aims according to a first aspect, a method of spatially interpolating the pixels of a missing block in an image, in which each pixel to interpolate the block is determined by an interpolation algorithm applied to a set neighboring pixels belonging to the set of pixels adjacent to the missing block, each neighboring pixel being weighted in the interpolation algorithm by an associated weight. According to the invention, the weight associated with a neighboring pixel is determined as a function of the distance between the interpolated pixel of the block and the neighboring pixel, when the neighboring pixel does not belong to an image contour, and in function said distance and a contour representative information associated with the neighboring pixel, when the neighboring pixel belongs to an image edge. Thus, in addition to the low frequency data or uniform areas of the image, the high frequency data or image contours are also reconstructed. This reconstruction is carried out in a simple and fast way, since only one interpolation algorithm is used for the interpolation of all the pixels of the missing block. Therefore, it is possible to use the spatial interpolation method according to the invention in real-time image processing applications.
Selon une caractéristique préférée, le procédé comporte une étape de détermination de pixels adjacents au bloc manquant appartenant à un contour d'image parmi l'ensemble de pixels adjacents au bloc manquant et d'une information représentative de contour associée respectivement aux pixels adjacents déterminés. Par conséquent, les pixels adjacents appartenant à un contour d'image sont repérés, parmi les pixels adjacents au bloc manquant. Une information représentative du contour est associée à chaque pixel adjacent repéré, afin de pouvoir déterminer le poids associé à un pixel voisin appartenant à un contour. Par exemple, l'information représentative de contour est un vecteur de direction représentant la direction de contour. Ainsi, il est possible de connaître la direction dans laquelle le contour doit être reconstruit à l'intérieur du bloc manquant. According to a preferred feature, the method comprises a step of determining pixels adjacent to the missing block belonging to an image contour among the set of pixels adjacent to the missing block and a contour representative information respectively associated with the determined adjacent pixels. Consequently, the adjacent pixels belonging to an image contour are marked, among the pixels adjacent to the missing block. Representative information of the contour is associated with each identified adjacent pixel, in order to be able to determine the weight associated with a neighboring pixel belonging to a contour. For example, the contour representative information is a direction vector representing the contour direction. Thus, it is possible to know the direction in which the contour must be reconstructed within the missing block.
En pratique, le poids associé à un pixel voisin appartenant à un contour est calculé en fonction de la valeur de la norme d'un vecteur distance formé entre le pixel à interpoler et le pixel voisin et d'un angle formé par le vecteur distance et le vecteur de direction du contour. Par conséquent, lors du calcul du poids d'un pixel voisin appartenant à un contour d'image, en plus de tenir compte de la distance entre le pixel à interpoler et le pixel voisin (comme dans le cas des pixels voisins qui n'appartiennent pas au contour), on tient compte de l'alignement du pixel à interpoler avec la direction du contour d'image. En pratique, la détermination du vecteur de direction de contour 25 comporte les étapes suivantes : - calcul du gradient de l'intensité associé respectivement à des pixels appartenant à un ensemble de pixels situé autour du bloc manquant à partir de pixels appartenant à une matrice de dimensions prédéterminées située autour du bloc manquant ; 30 - détermination à partir des gradients calculés, d'un ensemble de pixels appartenant à un contour, parmi les pixels appartenant audit ensemble de pixels situé autour du bloc manquant ; - pour chaque pixel appartenant audit ensemble, détermination d'une direction normale au gradient associé au pixel, la direction normale représentant la direction du contour ; - détection des pixels intersection respectivement entre les directions normales et l'ensemble de pixels adjacents ; et - association d'un vecteur de direction représentant la direction du contour à chaque pixel intersection. Ainsi, on associe un vecteur de direction représentant l'information de contour à chaque pixel appartenant à un contour, parmi les pixels adjacents. In practice, the weight associated with a neighboring pixel belonging to a contour is calculated according to the value of the norm of a distance vector formed between the pixel to be interpolated and the neighboring pixel and an angle formed by the distance vector. the direction vector of the contour. Therefore, when calculating the weight of a neighboring pixel belonging to an image boundary, in addition to taking into account the distance between the pixel to interpolate and the neighboring pixel (as in the case of neighboring pixels that do not belong not to the contour), one takes into account the alignment of the pixel to be interpolated with the direction of the image contour. In practice, the determination of the contour direction vector 25 comprises the following steps: calculation of the intensity gradient associated respectively with pixels belonging to a set of pixels situated around the missing block from pixels belonging to a matrix of pixels predetermined dimensions located around the missing block; Determining from the calculated gradients a set of pixels belonging to one of the pixels belonging to said set of pixels around the missing block; for each pixel belonging to said set, determining a direction normal to the gradient associated with the pixel, the normal direction representing the direction of the contour; detecting the pixels respectively intersection between the normal directions and the set of adjacent pixels; and associating a direction vector representing the direction of the contour with each intersection pixel. Thus, a direction vector representing the contour information is associated with each pixel belonging to one of the adjacent pixels.
Par exemple, la détermination de l'ensemble de pixels appartenant à un contour est réalisée au moyen d'une comparaison des normes desdits gradients calculés avec une valeur seuil de norme, un pixel appartenant audit ensemble de pixels lorsque la norme dudit gradient d'intensité associé audit pixel est supérieure à ladite valeur seuil de norme. For example, the determination of the set of pixels belonging to a contour is carried out by means of a comparison of the norms of said gradients calculated with a norm threshold value, a pixel belonging to said set of pixels when the norm of said intensity gradient associated with said pixel is greater than said standard threshold value.
Selon une autre caractéristique préférée, l'ensemble de pixels voisins correspond à l'ensemble des pixels adjacents au bloc manquant. Avantageusement, l'ensemble de pixels voisins est un sous-ensemble de l'ensemble de pixels adjacents au bloc manquant, variable en fonction de la position du pixel à interpoler dans le bloc manquant. According to another preferred characteristic, the set of neighboring pixels corresponds to all the pixels adjacent to the missing block. Advantageously, the set of neighboring pixels is a subset of the set of pixels adjacent to the missing block, which varies as a function of the position of the pixel to be interpolated in the missing block.
Ainsi, il est possible d'employer un sous-ensemble de pixels voisins ayant une influence supérieure pour la reconstruction du contour d'image lors de la mise en oeuvre de l'algorithme d'interpolation. La présente invention concerne selon un deuxième aspect un dispositif d'interpolation spatiale des pixels d'un bloc manquant dans une image, comportant des moyens de détermination de chaque pixel à interpoler du bloc adaptés à mettre en oeuvre un algorithme d'interpolation appliqué à un ensemble de pixels voisins appartenant à l'ensemble de pixels adjacents au bloc manquant, chaque pixel voisin étant pondéré dans l'algorithme d'interpolation par un poids associé. Thus, it is possible to use a subset of neighboring pixels having a greater influence for the reconstruction of the image contour when implementing the interpolation algorithm. According to a second aspect, the present invention relates to a device for spatially interpolating the pixels of a block that is missing in an image, comprising means for determining each pixel to be interpolated in the block, suitable for implementing an interpolation algorithm applied to a pixel. a set of neighboring pixels belonging to the set of pixels adjacent to the missing block, each neighboring pixel being weighted in the interpolation algorithm by an associated weight.
Selon l'invention, le dispositif d'interpolation spatiale comporte des moyens de détermination du poids associé à un pixel voisin, en fonction de la distance existant entre le pixel à interpoler du bloc et le pixel voisin, lorsque le pixel voisin n'appartient pas à un contour d'image, et en fonction de la distance et d'une information représentative de contour associée au pixel voisin, lorsque le pixel voisin appartient à un contour d'image. Ce dispositif présente des caractéristiques et avantages analogues à 5 ceux décrits précédemment en relation avec le procédé. En pratique, le dispositif d'interpolation spatiale comporte des moyens de détermination de pixels adjacents au bloc manquant appartenant à un contour d'image parmi l'ensemble de pixels adjacents au bloc manquant et des moyens de détermination d'une information représentative de contour 10 associée respectivement aux pixels adjacents déterminés. Avantageusement, les moyens de détermination de l'information représentative de contour comportent des moyens de détermination d'un vecteur de direction représentant la direction de contour. Selon une caractéristique préférée, le dispositif d'interpolation 15 spatiale comporte des moyens de calcul du poids associé à un pixel voisin appartenant à un contour en fonction de la valeur de la norme d'un vecteur distance formé entre le pixel à interpoler et le pixel voisin et d'un angle formé par le vecteur distance et le vecteur de direction du contour. En pratique, le dispositif d'interpolation spatiale comporte : 20 - des moyens de calcul du gradient de l'intensité associé à chaque pixel appartenant à un ensemble de pixels situé autour du bloc manquant à partir de pixels appartenant à une matrice de dimensions prédéterminées située autour du bloc manquant ; - des moyens de détermination à partir des gradients calculés d'un 25 ensemble de pixels appartenant à un contour, parmi les pixels appartenant audit ensemble de pixels situé autour du bloc manquant ; - des moyens de détermination, pour chaque pixel appartenant audit ensemble, d'une direction normale au gradient associé au pixel, la direction normale représentant la direction du contour ; 30 - des moyens de détection des pixels intersection respectivement entre les directions normales et l'ensemble de pixels adjacents au bloc manquant ; et - des moyens d'association d'un vecteur de direction représentant la direction du contour à chaque pixel intersection. Selon une autre caractéristique préférée, les moyens de détermination de l'ensemble appartenant à un contour comportent des moyens de comparaison des normes des gradients calculés avec une valeur seuil de norme, un pixel appartenant à l'ensemble de pixels lorsque la norme du gradient d'intensité associé au pixel est supérieure à la valeur seuil de norme. En pratique, le dispositif d'interpolation spatiale comporte des moyens de détermination de l'ensemble de pixels voisins, l'ensemble de pixels voisins correspondant à l'ensemble de pixels adjacents au bloc manquant. Avantageusement, le dispositif d'interpolation spatiale comporte des moyens de détermination de l'ensemble de pixels voisins, l'ensemble de pixels voisins étant un sous-ensemble de l'ensemble de pixels adjacents au bloc manquant, variable en fonction de la position du pixel à interpoler dans le bloc manquant. La présente invention concerne selon un troisième aspect, un moyen de stockage d'informations lisible par un ordinateur ou un microprocesseur conservant des instructions d'un programme informatique, permettant la mise en oeuvre d'un procédé d'interpolation spatiale conforme à l'invention. According to the invention, the spatial interpolation device comprises means for determining the weight associated with a neighboring pixel, as a function of the distance existing between the pixel to be interpolated from the block and the neighboring pixel, when the neighboring pixel does not belong to to an image contour, and depending on the distance and a contour representative information associated with the neighboring pixel, when the neighboring pixel belongs to an image contour. This device has features and advantages similar to those previously described in connection with the method. In practice, the spatial interpolation device comprises means for determining pixels adjacent to the missing block belonging to an image contour among the set of pixels adjacent to the missing block and means for determining a contour representative information. associated respectively with the determined adjacent pixels. Advantageously, the means for determining the contour representative information comprise means for determining a direction vector representing the contour direction. According to a preferred characteristic, the spatial interpolation device comprises means for calculating the weight associated with a neighboring pixel belonging to a contour as a function of the value of the norm of a distance vector formed between the pixel to be interpolated and the pixel. neighbor and an angle formed by the distance vector and the direction vector of the contour. In practice, the spatial interpolation device comprises: means for calculating the intensity gradient associated with each pixel belonging to a set of pixels situated around the missing block from pixels belonging to a matrix of predetermined dimensions situated around the missing block; means for determining from the calculated gradients of a set of pixels belonging to a contour, among the pixels belonging to said set of pixels situated around the missing block; means for determining, for each pixel belonging to said set, a direction normal to the gradient associated with the pixel, the normal direction representing the direction of the contour; Means for detecting the pixels respectively intersecting the normal directions and the set of pixels adjacent to the missing block; and means for associating a direction vector representing the direction of the contour with each intersection pixel. According to another preferred characteristic, the means for determining the set belonging to a contour comprise means for comparing the standards of the gradients calculated with a standard threshold value, a pixel belonging to the set of pixels when the standard of the gradient of intensity associated with the pixel is greater than the standard threshold value. In practice, the spatial interpolation device comprises means for determining the set of neighboring pixels, the set of neighboring pixels corresponding to the set of pixels adjacent to the missing block. Advantageously, the spatial interpolation device comprises means for determining the set of neighboring pixels, the set of neighboring pixels being a subset of the set of pixels adjacent to the missing block, variable depending on the position of the pixel to interpolate in the missing block. According to a third aspect, the present invention relates to computer-readable information storage means or to a microprocessor holding instructions of a computer program, enabling the implementation of a spatial interpolation method according to the invention. .
Avantageusement, le moyen de stockage d'informations conforme à l'invention est partiellement ou totalement amovible. La présente invention concerne selon un quatrième aspect, un produit programme d'ordinateur pouvant être chargé dans un appareil programmable, comportant de séquences d'instructions pour mettre en oeuvre un procédé d'interpolation spatiale conforme à l'invention, lorsque ce programme est chargé et exécuté par l'appareil programmable. D'autres particularités et avantages de l'invention apparaîtront encore dans la description ci-après. Aux dessins annexés, donnés à titre d'exemples non limitatifs : - la figure 1 est une zone d'image comprenant un bloc manquant; - la figure 2 représente schématiquement un mode particulier de réalisation d'un appareil susceptible de mettre en oeuvre la présente invention ; - la figure 3 est un algorithme représentant le procédé d'interpolation conforme à l'invention ; - la figure 4 est un algorithme représentant l'étape de détermination des pixels adjacents au bloc manquant appartenant à un contour ; - la figure 5 est une zone d'image illustrant des étapes de l'étape de détermination des pixels appartenant à un contour d'image ; - la figure 6 est une zone d'image similaire à la figure 5, représentant le calcul des pixels appartenant à un contour d'image parmi les pixels adjacents et d'une information représentative de contour ; et - la figure 7 est une zone d'image similaire à la figure 5, représentant le calcul des poids des pixels voisins. La figure 1 représente une zone d'une image 1 comprenant un bloc manquant 2. La zone d'image est composée d'une zone uniforme 3 ou des données basses fréquences et d'un contour d'image 4 ou des données hautes fréquences. Les pixels p(i, j) appartenant au bloc manquant 2 sont déterminés par un algorithme d'interpolation appliqué à un ensemble de pixels voisins B appartenant à un ensemble de pixels adjacents A au bloc manquant 2, comme il sera décrit ci-dessous. Advantageously, the information storage means according to the invention is partially or completely removable. According to a fourth aspect, the present invention relates to a computer program product which can be loaded into a programmable apparatus, comprising sequences of instructions for implementing a spatial interpolation method according to the invention, when this program is loaded. and executed by the programmable device. Other features and advantages of the invention will become apparent in the description below. In the accompanying drawings, given by way of nonlimiting examples: FIG. 1 is an image zone comprising a missing block; FIG. 2 diagrammatically represents a particular embodiment of an apparatus capable of implementing the present invention; FIG. 3 is an algorithm representing the interpolation method according to the invention; FIG. 4 is an algorithm representing the step of determining the pixels adjacent to the missing block belonging to a contour; FIG. 5 is an image zone illustrating steps of the step of determining the pixels belonging to an image contour; FIG. 6 is an image area similar to FIG. 5, showing the calculation of the pixels belonging to an image contour among the adjacent pixels and of a contour representative information; and FIG. 7 is an image zone similar to FIG. 5, representing the calculation of the weights of the neighboring pixels. Fig. 1 shows an area of an image 1 comprising a missing block 2. The image area is composed of a uniform area 3 or low frequency data and an image outline 4 or high frequency data. The pixels p (i, j) belonging to the missing block 2 are determined by an interpolation algorithm applied to a set of neighboring pixels B belonging to a set of pixels adjacent to the missing block 2, as will be described below.
On va décrire tout d'abord en référence à la figure 2, un dispositif mettant en oeuvre l'invention. Ce dispositif est par exemple un micro-ordinateur 210 connecté à différents périphériques, par exemple une caméra numérique 207 (ou un scanner, ou tout moyen d'acquisition ou de stockage d'image) reliée à une carte graphique et fournissant des informations à traiter par la mise en oeuvre de la présente invention. Le dispositif 210 comporte une interface de communication 212 reliée à un réseau 213 apte à transmettre des données numériques à traiter ou inversement à transmettre des données traitées par le dispositif. Le dispositif 210 comporte également un moyen de stockage 208 tel que par exemple un disque dur. Il comporte aussi un lecteur 209 de disque 205. Ce disque 205 peut être une disquette, un CD-ROM, ou un DVD-ROM, par exemple. Le disque 205 comme le disque 208 peut contenir des données traitées selon l'invention ainsi que le ou les programmes mettant en oeuvre l'invention qui, une fois lu par le dispositif 210, sera stocké dans le disque dur 208. Selon une variante, le ou les programmes permettant au dispositif de mettre en oeuvre l'invention, pourront être stocké en mémoire morte 202 (appelée ROM sur le dessin). En seconde variante, le ou les programmes pourront être reçus pour être stockés de façon identique à celle décrite précédemment par l'intermédiaire du réseau de communication 213. Ce même dispositif possède un écran 204 permettant de visualiser les données à traiter ou de servir d'interface avec l'utilisateur qui peut ainsi paramétrer certains modes de traitement, à l'aide du clavier 214 ou de tout autre moyen (souris par exemple). L'unité centrale 200 (appelée CPU sur le dessin) exécute les instructions relatives à la mise en oeuvre de l'invention, instructions stockées dans la mémoire morte 202 ou dans les autres éléments de stockage. Lors de la mise sous tension, les programmes de traitement stockés dans une mémoire non volatile, par exemple la ROM 202, sont transférés dans la mémoire vive RAM 203 qui contiendra alors le code exécutable de l'invention ainsi que des registres pour mémoriser les variables nécessaires à la mise en oeuvre de l'invention. We will first describe with reference to Figure 2, a device embodying the invention. This device is for example a microcomputer 210 connected to different peripherals, for example a digital camera 207 (or a scanner, or any means of acquisition or image storage) connected to a graphics card and providing information to be processed. by the practice of the present invention. The device 210 comprises a communication interface 212 connected to a network 213 able to transmit digital data to be processed or conversely to transmit data processed by the device. The device 210 also comprises a storage means 208 such as for example a hard disk. It also includes a disk drive 209 205. This disk 205 may be a diskette, a CD-ROM, or a DVD-ROM, for example. The disk 205 as the disk 208 may contain processed data according to the invention as well as the program or programs implementing the invention which, once read by the device 210, will be stored in the hard disk 208. According to a variant, the program or programs enabling the device to implement the invention, can be stored in ROM 202 (called ROM in the drawing). In the second variant, the program or programs may be received to be stored identically to that described above via the communication network 213. This same device has a screen 204 for viewing the data to be processed or to serve as interface with the user who can thus set certain modes of treatment, using the keyboard 214 or any other means (mouse for example). The central processing unit 200 (called the CPU in the drawing) executes the instructions relating to the implementation of the invention, instructions stored in the read-only memory 202 or in the other storage elements. When powering up, the processing programs stored in a non-volatile memory, for example the ROM 202, are transferred into RAM RAM 203 which will then contain the executable code of the invention as well as registers for storing the variables. necessary for the implementation of the invention.
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, éventuellement totalement ou partiellement amovible, mémorise un programme mettant en oeuvre le procédé d'interpolation spatiale selon l'invention. Le bus de communication 201 permet la communication entre les différents éléments inclus dans le micro-ordinateur 210 ou reliés à lui. La représentation du bus 201 n'est pas limitative et notamment l'unité centrale 200 est susceptible de communiquer des instructions à tout élément du micro-ordinateur 210 directement ou par l'intermédiaire d'un autre élément du micro-ordinateur 210. More generally, an information storage means, readable by a computer or by a microprocessor, integrated or not integrated in the device, possibly totally or partially removable, stores a program implementing the spatial interpolation method according to the invention. . The communication bus 201 allows communication between the various elements included in the microcomputer 210 or connected to it. The representation of the bus 201 is not limiting and in particular the central unit 200 is able to communicate instructions to any element of the microcomputer 210 directly or through another element of the microcomputer 210.
On va décrire en référence à la figure 3, le procédé d'interpolation spatiale conforme à l'invention. With reference to FIG. 3, the spatial interpolation method according to the invention will be described.
Ce procédé d'interpolation commence tout d'abord par une étape de détermination El des pixels appartenant à un contour 4 parmi les pixels adjacents A au bloc manquant 2. Cette étape de détermination El sera décrite plus loin dans ce 5 document. Chaque pixel à interpoler p(i, j) du bloc manquant 2 est déterminé par un algorithme d'interpolation appliqué à un ensemble de pixels voisins B. Cet ensemble de pixels voisins B est un sous-ensemble de l'ensemble de pixels adjacents A au bloc manquant 2. 10 L'ensemble de pixels adjacents A est défini par les pixels situés à la périphérie du bloc manquant 2 qui sont adjacents au bloc manquant 2. L'ensemble de pixels voisins B peut correspondre à l'ensemble de pixels adjacents A au bloc manquant 2 (comme représenté sur la figure 1), ou bien à un sous-ensemble de l'ensemble des pixels adjacents A au bloc 15 manquant 2 (comme représenté sur la figure 7), comme il sera décrit ci-dessous. Chaque pixel voisin p(x, y) appartenant à un ensemble de pixels voisins B est pondéré dans l'algorithme d'interpolation par un poids associé. Ainsi, pour chaque pixel à interpoler p(i, j) du bloc manquant 2, le 20 poids associé à chaque pixel voisin p(x, y) est calculé dans une étape de calcul E2 en fonction de leur appartenance à un contour d'image 4 ou à une zone uniforme 3. Par conséquent, pour chaque pixel voisin p(x, y), on doit calculer son poids par des méthodes différentes selon qu'il appartient à un contour d'image 25 4 ou à une zone uniforme 3. Enfin, une fois que les poids d'un ensemble de pixels voisins B sont déterminés, l'algorithme d'interpolation est appliqué dans une étape d'interpolation E3 afin de déterminer le pixel p(i, j). On va décrire en référence aux figures 4, 5 et 6 l'étape de 30 détermination El des pixels appartenant à un contour d'image 4 parmi l'ensemble de pixels adjacents A au bloc manquant 2 et de l'information représentative de contour. This interpolation method first begins with a step of determining E1 pixels belonging to a contour 4 among the pixels adjacent to the missing block 2. This determination step E1 will be described later in this document. Each pixel to interpolate p (i, j) of the missing block 2 is determined by an interpolation algorithm applied to a set of neighboring pixels B. This set of neighboring pixels B is a subset of the set of adjacent pixels A. to the missing block 2. The set of adjacent pixels A is defined by the pixels at the periphery of the missing block 2 that are adjacent to the missing block 2. The set of neighboring pixels B may correspond to the set of adjacent pixels A to missing block 2 (as shown in Fig. 1), or to a subset of all adjacent pixels A to missing block 2 (as shown in Fig. 7), as will be described below . Each neighbor pixel p (x, y) belonging to a set of neighboring pixels B is weighted in the interpolation algorithm by an associated weight. Thus, for each pixel to be interpolated p (i, j) of the missing block 2, the weight associated with each neighboring pixel p (x, y) is calculated in a calculation step E2 as a function of their belonging to a contour of Thus, for each neighboring pixel p (x, y), its weight must be calculated by different methods depending on whether it belongs to an image contour 4 or to a uniform area. 3. Finally, once the weights of a set of neighboring pixels B are determined, the interpolation algorithm is applied in an interpolation step E3 to determine the pixel p (i, j). The determination step E1 of the pixels belonging to an image contour 4 among the set of pixels adjacent to the missing block 2 and the contour representative information will be described with reference to FIGS. 4, 5 and 6.
La détermination des pixels appartenant à un contour est nécessaire dès lors que le calcul du poids est différent selon que le pixel voisin appartient ou n'appartient pas à un contour d'image. On va ainsi décrire les étapes pour déterminer les pixels adjacents appartenant à un contour 4, et par conséquent les pixels voisins p(x, y) appartenant à un contour 4. Afin de connaître les pixels adjacents appartenant à un contour 4, un gradient d'intensité GKl est calculé sur chaque pixel pm(x, y) appartenant à un ensemble de pixels P situé autour du bloc manquant 2. The determination of the pixels belonging to a contour is necessary since the calculation of the weight is different according to whether the neighboring pixel belongs to or does not belong to an image contour. We will thus describe the steps for determining the adjacent pixels belonging to a contour 4, and consequently the neighboring pixels p (x, y) belonging to a contour 4. In order to know the adjacent pixels belonging to a contour 4, a gradient of intensity GK1 is calculated on each pixel pm (x, y) belonging to a set of pixels P situated around the missing block 2.
Pour chaque pixel pm(x, y) appartenant à l'ensemble de pixels P situé autour du bloc manquant 2, une matrice de pixels 100 de dimensions prédéterminées située à la périphérie du bloc manquant 2 est sélectionnée dans une étape de sélection E10. Cette matrice 100 est d'une taille variable, par exemple 5x5 pixels. For each pixel pm (x, y) belonging to the set of pixels P around the missing block 2, a matrix of pixels 100 of predetermined dimensions located at the periphery of the missing block 2 is selected in a selection step E10. This matrix 100 is of variable size, for example 5 × 5 pixels.
Cette matrice est située de façon à ce que le pixel pm(x, y) sur lequel on calcule le gradient d'intensité GKl soit situé dans la position centrale de la matrice 100. Ainsi, la matrice 100 est glissante autour du bloc manquant 2 afin de calculer les pixels adjacents appartenant à un contour, sur toute la périphérie 20 du bloc manquant 2. Les étapes que l'on va décrire ci-dessous sont mises en oeuvre pour chaque chaque pixel pm(x, y) appartenant à l'ensemble de pixels P situé autour du bloc manquant 2 (et par conséquent pour chaque position de la matrice 100). 25 Afin de connaître la direction normale au contour 4, ainsi que son module, le gradient d'intensité GKl est calculé dans une étape de calcul El 1 à partir de l'ensemble de pixels appartenant à cette matrice 100. Pour le calcul du gradient d'intensité GKl , deux opérateurs ou masques de Sobel Fx, Fy sont appliqués sur l'ensemble de pixels de la matrice 30 100. This matrix is located so that the pixel pm (x, y) on which the intensity gradient GK1 is calculated is located in the central position of the matrix 100. Thus, the matrix 100 is slippery around the missing block 2 in order to calculate the adjacent pixels belonging to a contour, over the entire periphery of the missing block 2. The steps which will be described below are implemented for each each pixel pm (x, y) belonging to the set of pixels P located around the missing block 2 (and therefore for each position of the matrix 100). In order to know the normal direction of the contour 4, as well as its modulus, the intensity gradient GK1 is calculated in a calculation step El 1 from the set of pixels belonging to this matrix 100. For the calculation of the gradient of intensity GK1, two operators or masks of Sobel Fx, Fy are applied to the set of pixels of the matrix 100.
Les opérateurs de Sobel déterminent la taille de la matrice de pixels 100, de sorte que la taille de la matrice 100 de pixels soit égale à la taille des opérateurs de Sobel Fx, Fy. The Sobel operators determine the size of the pixel array 100, so that the size of the matrix 100 of pixels is equal to the size of the operators of Sobel Fx, Fy.
L'ensemble de pixels P situé autour du bloc manquant 2 sur lequel l'on calcule le gradient d'intensité GKl correspond à l'ensemble de pixels situés dans un lieu géométrique L défini par les positions des pixels, tel que pour chaque pixel pm(k, I) du lieu géométrique L, la distance D représentée par le nombre de pixels minimum séparant un pixel pm(k, I) du lieu géométrique L du bloc manquant 2, soit égale à la moitié entière de la largeur de l'opérateur de Sobel Fx, Fy. The set of pixels P located around the missing block 2 on which the intensity gradient GK1 is calculated corresponds to the set of pixels situated in a geometrical locus L defined by the positions of the pixels, such as for each pixel pm (k, I) of the locus L, the distance D represented by the minimum number of pixels separating a pixel pm (k, I) from the locus L of the missing block 2, is equal to the integer half of the width of the operator of Sobel Fx, Fy.
Ainsi, si l'opérateur ou masque de Sobel Fx, Fy (ainsi que la matrice 100) a une dimension de 5x5, la dimension de la distance D est de 2. Thus, if the operator or mask of Sobel Fx, Fy (as well as the matrix 100) has a dimension of 5x5, the dimension of the distance D is 2.
On notera que les masques de Sobel (ainsi que la matrice 100) présentent des dimensions égales en lignes et en colonnes. It should be noted that the Sobel masks (as well as the matrix 100) have equal dimensions in rows and columns.
Bien entendu, le calcul du gradient d'intensité GKl peut être réalisé au moyen d'autres masques. Les dimensions de ces masques peuvent présenter d'autres dimensions, les dimensions pouvant être différentes en lignes et en colonnes. Le gradient GKl est défini par deux composantes, une première composante GxKI selon la direction horizontale X et une seconde composante GyK, selon la direction verticale Y. Of course, the calculation of the intensity gradient GK1 can be performed by means of other masks. The dimensions of these masks may have other dimensions, the dimensions may be different in rows and columns. The gradient GK1 is defined by two components, a first component GxKI in the horizontal direction X and a second component GyK in the vertical direction Y.
Le premier opérateur de Sobel Fx est utilisé lors du calcul de la première composante GxKI du gradient GKl , et le second opérateur de Sobel Fy est utilisé lors du calcul de la seconde composante GyK, du gradient GKl . Le second opérateur Fy est la matrice transposée du premier opérateur Fx. The first Sobel operator Fx is used when calculating the first component GxKI of the gradient GK1, and the second operator Sobel Fy is used when calculating the second component GyK, the gradient GK1. The second operator Fy is the transposed matrix of the first operator Fx.
Les deux composantes définissant le gradient GxK,, GyK, sont calculées par les formules suivantes : 4 4 Gx,~ =ù•LLFx(u,v).P(kù2,1ù2) 96 u=0 v=0 4 4 Gy,~ _ù LLFy(u,v).P(kù2,1ù2). 96 u=0 v=0 La valeur 96 correspond à un facteur de normalisation correspondant à la somme des valeurs absolues des coefficients de l'opérateur du Sobel Fx, Fy. Bien entendu, le facteur 1/96 peut présenter d'autres valeurs. The two components defining the gradient GxK ,, GyK, are calculated by the following formulas: 4 4 Gx, ~ = ù • LLFx (u, v) .P (ku2,1ù2) 96 u = 0 v = 0 4 4 Gy, LLFy (u, v) .P (k2, 2, 2). 96 u = 0 v = 0 The value 96 corresponds to a normalization factor corresponding to the sum of the absolute values of the coefficients of the Sobel operator Fx, Fy. Of course, the factor 1/96 may have other values.
La norme de chaque gradient GKl est calculée dans une étape de calcul E12 et comparée lors d'un test E13 à une valeur seuil de norme Gth. Si la norme du gradient GKl est supérieure à la valeur seuil de norme Gth, le pixel pm(k, I) appartient à un sous-ensemble Pc correspondant aux pixels appartenant à un contour d'image 4, et est ainsi mémorisé dans une étape de mémorisation El 31. Si la norme du gradient GKl est inférieure à la valeur seuil de norme Gth, le pixel pm(k, I) appartient à un second sous-ensemble Pu, correspondant aux pixels appartenant à une zone uniforme 3, et est ainsi mémorisé dans une étape de mémorisation E132. The norm of each gradient GK1 is calculated in a calculation step E12 and compared during an E13 test to a threshold value of Gth standard. If the norm of the gradient GK1 is greater than the threshold value of norm Gth, the pixel pm (k, I) belongs to a subset Pc corresponding to the pixels belonging to an image contour 4, and is thus stored in a step If the gradient norm GK1 is lower than the threshold value of Gth norm, the pixel pm (k, I) belongs to a second subset Pu, corresponding to the pixels belonging to a uniform zone 3, and is thus stored in a storage step E132.
La valeur seuil de norme Gth est une valeur prédéterminée. Dans cet exemple, la valeur seuil de norme Gth est de 2. Pour chaque pixel appartenant au sous-ensemble Pc, un vecteur orthogonal GKIT au vecteur gradient GKl est calculé dans une étape de calcul E14. Ainsi, la direction normale au gradient GKI est déterminée. Cette direction normale représente la direction du contour d'image 4. Les pixels adjacents appartenant à un contour 4 sont déterminés dans une étape de détermination E15 par l'intersection de la prolongation du contour 4 selon cette direction normale et l'ensemble de pixels adjacents A au bloc manquant 2. The threshold value of standard Gth is a predetermined value. In this example, the threshold value of standard Gth is 2. For each pixel belonging to the subset Pc, an orthogonal vector GKIT to the gradient vector GK1 is calculated in a calculation step E14. Thus, the normal direction at the GKI gradient is determined. This normal direction represents the direction of the image contour 4. The adjacent pixels belonging to a contour 4 are determined in a determination step E15 by the intersection of the extension of the contour 4 in this normal direction and the set of adjacent pixels. A to the missing block 2.
Enfin, un vecteur de direction GKIT représentant la direction du contour est associé dans une étape d'association E16 à chaque pixel appartenant à un contour 4. Si un même pixel adjacent appartenant à un contour 4 est déterminé par l'intersection des prolongations de plusieurs contours 4, le vecteur de direction GKIT associé au pixel appartenant à un contour 4 est celui correspondant au vecteur gradient GKI de norme supérieure. Une fois que l'on connaît le sous-ensemble de pixels appartenant à un contour d'image Ac et le sous-ensemble de pixels appartenant à une zone uniforme Au, ainsi que l'information représentative de contour associée aux pixels p(x, y) du sous-ensemble Ac, les poids associés sont respectivement calculés à l'étape E2. On va décrire le calcul du poids E2 des pixels de l'ensemble de pixels, en référence à la figure 7. Finally, a direction vector GKIT representing the direction of the contour is associated in an associating step E16 with each pixel belonging to a contour 4. If the same adjacent pixel belonging to a contour 4 is determined by the intersection of the extensions of several contours 4, the direction vector GKIT associated with the pixel belonging to a contour 4 is that corresponding to the gradient vector GKI of higher standard. Once we know the subset of pixels belonging to an image contour Ac and the subset of pixels belonging to a uniform zone Au, as well as the representative contour information associated with the pixels p (x, y) of the subset Ac, the associated weights are respectively calculated in step E2. The calculation of the weight E2 of the pixels of the set of pixels will be described with reference to FIG.
Selon un mode de réalisation, l'ensemble de pixels voisins est un sous-ensemble B' de l'ensemble de pixels adjacents A au bloc manquant 2, variable en fonction de la position (i, j) du pixel à interpoler p(i, j) dans le bloc manquant 2. Ainsi, les pixels appartenant au sous-ensemble B' sont les pixels adjacents les plus proches du pixel à interpoler p(i, j) parmi l'ensemble de pixels adjacents A, et ont ainsi une influence supérieure que le reste de pixels adjacents. Ainsi par exemple, si l'on veut interpoler le pixel p(i, j), on sélectionne parmi l'ensemble des pixels adjacents A au bloc manquant 2, un sous- ensemble B' contenant les 40 pixels les plus proches du pixel à interpoler p(i, j). Chacun de ces 40 pixels sera pondéré par un poids. Les pixels appartenant à l'ensemble de pixels adjacents au bloc manquant 2 non sélectionnés n'ont donc aucune influence sur la valeur reconstruite du pixel p(i,j). Le nombre de pixels sélectionnés parmi l'ensemble de pixels 25 adjacents A au bloc manquant 2 peut varier en fonction des temps de calcul nécessaire. Si les ressources du dispositif mettant en oeuvre l'invention sont importantes, le nombre de pixels du sous-ensemble B' peut être élevé (par exemple 40). Si les ressources du dispositif sont plus faibles, le nombre de 30 pixels du sous-ensemble B' est moins élevé (par exemple, de l'ordre de 10). Ainsi, par exemple, si le dispositif a des ressources importantes, une stratégie est donc de sélectionner les 40 pixels les plus proches du pixel à interpoler p(i, j), à partir de l'ensemble de pixels adjacents A du bloc manquant 2. Une seconde stratégie peut être de sélectionner 20 pixels les plus proches parmi l'ensemble de pixels adjacents A au bloc manquant 2 d'un côté du bloc manquant 2 et les 20 autres sur le côté opposé du bloc manquant 2. Par exemple, sur la figure 7, la zone perdue étant plus large que haute (ce qui arrive très fréquemment dû au fait de la structure horizontale des zones perdues dans des schémas de compression/transmission de vidéo), 20 pixels pourront être sélectionné sur le bord supérieur et 20 autres pixels sur le bord inférieur. Selon un autre mode de réalisation, pour chaque pixel à interpoler p(i, j) du bloc manquant 2, l'ensemble des pixels voisins B est la totalité des pixels adjacents A au bloc manquant 2. Par conséquent, lorsque l'on emploie les pixels voisins appartenant 15 au sous-ensemble B' dans la mise en oeuvre de l'algorithme d'interpolation, la précision de l'algorithme d'interpolation est supérieure. Ici, on sélectionne un sous-ensemble de pixels voisins B' parmi les pixels de l'ensemble de pixels adjacents A au bloc manquant 2, d'une largeur prédéterminée. Les pixels voisins p(x, y) peuvent ainsi appartenir à un sous- 20 ensemble de pixels appartenant à un contour Ac ou bien, à un sous-ensemble de pixels appartenant à une zone uniforme Au. Ainsi, le calcul du poids d'un pixel de l'ensemble de pixels B' est différent en fonction de son appartenance au sous-ensemble de pixels appartenant au contour Ac, ou au sous-ensemble de pixels appartenant à une 25 zone uniforme Au. Lorsque le pixel voisin p(x, y) de l'ensemble de pixels voisins B' appartient au sous-ensemble de pixels appartenant à une zone uniforme Au, le poids associé est déterminé en fonction de la distance d;i(x,y) existant entre le pixel à interpoler p(i, j) du bloc manquant et le pixel voisin p(x, y). 30 Ainsi, le poids associé au pixel voisin p(x, y) est calculé comme suit : w (x,Y) = f(dii (x, Y)) = 1 dii(x,Y)a Le dénominateur représente la distance séparant le pixel à interpoler p(i, j) du pixel voisin p(x, y). Le coefficient a a une valeur prédéterminée et calculée expérimentalement. Ici, la valeur du coefficient a est 3. Ce coefficient permet d'ajuster l'atténuation due à la distance entre le pixel à interpoler p(i, j) et le pixel voisin candidat p(x, y). Ici, le coefficient a est prédéterminé de façon à ce que le facteur distance d;i(x, y) soit très discriminant. Par exemple, si l'on calcule le poids associé à deux pixels voisins p(xl, yl) et p(x2, y2) tels que la distance entre le pixel à interpoler p(i, j) et le pixel voisin p(xl, yl) vaut 1 et la distance entre le pixel à interpoler p(i, j) et le pixel voisin p(x2, y2) vaut 2. Si a vaut 1, le poids du pixel p(xl, yl) sera de 1 et le poids du pixel p(x2, y2) sera de '/2. Si, a vaut 3, le poids du pixel p(xl, yl) sera toujours de 1, alors que le poids du pixel p(x2,y2) sera de 1/8. Lorsque le pixel voisin p(x, y) de l'ensemble de pixels voisins appartient au sous-ensemble de pixels appartenant à un contour Ac, le poids associé est déterminé en fonction de la distance d;i(x, y) existant entre le pixel à interpoler p(i, j) du bloc manquant 2 et le pixel voisin p(x, y) et de l'information représentative de contour associé au pixel voisin p(x, y) . Ainsi, le poids w;i(x, y) est calculé en fonction de la valeur de la norme d'un vecteur distance Id;i(x, y)I formé entre le pixel à interpoler p(i, j) et le pixel voisin p(x, y) et d'un angle 8 (x, y) formé par le vecteur distance dlii (x, y) et le vecteur de direction GKIT de contour. Le poids wii(x,y) est calculé selon la formule suivante : WI; (x, y) = f (8 (x, y), dl; (x, y)) = 1 cos(61; (x, y)) d..(x,Y)a , Le terme cos(6~~ (x, y)) est ainsi calculé : 1 cos( 9 (x, y)) = (dii (x, y), G=~ d ~, (x, y) Par conséquent, avec ce calcul, on tient compte de l'alignement du pixel à interpoler p(i, j) avec le contour d'image 4. Ainsi, lorsque l'angle 6;i(x, y) formé par le vecteur distance dlii (x, y) et le vecteur de direction GKIT de contour est proche de 0°, c'est-à-dire que le pixel à interpoler p(i, j) se situe dans l'alignement du contour, la valeur du poids du pixel voisin p(x, y) est élevée, et supérieure au poids des pixels n'appartenant pas à un contour d'image 4. De cette manière, le contour est prolongé à l'intérieur du bloc manquant 2. Au contraire, lorsque l'angle 6;i(x, y) est proche de 90°, c'est-à- dire que le pixel à interpoler p(i, j) n'est pas situé dans l'alignement d'un contour, le poids est pratiquement fonction de la distance d;i(x, y) existant entre le pixel à interpoler p(i, j) du bloc manquant 4. Par conséquent, le poids du pixel voisin p(x, y) est moins significatif que dans le cas précédent. Comme dans le cas du calcul du poids précédent, le coefficient a a une valeur prédéterminée. Ici, la valeur du coefficient a est par exemple égale à 3. Le coefficient a également une valeur prédéterminée et est déterminée expérimentalement. Ce coefficient permet d'ajuster l'atténuation des hautes fréquences dans l'alignement du contour 4. Ici, la valeur du coefficient est 1,0005 à titre d'exemple. Cette valeur conserve de manière optimale le contour. Ainsi, plus la valeur de est élevée, plus le calcul du poids d'un pixel appartenant au sous-ensemble de pixels appartenant à un contour Ac s'approche du calcul du poids d'un pixel appartenant au sous-ensemble de pixels appartenant à une zone uniforme Au. According to one embodiment, the set of neighboring pixels is a subset B 'of the set of adjacent pixels A to the missing block 2, variable as a function of the position (i, j) of the pixel to be interpolated p (i , j) in the missing block 2. Thus, the pixels belonging to the subset B 'are the adjacent pixels closest to the pixel to be interpolated p (i, j) from the set of adjacent pixels A, and thus have a higher influence than the rest of adjacent pixels. For example, if we want to interpolate the pixel p (i, j), we select from the set of adjacent pixels A to the missing block 2, a subset B 'containing the 40 pixels closest to the pixel to interpolate p (i, j). Each of these 40 pixels will be weighted by a weight. The pixels belonging to the set of pixels adjacent to the missing block 2 that are not selected therefore have no influence on the reconstructed value of the pixel p (i, j). The number of pixels selected from the set of adjacent pixels A to the missing block 2 may vary depending on the computation time required. If the resources of the device embodying the invention are important, the number of pixels of the subset B 'can be high (for example 40). If the resources of the device are lower, the number of pixels 30 of the subset B 'is lower (for example, of the order of 10). Thus, for example, if the device has significant resources, a strategy is therefore to select the 40 pixels closest to the pixel to be interpolated p (i, j), from the set of adjacent pixels A of the missing block 2 A second strategy may be to select 20 nearest pixels from the set of pixels adjacent to the missing block 2 on one side of the missing block 2 and the other 20 on the opposite side of the missing block 2. For example, on Figure 7, the lost area being wider than it is high (which happens very frequently due to the horizontal structure of the lost areas in video compression / transmission schemes), 20 pixels can be selected on the upper edge and 20 other pixels on the bottom edge. According to another embodiment, for each pixel to interpolate p (i, j) of the missing block 2, the set of neighboring pixels B is the totality of the pixels adjacent to the missing block 2. Therefore, when using the neighboring pixels belonging to the subset B 'in the implementation of the interpolation algorithm, the accuracy of the interpolation algorithm is greater. Here, a subset of neighboring pixels B 'is selected from among the pixels of the set of adjacent pixels A to the missing block 2, of a predetermined width. The neighboring pixels p (x, y) may thus belong to a subset of pixels belonging to an edge Ac or to a subset of pixels belonging to a uniform zone Au. Thus, the calculation of the weight of one pixel of the set of pixels B 'is different depending on whether it belongs to the subset of pixels belonging to the contour Ac, or to the subset of pixels belonging to a uniform zone Au. . When the neighboring pixel p (x, y) of the set of neighboring pixels B 'belongs to the subset of pixels belonging to a uniform area Au, the associated weight is determined as a function of the distance d i (x, y ) between the interpolating pixel p (i, j) of the missing block and the neighboring pixel p (x, y). Thus, the weight associated with the neighboring pixel p (x, y) is calculated as follows: w (x, Y) = f (dii (x, Y)) = 1 dii (x, Y) a The denominator represents the distance separating the pixel to be interpolated p (i, j) from the neighboring pixel p (x, y). The coefficient a has a predetermined value and calculated experimentally. Here, the value of the coefficient a is 3. This coefficient makes it possible to adjust the attenuation due to the distance between the interpolated pixel p (i, j) and the neighboring candidate pixel p (x, y). Here, the coefficient a is predetermined so that the distance factor d i (x, y) is very discriminating. For example, if we calculate the weight associated with two neighboring pixels p (xl, yl) and p (x2, y2) such as the distance between the pixel to interpolate p (i, j) and the neighboring pixel p (xl , yl) is equal to 1 and the distance between the pixel to be interpolated p (i, j) and the neighboring pixel p (x2, y2) is 2. If a is equal to 1, the weight of the pixel p (xl, yl) will be 1 and the pixel weight p (x2, y2) will be '/ 2. If, a is 3, the weight of the pixel p (xl, yl) will always be 1, while the weight of the pixel p (x2, y2) will be 1/8. When the neighboring pixel p (x, y) of the set of neighboring pixels belongs to the subset of pixels belonging to an edge Ac, the associated weight is determined as a function of the distance d; i (x, y) existing between the pixel to be interpolated p (i, j) of the missing block 2 and the neighboring pixel p (x, y) and of the contour representative information associated with the neighboring pixel p (x, y). Thus, the weight w; i (x, y) is computed as a function of the value of the norm of a distance vector Id; i (x, y) I formed between the pixel to be interpolated p (i, j) and the neighbor pixel p (x, y) and an angle 8 (x, y) formed by the distance vector dlii (x, y) and the contour vector GKIT. The weight wii (x, y) is calculated according to the following formula: WI; (x, y) = f (8 (x, y), d1; (x, y)) = 1 cos (61; (x, y)) d. (x, Y) a, The term cos (6 ~~ (x, y)) is thus calculated: 1 cos (9 (x, y)) = (dii (x, y), G = ~ d ~, (x, y) Therefore, with this calculation, we takes into account the alignment of the pixel to be interpolated p (i, j) with the image contour 4. Thus, when the angle θ i (x, y) formed by the distance vector dlii (x, y) and the direction vector GKIT of contour is close to 0 °, that is to say that the pixel to be interpolated p (i, j) is in the alignment of the contour, the value of the weight of the neighboring pixel p (x , y) is high, and greater than the weight of the pixels not belonging to an image contour 4. In this way, the contour is extended inside the missing block 2. On the contrary, when the angle 6; i (x, y) is close to 90 °, ie the pixel to be interpolated p (i, j) is not in alignment with a contour, the weight is practically a function of the distance d i (x, y) existing between the interpolated pixel p (i, j) of the man block As a result, the weight of the neighboring pixel p (x, y) is less significant than in the previous case. As in the case of calculating the previous weight, the coefficient a has a predetermined value. Here, the value of the coefficient a is for example equal to 3. The coefficient also has a predetermined value and is determined experimentally. This coefficient makes it possible to adjust the attenuation of the high frequencies in the alignment of the contour 4. Here, the value of the coefficient is 1.0005 by way of example. This value optimally retains the outline. Thus, the higher the value of, the more the calculation of the weight of a pixel belonging to the subset of pixels belonging to an edge Ac approximates the calculation of the weight of a pixel belonging to the subset of pixels belonging to a uniform zone Au.
Par exemple, si tend vers l'infini alors Si tend vers 1, plus les pixels appartenant au sous-ensemble de pixels appartenant à un contour Ac ont un poids (et par conséquent une influence) élevé par rapport aux pixels appartenant au sous-ensemble de pixels appartenant à une zone uniforme Au. For example, if tends to infinity then Si tends to 1, the more pixels belonging to the subset of pixels belonging to an outline Ac have a weight (and consequently a high influence) compared to the pixels belonging to the subset pixels belonging to a uniform area Au.
Une fois les poids des pixels p(x, y) de l'ensemble de pixels voisins B' calculés, l'algorithme d'interpolation spatiale est appliqué dans une étape d'interpolation E3, afin de déterminer le pixel à interpoler. Once the weights of the pixels p (x, y) of the set of neighboring pixels B 'have been calculated, the spatial interpolation algorithm is applied in an interpolation step E3, in order to determine the pixel to be interpolated.
Le pixel à interpoler est calculé de la façon suivante : w (x, y) . p(x, y) p(i, J) = (x,yB, The pixel to be interpolated is calculated as follows: w (x, y). p (x, y) p (i, J) = (x, yB,
Ew (x,y) (x,y)EB' Bien entendu, l'étape de calcul du poids E2 et l'étape d'interpolation E3 sont mises en oeuvre pour chaque pixel à interpoler p(i, j) du bloc manquant 2. Ew (x, y) (x, y) EB 'Of course, the step of calculating the weight E2 and the interpolation step E3 are implemented for each pixel to be interpolated p (i, j) of the missing block 2.
Ainsi, grâce à l'invention, il est possible de déterminer les pixels à interpoler par un algorithme d'interpolation appliqué à un ensemble de pixels voisins, et de calculer le poids associé à chaque pixel voisin en fonction de l'appartenance à un contour d'image ou à une zone uniforme. Thus, thanks to the invention, it is possible to determine the pixels to be interpolated by an interpolation algorithm applied to a set of neighboring pixels, and to calculate the weight associated with each neighboring pixel as a function of the membership of an outline. image or a uniform area.
Par conséquent, les contours d'image ou données hautes fréquences sont reconstruits par cet algorithme d'interpolation. Ainsi la qualité de l'image contenant le bloc reconstruit est améliorée. As a result, the image contours or high frequency data are reconstructed by this interpolation algorithm. Thus the quality of the image containing the reconstructed block is improved.
Par ailleurs, la détermination des pixels à interpoler est réalisée simplement dès lors qu'un seul algorithme d'interpolation est utilisé pour l'interpolation des pixels du bloc manquant, et rapidement, de sorte qu'elle puisse être utilisée dans des applications en temps réel. dii(x, y)a . 1cos(e ii(x, y)) [i_ •d~..(xy Bien entendu, de nombreuses modifications peuvent être apportées à l'exemple de réalisation décrit précédemment sans sortir du cadre de l'invention. Ainsi, l'ensemble de pixels voisins peut être la totalité des pixels 5 adjacents au bloc manquant. Moreover, the determination of the pixels to interpolate is carried out simply as soon as a single interpolation algorithm is used for the interpolation of the pixels of the missing block, and quickly, so that it can be used in time applications. real. dii (x, y) a. Of course, many modifications can be made to the embodiment described above without departing from the scope of the invention. neighboring pixels may be all the pixels 5 adjacent to the missing block.
Claims (19)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0757782A FR2921504B1 (en) | 2007-09-21 | 2007-09-21 | SPACE INTERPOLATION METHOD AND DEVICE |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0757782A FR2921504B1 (en) | 2007-09-21 | 2007-09-21 | SPACE INTERPOLATION METHOD AND DEVICE |
Publications (2)
Publication Number | Publication Date |
---|---|
FR2921504A1 true FR2921504A1 (en) | 2009-03-27 |
FR2921504B1 FR2921504B1 (en) | 2010-02-12 |
Family
ID=39446076
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR0757782A Expired - Fee Related FR2921504B1 (en) | 2007-09-21 | 2007-09-21 | SPACE INTERPOLATION METHOD AND DEVICE |
Country Status (1)
Country | Link |
---|---|
FR (1) | FR2921504B1 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011014633A3 (en) * | 2009-07-29 | 2011-05-05 | Qualcomm Incorporated | Method and device for pixel interpolation |
EP2917893A4 (en) * | 2012-11-12 | 2015-11-25 | Ericsson Telefon Ab L M | Processing of depth images |
CN111159622A (en) * | 2019-12-10 | 2020-05-15 | 北京蛙鸣信息科技发展有限公司 | Missing data-oriented multi-parameter fusion air quality spatial interpolation method and system |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5054100A (en) * | 1989-11-16 | 1991-10-01 | Eastman Kodak Company | Pixel interpolator with edge sharpening |
US6832009B1 (en) * | 1999-09-24 | 2004-12-14 | Zoran Corporation | Method and apparatus for improved image interpolation |
US20050094899A1 (en) * | 2003-10-29 | 2005-05-05 | Changick Kim | Adaptive image upscaling method and apparatus |
US20050232515A1 (en) * | 2004-04-20 | 2005-10-20 | Samsung Electronics Co., Ltd. | Image transforming device and method thereof |
-
2007
- 2007-09-21 FR FR0757782A patent/FR2921504B1/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5054100A (en) * | 1989-11-16 | 1991-10-01 | Eastman Kodak Company | Pixel interpolator with edge sharpening |
US6832009B1 (en) * | 1999-09-24 | 2004-12-14 | Zoran Corporation | Method and apparatus for improved image interpolation |
US20050094899A1 (en) * | 2003-10-29 | 2005-05-05 | Changick Kim | Adaptive image upscaling method and apparatus |
US20050232515A1 (en) * | 2004-04-20 | 2005-10-20 | Samsung Electronics Co., Ltd. | Image transforming device and method thereof |
Non-Patent Citations (1)
Title |
---|
HUANG ET AL: "An adaptive squared-distance-weighted interpolation for volume reconstruction in 3D freehand ultrasound", ULTRASONICS, IPC SCIENCE AND TECHNOLOGY PRESS LTD. GUILDFORD, GB, vol. 44, 28 December 2006 (2006-12-28), pages e73 - e77, XP005819557, ISSN: 0041-624X * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011014633A3 (en) * | 2009-07-29 | 2011-05-05 | Qualcomm Incorporated | Method and device for pixel interpolation |
CN102484710A (en) * | 2009-07-29 | 2012-05-30 | 高通股份有限公司 | Method and device for pixel interpolation |
US9129409B2 (en) | 2009-07-29 | 2015-09-08 | Qualcomm Incorporated | System and method of compressing video content |
CN102484710B (en) * | 2009-07-29 | 2016-10-26 | 高通股份有限公司 | System and method for pixel interpolating |
EP2917893A4 (en) * | 2012-11-12 | 2015-11-25 | Ericsson Telefon Ab L M | Processing of depth images |
CN111159622A (en) * | 2019-12-10 | 2020-05-15 | 北京蛙鸣信息科技发展有限公司 | Missing data-oriented multi-parameter fusion air quality spatial interpolation method and system |
CN111159622B (en) * | 2019-12-10 | 2023-06-30 | 北京蛙鸣信息科技发展有限公司 | Multi-parameter fusion air quality spatial interpolation method and system for missing data |
Also Published As
Publication number | Publication date |
---|---|
FR2921504B1 (en) | 2010-02-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1523730B1 (en) | Method and system for calculating a transformed image from a digital image | |
EP1410331B1 (en) | Method and system for modifying a digital image taking into account its noise | |
EP2174289B1 (en) | Method for processing a digital object and related system | |
FR2719141A1 (en) | Removing unwanted details from photographic image | |
WO2005031646A1 (en) | Method and system for differentially and regularly modifying a digital image by pixel | |
FR2921504A1 (en) | Spatial interpolation method for pixel of missing block of image, involves determining weights associated to neighboring pixel based on distance and information representing contour when neighboring pixel belongs to image contour | |
EP3994890A1 (en) | Method and device for coding a digital hologram sequence | |
EP2785039A1 (en) | Method and device for tattooing an image sequence, method and device for authenticating a sequence of tattooed images and corresponding computer program | |
FR2873214A1 (en) | METHOD AND DEVICE FOR OBTAINING STEREOSCOPIC SIGNAL | |
WO2001043446A1 (en) | Method for estimating the motion between two images with management of mesh overturning, and corresponding coding method | |
FR2853748A1 (en) | METHOD FOR TATOTING A VECTOR-APPROACHING COLOR IMAGE, METHOD FOR DETECTING A TATTOO MARK, DEVICES, IMAGE AND CORRESPONDING COMPUTER PROGRAMS | |
FR2933520A1 (en) | METHOD AND DEVICE FOR RESTORING A VIDEO SEQUENCE | |
FR2781907A1 (en) | METHOD FOR ENCODING A SOURCE MESH BASED ON DISCONTINUITIES, AND CORRESPONDING APPLICATIONS | |
FR2903798A1 (en) | DETECTION OF IMAGE DISTURBANCES | |
FR2816155A1 (en) | Method and device for qualification of image detectors in function of their bad pixels | |
FR2923637A1 (en) | METHOD, DEVICE FOR IDENTIFYING A SET OF PIXELS WHOSE VALUES ARE INTENDED TO BE USED TO DETERMINE THE VALUE OF A PIXEL | |
WO2011089341A1 (en) | Method for segmenting images, computer program, and corresponding computer system | |
Jacumin | Variational methods for PDE-based image and video compression | |
EP4150574B1 (en) | Method for processing images | |
EP3545496A1 (en) | Method for characterising the anisotropy of the texture of a digital image | |
FR2944937A1 (en) | Video sequence image's lost pixel blocks restoration method for use during image transmission, involves obtaining restoration motion vector from determined confidence zones, and restoring identified blocks from restoration motion vector | |
BE1021546B1 (en) | METHOD AND SYSTEM FOR STORING WAVEFORM DATA. | |
WO2021123617A1 (en) | Method for encoding a digital image in order to compress same | |
Zhang | Sparse and low-rank techniques for the efficient restoration of images | |
EP3621026A1 (en) | Method for reconstructing an imprint image from image portions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ST | Notification of lapse |
Effective date: 20140530 |