FR3001318A1 - Procede d’interpolation et dispositif correspondant - Google Patents

Procede d’interpolation et dispositif correspondant Download PDF

Info

Publication number
FR3001318A1
FR3001318A1 FR1350627A FR1350627A FR3001318A1 FR 3001318 A1 FR3001318 A1 FR 3001318A1 FR 1350627 A FR1350627 A FR 1350627A FR 1350627 A FR1350627 A FR 1350627A FR 3001318 A1 FR3001318 A1 FR 3001318A1
Authority
FR
France
Prior art keywords
pixels
matrix
pixel
values
value
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.)
Pending
Application number
FR1350627A
Other languages
English (en)
Inventor
Guillaume Boisson
Paul Kerbiriou
David Nebouy
Original Assignee
Thomson Licensing SAS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Thomson Licensing SAS filed Critical Thomson Licensing SAS
Priority to FR1350627A priority Critical patent/FR3001318A1/fr
Priority to KR1020157019890A priority patent/KR20150110541A/ko
Priority to PCT/EP2014/051051 priority patent/WO2014114601A1/fr
Priority to JP2015554119A priority patent/JP2016511962A/ja
Priority to CN201480006020.8A priority patent/CN104969258A/zh
Priority to US14/762,462 priority patent/US9652826B2/en
Priority to EP14700931.0A priority patent/EP2948921B1/fr
Publication of FR3001318A1 publication Critical patent/FR3001318A1/fr
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4007Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4053Scaling of whole images or parts thereof, e.g. expanding or contracting based on super-resolution, i.e. the output image resolution being higher than the sensor resolution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/128Adjusting depth or disparity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/15Processing image signals for colour aspects of image signals

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Image Processing (AREA)
  • Television Systems (AREA)
  • Picture Signal Circuits (AREA)

Abstract

L'invention concerne un procédé d'interpolation d'une première matrice de pixels (20) en une deuxième matrice de pixels (200), la deuxième matrice (200) comprenant un nombre de pixels supérieur au nombre de pixels de la première matrice (20). Le procédé comprend les étapes de : - détermination de l'équation d'un plan passant par au moins trois pixels (21, 23, 24) de la première matrice (20) à partir des coordonnées des au moins trois pixels (21, 23, 24) dans la première matrice et de premières valeurs associées aux au moins trois pixels (21, 23, 24), - détermination de deuxièmes valeurs à associer aux pixels interpolés (202, 203, 206, 211, 216, 220, 221, 225, 227, 228, 229) de la deuxième matrice (200) à partir de ladite équation du plan et des coordonnées des pixels interpolés dans la deuxième matrice (200). L'invention concerne également un module d'interpolation correspondant ainsi que le produit programme d'ordinateur mettant en œuvre le procédé d'interpolation dans un ordinateur.

Description

