Brevet FR2925199A1 — publié le 20090619

PROCEDE DE GENERATION DE DISTANCES REPRESENTATIVES D'ORIENTATIONS DE CONTOUR DANS UNE IMAGE VIDEO, DISPOSITIF CORRESPONDANT ET UTILISATION DU PROCEDE POUR LE DESENTRELACEMENT OU LA CONVERSION DE FORMAT 5 Domaine de l'invention La présente invention concerne un procédé et un dispositif de génération d'une distance représentative d'une orientation de contour en un point courant d'une image vidéo. Les distances générées sont notamment 10 utilisées pour le désentrelacement ou la conversion de format d'images vidéo. Il peut être mis en oeuvre dans un codeur ou décodeur vidéo. Arrière-plan technoloqique de l'invention Il existe actuellement deux formats associés au standard de la télévision 15 haute définition ou standard HDTV (pour High Definition TV en langue anglaise). Ces deux formats sont le format 720p et le format 1080i. Le format 720p produit des images progressives comportant 720 lignes et 1280 colonnes et le format 1080i produit des images entrelacées comportant 1080 lignes et 1920 colonnes. Chacun de ces formats a des avantages qui lui 20 sont propres. Le format 720p présente une meilleure résolution temporelle et reproduit des objets se déplaçant rapidement sans créer d'effet de flou alors que le format 1080i présente une meilleure résolution spatiale. Les diffuseurs de programmes ont choisi d'utiliser l'un ou l'autre de ces formats mais pas les deux. Il y a donc un réel besoin de traiter, avant affichage, le 25 format des programmes diffusés pour le transformer en un format supporté par le dispositif d'affichage utilisé pour afficher lesdits programmes. Il est connu de changer le format d'une image vidéo ou de la désentrelacer en effectuant premièrement une détection de l'orientation locale de contours 30 dans l'image d'entrée puis en effectuant une interpolation en se basant sur les orientations détectées. Les résultats des méthodes connues de détection des orientations de contours dans une image vidéo sont bruités ou alors requièrent un nombre élevé de calculs (par exemple, en testant un grand nombre d'orientations de contours possibles). 35 Résumé de l'invention La présente invention a pour but d'améliorer ce procédé. La présente invention concerne un procédé de génération d'une distance représentative d'une orientation de contour en un point courant d'une image vidéo, comportant une étape de calcul, au point courant et en une pluralité de points de l'image englobant ledit point courant formant un ensemble de k points centré sur le point courant, d'une distance représentative d'une orientation de contour en ce point, k étant un entier naturel supérieur à 1, le procédé étant remarquable en ce qu'il comporte en outre une étape de filtrage médian conditionnel de la distance calculée pour le point courant, sur un ensemble de distances, parmi les distances calculées pour les points de l'ensemble de k points, respectant un critère prédéterminé. Selon un mode de réalisation particulier, la distance représentative d'une orientation de contour en un point de l'image vidéo est calculée à partir d'un gradient local des composantes vidéo de l'image vidéo en ledit point. Selon l'invention, les distances respectant le critère prédéterminé sont les distances associées aux points de l'ensemble de points dont le module de gradient local des composantes vidéo en ces points est supérieur à un seuil. Le seuil peut être fixe ou variable. Avantageusement, le seuil est variable et, pour le point courant, ce seuil dépend du module de gradient local des composantes vidéo du point courant. Selon un mode de réalisation particulier, ce seuil est égal à un pourcentage du module de gradient local des composantes vidéo du point courant. Ce pourcentage est par exemple égal à 50%. L'invention concerne également un dispositif de génération d'une distance représentative d'une orientation de contour en un point dit courant d'une image vidéo, comportant - un circuit de calcul pour calculer, en ledit point courant et en une pluralité de points de ladite image englobant ledit point courant formant un ensemble de k points centré sur ledit point courant, une distance représentative d'une orientation de contour en ledit point, k étant un entier naturel supérieur à 1, - un filtre médian conditionnel pour filtrer la distance calculée pour ledit point courant sur un ensemble de distances, parmi les distances calculées pour les points de l'ensemble de k points, respectant un critère prédéterminé. Selon l'invention, les distances respectant le critère prédéterminé sont les 5 distances des points dont le module de gradient local des composantes vidéo auxdits points est supérieur à un seuil. L'invention concerne également une utilisation du procédé de génération d'une distance relative à une orientation de contour dans un procédé de 10 désentrelacement d'une image vidéo, dans lequel la distance représentative d'une orientation de contour calculée en un point courant de l'image vidéo est utilisée pour calculer la valeur des pixels de l'image désentrelacée. L'invention concerne également une utilisation du procédé de génération 15 d'une distance relative à une orientation de contour dans un procédé de conversion de format d'une image vidéo d'entrée en une image vidéo de sortie, dans lequel la distance représentative d'une orientation de contour calculée en un point courant de l'image vidéo est utilisée pour calculer la valeur des pixels de l'image de sortie. 20 Brève description des dessins L'invention sera mieux comprise à la lecture de la description qui va suivre, donnée à titre d'exemple non limitatif, et en référence aux dessins annexés parmi lesquels : 25 - la figure 1 illustre les étapes d'un premier mode de réalisation du procédé de l'invention; - la figure 2 illustre, dans le cas d'un désentrelacement, la position d'un point P de l'image d'entrée en lequel est calculée une distance représentative d'une orientation de contour; 30 - les figures 3A à3C montrent respectivement une image originale, les distances d'orientation de contour calculées pour cette image avec filtrage médian conditionnel conforme à l'invention et les distances d'orientation de contour calculées pour cette image sans filtrage médian conditionnel; 35 - la figure 4 illustre l'interpolation d'un pixel Pout dans le cas d'un désentrelacement, - la figure 6 montre un dispositif apte à mettre en oeuvre le procédé de la figure 1; - la figure 7 illustre les étapes d'un second mode de réalisation du procédé de l'invention; et - la figure 8 montre un dispositif apte à mettre en oeuvre le procédé de la figure 7. Description détaillée de modes de réalisation préférés de l'invention La figure 1 illustre les étapes d'un premier mode de réalisation du procédé de l'invention. Le procédé vise à générer une distance représentative d'une orientation de contour en un point dit courant d'une image vidéo. Le procédé comporte une étape 110 de calcul, au point courant et en une pluralité de points de ladite image englobant le point courant formant un ensemble de k points centré sur le point courant, d'une distance représentative d'une orientation de contour au point courant, k étant un entier naturel supérieur à 1. Cet ensemble est par exemple une fenêtre rectangulaire de p par q points centrée sur le point courant, p et q étant des entiers naturels supérieurs à 1. Dans le cas d'un désentrelacement, la position du point courant de l'image où est calculée la distance correspond à la position d'un pixel de l'image désentrelacée. Dans le cas de la conversion de format, la position du point courant de l'image où est calculée la distance correspond à la position d'un pixel de l'image convertie. Un exemple de calcul de la distance d représentative d'une orientation de contour en un point de l'image d'entrée est donné ci-après dans le cas d'un désentrelacement. Cette distance d est calculée en un point P de l'image d'entrée tel qu'illustré à la figure 2. La figure 2 montre 8 pixels de l'image d'entrée répartis sur deux lignes consécutives yn et yn+1 de l'image d'entrée. Ces pixels appartiennent aux colonnes de pixels numérotées xm-1, xm, xm+1 et xm+2 de l'image d'entrée. Les pixels de l'image d'entrée sont representés sur la figure par des cercles noirs. Dans cet exemple, le désentrelacement consiste à générer une ligne de pixels y'=yn+1/2 intercalée à mi-distance entre les lignes yn et yn+1. Les pixels de cette ligne supplémentaire sont représentés par des carrés noirs. La distance est calculée en un point P appartenant à la ligne y' et à la colonne xm. Le point P est situé à l'intérieur de la zone délimitée par les de coordonnées (xm-1,yn), (xm+1,yn), (xm+1,yn+1) et (xm-1,yn+1). Le pixel P est repéré par les cordonnées (xm,y') dans l'image d'entrée. Le calcul de la distance d pour le pixel P de cordonnées (xm,y') est donné ci-après. A cet effet, un gradient horizontal, noté I,(x1,y'), et un gradient vertical, noté ly(x1,y'), de la composante de luminance sont calculés en ce point P: IX(xm,Y') = aX (xm,Y') = I(xm-1,yn) +I(xm-1 ,yn+1)-I(xm+1,Yn)-1(xm+l ,yn+l ) Iy(xm,Y') = al (xm,Y') = I(xn,-1,yn) +I(xm+1,Yn+1)-1(xrä-1,yn+1)-I(xm+l,yn+1) où I(x,y) désigne la composante de luminance au pixel de coordonnées (x,y). La distance d au point P est alors prise égale à : d = 1X(xm,y') Iy(xm,Y') La distance d calculée pour le pixel P est montrée sur la figure 2. Un segment de droite S relie le point de coordonnées (x'+d,yn) et le point de coordonnées (x'-d,yn+1). En référence de nouveau à la figure 1, le procédé de l'invention comporte ensuite une étape 120 de filtrage médian conditionnel des distances d calculées à l'étape 110. On entend par filtrage médian conditionnel un filtrage médian dans lequel les valeurs prises en compte pour le filtrage respectent un critère prédéterminé. Le filtrage médian est effectué par exemple sur une fenêtre de p par q valeurs de distance, p et q étant des entiers naturels supérieurs à 1. Les entiers p et q sont de préférence supérieurs à 3 pour que le filtrage soit efficace. Par exemple, p=5 et q=5. Le filtrage est donc effectué dans ce cas sur 25 valeurs. Le filtrage est centré sur la distance d à filtrer. Selon l'invention, seules les valeurs respectant un critère prédéterminé sont employées pour ce filtrage. Les valeurs de la fenêtre prises en compte pour le filtrage sont celles dont les points associés ont un module de gradient local de leurs composantes vidéo 11VIII supérieur à un seuil S, avec 11VIII = Elix2+EIjy2. Ij(x,y) désigne la valeur de la j=1 j=1 composante couleur j du pixel de coordonnées spatiales (x,y) dans l'image et q désigne le nombre de composantes vidéo. Dans le cas d'une valeur de pixel exprimée dans l'espace des couleurs [Y,Cb,Cr], q est égal à 3 et h désigne la valeur de la composante Y, 12 désigne la valeur de la composante Cb et 13 désigne la valeur de la composante Cr. Le seuil S est par exemple un pourcentage du module de gradient local des composantes vidéo du point considéré. Ce seuil est par exemple égal à 50%. Ce seuil peut être défini expérimentalement. Ce filtrage est illustré par les deux tableaux suivants: le premier tableau représente les modules de gradient local des composantes vidéo 11VIII des points d'une fenêtre de 5x5 points centrée sur un point courant (au centre) et le deuxième tableau représente les distances calculées pour ces points: 65 60 38 15 20 42 120 90 33 15 33 80 100 42 21 25 40 80 100 27 10 45 60 70 117 Tableau 1 10 5 4 3 12 4 10 6 3 19 4 5 6 4 2 3 6 7 10 2 3 8 6 7 10 Tableau 2 Si le seuil S est fixé à 50% du module de gradient local du point courant, les valeurs de gradient respectant ce critère dans le premier tableau sont 20 affichées en gras. De même, les valeurs de distances associées aux points respectant ce critère sont affichées en gras dans le deuxième tableau. Le15 filtrage médian conditionnel de l'invention consiste alors à classer les valeurs de distance retenues dans l'ordre croissant ou décroissant et à sélectionner la valeur centrale (également appelée médiane) de cette liste ordonnée comme valeur de sortie du filtre. Ce filtrage conditionnel permet de retirer du filtrage médian les valeurs de distance indiquant une absence de contours, ces valeurs étant propres à des zones homogènes de l'image d'entrée et de concentrer le filtrage sur les valeurs de distance indiquant un contour pour conserver l'effet de réduction de bruit du filtre médian. En variante, le seuil S est fixe ou ne dépend pas du gradient local du point courant. Les figures 3A à 3C sont fournies à titre d'exemple pour illustrer les résultats du filtrage médian conditionnel (étape 120 du procédé de l'invention). La figure 3A est une image d'entrée montrant des gratte-ciels au coeur d'une ville. Cette image comprend un grand nombre de contours. La figure 3B montre les distances représentatives de l'orientation des contours de cette image. La figure 3C montre les distances représentatives de l'orientation des contours de cette image après application d'un filtre median conditionnel conforme à l'invention. Dans les figures 3B et 3C, un niveau de gris moyen (128 dans le cas d'un codage des niveaux de gris sur 8 bits) indique une distance d nulle (= pas d'orientation de contour privilégiée), un niveau de gris plus elevé que 128 indique une distance d positive (= présence de contours obliques orientés vers le haut de gauche à droite de l'image) et un niveau de gris moins elevé que 128 indique une distance d négative (= présence de contours obliques orientés vers le bas de gauche à droite de l'image). Comme on peut le voir sur ces figures, le filtrage médian conditionnel de l'invention permet d'écarter de nombreuses distances parasites. Le filtrage médian conditionnel conforme à l'invention permet notamment d'améliorer les résultats sur les contours fins d'objets séparant deux zones homogènes.35 Ces distances filtrées servent à l'interpolation de pixels en cas de conversion de format ou de désentrelacement. Dans la suite, le procedé est utilisé pour interpoler un pixel Pont de coordonnées (xout,yout) dans l'image de sortie (après désentrelacement ou conversion de format) et de coordonnées (x',y') dans l'image de départ. Le pixel Pont de l'image de sortie correspond donc au pixel P dans l'image de départ. v est le rapport du nombre de lignes de l'image de départ sur le nombre de lignes de l'image de sortie et r est le rapport du nombre de colonnes de l'image de départ- sur le nombre de colonnes de l'image de sortie. La figure 4 illustre le cas où le pixel Pont est situé sur la colonne xm et entre les lignes yn et yn+1 de pixels de l'image de départ comme le pixel P. Pont est par exemple un pixel d'une image désentrelacée. On détermine les lignes yn et yn+1 de pixels de l'image d'entrée les plus proches de la ligne vont. y' = v.yout yn=E(y') où E(x) désigne la partie entière de la variable x. Une phase verticale cp = y'ûyn représentant la distance entre la ligne y' du pixel Pont et la ligne yn de l'image de départ est définie. cp est compris entre 0 et 1. Dans le cas d'un désentrelacement, cp=1/2. On a alors xyn=x'+2.cp.d et xyn+,=x'+2.(1-(p).d, d étant calculée pour le pixel P de coordonnées (x',y'). La valeur du pixel Pont de coordonnées (xont, t'ont) dans l'image de sortie est alors calculée par la formule suivante qui correspond à une interpolation bilinéaire: Iout (xout, yout ) = (1û (p).[(1û a),Iin (E(xyn ), yn ) + a.lin (E(xyn ) + sgn(d), yn )] +~p~(1ûR),Iin(E(xyn+, ),yn +1)+13.I(E(xyn+, )+sgn(d),yn +1)1 où - I;n(x,y) désigne la valeur du pixel de coordonnées (x,y) dans l'image de départ et Iont(x,y) désigne la valeur du pixel de coordonnées (x,y) dans l'image de sortie; - sgn(x) est la fonction signe de x30 -1 if x 0 - les paramètres a et 13 sont définis comme suit: a= E(xyn) û xyn 13 = E(x yn+1) ùxyn+1 Ce calcul est effectué sur chaque composante vidéo du pixel. La distance d calculée pour la composante vidéo de luminance est utilisée pour le calcul de toutes les composantes vidéo du pixel de l'image de sortie. 10 D'autres formules pour le calcul des composantes vidéo des pixels de l'image de sortie peuvent être envisagées. Dans l'exemple ci-dessus, l'interpolation est bilinéaire. On peut envisager d'utiliser une interpolation linéaire ou une interpolation par sélection du plus proche voisin ou une 15 combinaison d'interpolations linéaires ou bilinéaires. Ces interpolations sont bien connues de l'homme du métier. On peut également envisager d'utiliser un plus grand nombre de lignes et/ou de colonnes pour l'interpolation. On peut enfin prévoir de changer de formule d'interpolation en fonction du module de la distance d. 20 La figure 5 illustre un dispositif 500 apte à mettre en oeuvre le procédé de l'invention. Yin, Cb;n et Crin désignent les composantes vidéo de l'image appliquée à l'entrée du dispositif. Ces composantes sont exprimées dans l'espace des couleurs [Y,Cb,Cr]. Bien entendu, d'autres espaces de couleurs 25 peuvent être employées. Le dispositif 500 comporte: - un circuit de calcul 510 des distances représentatives de l'orientation des contours de l'image d'entrée; ce circuit met en oeuvre l'étape 110 du procédé de l'invention; ce circuit délivre une carte de distances, et 30 - un filtre médian conditionnel 520 mettant en oeuvre l'étape 120 du procédé de l'invention à partir de la carte de distances délivré par le bloc 510; ce filtre délivre une carte de distances filtrées. Dans le cadre d'une conversion de format ou d'un désentrelacement, ces distances filtrées sont ensuite traitées par un bloc d'interpolation.5 La figure 6 illustre un second mode de réalisation de l'invention. Ce second mode de réalisation comporte les étapes 601, 610 et 620. Les étapes 610 et 620 sont identiques aux étapes 110 et 120 du premier mode de réalisation illustré par la figure 1. Ce second mode de réalisation comporte une étape supplémentaire, référencée 601, de filtrage de l'image d'entrée. Ce filtrage a pour but d'améliorer le calcul des distances d'orientation des contours de l'image d'entrée. Le filtre utilisé est basé sur un noyau gaussien. Ce filtre est appliqué à la composante Y de luminance du signal de l'image d'entrée ou à toutes les composantes vidéo du signal de l'image d'entrée. Ci-après, I;f désigne la composante I. après filtrage. La composante filtrée est alors : Iif(x,y)=G(x,y,6)*Ii(x,y)= f f G(�,v,6),Ii(xù�,yùv)dgdv 9iz 1 ( (x2 +y2) '\ avec - G(x, y, 6) = 2n6 exp ù 26 i - 6 2 est la variance du noyau gaussien. Le filtre utilisé est par exemple le filtre à 5x5 coefficients suivant: 1 1 2 4 2 1 2 2 4 8 4 2 1 1 x[l 2 4 2 1]O 4 =ùx 4 8 16 8 4 100 100 2 2 4 8 4 2 1 1 2 4 2 1 La figure 7 illustre un dispositif 700 apte à mettre en oeuvre ce second mode de réalisation du procédé de l'invention. Yin, Cb;n et Crin désignent les composantes vidéo de l'image appliquée à l'entrée du dispositif. Ces composantes sont exprimées dans l'espace des couleurs [Y,Cb,Cr]. Le dispositif 700 comporte: - un premier filtre 701 pour mettre en oeuvre l'étape de filtrage 601; ce 25 filtrage est appliqué à l'une ou à toutes les composantes vidéo du signal de l'image d'entrée; - un circuit 710 de calcul des distances représentatives de l'orientation des contours de l'image d'entrée; ce circuit met en oeuvre l'étape 610 du second mode de réalisation du procédé de 30 l'invention; ce circuit délivre une carte de distances, et - un filtre médian conditionnel 720 mettant en oeuvre l'étape 620 du procédé de l'invention à partir de la carte de distances délivré par le bloc 720; ce filtre délivre une carte filtrée de distances. Dans le cadre d'une conversion de format ou d'un désentrelacement, ces distances filtrées sont ensuite traitées par un bloc d'interpolation. Dans le procédé de l'invention défini précédemment, la distance calculée à l'étape 110 ou 610 est utilisée telle quelle pour déterminer les pixels du second ensemble. En variante, si la distance calculée dépasse une valeur maximale prédéfinie, cette distance est écrêtée à cette valeur maximale. Cette valeur maximale est par exemple égale à égale à 4 pixels dans le cas d'une image SD (pour "standard definition" en langue anglaise et définition standard en français). En effet, au-delà de cette valeur maximale, la valeur de la distance d peut ne pas être fiable et donc introduire des erreurs dans l'interpolation. Selon une autre variante, si la distance calculée dépasse cette valeur maximale, la distance est ramenée à une valeur nulle. Cette deuxième variante permet de diminuer encore plus les risques d'erreurs tout en étant toutefois moins précis dans l'interpolation sur certains contours. Bien entendu, l'invention ne se limite pas aux modes de réalisation décrits précédemment. Tout procédé ou dispositif de conversion de format ou de désentrelacement proposant un filtrage médian conditionnel sur les distances d'orientation de contours utilisées pour générer l'image de sortie.25 REVENDICATIONS 1. Procédé de génération d'une distance représentative d'une orientation de contour en un point dit courant d'une image vidéo, comportant - une étape de calcul, en ledit point courant et en une pluralité de points de ladite image englobant ledit point courant formant un ensemble de k points centré sur ledit point courant, d'une distance représentative d'une orientation de contour en ledit point, k étant un entier naturel supérieur à 1, caractérisé en ce qu'il comporte en outre: - une étape de filtrage médian conditionnel de la distance calculée pour le point courant, sur un ensemble de distances, parmi les distances calculées pour les points de l'ensemble de k points, respectant un critère prédéterminé. 2. Procédé selon la revendication 1, dans lequel la distance représentative d'une orientation de contour en un point de l'image vidéo est calculée à partir d'un gradient local des composantes vidéo de l'image vidéo en ledit point. 3. Procédé selon la revendication 2, dans lequel les distances respectant ledit critère prédéterminé sont les distances des points dont le module de gradient local des composantes vidéo auxdits points est supérieur à un seuil. 4. Procédé selon la revendication 3, dans lequel ledit seuil est fixe. 5. Procédé selon la revendication 3, dans lequel, pour ledit point 30 courant, ledit seuil dépend du module de gradient local des composantes vidéo audit point courant de l'image vidéo. 6. Procédé selon la revendication 5, dans lequel, pour ledit point courant, ledit seuil est égal à un pourcentage du module de gradient local 35 des composantes vidéo audit point courant de l'image vidéo. 25 7. Procédé selon la revendication 6, dans lequel ce pourcentage est égal à 50%. 8. Dispositif de génération d'une distance représentative d'une orientation de contour en un point dit courant d'une image vidéo, comportant - un circuit de calcul pour calculer, en ledit point courant et en une pluralité de points de ladite image englobant ledit point courant formant un ensemble de k points centré sur ledit point courant, une distance représentative d'une orientation de contour en ledit point, k étant un entier naturel supérieur à 1, caractérisé en ce qu'il comporte en outre: - un filtre médian conditionnel pour filtrer la distance calculée pour ledit point courant sur un ensemble de distances, parmi les distances calculées pour les points de l'ensemble de k points, respectant un critère prédéterminé. 11. Dispositif selon la revendication 8, dans lequel les distances respectant ledit critère prédéterminé sont les distances des points dont le module de gradient local des composantes vidéo auxdits points est supérieur à un seuil. 12. Utilisation dudit procédé selon l'une quelconque des revendications 1 à 7 dans un procédé de désentrelacement d'une image vidéo, dans lequel la distance représentative d'une orientation de contour calculée en un point courant de l'image vidéo est utilisée pour calculer la valeur des pixels de l'image désentrelacée. 13. Utilisation dudit procédé selon l'une quelconque des revendications 1 à 7 dans un procédé de conversion de format d'une image vidéo d'entrée en une image vidéo de sortie, dans lequel la distance représentative d'une orientation de contour calculée en un point courant de l'image vidéo est utilisée pour calculer la valeur des pixels de l'image de sortie.35