PROCEDE D'INTERPOLATION ET DISPOSITIF CORRESPONDANT 1. Domaine de l'invention.
L'invention se rapporte au domaine du traitement d'image ou de vidéo. L'invention se rapporte également au domaine de l'interpolation de matrices de pixels et plus particulièrement au sur-échantillonnage d'une matrice de pixels source. 2. Etat de l'art. Selon l'état de la technique, il existe des dispositifs qui permettent de capturer diverses informations à associer aux pixels d'une image, telles que par exemple les niveaux de gris ou les informations de disparité entre plusieurs vues d'une même scène, c'est-à-dire entre plusieurs images d'une même scène capturée selon plusieurs points de vue. Les informations de niveaux de gris sont par exemple capturées à l'aide de capteurs CCD d'un appareil photo ou d'une caméra vidéo et les informations de disparité inter-vues sont par exemple capturées à l'aide de capteur de profondeur (par exemple de type Kinect®) ou calculées en utilisant des logiciels d'estimation de disparité. Ces informations sont stockées dans des cartes associées aux images, par exemple une carte de niveau de gris correspondant à une matrice de pixels comprenant autant de pixels que l'image à laquelle elle est associée, une valeur de niveau de gris étant associée à chaque pixel, ou une carte de disparité correspondant à une matrice de pixels comprenant autant de pixels que l'image à laquelle elle est associée, une valeur de disparité étant associée à chaque pixel. Des erreurs de capture ou d'estimation lors de la capture ou de l'estimation de ces informations font apparaitre des trous dans les cartes associées aux images, c'est-à-dire que certains pixels n'ont pas d'information associée (niveau de gris ou disparité) ou ont une information associée erronée. Par ailleurs, les cartes ont parfois des définitions limitées en raison de limitations matérielles intrinsèques aux capteurs utilisés pour la saisie de ces informations ou en raison de contraintes de capture temps réel qui ne permettent pas une capture à définition élevée. 3. Résumé de l'invention. L'invention a pour but de pallier au moins un de ces inconvénients de l'art antérieur. Plus particulièrement, l'invention a notamment pour objectif de fournir une carte d'information associée à une image complète et/ou avec une meilleure définition. L'invention concerne un procédé d'interpolation d'une première matrice de pixels en une deuxième matrice de pixels, la deuxième matrice comprenant un nombre de pixels supérieur au nombre de pixels de la 10 première matrice. Le procédé comprend les étapes de : - détermination de l'équation d'un plan passant par au moins trois pixels de la première matrice à partir des coordonnées des au moins trois pixels dans la première matrice et de premières valeurs associées à les au moins trois pixels, 15 - détermination de deuxièmes valeurs à associer aux pixels interpolés de la deuxième matrice à partir de l'équation du plan et des coordonnées des pixels interpolés dans la deuxième matrice. Selon une caractéristique particulière, au moins une partie des deuxièmes valeurs déterminées sont associés à des pixels interpolés 20 positionnés en dehors d'un polygone ayant pour sommets les au moins trois pixels de la première matrice copiés dans la deuxième matrice. Avantageusement, la première matrice comprend au moins un pixel pour lequel la première valeur associée est inconnue. De manière avantageuse, au moins une des différences entre 25 deux premières valeurs associées à deux pixels adjacents de la première matrice est supérieure à une valeur seuil. Selon une autre caractéristique, le plan passe par trois pixels, les trois pixels étant adjacents et répartis sur deux colonnes adjacentes et deux lignes adjacentes. 30 Selon une caractéristique spécifique, la deuxième matrice correspondant à un sur-échantillonnage de la première matrice en utilisant un facteur de sur-échantillonnage horizontal et un facteur de sur-échantillonnage vertical, le procédé comprenant les étapes de : - détermination de la parité des facteurs de sur-échantillonnage 35 horizontal et vertical, - détermination d'une règle d'interpolation à appliquer aux pixels interpolés appartenant à la colonne du milieu de la deuxième matrice lorsque le facteur de sur-échantillonnage horizontal est pair et/ou à appliquer aux pixels interpolés appartenant à la ligne du milieu de la deuxième matrice lorsque le facteur de sur-échantillonnage vertical est pair.
De manière avantageuse, la règle d'interpolation est choisie parmi un ensemble de règles comprenant les règles suivantes : - association de deuxièmes valeurs aux pixels de la colonne du milieu et/ou de la ligne du milieu déterminées à partir de l'équation du plan ; - association de deuxièmes valeurs aux pixels de la colonne du milieu et/ou de la ligne du milieu correspondant à au moins une première valeur associée à au moins un pixel de la première matrice. Selon une autre caractéristique, les premières valeurs sont des valeurs représentatives de disparité. Selon une caractéristique particulière, les premières valeurs sont des valeurs représentatives de niveau de gris. L'invention concerne également un module d'interpolation d'une première matrice de pixels en une deuxième matrice de pixels, la deuxième matrice comprenant un nombre de pixels supérieur au nombre de pixels de la première matrice, le module comprenant au moins un processeur configuré pour : - déterminer l'équation d'un plan passant par au moins trois pixels de la première matrice à partir des coordonnées des au moins trois pixels dans la première matrice et de premières valeurs associées à les au moins trois pixels, - déterminer des deuxièmes valeurs à associer aux pixels interpolés de la deuxième matrice à partir de ladite équation du plan et des coordonnées des pixels interpolés dans la deuxième matrice. Selon une caractéristique spécifique, le au moins un processeur est un processeur graphique GPU.
L'invention concerne également un produit programme d'ordinateur comprenant des instructions de code de programme pour exécuter les étapes du procédé d'interpolation, lorsque le programme est exécuté sur un ordinateur. 4. Liste des figures. L'invention sera mieux comprise, et d'autres particularités et avantages apparaîtront à la lecture de la description qui va suivre, la description faisant référence aux dessins annexés parmi lesquels : - la figure 1 illustre la génération d'une deuxième matrice de pixels à partir d'une première matrice de pixels, selon un exemple de mise en oeuvre particulier de l'invention ; - la figure 2 illustre l'interpolation d'un groupe de pixels de la première matrice de pixels de la figure 1 en un deuxième groupe de pixels, selon un exemple de mise en oeuvre particulier de l'invention ; - la figure 3 illustre schématiquement un dispositif mettant en oeuvre une méthode d'interpolation d'une première matrice de pixels de la figure 1, selon un exemple de mise en oeuvre particulier de l'invention ; - la figure 4 illustre un procédé d'interpolation de la première matrice de pixel de la figure 1, mis en oeuvre dans le dispositif de la figure 3, selon un mode de réalisation particulier de l'invention. 5. Description détaillée de modes de réalisation de l'invention.
La figure 1 illustre la génération d'une deuxième matrice 13 de pixels par interpolation d'une première matrice 10 de pixels, selon un mode de réalisation particulier et non limitatif de l'invention. La deuxième matrice 13 de pixels comprend avantageusement plus de pixels que la première matrice 10 de pixels. Dit autrement, la définition de la deuxième matrice 13 de pixels est supérieure à la définition de la première matrice 10 de pixels. Selon un premier exemple, la définition de la première matrice 10 de pixels est de 640*360 pixels (soit 640 colonnes et 360 lignes) et la définition de la deuxième matrice 13 de pixels est de 19201 080 pixels (soit 1920 colonnes et 1080 lignes). Selon ce premier exemple, le facteur de sur-échantillonnage horizontal N pour passer de la première matrice 10 à la deuxième matrice 13 vaut N = 3 et le facteur de sur-échantillonnage vertical M pour passer de la première matrice 10 à la deuxième matrice 13 vaut M = 3. Selon ce premier exemple, les facteurs de sur-échantillonnage horizontal et vertical sont égaux. Selon un deuxième exemple, la définition de la première matrice 10 de pixels est de 640*360 pixels en mode entrelacé et la définition de la deuxième matrice 13 de pixels est de 19201 080 pixels. Selon ce deuxième exemple, les facteurs de sur-échantillonnage horizontal N et vertical M sont différents, M étant égal à 6 et N étant égal à 3. Bien entendu, les définitions des première et deuxième matrices ne sont pas limitées à ces deux exemples mais s'étendent à toute définition (par exemple 1024*768 pixels pour la première matrice 10 et 2048*1536 pour la deuxième matrice 13 avec des facteurs de sur-échantillonnage M et N égaux à 2 ou encore 1024*720 pixels pour la première matrice 10 et 4096*2160 pour la deuxième matrice 13 avec un facteur de sur-échantillonnage horizontal N = 4 et un facteur de sur-échantillonnage vertical M = 3). Selon les différents exemples, les facteurs de sur-échantillonnage sont indifféremment pairs ou impairs. A chaque pixel de la première matrice 10 de pixels est associée une valeur, la valeur étant par exemple représentative de disparité ou représentative de niveau de gris. La première matrice correspond avantageusement à une carte de disparité associée à une image lorsque les valeurs associées aux pixels de la première matrice 10 sont représentatives de disparité. En stéréoscopie (c'est-à-dire lorsque plusieurs images représentent une même scène selon plusieurs points de vue, par exemple deux images gauche et droite d'une même scène), une carte de disparité associée à une première image (par exemple une image gauche) comprend la différence horizontale en pixels entre un pixel de la première image (par exemple l'image gauche) et le pixel correspondant de la deuxième image (par exemple l'image droite), deux pixels correspondant de la première image et de la deuxième image représentant le même élément de la scène. Les valeurs de disparité associées aux pixels d'une image sont par exemple capturés par un dispositif adapté. Selon une variante, les valeurs de disparité sont estimées par comparaison de deux images d'une même scène, c'est-à-dire en appariant chaque pixel d'une première image de la scène avec un pixel correspondant de la deuxième image de la même scène (deux pixels correspondant de la première image et de la deuxième image représentant le même élément de la scène, c'est-à-dire qu'une même valeur de niveau de gris (à un niveau d'erreur près) est associée aux deux pixels correspondants) et en déterminant la différence de position horizontale entre le pixel de la première image et le pixel correspondant de la deuxième image (exprimée en nombre de pixels). Lorsque la mesure ou l'estimation de la disparité associée à un ou plusieurs pixels de la carte de disparité s'avère erronée (par exemple lorsqu'un objet est visible selon un point de vue et occulté selon l'autre point de vue), la valeur de disparité stockée pour ces pixels dans la première matrice de pixel est indéterminée ou inconnue. Une valeur indéterminée ou inconnue est par exemple identifiée via un code prédéterminé, par exemple un code égal à 1111111 (OxFF en hexadécimal) lorsque la valeur de disparité est codée sur 8 bits ou encore 11111111111 (0x07FF en hexadécimal) lorsque la valeur de disparité est codée sur 11 bits. La première matrice 10 correspond avantageusement à une carte de niveaux de gris associée à une image lorsque les valeurs associés aux pixels de la première matrice 10 sont représentatives de niveaux de gris. Les valeurs représentatives de niveau de gris sont par exemple codées sur 8, 10 ou 12 bits, un niveau de gris pour chaque canal couleur de l'image étant par exemple disponible, c'est-à-dire qu'une carte de niveau de gris est associée à chaque canal couleur (par exemple RGB). Lorsque la ou les valeurs de niveau de gris associée à un ou des pixels de la première matrice de pixels est ou sont erronées (par exemple suite à un problème de mesure du capteur), la valeur de niveau de gris stockée pour ce ou ces pixels dans la première matrice de pixel est indéterminée ou inconnue. Une valeur indéterminée ou inconnue est par exemple identifiée via un code prédéterminé, par exemple un code égal à 11111111 ou 00000000 lorsque la valeur de disparité est codée sur 8 bits.
Le reste de la description de la figure 1 s'appuiera sur l'exemple selon lequel la définition de la première matrice 10 de pixels est de 640*360 pixels en mode entrelacé et la définition de la deuxième matrice 13 de pixels est de 1920*1080 pixels en mode progressif, c'est-à-dire que le facteur de sur-échantillonnage horizontal N est égal à 3 et le facteur de sur- échantillonnage vertical M est égal à 6. La position de chaque pixel des première et deuxième matrices est définie par le couple numéro de colonne C / numéro de ligne L correspondant aux coordonnées du pixel dans la matrice de pixels, la position d'un pixel de la première matrice étant défini par le couple (C1 ; L1) et la position d'un pixel de la deuxième matrice étant défini par le couple (C2 ; L2). La deuxième matrice 13 de pixels est par exemple obtenue par interpolation bilinéaire de la première matrice 10 de pixels. Au cours d'une première étape, chaque pixel de la première matrice 10 est copié dans une première version intermédiaire 11 de la deuxième matrice à une position qui dépend de la position du pixel dans la première matrice 10 et des facteurs de sur-échantillonnage horizontal N et vertical M. La position d'un pixel de la première matrice 10 copié dans la première version intermédiaire 11 de la deuxième matrice 13 est obtenu par les équation suivantes : C2 = NrCi L2 = M*C1 En prenant comme exemples les 4 pixels adjacents 101, 102, 103 et 104 apparaissant en grisé sur la première matrice 10 et ayant respectivement les coordonnées suivantes exprimées en numéro de colonne C1 et numéro de ligne L1 (1 ; 1), (1 ; 2), (2 ; 1) et (2 ; 2), la première ligne et la première colonne d'une matrice étant numérotées 0, les coordonnées des 4 pixels 111, 112, 113 et 114 de la première version 11 de la deuxième matrice correspondant respectivement aux 4 pixels 101, 102, 103 et 104 de la première matrice 10 sont respectivement (3 ; 6), (3 ; 12), (6 ; 6) et (6 ; 12). On entend par copie d'un pixel de la première matrice dans la deuxième matrice l'assignation de la valeur associée au pixel de la première matrice au pixel correspondant de la deuxième matrice. Cette opération est avantageusement répétée pour chaque pixel de la première matrice 10 qui a un pixel correspondant (c'est-à-dire avec une même valeur associée) dans la deuxième matrice. Pour déterminer les valeurs à associer aux pixels restant de la deuxième matrice (identifiés en blanc dans la première version intermédiaire 11 de la deuxième matrice), la méthode d'interpolation bilinéaire connue de l'homme du métier est utilisée. Selon cette méthode, les valeurs des pixels appartenant aux colonnes de la deuxième matrice pour lesquels des valeurs sont associées à certains pixels au moins sont déterminées par interpolation en utilisant les valeurs des pixels entourant les pixels pour lesquels aucune valeur n'est associée. Ces pixels des colonnes pour lesquels on détermine la valeur à associer par interpolation sont identifiés en grisé hachuré de blanc sur la deuxième version intermédiaire 12 de la deuxième matrice. A titre d'exemple, une partie de la deuxième version intermédiaire 12 de la deuxième matrice est grossi pour plus de visibilité. La partie grossie est entourée d'un ovale en pointillé et correspond à une partie de la colonne numéro 3 qui comprend les pixels 111, 121, 122, 123, 124, 125 et 112. Les pixels 111 et 112 correspondent aux pixels 101 et 102 de la première matrice 10, c'est-à-dire que la valeur associée à chacun de ces pixels 111 et 112 est une copie de la valeur associée respectivement aux pixels 101 et 102. Les valeurs associées aux pixels 121 à 125 sont déterminées par interpolation des valeurs associées aux pixels 111 et 112, les pixels 111 et 112 entourant les pixels 121 à 125. Puis les valeurs des pixels restant (identifiés en blanc sur la deuxième version intermédiaire 12 de la deuxième matrice de pixels) sont déterminées ligne par ligne en utilisant les valeurs des pixels d'une ligne entourant les pixels pour lesquels les valeurs associées sont déterminées. Ceci est illustré par la deuxième matrice de pixels 13 où les pixels des lignes pour lesquels les valeurs associées ont été déterminées apparaissent en grisé hachuré de blanc. A titre d'exemple, une partie de la deuxième matrice 13 est grossie pour plus de visibilité. La partie grossie est entourée d'un ovale en pointillé et correspond à une partie de la ligne 10 qui comprend les pixels 124, 131, 132 et 129, les valeurs associées aux pixels 124 et 129 ayant été déterminées précédemment par interpolations de valeurs issues de la première matrice 10. Les valeurs associées aux pixels 131 et 132 sont déterminées par interpolation des valeurs associées aux pixels 124 et 129, les pixels 124 et 1129 entourant les pixels 131 et 132. Bien entendu, il est possible de déterminer en premier lieu les lignes de la deuxième matrice comprenant des pixels ayant une valeur associée provenant de la première matrice puis en deuxième lieu les colonnes pour les pixels restant. Selon cette méthode d'interpolation bilinéaire, des coefficients d'interpolation sont utilisés pour pondérer les valeurs associées aux pixels entourant les pixels pour lesquels les valeurs à associer sont à déterminer. Ces coefficients d'interpolation sont avantageusement déterminés pour chaque pixel dont la valeur est à déterminer en fonction du facteur de sur-échantillonnage vertical M pour les pixels des colonnes (comme indiqué sur la deuxième version intermédiaire 12 de la deuxième matrice pour les pixels apparaissant en grisé hachuré de blanc, par exemple les pixels 121 à 125) et en fonction du facteur de sur-échantillonnage horizontal N pour les pixels des lignes (comme indiqué sur la deuxième matrice 13 pour les pixels apparaissant en grisé hachuré de blanc, par exemple les pixels 131 et 132). Pour chaque pixel dont la valeur associée est déterminée par interpolation des deux valeurs des pixels entourant ce pixel, deux facteurs d'interpolation sont utilisés, un premier facteur (a_y) pour pondérer le premier des deux pixels entourant le pixel à déterminé et un deuxième facteur (13_y) pour pondérer le deuxième des deux pixels entourant le pixel à déterminer). Les premier et deuxième facteurs de pondération verticaux (c'est-à-dire utilisés pour déterminer les valeurs associées aux pixels d'une colonne à partir de pixels de cette colonne pour laquelle les valeurs associées sont connues, par exemple pour déterminer les valeurs associées aux pixels 121 à 125 à partir des pixels 111 et 112) sont calculés à partir des équations suivantes : a_y = k / M 13_y = 1 - a_y où k est compris entre 1 et M-1, k étant égal à M-1 pour le pixel le plus proche du premier pixel entourant le pixel à déterminer et 1 pour le pixel le plus éloigné du premier pixel entourant le pixel à déterminer, k étant décrémenté de 1 au fur et à mesure que l'on s'éloigne du premier pixel entourant le pixel à déterminer et que l'on s'approche du deuxième pixel entourant le pixel à déterminer. En prenant comme exemple les pixels 121 à 125 dont les valeurs associées sont déterminées à partir des valeurs des pixels 111 et 112 et en considérant que le pixel 111 est le premier pixel entourant les pixels 121 à 125 et le pixel 112 est le deuxième pixel entourant les pixels 121 et 125, les valeurs des premier et deuxième facteur d'interpolation verticaux appliqués aux pixels 121 à 125 sont respectivement : Pixel 121 Pixel 122 Pixel 123 Pixel 124 Pixel 125 a_y 5/6 4/6 3/6 2/6 1/6 13_y 1/6 2/6 3/6 4/6 5/6 Ainsi, la valeur V à associer à un des pixels 121 à 125 est la moyenne de la somme des valeurs associées aux premier et deuxième pixels 111 et 112 entourant les pixels 121 à 125 pondérées des facteurs d'interpolation verticaux, à savoir : . pixel = (a_y*Vpixeo + 13 v_Y*VPixe1,112) Où Vpixel est la valeur à associer au pixel dont on cherche à déterminer la valeur associée, Vpixe1,111 est la valeur associé au premier pixel entourant le pixel dont on cherche à déterminer la valeur associée et Vpixe1,112 est la valeur associée au deuxième pixel entourant le pixel dont on cherche à déterminer la valeur associée. Appliqué aux pixels 121 à 125, cela donne : V121 = (5/6* Vpixeui + 1/6* VPixe1,112) V122 = (4/6* VPixe1,111 + 2/6* VPixe1,112) V123 = (3/6* VPixe1,111 + 3/6* VPixe1,112) V124 = (2/6* VPixe1,111 + 4/6* VPixe1,112) V125 = (1/6* VPixe1,111 + 5/6* VPixe1,112) De la même manière, des facteurs d'interpolation horizontaux sont utilisés pour déterminer les valeurs à associer à des pixels d'une ligne à partir des valeurs de deux pixels entourant ces pixels sur la ligne considérée pour lesquels les valeurs associées sont connues (soit copiées de la première matrice, soit déterminées par interpolation appliquée sur une colonne comme expliqué précédemment). Ces premier et deuxième facteurs d'interpolation horizontaux (notés respectivement a_x et p_x) sont avantageusement déterminés en fonction du facteur de sur-échantillonnage horizontal N, à savoir : a_x = k / N p_x = 1 - a_x où k est compris entre 1 et N-1, k étant égal à N-1 pour le pixel le plus proche du premier pixel entourant le pixel à déterminer et 1 pour le pixel le plus éloigné du premier pixel entourant le pixel à déterminer, k étant décrémenté de 1 au fur et à mesure que l'on s'éloigne du premier pixel entourant le pixel à déterminer et que l'on s'approche du deuxième pixel entourant le pixel à déterminer. En prenant comme exemple les pixels 131 et 132 dont les valeurs associées sont déterminées à partir des valeurs des pixels 124 et 129 et en considérant que le pixel 124 est le premier pixel entourant les pixels 131 et 132 et le pixel 125 est le deuxième pixel entourant les pixels 131 et 132, les valeurs des premier et deuxième facteur d'interpolation horizontaux appliqués aux pixels 131 et 132 sont respectivement : Pixel 131 Pixel 132 a_x 2/3 1/3 p_x 1/3 2/3 Ainsi, la valeur V à associer à un des pixels 131 et 132 est la moyenne de la somme des valeurs associées aux premier et deuxième pixels 124 et 129 entourant les pixels 131 et 132 pondérées des facteurs d'interpolation verticaux, à savoir : Vpixel = (a_x*Vpixe1,124 + P_X*VPixe1,129) Où Vpixel est la valeur à associer au pixel dont on cherche à déterminer la valeur associée, Vpixe1,124 est la valeur associé au premier pixel entourant le pixel dont on cherche à déterminer la valeur associée et Vpixe1,129 est la valeur associée au deuxième pixel entourant le pixel dont on cherche à déterminer la valeur associée. Appliqué aux pixels 131 et 132, cela donne : V131 = (2/3* VPixe1,124 + 1/3* VPixe1,129) Vi32 = (1/3* VPixe1,124 ± 2/3* VPixe1,129) La méthode d'interpolation bilinéaire est avantageusement utilisée pour déterminer les valeurs des pixels pour lesquels on ne connait par la valeur associée lorsque les valeurs associées aux pixels entourant les pixels dont on cherche à déterminer la valeur associée sont connues et/ou ne présentent pas de variation trop importante d'un pixel à un autre. Par exemple, si la valeur associée à un ou plusieurs des pixels 101 à 104 de la première matrice 10 n'est pas connue, la méthode d'interpolation bilinéaire ne sera pas utilisée pour déterminer les pixels de la deuxième matrice 13 entourés par les 4 pixels 111 à 114 de la deuxième matrice 13 et correspondant aux 4 pixels 101 à 104 de la première matrice 10. De la même manière, si une différence entre deux pixels adjacents parmi les 4 pixels 101 à 104 de la première matrice 10 apparait (c'est-à-dire si la différence entre les valeurs associées entre deux pixels adjacents est supérieure à une valeur seuil déterminée, ce qui signifie en pratique que ces 2 pixels adjacents considérés appartiennent à 2 objets différents sur l'image associée à la première matrice 10), la méthode d'interpolation bilinéaire ne sera pas utilisée pour déterminer les pixels de la deuxième matrice 13 entourés par les 4 pixels 111 à 114 de la deuxième matrice 13 et correspondant aux 4 pixels 101 à 104 de la première matrice 10. Lorsque l'un ou l'autre de ces cas de figure apparait, la méthode décrite en regard de la figure 2 sera avantageusement utilisée afin de minimiser les erreurs d'interpolation. La figure 2 illustre l'interpolation d'un premier groupe de pixels 21, 22, 23 et 24 en un deuxième groupe de pixels 201 à 230, selon un exemple de mise en oeuvre particulier et avantageux de l'invention. Le premier groupe de pixels 21 à 24 correspond par exemple à un groupe de pixels de la première matrice de pixel 10 ou bien encore à une première matrice de pixels 20 ne comprenant que 4 pixels. Selon l'exemple non limitatif de la figure 2, le facteur de sur-échantillonnage horizontal N est égal à 4 et le facteur de sur-échantillonnage vertical M est égal à 5. Les valeurs associées aux pixels 21, 23 et 24 sont connues (soit via des mesures effectuées par un ou plusieurs capteurs adaptés soit via toute méthode d'estimation connue de l'homme du métier). Les trois pixels 21, 23 et 24 sont adjacents et sont répartis sur deux colonnes adjacentes et sur deux lignes adjacentes. Selon un premier exemple, la valeur associée au quatrième pixel 22 est inconnue ou représentative d'une erreur de capture ou d'estimation. Selon un deuxième exemple, la différence entre la valeur associée à ce pixel 22 et la valeur associée au pixel adjacent 21 de la même ligne ou la différence entre la valeur associée à ce pixel 22 et la valeur associée au pixel adjacent 24 de la même colonne est supérieure à une valeur seuil. Une différence de valeurs supérieure à une valeur seuil est représentative de l'appartenance de ce pixel 22 d'une part et des pixels 21 à 24 d'autre part à deux objets différents de l'image associée à la première matrice 10. Par exemple, si les valeurs associées aux pixels 21 à 24 sont représentatives de disparités, une différence importante de disparité entre deux pixels (c'est-à-dire supérieure à une valeur seuil, par exemple supérieure à 10 ou 15 pixels) signifient que les objets auxquels appartiennent ces pixels 22 d'une part et 21 à 24 d'autre part appartiennent à des plans de profondeurs différentes. De la même manière, si les valeurs associées aux pixels 21 à 24 sont représentatives de niveau de gris, une différence importante de niveau de gris (c'est-à-dire supérieure à une valeur seuil, par exemple supérieure à 16 ou 32 lorsque les niveau de gris sont codés sur 8 bits, c'est-à-dire sur une échelle de 0 à 255) révèle la présence d'un contour au niveau des pixels 21 à 24, c'est-à-dire que le pixel 22 d'une part et les pixels 21 à 24 d'autre part appartiennent à des objets différents de l'image). Pour palier les problèmes d'interpolation qui se baserait sur les 4 valeurs associées aux 4 pixels 21 à 24 en cas de sur- échantillonnage des 4 pixels de la première matrice 20 pour générer une deuxième matrice 200, les valeurs associées aux pixels 21, 23 et 24 sont copiées et associées aux pixels correspondant de la deuxième matrice 200, c'est-à-dire associées à respectivement les pixels 201, 226 et 230. La valeur inconnue (où la valeur présentant une différence supérieure à la valeur seuil avec l'une des valeurs associées aux pixels 21 et 24) associée au pixel 22 est également copiée et associée au pixel 205 de la deuxième matrice 200 correspondant au pixel 22 de la première matrice 20. Comme expliqué en regard de la figure 1, les coordonnées dans le repère X, Y (c'est-à-dire les numéros de ligne et colonne) des pixels 201, 205, 226 et 230 de la deuxième matrice 200 correspondant à respectivement les pixels 21, 22, 23 et 24 sont déterminées à partir des coordonnées des pixels 21, 22, 23 et 24 dans la première matrice 20 et des facteurs de sur-échantillonnage M et N. Les coordonnées des pixels 21, 22, 23 et 24 sont ainsi par exemple respectivement (0,0), (1,0), (0,1) et (1,1) dans la première matrice 20 et les coordonnées des pixels correspondant 201, 205, 226 et 230 sont respectivement (0,0), (4,0), (0,5) et (4,5) dans la deuxième matrice 200. Pour déterminer les valeurs à associer aux autres pixels 202, 203, 204, 206 à 210, 211 à 215, 216 à 220, 221 à 225, 227, 228 et 229, l'équation du plan passant par les trois pixels (de la première matrice 20 ou de manière équivalent de la deuxième matrice 200, les pixels 21 à 24 de la première matrice étant copiés dans la deuxième matrice) dont on connait les valeurs associées est déterminée. L'équation cartésienne du plan est de la forme : a*x + b*y + c*z + d=0 où x et y correspondent aux coordonnées des pixels du plan (c'est-à-dire respectivement le numéro de colonne et le numéro de ligne d'un pixel du plan) ; z correspond à la valeur associée à un pixel du plan ; a, b, c et d correspondent au facteurs du plan qu'il est possible de déterminer en connaissant 3 pixels du plan. Une fois l'équation du plan déterminée (c'est-à-dire une fois les valeurs des facteurs a, b, c et d déterminées) selon toute méthode connue de l'homme du métier à partir des trois pixels pours lesquels x, y et z sont connus, il est possible de retrouver la valeur à associer aux pixels pour lesquels on recherche la valeur en connaissant leurs coordonnées x et y (c'est-à-dire les numéros de colonne et de ligne) dans la deuxième matrice 200, zpixel correspondant à la valeur à associer à un pixel dont on recherche la valeur associée (connaissant le numéro de colonne du pixel xpixel et le , - numéro de ligne du pixel vpixel 1 On a ainsi : Zpixei = - (eXpixel + b*ypixel + d) / c A partir de cette équation et connaissant les coordonnées x et u des pixels dont on veut déterminer les valeurs associées, il est possible de déterminer z (la valeur associée) pour chaque pixel de la deuxième matrice 200, c'est-à-dire pour chaque pixel de la zone délimitée par les 4 pixels 201, 205, 226 et 230 pour lesquels on connait les valeurs associées via la première matrice 20. Il est ainsi possible de déterminer les valeurs associées aux pixels situés à l'intérieur du triangle ayant pour sommet les trois points utilisés pour déterminer l'équation du plan, c'est-à-dire les pixels 201, 226 et 230, mais aussi de déterminer les valeurs associées aux pixels situés à l'extérieur de ce triangle, par exemple les pixels 202, 203, 220, 225 et autres dont les références n'apparaissent pas sur la figure 2. Selon une variante, la valeur associée au pixel 22 et copiée pour être associée au pixel 205 de la deuxième matrice 200 est assignée à d'autres pixels de la deuxième matrice pour lesquels on cherche à déterminer la valeur à associer. Selon l'exemple de la figure 2, la valeur du pixel 205 est propagée aux pixels appartenant à la fois à la colonne adjacente de la colonne du pixel 205 (à l'intérieur de la zone délimitée par les pixels 201, 205, 226 et 230) et aux deux lignes les plus proches de la lignes comprenant le pixel 205. Cette valeur est ainsi associée aux pixels 204, 209, 210, 214 et 215. La ou les règles déterminant à quels pixels de la deuxième matrice 200 la valeur du pixel 205 doit être assignée est (sont) avantageusement prédéterminées. Un des critères pour décider à quels pixels assigner la valeur inconnue est la parité du facteur de sur-échantillonnage (horizontal et vertical). Dans le cas où le facteur de sur-échantillonnage M ou N est impair, la valeur du pixel 205 est propagée sur la moitié des colonnes/lignes interpolées, le nombre de colonnes/lignes concernées étant égale à (M - 1)/2 ou (N - 1)/2. Selon l'exemple de la figure 2, on a un facteur de sur-échantillonnage vertical M impair car égal à 5. Cela signifie qu'il y a 4 lignes entre les lignes comprenant les pixels 201, 205 et 226, 230 dont la valeur associée est issue de la première matrice 20. La ligne comprenant les pixels 201 et 205 est par exemple numérotée 0, la ligne comprenant les pixels 226 et 230 est numérotée 5. Les deux lignes comprenant des pixels auxquels est assignée la valeur du pixel 205 sont alors les lignes numérotées 1 et 2. Le facteur de sur-échantillonnage horizontal N étant pair (égale à 4 selon l'exemple de la figure 2), il n'est pas possible de diviser en deux le nombre de colonnes de la deuxième matrice 200 pour obtenir un nombre entier. Pour les pixels de la colonne du milieu (colonne numérotée 2 comprenant les pixels 203 et 228, en partant du principe que la colonne numérotée 0 est la colonne la plus à droite, c'est-à-dire la colonne comprenant les pixels 201 et 226), il est nécessaire de déterminer à priori quelle règle appliquer pour déterminer leurs valeurs associées : soit utiliser l'équation du plan, soit copier la valeur associée au pixel 205. Cela revient à déterminer si les pixels de la colonne du milieu doivent appartenir à l'objet ou au plan incluant les pixels 21, 23, 24 ou à l'objet ou au plan incluant le pixel 22. Selon les cas, les deux règles ont du sens. De manière avantageuse, il est décidé à priori quelle règle appliquer, cette règle étant programmée et appliquée par défaut par la suite lors de la mise en oeuvre de la méthode d'interpolation décrite ici. Par exemple, à des fins de synthèse de vue, la valeur de disparité qui correspond à la profondeur la plus éloignée de la caméra (du point de vue) sera étendue et le nombre de pixels pour lesquels la valeur de disparité est indéterminée sera limité. A l'inverse, à des fins de reconstruction 3D, les pixels de la colonne et/ou de la ligne du milieu resteront indéterminés, c'est-à-dire que les valeurs associées à ces pixels resteront inconnues ou indéterminées. Dans l'exemple de la figure 2, il a été décidé d'utiliser l'équation du plan passant par les pixels 21, 23, 24 (ou de manière équivalent par les pixels 201, 226 et 230) pour déterminer les valeurs à associer aux pixels de la colonne n°2, par exemple les pixels 203 et 228, certains de ces pixels étant situés à l'intérieur du triangle formé par les sommets 201, 226, 230 (c'est-à-dire les pixels des lignes 3, 4 et 5), d'autres pixels étant situés à l'extérieur de ce triangle (c'est-à-dire les pixels des lignes 0, 1, 2). Selon l'exemple de la figure 2, 6 pixels reçoivent la valeur du pixel 22, c'est-à-dire que la valeur associée au pixel 22 est copiée pour les 6 pixels de la deuxième matrice ayant pour numéros de colonne 3 et 4 et pour numéros de ligne 0, 1, 2. Pour les autres pixels de la deuxième matrice 200, leurs valeurs associées sont déterminées en utilisant l'équation du plan passant par les pixels 21, 23, 24 (ou par les pixels 201, 226, 230).
Selon une variante, l'équation du plan est de type paramétrique et est déterminée à partir des coordonnées (x23, y23, z23) d'un pixel noté A (par exemple le pixel 23) et de deux vecteurs non colinéaires, par exemple un premier vecteur ii(ui, u2, u3) défini à partir du couple de pixels 23, 21 et un deuxième vecteur i (vi, v2, v3)défini à partir du couple de pixels 23, 24. Le plan étant l'ensemble des points M(x, y, z) pour lesquels il existe deux scalaires À et p tels que : OM = 0A + el + 1.ffl> , correspondant à l'équation vectorielle du plan x = x23 + ki,t1 + 11121 Y = Y23 + kU2 + 11122, correspondant aux équations Z = Z23 + kil.3 + p.193 paramétriques du plan, À et p étant les paramètres du plan, À et p étant des valeurs réelles. La figure 3 illustre schématiquement un exemple de réalisation matérielle d'un dispositif 3 adapté à l'interpolation d'une première matrice de pixels en une deuxième matrice de pixels. Le dispositif 5 correspondant par exemple à un ordinateur personnel PC, à un ordinateur portable (de l'anglais « laptop »), à un récepteur/décodeur (ou en anglais « set-top box ») ou à un module de traitement d'image embarqué dans un dispositif d'affichage.
Le dispositif 3 comprend les éléments suivants, reliés entre eux par un bus 35 d'adresses et de données qui transporte également un signal d'horloge : - un microprocesseur 31 (ou CPU) ; - une carte graphique 32 comprenant : - plusieurs processeurs de traitement graphique 320 (ou GPUs) ; - une mémoire vive de type GRAM (de l'anglais « Graphical Random Access Memory ») 321 ; - une mémoire non volatile de type ROM (de l'anglais « Read Only Memory ») 36 comprenant par exemple un programme 360 de type système d'exploitation ; - une mémoire vive ou RAM (de l'anglais « Random Access Memory ») 37 ; - un ou plusieurs dispositifs I/O (de l'anglais « Input/Output » ou en français « Entrée/Sortie ») 34, tels que par exemple un clavier, une souris, une webcam ; et - une alimentation 38. Le dispositif 3 comprend également un dispositif d'affichage 33 de type écran d'affichage relié directement à la carte graphique 32 pour afficher notamment le rendu d'images associées à la première matrice de pixels ou à la deuxième matrice de pixels. L'utilisation d'un bus dédié pour relier le dispositif d'affichage 33 à la carte graphique 32 offre l'avantage d'avoir des débits de transmission de données beaucoup plus important et ainsi de diminuer le temps de latence pour l'affichage d'images composées par la carte graphique. Selon une variante, un appareil pour afficher les images est externe au dispositif 3 et est relié au dispositif 3 par un câble transmettant les signaux d'affichage. Le dispositif 3, par exemple la carte graphique 32, comprend un moyen de transmission ou connecteur (non représenté sur la figure 3) adapté à transmettre un signal d'affichage à un moyen d'affichage externe tel que par exemple un écran LCD ou plasma, un vidéoprojecteur. On observe que le mot « registre » utilisé dans la description des mémoires 321, 36 et 37 désigne dans chacune des mémoires mentionnées, aussi bien une zone de mémoire de faible capacité (quelques données binaires) qu'une zone mémoire de grande capacité (permettant de stocker un programme entier ou tout ou partie des données représentatives de données calculées ou à afficher).
A la mise sous tension, le microprocesseur 31 charge et exécute les instructions du programme contenu dans la RAM 37. La mémoire vive 37 comprend notamment : - dans un registre 370, le programme de fonctionnement du microprocesseur 31 chargé à la mise sous tension du dispositif 3, - des paramètres 371 représentatifs des pixels de la première matrice, par exemple les coordonnées des pixels, les premières valeurs associées aux pixels.
Les algorithmes mettant en oeuvre les étapes du procédé propres à l'invention et décrits ci-après sont stockés dans la mémoire GRAM 321 de la carte graphique 32 associée au dispositif 3 mettant en oeuvre ces étapes. A la mise sous tension et une fois les paramètres 371 représentatifs de la première matrice chargés en RAM 37, les processeurs graphiques 320 de la carte graphique 32 charge ces paramètres en GRAM 321 et exécute les instructions de ces algorithmes sous la forme de microprogrammes du type « shader » utilisant le langage HLSL (de l'anglais « High Level Shader Language » ou en français « Langage de programmation « shader » de haut niveau »), le langage GLSL (de l'anglais « OpenGL Shading language » ou en français « Langage de shaders OpenGL ») par exemple. La mémoire vive GRAM 321 comprend notamment : - les paramètres 3210 représentatifs des pixels de la première matrice de pixels ; - des premières valeurs 3211 associées aux pixels de la première matrice ; - des paramètres 3212 représentatifs de l'équation d'un plan passant par au moins trois pixels de la première matrice ; et - des deuxièmes valeurs 3213 associées aux pixels de la deuxième matrice de pixels issue de l'interpolation de la première matrice de pixels. Selon une variante, les valeurs et paramètres 3210 à 3213 sont stockées dans la RAM 37 et traitées par le microprocesseur 31. Selon une autre variante, une partie de la RAM 37 est allouée par le CPU 31 pour stocker les valeurs et paramètres 3210 à 3213 si l'espace mémoire disponible en GRAM 321 est insuffisant. Cette variante entraîne cependant des temps de latence plus important dans les calcules nécessaires à l'interpolation à partir des microprogrammes contenus dans les GPUs puisque les données doivent être transmises de la carte graphique à la mémoire vive 37 en passant par le bus 35 dont les capacités de transmission sont généralement inférieures à celles disponibles dans la carte graphique pour faire passer les données des GPUs à la GRAM et vice-versa.
Selon une autre variante, l'alimentation 38 est externe au dispositif 3. La figure 4 illustre un procédé d'interpolation d'une première matrice de pixels en une deuxième matrice de pixels mis en oeuvre dans un dispositif 3, selon un exemple de mise en oeuvre non limitatif particulièrement avantageux de l'invention. Au cours d'une étape d'initialisation 40, les différents paramètres du dispositif 3 sont mis à jour. Ensuite, au cours d'une étape 41, l'équation du plan passant par trois pixels de la première matrice de pixels est déterminée, les premières valeurs associées à ces trois pixels étant connues, soit par mesure directe soit par estimation à partir d'autres valeurs. Les premières valeurs sont par exemple reçues de capteurs adaptées à les mesurer ou déterminées à partir d'autres valeurs (par exemple, si les premières valeurs correspondent à des valeurs représentatives de disparité, ces premières valeurs peuvent être déterminées à partir des niveaux de gris associées à chaque pixel de deux images représentant une même scène selon deux points de vue différents). L'équation du plan est déterminée à partir des coordonnées des trois pixels dans la première matrice et des premières valeurs associées à ces pixels.
Selon une variante, l'équation du plan est déterminée à partir de plus de trois pixels, par exemple 4 pixels, lorsque les premières valeurs associées à ces pixels sont assez homogènes, c'est-à-dire lorsqu'elles présentent des variations faibles entre elles, c'est-à-dire inférieurs à une valeur seuil, par exemple inférieures aux valeurs seuils décrites en regard de la figure 2. Ceci est notamment le cas lorsque les 4 pixels utilisés pour déterminer l'équation du plan sont associés à une même surface d'un objet d'une image. L'équation du plan est par exemple de type cartésienne ou de type paramétrique. De manière avantageuse, la deuxième matrice de pixels 35 comprend un nombre de pixels supérieur au nombre de pixels de la première matrice, la deuxième matrice correspondant à un sur-échantillonnage de la première matrice. Le sur-échantillonnage de la première matrice est obtenue à partir d'un facteur de sur-échantillonnage horizontal et d'un facteur de sur-échantillonnage vertical. De manière avantageuse, le facteur de sur-échantillonnage horizontal est différent du facteur de sur-échantillonnage vertical. Selon une variante, le facteur de sur-échantillonnage horizontal est égal au facteur de sur-échantillonnage vertical. Avantageusement, lorsque l'équation du plan est déterminée à partir de trois pixels, les trois pixels utilisés sont adjacents et répartis sur deux colonnes adjacentes et deux lignes adjacentes. Les premières valeurs sont avantageusement représentatives de disparité. Selon une variante, les premières valeurs sont représentatives de niveaux de gris. Puis, au cours d'une étape 42, des deuxièmes valeurs à associer aux pixels interpolés de la deuxième matrice de pixels sont déterminés à partir de l'équation du plan déterminée à l'étape précédente et des coordonnées des pixels interpolés dans la deuxième matrice. Les pixels interpolés de la deuxième matrice correspondent avantageusement aux pixels de la deuxième matrice entourés par les pixels de la deuxièmes matrices correspondant aux pixels de la première matrice. Les valeurs associées aux pixels de la deuxième matrice correspondant aux pixels de la première matrice sont égales aux premières valeurs associées aux pixels de la première matrice, ces premières valeurs étant copiées pour être associées aux pixels correspondant de la deuxième matrice. Dit autrement, les pixels de la première matrice sont copiés dans la deuxième matrice, seuls les coordonnées étant différentes entre la première matrice et la deuxième matrice pour ces pixels. De manière avantageuse, au moins une partie des pixels interpolés sont positionnés dans la deuxième matrice en dehors du polygone ayant pour sommets les copies des pixels de la première matrice dans la deuxième matrice. Le polygone correspond par exemple à un triangle lorsque les pixels utilisés pour déterminer l'équation du plan sont au nombre de trois et à un quadrilatère lorsque les pixels utilisés pour déterminer l'équation du plan sont au nombre de quatre. De manière avantageuse, la première matrice comprend un ou plusieurs pixels pour lesquels les premières valeurs associées sont inconnues ou indéterminées. Selon une variante, la première matrice comprend aux moins une paire de pixels ayant une différence entre leurs premières valeurs associées supérieure à une valeur seuil prédéterminée.
3 00 1 3 1 8 20 Selon une variante de réalisation, la parité du facteur de sur-échantillonnage horizontal et la parité du facteur de sur-échantillonnage vertical sont déterminés. En fonction du résultat de la détermination de la parité, il est déterminé quelle règle d'interpolation doit être appliquée aux 5 pixels interpolées appartenant à la colonne du milieu de la deuxième matrice lorsque le facteur de sur-échantillonnage horizontal est pair et aux pixels interpolées appartenant à la ligne du milieu de la deuxième matrice lorsque le facteur de sur-échantillonnage vertical est pair. Le choix de la règle à appliquer est avantageusement fait parmi une pluralité de règles 10 d'interpolation, par exemple parmi les deux règles d'interpolation suivantes : - utilisation de l'équation du plan pour déterminer les deuxièmes valeurs à associer aux pixels interpolés de la colonne du milieu et/ou de la ligne du milieu de la deuxième matrice de pixels ; - copie d'une première valeur associée à un des pixels de la 15 deuxième matrice (correspondant à une copie d'un pixel de la première matrice) pour l'associer aux pixels interpolés de la colonne du milieu et/ou de la ligne du milieu de la deuxième matrice de pixels. La décision d'utiliser l'une ou l'autre des règles pour les pixels 20 interpolés de la colonne du milieu et/ou de la ligne du milieu de la deuxième matrice de pixels lorsque le facteur de sur-échantillonnage horizontal et/ou vertical est pair correspond à un choix arbitraire d'implémentation et est déterminée au préalable.
25 Bien entendu, l'invention ne se limite pas aux modes de réalisation décrits précédemment. En particulier, l'invention n'est pas limitée à un procédé d'interpolation mais s'étend à l'unité de traitement mettant en oeuvre le procédé d'interpolation. L'invention concerne également un procédé de 30 traitement d'image mettant en oeuvre le sur-échantillonnage d'une image source pour générer une image sur-échantillonnée à partir de l'image source. Les modes de réalisation décrits précédemment sont par exemple mis en oeuvre dans une méthode ou un processus, un appareil, un programme logiciel, un flux de données ou un signal. Un dispositif ou 35 appareil mettant en oeuvre la méthode d'interpolation décrite est par exemple sous la forme de composants matériels programmables ou non, sous la forme d'un ou plusieurs processeur (avantageusement de type GPU mais 3001 3 1 8 21 également de type CPU ou ARM selon des variantes). Les méthodes décrites sont mises en oeuvre par exemple dans un appareil comprenant au moins un processeur, qui se réfère à des dispositifs de traitement en général, comprenant par exemple un ordinateur, un microprocesseur, un circuit 5 intégré ou un dispositif logique programmable. Les processeurs comprennent également les dispositifs de communication, tels que par exemple les ordinateurs, les téléphones portables ou cellulaires, les téléphones intelligents (de l'anglais « smartphones »), les assistants numériques portables/personnes (dits « PDAs »), les tablettes numériques ou tout autre 10 dispositif permettant la communication d'information entre utilisateur. Les mises en oeuvre des différents processus et différentes caractéristiques décrits précédemment peuvent être mis en oeuvre dans différents équipements ou applications, par exemple notamment dans un équipement ou des applications associés au codage de données, au 15 décodage de données, à la génération de vue ou d'image, au traitement de texture, et tout autre traitement d'images, d'informations représentative de texture et/ou d'informations représentatives de profondeur. Des exemples d'un tel équipement sont un encodeur, un décodeur, un post-processeur traitant les sorties d'un décodeur, un préprocesseur fournissant des entrées 20 à un encodeur, un codeur vidéo, un décodeur vidéo, un codec vidéo, un serveur web, un récepteur/décodeur, un ordinateur portable, un ordinateur personnel, un téléphone portable, un PDA, une tablette numérique et tout autre dispositif de communication. L'équipement peut être mobile ou embarqué dans un véhicule mobile.
25 De plus, les méthodes décrites peuvent être mises en oeuvre sous la forme d'instructions exécutées par un ou plusieurs processeurs, et de telles instructions peuvent être stockées sur un support lisible par un processeur ou un ordinateur, tel que par exemple un circuit intégré, tout dispositif de stockage tel que un disque dur, un disque optique (CD ou DVD), 30 une mémoire à accès aléatoire RAM, une mémoire non volatile de type ROM. Les instructions forment par exemple un programme applicatif stocké dans un support lisible par un processeur. Les instructions prennent par exemple la forme d'un hardware, d'un firmware (ou logiciel embarqué en français) ou d'un software (ou logiciel en français). 35

Claims (12)

  1. REVENDICATIONS1. Procédé d'interpolation d'une première matrice de pixels (20) en une deuxième matrice de pixels (200), la deuxième matrice (200) comprenant un nombre de pixels supérieur au nombre de pixels de la première matrice (20), caractérisé en ce que le procédé comprend les étapes de : - détermination (41) de l'équation d'un plan passant par au moins trois pixels (21, 23, 24) de la première matrice (20) à partir des coordonnées des au moins trois pixels (21, 23, 24) dans la première matrice et de premières valeurs associées auxdits au moins trois pixels (21, 23, 24), - détermination (42) de deuxièmes valeurs à associer aux pixels interpolés (202, 203, 206, 211, 216, 220, 221, 225, 227, 228, 229) de la deuxième matrice (200) à partir de ladite équation du plan et des coordonnées des pixels interpolés dans la deuxième matrice (200).
  2. 2. Procédé selon la revendication 1, où au moins une partie des deuxièmes valeurs déterminées sont associés à des pixels interpolés (202, 203, 220, 225) positionnés en dehors d'un polygone ayant pour sommets lesdits au moins trois pixels (201, 226, 230) de la première matrice copiés dans la deuxième matrice.
  3. 3. Procédé selon l'une des revendications 1 à 2, où la première matrice (20) comprend au moins un pixel (22) pour lequel la première valeur associée est inconnue.
  4. 4. Procédé selon l'une des revendications 1 à 2, où au moins une des différences entre deux premières valeurs associées à deux pixels adjacents de la première matrice est supérieure à une valeur seuil.
  5. 5. Procédé selon l'une des revendications 1 à 4, où ledit plan passe par trois pixels (21, 23, 24), lesdits trois pixels étant adjacents et répartis sur deux colonnes adjacentes et deux lignes adjacentes.
  6. 6. Procédé selon l'une des revendications 1 à 5, où, la deuxième matrice (200) correspondant à un sur-échantillonnage de la première matrice (20) enutilisant un facteur de sur-échantillonnage horizontal et un facteur de sur-échantillonnage vertical, le procédé comprend les étapes : - détermination de la parité desdits facteurs de sur-échantillonnage horizontal et vertical, - détermination d'une règle d'interpolation à appliquer aux pixels interpolés (203, 228) appartenant à la colonne du milieu de la deuxième matrice lorsque le facteur de sur-échantillonnage horizontal est pair et/ou à appliquer aux pixels interpolés appartenant à la ligne du milieu de la deuxième matrice lorsque le facteur de sur- échantillonnage vertical est pair.
  7. 7. Procédé selon la revendication 6, où la règle d'interpolation est choisie parmi un ensemble de règles comprenant les règles suivantes : - association de deuxièmes valeurs auxdits pixels (203, 228) de la colonne du milieu et/ou de la ligne du milieu déterminées à partir de l'équation du plan ; - association de deuxièmes valeurs auxdits pixels de la colonne du milieu et/ou de la ligne du milieu correspondant à au moins une première valeur associée à au moins un pixel de la première matrice. 20
  8. 8. Procédé selon l'une des revendications 1 à 7, où lesdites premières valeurs sont des valeurs représentatives de disparité.
  9. 9. Procédé selon l'une des revendications 1 à 8, où lesdites premières 25 valeurs sont des valeurs représentatives de niveau de gris.
  10. 10. Module (3) d'interpolation d'une première matrice de pixels en une deuxième matrice de pixels, la deuxième matrice comprenant un nombre de pixels supérieur au nombre de pixels de la première matrice, caractérisé en 30 ce que le module comprend au moins un processeur (320) configuré pour : - déterminer l'équation d'un plan passant par au moins trois pixels de la première matrice à partir des coordonnées des au moins trois pixels dans la première matrice et de premières valeurs associées audits au moins trois pixels, 35 - déterminer des deuxièmes valeurs à associer aux pixels interpolés de la deuxième matrice à partir de ladite équation du plan et des coordonnées des pixels interpolés dans la deuxième matrice.
  11. 11. Module selon la revendication 10, où ledit au moins un processeur (320) est un processeur graphique GPU.
  12. 12. Produit programme d'ordinateur, caractérisé en ce qu'il comprend des instructions de code de programme pour exécuter les étapes du procédé selon l'une quelconque des revendications 1 à 8, lorsque ledit programme est exécuté sur un ordinateur.10
FR1350627A 2013-01-24 2013-01-24 Procede d’interpolation et dispositif correspondant Pending FR3001318A1 (fr)

Priority Applications (7)

Application Number Priority Date Filing Date Title
FR1350627A FR3001318A1 (fr) 2013-01-24 2013-01-24 Procede d’interpolation et dispositif correspondant
KR1020157019890A KR20150110541A (ko) 2013-01-24 2014-01-20 보간 방법 및 대응 디바이스
PCT/EP2014/051051 WO2014114601A1 (fr) 2013-01-24 2014-01-20 Procédé d'interpolation et dispositif correspondant
JP2015554119A JP2016511962A (ja) 2013-01-24 2014-01-20 内挿方法および対応する装置
CN201480006020.8A CN104969258A (zh) 2013-01-24 2014-01-20 插值方法和对应设备
US14/762,462 US9652826B2 (en) 2013-01-24 2014-01-20 Interpolation method and corresponding device
EP14700931.0A EP2948921B1 (fr) 2013-01-24 2014-01-20 Procédé d'interpolation et dispositif correspondant

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1350627A FR3001318A1 (fr) 2013-01-24 2013-01-24 Procede d’interpolation et dispositif correspondant

Publications (1)

Publication Number Publication Date
FR3001318A1 true FR3001318A1 (fr) 2014-07-25

Family

ID=48741279

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1350627A Pending FR3001318A1 (fr) 2013-01-24 2013-01-24 Procede d’interpolation et dispositif correspondant

Country Status (7)

Country Link
US (1) US9652826B2 (fr)
EP (1) EP2948921B1 (fr)
JP (1) JP2016511962A (fr)
KR (1) KR20150110541A (fr)
CN (1) CN104969258A (fr)
FR (1) FR3001318A1 (fr)
WO (1) WO2014114601A1 (fr)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102136850B1 (ko) * 2013-11-12 2020-07-22 삼성전자 주식회사 깊이 센서, 및 이의 동작 방법
KR101936919B1 (ko) * 2015-11-05 2019-04-09 구글 엘엘씨 에지-인식 양방향 이미지 프로세싱
CN110363723B (zh) * 2019-07-16 2021-06-29 安健科技(广东)有限公司 改进图像边界效果的图像处理方法及装置
CN114519967B (zh) * 2022-02-21 2024-04-16 北京京东方显示技术有限公司 源驱动装置及其控制方法、显示系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1990016035A2 (fr) * 1989-06-16 1990-12-27 Eastman Kodak Company Interpolateur a image numerique
EP0574245A2 (fr) * 1992-06-11 1993-12-15 International Business Machines Corporation Procédé et appareil d'élargissement et réduction variable d'une image
EP0696017A2 (fr) * 1994-08-05 1996-02-07 Hewlett-Packard Company Cadrage d'images binaires
EP0706154A1 (fr) * 1993-10-04 1996-04-10 Xerox Corporation Dispositif amélioré d'interpolation d'image

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2795119B2 (ja) * 1993-02-03 1998-09-10 日本ビクター株式会社 多次元画像圧縮伸張方式
EP0645736B1 (fr) * 1993-09-27 2003-02-05 Canon Kabushiki Kaisha Appareil de traitement d'images
US6078331A (en) * 1996-09-30 2000-06-20 Silicon Graphics, Inc. Method and system for efficiently drawing subdivision surfaces for 3D graphics
EP2018626B1 (fr) 2006-05-09 2019-10-09 Koninklijke Philips N.V. Suréchantillonnage
US20080055338A1 (en) * 2006-08-30 2008-03-06 Ati Technologies Inc. Multi-stage edge-directed image scaling
US20110032269A1 (en) 2009-08-05 2011-02-10 Rastislav Lukac Automatically Resizing Demosaicked Full-Color Images Using Edge-Orientation Maps Formed In The Demosaicking Process
TWI423164B (zh) * 2010-05-07 2014-01-11 Silicon Motion Inc 用來產生一高品質放大影像之方法及相關裝置
CN102402781B (zh) * 2010-09-13 2014-05-14 慧荣科技股份有限公司 用来产生一高品质放大图像的方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1990016035A2 (fr) * 1989-06-16 1990-12-27 Eastman Kodak Company Interpolateur a image numerique
EP0574245A2 (fr) * 1992-06-11 1993-12-15 International Business Machines Corporation Procédé et appareil d'élargissement et réduction variable d'une image
EP0706154A1 (fr) * 1993-10-04 1996-04-10 Xerox Corporation Dispositif amélioré d'interpolation d'image
EP0696017A2 (fr) * 1994-08-05 1996-02-07 Hewlett-Packard Company Cadrage d'images binaires

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
ANTHONY A. TANBAKUCHI ET AL: "Adaptive pixel defect correction", PROCEEDINGS OF SPIE, US, 14 May 2003 (2003-05-14), pages 360 - 370, XP055041179 *
DIERICKX B ET AL: "Missing pixel correction algorithm for image sensors", PROCEEDINGS OF SPIE - INTERNATIONAL SOCIETY FOR OPTICAL ENGINEERING, US, vol. 3410, 19 May 1998 (1998-05-19), pages 200 - 203, XP002319253 *
SMITH P R: "BILINEAR INTERPOLATION OF DIGITAL IMAGES", ULTRAMICROSCOPY, ELSEVIER, NL, vol. 6, no. 2, 1 January 1981 (1981-01-01), pages 201 - 204, XP000560028 *

Also Published As

Publication number Publication date
EP2948921A1 (fr) 2015-12-02
US20150356709A1 (en) 2015-12-10
EP2948921B1 (fr) 2018-01-10
CN104969258A (zh) 2015-10-07
JP2016511962A (ja) 2016-04-21
KR20150110541A (ko) 2015-10-02
WO2014114601A1 (fr) 2014-07-31
US9652826B2 (en) 2017-05-16

Similar Documents

Publication Publication Date Title
JP7231708B2 (ja) サンプリングされた色情報に基づいて画像シーケンスを生成および伝送するシステムおよび方法
US10776671B2 (en) Joint blur map estimation and blur desirability classification from an image
US9704254B2 (en) Stereo image matching by shape preserving filtering of a cost volume in a phase domain
US20180014003A1 (en) Measuring Accuracy of Image Based Depth Sensing Systems
CN107133914B (zh) 用于生成三维彩色图像的装置和用于生成三维彩色图像的方法
Wu et al. Polarization image demosaicking using polarization channel difference prior
US20220067950A1 (en) Method and apparatus to complement depth image
US9740959B2 (en) Acceleration of exposure fusion with pixel shaders
FR3001318A1 (fr) Procede d’interpolation et dispositif correspondant
US20220124259A1 (en) Varying a zoom level of an image recorded with a lens having a fixed zoom level
Ceruso et al. Relative multiscale deep depth from focus
US11445136B2 (en) Processing circuitry for processing data from sensor including abnormal pixels
Chen et al. Depth-guided deep filtering network for efficient single image bokeh rendering
Zhao et al. A survey for light field super-resolution
Wang et al. Single-frame super-resolution for high resolution optical remote-sensing data products
Xian et al. Towards Robust Monocular Depth Estimation: A New Baseline and Benchmark
US20230245267A1 (en) Apparatus and method with image processing for sparse dual-pixel image data
US20240037703A1 (en) Image processing method and image processing apparatus
US20230103967A1 (en) Method and apparatus with depth map generation
Yu et al. Racking focus and tracking focus on live video streams: a stereo solution
US20230403455A1 (en) Method and apparatus with image quality improvement
US20230060314A1 (en) Method and apparatus with image processing
Wang et al. Effective polarization-based image dehazing through 3D convolution network
JP2024509408A (ja) ピクセル間ニューラルネットワークにおけるデータ処理
CN114782282A (zh) 一种图像修复方法、装置、设备及可读存储介质